]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2009-04-10 Bean <bean123ch@gnail.com>
[grub2.git] / ChangeLog
CommitLineData
e7e6862a 12009-04-10 Bean <bean123ch@gnail.com>
2
3 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
4 attribute, otherwise the size would be wrong for i386 platform.
5
6 * include/grub/pci.h (grub_pci_read_word): New inline function.
7 (grub_pci_read_byte): Likewise.
8 (grub_pci_write): Likewise.
9 (grub_pci_write_word): Likewise.
10 (grub_pci_write_byte): Likewise.
11
12 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
13
14 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
15 (find_framebuf): Scan pci to locate the frame buffer address.
16
17 * commands/efi/fixvideo.c: New file.
18
19 * commands/efi/loadbios.c: Likewise.
20
21 * commands/memrw.c: Likewise.
22
23 * util/grub-dumpbios.in: Likewise.
24
25 * conf/common.rmk (grub-dumpbios): New utility.
26 (pkglib_MODULES): New module memrw.mod.
27 (memrw_mod_SOURCE): New macro.
28 (memrw_mod_CFLAGS): Likewise.
29 (memrw_mod_LDFLAGS): Likewise.
30
31 * conf/i386-efi.rmk (pkglig_MODULES): New module loadbios.mod and
32 fixvideo.mod.
33 (loadbios_mod_SOURCE): New macro.
34 (loadbios_mod_CFLAGS): Likewise.
35 (loadbios_mod_LDFLAGS): Likewise.
36 (fixvideo_mod_SOURCE): Likewise.
37 (fixvideo_mod_CFLAGS): Likewise.
38 (fixvideo_mod_LDFLAGS): Likewise.
39
40 * conf/x86_64.rmk (pkglig_MODULES): New module loadbios.mod and
41 fixvideo.mod.
42 (loadbios_mod_SOURCE): New macro.
43 (loadbios_mod_CFLAGS): Likewise.
44 (loadbios_mod_LDFLAGS): Likewise.
45 (fixvideo_mod_SOURCE): Likewise.
46 (fixvideo_mod_CFLAGS): Likewise.
47 (fixvideo_mod_LDFLAGS): Likewise.
48
af63ada2 492009-04-08 Felix Zielcke <fzielcke@z-51.de>
50
51 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
52
c2cdde70 532009-04-07 David S. Miller <davem@davemloft.net>
54
55 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
56 support for R_SPARC_OLO10 relocations. Fix compile warning for
57 R_SPARC_WDISP30 case.
ea3f72cf 58 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 59
761319cf 602009-04-06 Pavel Roskin <proski@gnu.org>
61
1007d1f5 62 * include/grub/misc.h (ARRAY_SIZE): New macro.
63 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
64 New macro.
65 * loader/i386/linux.c (allocate_pages): Use free_pages().
66 (grub_linux_unload): Don't use free_pages().
67 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
68 wrong index. Treat all other modes as text modes.
69 (grub_cmd_linux): Initialize vid_mode unconditionally to
70 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
71
761319cf 72 * commands/help.c (print_command_help): Use cmd->prio, not
73 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
74
ea761d40 752009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
76
77 Parttool
78
79 * parttool/pcpart.c: new file
80 * commands/parttool.c: likewise
81 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
82 (parttool_mod_SOURCES): new variable
83 (parttool_mod_CFLAGS): likewise
84 (parttool_mod_LDFLAGS): likewise
85 (pcpart_mod_SOURCES): likewise
86 (pcpart_mod_CFLAGS): likewise
87 (pcpart_mod_LDFLAGS): likewise
88 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
89 and parttool/pcpart.c
90 * conf/i386-efi.rmk: likewise
91 * conf/i386-ieee1275.rmk: likewise
92 * conf/i386-pc.rmk: likewise
93 * conf/powerpc-ieee1275.rmk: likewise
94 * conf/sparc64-ieee1275.rmk: likewise
95 * conf/x86_64-ieee1275.rmk: likewise
96
05aaebfb 972009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
98
99 Support for mtime and further expandability of dir command
100
101 * include/grub/lib/datetime.h: moved to ...
102 * include/grub/datetime.h: ... moved here and added
103 declaration of grub_unixtime2datetime. All users updated
104 * include/grub/fs.h: new syntax for dir and mtime functionin
105 struct grub_fs
106 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
107 and GRUB_FSHELP_FLAGS_MASK
108 * commands/ls.c (grub_ls_list_files): Write mtime in long format
109 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
110 (grub_ext2_mtime): new function
111 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
112 (grub_hfsplus_mtime): new function
113 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
114 (GRUB_UFS_ATTR_FILE): likewise
115 (GRUB_UFS_ATTR_LNK): likewise
116 (struct grub_ufs_sblock): new fields mtime
117 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
118 all users updated
119 (grub_ufs_dir): mtime support
120 (grub_ufs_mtime): new function
121 * fs/affs.c (grub_affs_dir): use new dir syntax
122 * fs/afs.c (grub_afs_dir): likewise
123 * fs/cpio.c (grub_cpio_dir): likewise
124 * fs/fat.c (grub_fat_find_dir): likewise
125 * fs/hfs.c (grub_hfs_dir): likewise
126 * fs/iso9660.c (grub_iso9660_dir): likewise
127 * fs/jfs.c (grub_jfs_dir): likewise
128 * fs/minix.c (grub_minix_dir): likewise
129 * fs/ntfs.c (grub_ntfs_dir): likewise
130 * fs/reiserfs.c (grub_reiserfs_dir): likewise
131 * fs/sfs.c (grub_sfs_dir): likewise
132 * fs/xfs.c (grub_xfs_dir): likewise
133 * util/hostfs.c (grub_hostfs_dir): likewise
134 * lib/datetime.c: moved to ...
135 * normal/datetime.c: ... moved here
136 (grub_unixtime2datetime): new function
137 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
138 * normal/completition.c (iterate_dir): use new dir syntax
139 * normal/misc.c (grub_normal_print_device_info): tell the
140 last modification time of a volume
141 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
142 * conf/common.rmk: added lib/datetime.c to ls.mod
143 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
144 (normal_mod_SOURCES): likewise
145 (datetime_mod_SOURCES): Removed lib/datetime.c
146 * conf/i386-efi.rmk: likewise
147 * conf/i386-ieee1275.rmk: likewise
148 * conf/i386-pc.rmk: likewise
149 * conf/powerpc-ieee1275.rmk: likewise
150 * conf/sparc64-ieee1275.rmk: likewise
151 * conf/x86_64-efi.rmk: likewise
152
8a7e1a14 1532009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
154
155 Trim trailing spaces in FAT label and support mtools-like labels
156
157 * fs/fat.c (grub_fat_iterate_dir): New function based
158 on grub_fat_find_dir
159 (grub_fat_find_dir): use grub_fat_iterate_dir
160 (grub_fat_label): likewise
161
04186a9c 1622009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
163
164 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
165 and command.h
166 remove extraneous kernel_elf_HEADERS
167
da4c0bb6 1682009-04-04 Bean <bean123ch@gnail.com>
169
170 * include/grub/util/misc.h: Add dummy function fsync for mingw.
171
172 * util/misc.c: Likewise.
173
54ad9555 1742009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
175
176 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
177 instead of grub_printf.
178
7a6bf9f2 1792009-04-03 Robert Millan <rmh@aybabtu.com>
180
181 * loader/i386/linux.c (grub_linux_setup_video): Fill
182 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
183 values from `mode info' structure instead of hardcoded
184 values.
185
3fcc2083 1862009-04-01 Pavel Roskin <proski@gnu.org>
187
188 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
189 unused now.
190 * genmk.rb: Likewise.
191 * configure.ac: Likewise.
192
5ec9740b 1932009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
194
195 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
196 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
197
5270cec8 1982009-04-01 David S. Miller <davem@davemloft.net>
199
200 * normal/sparc64/setjmp.S: Fix setjmp implementation.
201 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
202 (grub_setjmp): Mark with 'returns_twice' attribute.
203 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
204 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
205 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
206
9c3dd854 2072009-04-01 Robert Millan <rmh@aybabtu.com>
208
209 Reapply fix from 2008-07-28 which was accidentally reverted; also
210 perform the same fix to a similar check in same function.
211
212 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
213 with the same number are found, just use issue a warning with
214 grub_dprintf(), as this error has been reported to be non-fatal.
215
0d818b7e 2162009-03-31 Pavel Roskin <proski@gnu.org>
217
218 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
219 for cross-compilation.
220
95646d92 2212009-03-30 Robert Millan <rmh@aybabtu.com>
222
223 Fix i386-ieee1275 build.
224
225 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
226 Remove declaration.
227
6a003ed1 2282009-03-30 Pavel Roskin <proski@gnu.org>
229
230 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
231 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
232 zero-terminated, rely only on the strlen value. Fix comparison
233 of strings differing in length.
234
92f33540 2352009-03-30 Robert Millan <rmh@aybabtu.com>
236
237 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
238 checking for abi version. Improve error messages on BIOS to notify
239 user about `linux16' command.
240
a8c48fd5 2412009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
242
f968172e 243 Leak fixes
a8c48fd5 244
f968172e 245 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
246 in case of collision
247 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 248
9c323f09 2492009-03-29 Robert Millan <rmh@aybabtu.com>
250
251 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
252 set `vid_mode' accordingly.
253 (grub_linux_boot): Process `vid_mode' and set video mode.
254
ae68f423 2552009-03-29 Robert Millan <rmh@aybabtu.com>
256
257 * util/grub.d/10_linux.in (linux_entry): New function.
258 Factorize generation of Linux boot entries.
259
5709cfc4 2602009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
261
262 Make the format of Environment Block plain text. The boot loader
263 part is not tested well yet.
264
265 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
266 (buffer): Removed.
267 (envblk): Likewise.
268 (usage): Remove "info" and "clear". Add "unset". Update the
269 description of "set", as this does not delete variables any
270 longer.
271 (create_envblk_file): Complete rewrite.
272 (open_envblk_file): Likewise.
273 (cmd_info): Removed.
274 (cmd_list): Likewise.
275 (cmd_set): Likewise.
276 (cmd_clear): Likewise.
277 (list_variables): New function.
278 (write_envblk): Likewise.
279 (set_variables): Likewise.
280 (unset_variables): Likewise.
281 (main): Complete rewrite.
282
283 * commands/loadenv.c (buffer): Removed.
284 (envblk): Likewise.
285 (open_envblk_file): New function.
286 (read_envblk_file): Complete rewrite.
287 (grub_cmd_load_env): Likewise.
288 (grub_cmd_list_env): Likewise.
289 (struct blocklist): New struct.
290 (free_blocklists): New function.
291 (check_blocklists): Likewise.
292 (write_blocklists): Likewise.
293 (grub_cmd_save_env): Complete rewrite.
294
295 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
296 a plain text signature.
297 (GRUB_ENVBLK_MAXLEN): Removed.
298 (struct grub_envblk): Complete rewrite.
299 (grub_envblk_find): Removed.
300 (grub_envblk_insert): Likewise.
301 (grub_envblk_open): New prototype.
302 (grub_envblk_set): Likewise.
303 (grub_envblk_delete): Put const to VALUE.
304 (grub_envblk_iterate): Put const to NAME and VALUE.
305 (grub_envblk_close): New prototype.
306 (grub_envblk_buffer): New inline function.
307 (grub_envblk_size): Likewise.
308
309 * lib/envblk.c: Include grub/mm.h.
310 (grub_env_find): Removed.
311 (grub_envblk_open): New function.
312 (grub_envblk_close): Likewise.
313 (escaped_value_len): Likewise.
314 (find_next_line): Likewise.
315 (grub_envblk_insert): Removed.
316 (grub_envblk_set): New function.
317 (grub_envblk_delete): Complete rewrite.
318 (grub_envblk_iterate): Likewise.
319
a9368fd3 3202009-03-28 Robert Millan <rmh@aybabtu.com>
321
322 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
323 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
324 variables. Use 16-bit loader.
325 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
326 loader.
327 * kern/i386/loader.S (grub_linux_boot): Rename to ...
328 (grub_linux16_boot): ... this. Update all users.
329 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
330 (grub_linux_boot): ... this. Update all users.
331
332 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
333 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
334 commands to `linux16' and `initrd16'.
335 (GRUB_MOD_FINI(linux)): Rename to ...
336 (GRUB_MOD_FINI(linux16)): ... this.
337
e4dd5a7e 3382009-03-24 Pavel Roskin <proski@gnu.org>
339
340 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
341 not just for compilation.
342
c04d6e05 3432009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
344
345 Move multiboot helper out of kernel
346
347 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
348 `loader/i386/multiboot_helper.S'.
349 * conf/i386-coreboot.rmk: Likewise
350 * conf/i386-ieee1275.rmk: Likewise
351
352 * kern/i386/loader.S: Move multiboot helpers from here...
353 * loader/i386/multiboot_helper.S: ...moved here
354 * include/grub/i386/loader.h: Move declarations of multiboot
355 helpers from here...
356 * include/grub/i386/multiboot.h: ...moved here
357 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
358
42a5b3fc 3592009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
360
361 * kern/env.c (grub_env_context_open): Added an argument to specify
362 whether a new context inherits exported variables from current
363 one. This is useful when making a sandbox to interpret a config
364 file.
365 All callers updated.
366
367 * include/grub/env.h (grub_env_context_open): Updated the prototype.
368
b28bbc4e 3692009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
370
371 * kern/env.c (grub_env_context_close): Fix memory leaks.
372
f04f02e4 3732009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
374
375 * normal/main.c (grub_normal_execute): Added an argument
376 BATCH to specify if an interactive interface should be provided
377 after reading a config file.
378 All callers updated.
379 (read_command_list): Prevent being executed twice.
380 (read_fs_list): Likewise.
381
42a5b3fc 382 * include/grub/normal.h (grub_normal_execute): Updated the
383 prototype.
f04f02e4 384
41473ac2 3852009-03-22 Pavel Roskin <proski@gno.org>
386
fbc00b0c 387 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
388 _start.
389 * kern/i386/pc/startup.S: Likewise.
390 * kern/i386/efi/startup.S: Likewise.
391 * kern/i386/ieee1275/startup.S: Likewise.
392 * kern/i386/coreboot/startup.S: Likewise.
393 * kern/x86_64/efi/startup.S: Likewise.
394
41473ac2 395 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
396 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
397 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
398
2274cc8f 3992009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
400
401 Bugfixes in multiboot for bugs uncovered by solaris kernel.
402
403 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
404 limit detection.
405 Use vaddr of correct segment for entry_point.
406
b1b797cb 4072009-03-21 Bean <bean123ch@gmail.com>
408
409 * commands/blocklist.c: Add include file <grub/command.h>, remove
410 <grub/normal.h> and <grub/arg.h>.
411 (grub_cmd_blocklist): Use the new command interface.
412 (GRUB_MOD_INIT): Likewise.
413 (GRUB_MOD_FINI): Likewise.
414 * commands/boot.c: Likewise.
415 * commands/cat.c: Likewise.
416 * commands/cmp.c: Likewise.
417 * commands/configfile.c: Likewise.
418 * commands/crc.c: Likewise.
419 * commands/echo.c: Likewise.
420 * commands/halt.c: Likewise.
421 * commands/handler.c: Likewise.
422 * commands/hdparm.c: Likewise.
423 * commands/help.c: Likewise.
424 * commands/hexdump.c: Likewise.
425 * commands/loadenv.c: Likewise.
426 * commands/ls.c: Likewise.
427 * commands/lsmmap.c: Likewise.
428 * commands/lspci.c: Likewise.
429 * commands/loadenv.c: Likewise.
430 * commands/read.c: Likewise.
431 * commands/reboot.c: Likewise.
432 * commands/search.c: Likewise.
433 * commands/sleep.c: Likewise.
434 * commands/test.c: Likewise.
435 * commands/usbtest.c: Likewise.
436 * commands/videotest.c: Likewise.
437 * commands/i386/cpuid.c: Likewise.
438 * commands/i386/pc/halt.c: Likewise.
439 * commands/i386/pc/play.c: Likewise.
440 * commands/i386/pc/pxecmd.c: Likewise.
441 * commands/i386/pc/vbeinfo.c: Likewise.
442 * commands/i386/pc/vbetest.c: Likewise.
443 * commands/ieee1275/suspend.c: Likewise.
444 * disk/loopback.c: Likewise.
445 * font/font_cmd.c: Likewise.
446 * hello/hello.c: Likewise.
447 * loader/efi/appleloader.c: Likewise.
448 * loader/efi/chainloader.c: Likewise.
449 * loader/i386/bsd.c: Likewise.
450 * loader/i386/efi/linux.c: Likewise.
451 * loader/i386/ieee1275/linux.c: Likewise.
452 * loader/i386/linux.c: Likewise.
453 * loader/i386/pc/chainloader.c: Likewise.
454 * loader/i386/pc/linux.c: Likewise.
455 * loader/powerpc/ieee1275/linux.c: Likewise.
456 * loader/multiboot_loader.c: Likewise.
457 * term/gfxterm.c: Likewise.
458 * term/i386/pc/serial.c: Likewise.
459 * term/terminfo.c: Likewise.
460
461 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
462 * term/i386/pc/vga.c: Likewise.
463 * video/readers/jpeg.c: Likewise.
464 * video/readers/png.c: Likewise.
465 * video/readers/tga.c: Likewise.
466
467 * util/grub-fstest (cmd_loopback): Removed.
468 (cmd_blocklist): Likewise.
469 (cmd_ls): Likewise.
470 (grub_register_command): Likewise.
471 (grub_unregister_command): Likewise.
472 (execute_command): Use grub_command_find to locate command and execute
473 it.
474
475 * include/grub/efi/chainloader.h: Removed.
476 * loader/efi/chainloader_normal.c: Likewise.
477 * loader/i386/bsd_normal.c: Likewise.
478 * loader/i386/pc/chainloader_normal.c: Likewise.
479 * loader/i386/pc/multiboot_normal.c: Likewise.
480 * loader/linux_normal.c: Likewise.
481 * loader/multiboot_loader_normal.c: Likewise.
482 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
483
484 * gencmdlist.sh: Scan new registration command grub_register_extcmd
485 and grub_register_command_p1.
486
487 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
488 kern/command.c, lib/arg.c and commands/extcmd.c.
489 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
490 (minicmd_mod_SOURCES): New variable.
491 (minicmd_mod_CFLAGS): Likewise.
492 (minicmd_mod_LDFLAGS): Likewise.
493 (extcmd_mod_SOURCES): Likewise.
494 (extcmd_mod_CFLAGS): Likewise.
495 (extcmd_mod_LDFLAGS): Likewise.
496 (boot_mod_SOURCES): Removed.
497 (boot_mod_CFLAGS): Likewise.
498 (boot_mod_LDFLAGS): Likewise.
499
500 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
501 kern/corecmd.c.
502 (kernel_img_HEADERS): Add command.h.
503 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
504 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
505 and lib/arg.c.
506 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
507 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
508 remove the corresponding normal mode command.
509 (normal_mod_SOURCES): Remove normal/arg.c.
510 * conf/i386-coreboot.rmk: Likewise.
511 * conf/i386-efi.rmk: Likewise.
512 * conf/i386-ieee1275.rmk: Likewise.
513 * conf/powerpc-ieee1275.rmk: Likewise.
514 * conf/x86_64-efi.rmk: Likewise.
515
516 * include/grub/arg.h: Move from here ...
517 * include/grub/lib/arg.h: ... to here.
518
519 * normal/arg.c: Move from here ...
520 * lib/arg.c: ... to here.
521
522 * commands/extcmd.c: New file.
523 * commands/minicmd.c: Likewise.
524 * include/grub/command.h: Likewise.
525 * include/grub/extcmd.h: Likewise.
526 * kern/command.c: Likewise.
527 * kern/corecmd.c: Likewise.
528
529 * kern/list.c (grub_list_iterate): Return int instead of void.
530 (grub_list_insert): New function.
531 (grub_prio_list_insert): Likewise.
532
533 * kern/rescue.c (grub_rescue_command): Removed.
534 (grub_rescue_command_list): Likewise.
535 (grub_rescue_register_command): Likewise.
536 (grub_rescue_unregister_command): Likewise.
537 (grub_rescue_cmd_boot): Move to minicmd.c
538 (grub_rescue_cmd_help): Likewise.
539 (grub_rescue_cmd_info): Likewise.
540 (grub_rescue_cmd_boot): Likewise.
541 (grub_rescue_cmd_testload): Likewise.
542 (grub_rescue_cmd_dump): Likewise.
543 (grub_rescue_cmd_rmmod): Likewise.
544 (grub_rescue_cmd_lsmod): Likewise.
545 (grub_rescue_cmd_exit): Likewise.
546 (grub_rescue_print_devices): Moved to corecmd.c.
547 (grub_rescue_print_files): Likewise.
548 (grub_rescue_cmd_ls): Likewise.
549 (grub_rescue_cmd_insmod): Likewise.
550 (grub_rescue_cmd_set): Likewise.
551 (grub_rescue_cmd_unset): Likewise.
7d074e3c 552 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 553 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 554 commands, remove grub_rescue_register_command calls.
b1b797cb 555
7d074e3c 556 * normal/command.c (grub_register_command): Removed.
b1b797cb 557 (grub_unregister_command): Likewise.
558 (grub_command_find): Likewise.
559 (grub_iterate_commands): Likewise.
560 (rescue_command): Likewise.
561 (export_command): Moved to corecmd.c.
562 (set_command): Removed.
563 (unset_command): Likewise.
564 (insmod_command): Likewise.
565 (rmmod_command): Likewise.
566 (lsmod_command): Likewise.
567 (grub_command_init): Likewise.
568
569 * normal/completion.c (iterate_command): Use cmd->prio to check for
570 active command.
571 (complete_arguments): Use grub_extcmd_t structure to find options.
572 (grub_normal_do_completion): Change function grub_iterate_commands to
573 grub_command_iterate.
574
575 * normal/execute.c (grub_script_execute_cmd): No need to parse
576 argument here.
577
578 * normal/main.c (grub_dyncmd_dispatcher): New function.
579 (read_command_list): Register unload commands as dyncmd.
580 (grub_cmd_normal): Use new command interface, register rescue,
581 unregister normal at entry, register normal, unregister rescue at exit.
582
583 * include/grub/list.h (grub_list_test_t): New type.
584 (grub_list_iterate): Return int instead of void.
585 (grub_list_insert): New function.
586 (GRUB_AS_NAMED_LIST_P): New macro.
587 (GRUB_AS_PRIO_LIST): Likewise.
588 (GRUB_AS_PRIO_LIST_P): Likewise.
589 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
590 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
591 (grub_prio_list): New structure.
592 (grub_prio_list_insert): New function.
593 (grub_prio_list_remove): New inline function.
594
595 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
596 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
597 (GRUB_COMMAND_FLAG_MENU): Likewise.
598 (GRUB_COMMAND_FLAG_BOTH): Likewise.
599 (GRUB_COMMAND_FLAG_TITLE): Likewise.
600 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
601 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
602 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
603 (grub_command): Likewise.
604 (grub_register_command): Likewise.
605 (grub_command_find): Likewise.
606 (grub_iterate_commands): Likewise.
607 (grub_command_init): Likewise.
608 (grub_arg_parse): Likewise.
609 (grub_arg_show_help): Likewise.
610
611 * include/grub/rescue.h (grub_rescue_register_command): Removed.
612 (grub_rescue_unregister_command): Likewise.
613
614 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
615 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
616 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
617
618 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
619 grub_rescue_cmd_initrd.
620 * include/grub/i386/loader.h: Likewise.
621 * include/grub/x86_64/loader.h: Likewise.
622
623 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
624
1f4147aa 6252009-03-21 Bean <bean123ch@gmail.com>
626
627 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
628 instead of stat in mingw environment.
629
630 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
631
632 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
633
634 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
635 AC_CONFIG_LINKS.
636
2156d5ba 6372009-03-21 Bean <bean123ch@gmail.com>
638
639 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
640 out of range error.
641
177b82ca 6422009-03-18 Michel Dänzer <michel@daenzer.net>
643
644 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
645 checking inode flags for EXT4_EXTENTS_FLAG.
646
14aad807 6472009-03-18 Robert Millan <rmh@aybabtu.com>
648
649 * loader/i386/linux.c: Include `<grub/video.h>' and
650 `<grub/i386/pc/vbe.h>'..
651 (grub_linux_setup_video): New function. Loosely based on the EFI one.
652 (grub_linux32_boot): Attempt to configure video settings with
653 grub_linux_setup_video().
654 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
655 to avoid grub_console_fini() which would step out of graphical mode
656 unconditionally.
657
8cf83a27 6582009-03-14 Robert Millan <rmh@aybabtu.com>
659
660 Fix build on powerpc.
661 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
662
40164e75 6632009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
664
665 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
666 background image command.
667
c58bc32a 6682009-03-12 Colin D Bennett <colin@gibibit.com>
669
670 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
671 (grub_gfxterm_putchar): Extract pairs of identical calls to
672 draw_cursor out of conditional blocks.
673
5415144a 6742009-03-11 Pavel Roskin <proski@gnu.org>
675
676 * fs/hfs.c (grub_hfs_strncasecmp): New function.
677 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
678
6394042e 6792009-03-11 Robert Millan <rmh@aybabtu.com>
680
681 * loader/i386/multiboot_elfxx.c
682 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
683
b7b50e5f 6842009-03-11 Felix Zielcke <fzielcke@z-51.de>
685
686 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
687 `kern/handler.c'.
688
1ca7fc96 6892009-03-11 Robert Millan <rmh@aybabtu.com>
690
691 * loader/i386/multiboot.c (code_size): New variable.
692 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 693 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 694 4-byte alignment to MBI and others by increasing
7d074e3c 695 `boot_loader_name_length' appropriately.
1ca7fc96 696
697 * loader/i386/multiboot_elfxx.c
698 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
699
a83ea1d2 7002009-03-09 Felix Zielcke <fzielcke@z-51.de>
701
702 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
703 `fs/ext2.c'.
704
aa9f3bff 7052009-03-08 Robert Millan <rmh@aybabtu.com>
706
707 Make loader/i386/linux.c usable on i386-pc again.
708
709 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
710 memory to heap.
711 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
712 `#error' stanza.
713
d8b3b60e 7142009-03-07 Bean <bean123ch@gmail.com>
715
716 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
717 allocation.
718
b362c9e9 7192009-03-06 Robert Millan <rmh@aybabtu.com>
720
721 Fix display issue on terminals with screen size other than 80x25
722 (e.g. gfxterm with resolution higher than 640x480).
723
724 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 725 position relative to the center of the terminal instead of relying
b362c9e9 726 on a hardcoded offset.
727
9304eef1 7282009-03-04 Robert Millan <rmh@aybabtu.com>
729
730 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
731 installed.
732
733 * Makefile.in (host_kernel): New variable.
734 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
735 scripts instead of just the windows one.
736 * configure.ac: Initialize and AC_SUBST `host_kernel'.
737
eabc95fb 7382009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 739
740 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
741 `kern/handler.c'.
742 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
743 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
744 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
745 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
746 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
747 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
748
ceb1223c 7492009-03-04 Felix Zielcke <fzielcke@z-51.de>
750
751 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
752 or if there's no space for the disk label and print the partition number on a
753 invalid magic.
754
4910684a 7552009-03-04 Felix Zielcke <fzielcke@z-51.de>
756
757 * util/misc.c: Include <time.h>.
758 (grub_millisleep): New function.
759
7e9ca17a 7602009-03-04 Bean <bean123ch@gmail.com>
761
762 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
763 another option -mno-red-zone.
764
765 * commands/handler.c: Change module description.
766
767 * kern/handler.c: Add missing space at the end of description line.
768
769 * kern/list.c: Likewise.
770
f501677c 7712009-03-03 Robert Millan <rmh@aybabtu.com>
772
773 Move more components to the relocation area, and fix mbi pointer
774 handling to use the destination rather than the origin (thanks to
775 Vladimir Serbinenko for spotting).
776
777 * loader/i386/multiboot.c (mbi_dest): New variable.
778 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
779 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
780 relocation area.
781
9902d047 7822009-03-01 Bean <bean123ch@gmail.com>
783
50fb7002 784 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 785 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
786 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
787 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
788
789 * loader/i386/efi/linux.c (acpi_guid): New variable.
790 (acpi_guid): Likewise.
791 (EBDA_SEG_ADDR): New constant.
792 (LOW_MEM_ADDR): Likewise.
793 (FAKE_EBDA_SEG): Likewise.
794 (fake_bios_data): New function.
795 (grub_linux_boot): Call fake_bios_data.
796
71b9f361 7972009-03-01 Bean <bean123ch@gmail.com>
798
799 * commands/terminal.c: Removed.
800
801 * commands/handler.c: New file.
802
803 * include/grub/list.h: Likewise.
804
805 * include/grub/handler.h: Likewise.
806
807 * kern/list.c: Likewise.
808
809 * kern/handler.c: Likewise.
810
811 * kern/term.h: Include header file <grub/handler.h>.
812 (grub_term_input): Move next field to the beginning.
813 (grub_term_output): Likewise.
814 (grub_term_input_class): New variable.
815 (grub_term_output_class): Likewise.
816 (grub_term_register_input): Changed to inline function.
817 (grub_term_register_output): Likewise.
818 (grub_term_unregister_input): Likewise.
819 (grub_term_unregister_output): Likewise.
820 (grub_term_set_current_input): Likewise.
821 (grub_term_set_current_output): Likewise.
822 (grub_term_get_current_input): Likewise.
823 (grub_term_get_current_output): Likewise.
824 (grub_term_iterate_input): Removed.
825 (grub_term_iterate_output): Likewise.
826
827 * kern/term.c (grub_term_list_input): Removed.
828 (grub_term_list_output): Likewise.
829 (grub_term_input_class): New variable.
830 (grub_term_output_class): Likewise.
50fb7002 831 (grub_cur_term_input): Change variable as macro.
71b9f361 832 (grub_cur_term_output): Likewise.
833 (grub_term_register_input): Removed.
834 (grub_term_register_output): Likewise.
835 (grub_term_unregister_input): Likewise.
836 (grub_term_unregister_output): Likewise.
837 (grub_term_set_current_input): Likewise.
838 (grub_term_set_current_output): Likewise.
839 (grub_term_iterate_input): Likewise.
840 (grub_term_iterate_output): Likewise.
841 (grub_term_get_current_input): Likewise.
842 (grub_term_get_current_output): Likewise.
843
844 * util/grub-editenv.c: Include header file <grub/handler.h>.
845 (grub_term_get_current_input): Removed.
846 (grub_term_get_current_output): Likewise.
847 (grub_term_input_class): New variable.
50fb7002 848 (grub_term_output_class): Likewise.
71b9f361 849
850 * util/grub-fstest.c (grub_term_get_current_input): Removed.
851 (grub_term_get_current_output): Likewise.
852 (grub_term_input_class): New variable.
50fb7002 853 (grub_term_output_class): Likewise.
71b9f361 854
855 * util/grub-probe.c (grub_term_get_current_input): Removed.
856 (grub_term_get_current_output): Likewise.
857 (grub_term_input_class): New variable.
50fb7002 858 (grub_term_output_class): Likewise.
71b9f361 859
860 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
861 (grub_term_get_current_output): Likewise.
862 (grub_term_input_class): New variable.
50fb7002 863 (grub_term_output_class): Likewise.
71b9f361 864
865 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
866 (terminal_mod_SOURCES): Likewise.
867 (terminal_mod_CFLAGS): Likewise.
868 (terminal_mod_LDFLAGS): Likewise.
869
870 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
871 handler.c.
872 (kernel_img_SOURCES): Add list.c and handler.c.
873 (kernel_img_HEADERS): Add list.h and handler.h.
874
875 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
876 handler.c.
877 (kernel_mod_SOURCES): Add list.c and handler.c.
878 (kernel_mod_HEADERS): Add list.h and handler.h.
879
880 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
881 handler.c.
882 (kernel_elf_SOURCES): Add list.c and handler.c.
883 (kernel_elf_HEADERS): Add list.h and handler.h.
884
885 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
886 handler.c.
887 (kernel_elf_SOURCES): Add list.c and handler.c.
888 (kernel_elf_HEADERS): Add list.h and handler.h.
889
890 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
891 handler.c.
892 (kernel_mod_SOURCES): Add list.c and handler.c.
893 (kernel_mod_HEADERS): Add list.h and handler.h.
894
895 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
896 handler.c.
897 (kernel_elf_SOURCES): Add list.c and handler.c.
898 (kernel_elf_HEADERS): Add list.h and handler.h.
899
8a31787f 9002009-02-27 Robert Millan <rmh@aybabtu.com>
901
902 Factorize elf32 / elf64 code in Multiboot loader. This will
903 prevent it from getting out of sync again.
904
905 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
906 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
907 grub_multiboot_load_elf64): Move from here ...
908 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
909 grub_multiboot_load_elf): ... to here (new file).
910
51cd3dfc 9112009-02-27 Robert Millan <rmh@aybabtu.com>
912
913 * util/grub.d/10_linux.in: Rename "single-user mode" to
914 "recovery mode".
915
6e8c9c3a 9162009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
917
918 Don't leak in SCSI code.
919 * disk/scsi.c (grub_scsi_close): free `scsi'.
920
4b6bf4f9 9212009-02-27 Robert Millan <rmh@aybabtu.com>
922
923 * loader/i386/pc/multiboot.c: Move from here ...
924 * loader/i386/multiboot.c: ... to here. Update all users.
925
b9413424 9262009-02-27 Robert Millan <rmh@aybabtu.com>
927
928 Patch from Alexandre Bique <bique.alexandre@gmail.com>
929 * util/i386/pc/grub-setup.c (setup): Fix directory path.
930
50fb7002 9312009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 932
933 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
934 b-tree.
935
8cc50345 9362009-02-27 Robert Millan <rmh@aybabtu.com>
937
938 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
939 `0x' qualifier as 0 when base is specified as parameter).
940
6e09b8b7 9412009-02-24 Bean <bean123ch@gmail.com>
942
943 * configure.ac: Check for -mcmodel=large in x86_64 target.
944
945 * include/grub/efi/api.h (efi_call_10): New macro.
946 (efi_wrap_10): New function.
947
948 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
949 (GRUB_PE32_REL_BASED_HIGH): Likewise.
950 (GRUB_PE32_REL_BASED_LOW): Likewise.
951 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
952 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
953 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
954 (GRUB_PE32_REL_BASED_SECTION): Likewise.
955 (GRUB_PE32_REL_BASED_REL): Likewise.
956 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
957 (GRUB_PE32_REL_BASED_DIR64): Likewise.
958 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
959
960 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
961 issue.
962
963 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
964 (efi_wrap_10): New function.
965
966 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
967
968 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
969 MB/MBP model (NV chipset).
970 (devdata_devs): Add devpath_5 to the list.
971
972 * load/i386/efi/linux.c (video_base): Remove variable.
973 (RGB_MASK): New macro.
974 (RGB_MAGIC): Likewise.
975 (LINE_MIN): Likewise.
976 (LINE_MAX): Likewise.
977 (FBTEST_STEP): Likewise.
978 (FBTEST_COUNT): Likewise.
979 (fb_list): New variable.
980 (grub_find_video_card): Remove function.
981 (find_framebuf): New function.
982 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
983 line length.
984
985 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
986 problem for x86_64.
987
74b21bee 9882009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
989
990 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
991
992 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
993 coding tool name.
994
a455f472 9952009-02-22 Robert Millan <rmh@aybabtu.com>
996
997 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
998 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
999 in our relocation, instead of using it directly from heap. Also
1000 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
1001
6374daf3 10022009-02-21 Robert Millan <rmh@aybabtu.com>
1003
1004 Implement USB keyboard support (based on patch by Marco Gerards)
1005
1006 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
1007 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
1008 (usb_keyboard_mod_LDFLAGS): New variables.
1009
1010 * term/usb_keyboard.c: New file.
1011
8fa4ea70 10122009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
1013
1014 Corrected wrong declaration
1015
1016 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
1017
353976ac 10182009-02-14 Christian Franke <franke@computer.org>
1019
1020 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
1021 (grub_lspci_iter): Print class code and programming interface byte.
1022
6aa1169b 10232009-02-14 Christian Franke <franke@computer.org>
1024
1025 * gendistlist.sh: Ignore `.svn' directories.
1026
265372ca 10272009-02-14 Felix Zielcke <fzielcke@z-51.de>
1028
1029 * fs/fat.c: Add 2009 to Copyright line.
1030
9ff516f3 10312009-02-14 Christian Franke <franke@computer.org>
1032
1033 * commands/hdparm.c: New file. Provides `hdparm' command
1034 which sends ATA commands via grub_disk_ata_pass_through ().
1035
1036 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
1037
1038 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
1039 and <grub/cpu/io.h> to include/grub/ata.h.
1040 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
1041 (GRUB_CDROM_SECTOR_SIZE): Remove.
1042 (GRUB_ATA_*): Move to include/grub/ata.h.
1043 (GRUB_ATAPI_*): Likewise.
1044 (enum grub_ata_commands): Likewise.
1045 (enum grub_ata_timeout_milliseconds): Likewise.
1046 (struct grub_ata_device): Likewise.
1047 (grub_ata_regset): Likewise.
1048 (grub_ata_regget): Likewise.
1049 (grub_ata_regset2): Likewise.
1050 (grub_ata_regget2): Likewise.
1051 (grub_ata_check_ready): Likewise.
1052 (grub_ata_wait_not_busy): Remove static, exported in
1053 include/grub/ata.h.
1054 (grub_ata_wait_drq): Likewise.
1055 (grub_ata_pio_read): Likewise.
1056
1057 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
1058 function for hdparm.mod.
1059
1060 * include/grub/ata.h: New file, contains declarations from
1061 disk/ata.c.
1062 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
1063
1064 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
1065 (grub_disk_ata_pass_through): New exported variable.
1066
1067 * kern/disk.c (grub_disk_ata_pass_through): New variable.
1068
772e23da 10692009-02-13 Colin D Bennett <colin@gibibit.com>
1070
1071 Support multiple fallback entries, and provide an API to support
1072 executing default+fallback menu entries. Renamed the `terminal' menu
1073 viewer to `text'.
1074
1075 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
1076 variable declaration.
1077 (grub_menu_execute_callback): New structure declaration.
1078 (grub_menu_execute_callback_t): New typedef.
1079 (grub_menu_execute_with_fallback): New function declaration.
1080 (grub_menu_get_entry): Likewise.
1081 (grub_menu_get_timeout): Likewise.
1082 (grub_menu_set_timeout): Likewise.
1083
1084 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
1085
1086 * normal/menu.c (grub_wait_after_message): Moved to
1087 `normal/menu_text.c'.
1088 (draw_border): Likewise.
1089 (print_message): Likewise.
1090 (print_entry): Likewise.
1091 (print_entries): Likewise.
1092 (grub_menu_init_page): Likewise.
1093 (get_entry_number): Likewise.
1094 (print_timeout): Likewise.
1095 (run_menu): Likewise.
1096 (grub_menu_execute_entry): Likewise.
1097 (show_text_menu): Likewise.
1098 (get_and_remove_first_entry_number): New function.
1099 (grub_menu_execute_with_fallback): Likewise.
1100 (get_entry): Renamed to ...
1101 (grub_menu_get_entry): .. this and made it global.
1102 (get_timeout): Renamed to ...
1103 (grub_menu_get_timeout): ... this and made it global.
1104 (set_timeout): Renamed to ...
1105 (grub_menu_set_timeout): ... this and made it global.
1106 (grub_normal_terminal_menu_viewer): Renamed to ...
1107 (grub_normal_text_menu_viewer): ... this.
1108
1109 * normal/menu_text.c: New file. Extracted text-menu-specific code
1110 from normal/menu.c.
1111
1112 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
1113 (normal_mod_SOURCES): Likewise.
1114
1115 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1116 (normal_mod_SOURCES): Likewise.
1117
1118 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1119 (normal_mod_SOURCES): Likewise.
1120
1121 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
1122 (normal_mod_SOURCES): Likewise.
1123
1124 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1125 (normal_mod_SOURCES): Likewise.
1126
1127 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1128 (normal_mod_SOURCES): Likewise.
1129
1130 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1131 (normal_mod_SOURCES): Likewise.
1132
16ac430e 11332009-02-11 Robert Millan <rmh@aybabtu.com>
1134
1135 * util/grub.d/00_header.in: Update old reference to `font' command.
1136
06ff20fc 11372009-02-10 Felix Zielcke <fzielcke@z-51.de>
1138
1139 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
1140
1141 Based on patch from Javier Martín.
1142
96da9407 11432009-02-09 Felix Zielcke <fzielcke@z-51.de>
1144
1145 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 1146 to avoid false positives with FAT.
96da9407 1147 (grub_fstest_SOURCES): Likewise.
1148 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1149 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1150 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1151 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1152 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1153 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1154
6dca6fe4 11552009-02-09 Felix Zielcke <fzielcke@z-51.de>
1156
06ff20fc 1157 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 1158 bpb.version_specific.fat12_or_fat16.fstype and
1159 bpb.version_specific.fat32.fstype.
1160
2550c62f 11612009-02-08 Robert Millan <rmh@aybabtu.com>
1162
be110b30 1163 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 1164
56978920 11652009-02-08 Robert Millan <rmh@aybabtu.com>
1166
1167 * Makefile.in (host_os, host_cpu): New variables.
1168 (target_os): Remove. Update all users.
1169
d64399b5 11702009-02-08 Marco Gerards <marco@gnu.org>
1171
1172 * Makefile.in (enable_grub_emu_usb): New variable.
1173 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
1174 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
1175 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
1176 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
1177 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
1178 `usbtest.mod' and `usbms.mod'.
1179 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
1180 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
1181 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
1182 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
1183 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
1184 variables.
1185
1186 * disk/usbms.c: New file.
1187
1188 * include/grub/usb.h: Likewise.
1189
1190 * include/grub/usbtrans.h: Likewise.
1191
1192 * include/grub/usbdesc.h: Likewise.
1193
1194 * bus/usb/usbtrans.c: Likewise.
1195
1196 * bus/usb/ohci.c: Likewise.
1197
1198 * bus/usb/uhci.c: Likewise.
1199
1200 * bus/usb/usbhub.c: Likewise.
1201
1202 * bus/usb/usb.c: Likewise.
1203
1204 * commands/usbtest.c: Likewise.
1205
1206 * util/usb.c: Likewise.
50fb7002 1207
d64399b5 1208 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
1209
1210 * configure.ac: Test for libusb presence.
50fb7002 1211
d64399b5 1212 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
1213
2b40d6bb 12142009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
1215
1216 * kern/mm.c: Add more comments.
1217
73a4ce81 12182009-02-08 Robert Millan <rmh@aybabtu.com>
1219
1220 Patch from Javier Martín.
1221 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
1222 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
1223
f821ce59 12242009-02-08 Robert Millan <rmh@aybabtu.com>
1225
1226 * fs/cpio.c: Split tar functionality to ...
1227 * fs/tar.c: ... here (new file). Update all users.
1228
aebfc4b0 12292009-02-07 Robert Millan <rmh@aybabtu.com>
1230
1231 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
1232 backward-incompatible features.
1233
1234 Based on patch from Javier Martín, with some adjustments.
1235
50fb7002 12362009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 1237
1238 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
1239
0bb5115e 12402009-02-07 Robert Millan <rmh@aybabtu.com>
1241
1242 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
1243 position of `disk/lvm.c' to ensure grub_init_all() always picks it
1244 after the RAID stuff.
1245
38a0f8e7 12462009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
1247
50fb7002 1248 Fixes problem when running vbetest command as reported by
38a0f8e7 1249 Vladimir Serbinenko <phcoder@gmail.com>.
1250
1251 * (grub_vbe_set_video_mode): Fixed problem with text modes.
1252
3143cc1c 12532009-02-04 Felix Zielcke <fzielcke@z-51.de>
1254
1255 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
1256 /dev/md/NpN style mdraid devices.
1257
9cba6fce 12582009-02-03 Felix Zielcke <fzielcke@z-51.de>
1259
1260 * util/unifont2pff.rb: Remove.
1261
e507a2c1 12622009-02-03 Felix Zielcke <fzielcke@z-51.de>
1263
1264 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
1265 `#'.
1266
d2c2b4cd 12672009-02-03 Felix Zielcke <fzielcke@z-51.de>
1268
1269 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
1270 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1271 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1272 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1273 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1274 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1275 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1276
b4315fb0 12772009-02-02 Christian Franke <franke@computer.org>
1278
1279 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
1280
de3aa260 12812009-02-01 Felix Zielcke <fzielcke@z-51.de>
1282
7c3ff286 1283 * INSTALL: Note that we now require at least autoconf 2.59 and
1284 that LZO is optional.
de3aa260 1285
825a182b 12862009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1287
1288 Base on patch on bug #24154 created by Tomas Tintera
1289 <trosos@seznam.cz>.
1290
1291 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
1292
a69ef770 12932009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1294
7c3ff286 1295 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 1296 <bero@arklinux.org>.
1297
1298 * normal/parser.y (script_init): Add missing semicolon.
1299
6fa42fa6 13002009-01-31 Colin D Bennett <colin@gibibit.com>
1301
7c3ff286 1302 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 1303 (free_menu_entry_classes): Added.
1304 (grub_normal_menu_addentry): Added class property handling.
1305 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
1306 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
1307
1308 * normal/menu_viewer.c: New file.
1309
1310 * normal/menu.c (run_menu_entry): Renamed to ...
1311 (grub_menu_execute_entry): ... this and made it as global.
1312 (grub_menu_run): Renamed to ...
1313 (show_text_menu): ... this and made it local.
1314 (show_text_menu): Adapt to new function names.
1315 (grub_normal_terminal_menu_viewer): New global variable.
1316
1317 * include/grub/menu.h: New file.
1318
1319 * include/grub/menu_viewer.h: New file.
1320
1321 * include/grub/normal.h: Added include to grub/menu.h.
1322 (grub_menu_entry): Moved to include/grub/menu.h.
1323 (grub_menu_entry_t): Likewise.
1324 (grub_menu): Likewise.
1325 (grub_menu_t): Likewise.
1326 (grub_normal_terminal_menu_viewer): Added.
1327 (grub_menu_execute_entry): Likewise.
1328 (grub_menu_run): Removed.
1329
1330 * DISTLIST: Added include/grub/menu.h.
1331 Added include/grub/menu_viewer.h.
1332 Added normal/menu_viewer.c.
1333
13342009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
1335
1336 * normal/execute.c (grub_script_execute_menuentry): Changed to use
1337 arglist for menutitle arguments.
1338
1339 * normal/main.c (grub_normal_menu_addentry): Likewise.
1340
1341 * normal/parser.y (menuentry): Likewise.
1342
1343 * normal/script.c (grub_script_create_cmdmenu): Likewise.
1344
1345 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
1346 (grub_script_create_cmdmenu): Likewise.
1347
1348 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
1349
1350 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
1351 changes.
1352
1353 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
1354
1355 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
1356
1357 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
1358
1359 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1360
1361 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1362
1363 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1364
56192c23 13652009-01-30 Christian Franke <franke@computer.org>
1366
1367 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
1368 in option help text.
1369
d72521b3 13702009-01-27 Pavel Roskin <proski@gnu.org>
1371
1372 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
1373
994b5e84 13742009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1375
1376 * commands/lsmmap.c: Add include to grub/machine/memory.h.
1377
1378 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
1379
1380 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
1381 unregister function.
1382
6a7eab2c 13832009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1384
1385 * disk/scsi.c (grub_scsi_read): Fix sign problem.
1386
1387 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
1388
1389 * util/grub-mkfont.c (usage): Fix typo.
1390
1391 * util/elf/grub-mkimage.c (load_modules): Fix warning.
1392
1806b56e 13932009-01-26 Daniel Mierswa <impulze@impulze.org>
1394
3fb18f09 1395 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
1396
336e1fb9 1397 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
1398
1806b56e 1399 * kern/misc.c (grub_strcasecmp): New function.
1400 (grub_strcasecmp): Use grub_size_t instead of int for length.
1401 Fix return value.
1402 * include/grub/misc.h: Update function prototypes.
1403
580b2a0f 14042009-01-26 Robert Millan <rmh@aybabtu.com>
1405
1406 * configure.ac: Fix cross-compilation check.
ef257b36 1407
d31c24f1 14082009-01-22 Christian Franke <franke@computer.org>
1409
1410 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
1411 (precision) digit string. Allow `.format2' without `format1' (width).
1412 Limit input chars for `%s' output to `format2' if specified. This is
1413 compatible with standard printf ().
1414
3138b44c 14152009-01-22 Christian Franke <franke@computer.org>
1416
1417 * disk/ata.c (grub_ata_wait_status): Replace by ...
1418 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
1419 other status bits may be invalid while BSY is asserted.
1420 (grub_ata_check_ready): New function.
1421 (grub_ata_cmd): Removed.
1422 (grub_ata_wait_drq): New function.
1423 (grub_ata_strncpy): Remove inline.
1424 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
1425 and error check now done by grub_ata_wait_drq ().
1426 (grub_ata_pio_write): Likewise.
1427 (grub_atapi_identify): Set DEV before check for !BSY. Use
1428 grub_ata_wait_drq () to wait for data.
1429 (grub_ata_device_initialize): Add status register check to
1430 detect missing SATA slave devices. Add debug messages.
1431 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
1432 (grub_atapi_packet): Set DEV before check for !BSY. Replace
1433 transfer loop by grub_ata_pio_write ().
1434 (grub_ata_identify): Set DEV before check for !BSY. Use
1435 grub_ata_wait_drq () to wait for data.
ef257b36 1436 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 1437 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
1438 read/write in one loop. Fix invalid command on write. Fix incomplete
1439 command on (size % batch) == 0. Add missing error check after write of
1440 last block. Add debug messages.
1441 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
1442
59a64ef6 14432009-01-19 Christian Franke <franke@computer.org>
1444
1445 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
1446 (GRUB_ATAPI_IREASON_*): Likewise.
1447 (grub_ata_pio_write): Fix timeout error return.
1448 (grub_atapi_identify): Add grub_ata_wait () after cmd.
1449 (grub_atapi_wait_drq): New function.
1450 (grub_atapi_packet): New parameter `size'.
1451 Use grub_atapi_wait_drq () and direct write instead of
1452 grub_ata_pio_write ().
1453 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
1454 reads the number of bytes requested by the device for each DRQ
1455 assertion.
1456 (grub_atapi_write): Remove old implementation, return not
1457 implemented instead.
1458
1cfe20b3 14592009-01-19 Christian Franke <franke@computer.org>
1460
1461 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
1462 of 512 to calculate data size.
1463 (grub_scsi_read12): Likewise.
1464 (grub_scsi_write10): Likewise.
1465 (grub_scsi_write12): Likewise.
1466 (grub_scsi_read): Adjust size according to blocksize.
1467 Add checks for invalid blocksize and unaligned transfer.
1468
bee5fe5d 14692009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
1470
1471 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
1472
ef257b36 1473 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 1474 width glyphs.
1475
3e643f8c 14762009-01-19 Robert Millan <rmh@aybabtu.com>
1477
1478 * config.guess: Update to latest version from config git.
1479 * config.sub: Likewise.
1480
4fa80998 14812009-01-17 Felix Zielcke <fzielcke@z-51.de>
1482
1483 * Makefile.in: Change font compilation to use new grub-mkfont instead
1484 of java version.
1485
1486 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
1487 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
1488 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1489 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1490 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
1491 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
1492 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
1493 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
1494 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1495
7086085b 14962009-01-16 Christian Franke <franke@computer.org>
1497
1498 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
1499 (enum grub_ata_timeout_milliseconds): New enum.
1500 (grub_ata_wait_status): Add parameter milliseconds.
1501 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
1502 recovery from timed-out commands.
1503 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
1504 return grub_errno instead of REG_ERROR.
1505 (grub_ata_pio_write): Add parameter milliseconds.
1506 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
1507 Pass milliseconds to grub_ata_wait_status () and
1508 grub_ata_pio_read ().
1509 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
1510 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
1511 grub_ata_wait_status (). Fix IDENTIFY timeout check.
1512 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
1513 It is not suitable for device detection, because DEV bit is ignored,
1514 the command may run too long, and not all devices set the signature
1515 properly.
1516 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
1517 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
1518 Fix device selection, DEV bit must be set first to address the registers
1519 of the correct device.
1520 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
1521 grub_ata_pio_read/write ().
1522 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
1523 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
1524
4a412913 15252009-01-13 Carles Pina i Estany <carles@pina.cat>
1526
1527 * util/grub-editenv.c (main): Use fseeko(), not fseek().
1528
7795c55e 15292009-01-13 Bean <bean123ch@gmail.com>
d913988c 1530
1531 * util/grub-mkfont.c (write_font): forget to remove some debug code.
1532
7795c55e 15332009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 1534
1535 * Makefile.in: (enable_grub_mkfont): New variable.
1536 (freetype_cflags): Likewise.
1537 (freetype_libs): Likewise.
1538
1539 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
1540 (grub_mkfont_SOURCES): New variable.
1541 (grub_mkfont_CFLAGS): Likewise.
1542 (grub_mkfont_LDFLAGS): Likewise.
1543
1544 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
1545 library if `--enable-grub-mkfont' is requested.
1546 (enable_grub_mkfont): New variable.
1547 (freetype_cflags): Likewise.
1548 (freetype_libs): Likewise.
1549
1550 * util/grub-mkfont.c: New file.
1551
093af1fe 15522009-01-12 Christian Franke <franke@computer.org>
1553
1554 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
1555 mode check. Fix setting of compat_use[].
1556
f36cc108 15572009-01-10 Robert Millan <rmh@aybabtu.com>
1558
1559 Update a few copyright years which we forgot to do in 2008 (only for
1560 files whose changes made in 2008 were copyright-significant)
1561
1562 * Makefile.in: Add 2008 to Copyright line.
1563 * disk/ieee1275/ofdisk.c: Likewise.
1564 * disk/efi/efidisk.c: Likewise.
1565 * kern/dl.c: Likewise.
1566 * kern/sparc64/ieee1275/init.c: Likewise.
1567 * kern/mm.c: Likewise.
1568 * kern/efi/mm.c: Likewise.
1569 * boot/i386/pc/boot.S: Likewise.
1570 * genfslist.sh: Likewise.
1571 * fs/iso9660.c: Likewise.
1572 * fs/hfs.c: Likewise.
1573 * fs/jfs.c: Likewise.
1574 * fs/minix.c: Likewise.
1575 * fs/ufs.c: Likewise.
1576 * gensymlist.sh.in: Likewise.
1577 * genkernsyms.sh.in: Likewise.
1578 * include/grub/misc.h: Likewise.
1579 * include/grub/types.h: Likewise.
1580 * include/grub/symbol.h: Likewise.
1581 * include/grub/elf.h: Likewise.
1582 * include/grub/kernel.h: Likewise.
1583 * include/grub/disk.h: Likewise.
1584 * include/grub/dl.h: Likewise.
1585 * include/grub/i386/linux.h: Likewise.
1586 * include/grub/i386/pc/biosdisk.h: Likewise.
1587 * include/grub/efi/api.h: Likewise.
1588 * include/grub/efi/pe32.h: Likewise.
1589 * include/grub/util/misc.h: Likewise.
1590 * normal/execute.c: Likewise.
1591 * normal/arg.c: Likewise.
1592 * normal/completion.c: Likewise.
1593 * normal/lexer.c: Likewise.
1594 * normal/parser.y: Likewise.
1595 * normal/misc.c: Likewise.
1596 * commands/i386/pc/vbeinfo.c: Likewise.
1597 * commands/hexdump.c: Likewise.
1598 * commands/terminal.c: Likewise.
1599 * commands/ls.c: Likewise.
1600 * commands/help.c: Likewise.
1601 * partmap/pc.c: Likewise.
1602 * loader/efi/chainloader.c: Likewise.
1603 * loader/multiboot_loader.c: Likewise.
1604 * loader/i386/pc/multiboot2.c: Likewise.
1605 * term/efi/console.c: Likewise.
1606 * term/i386/pc/serial.c: Likewise.
1607 * util/lvm.c: Likewise.
1608 * util/console.c: Likewise.
1609 * util/i386/efi/grub-mkimage.c: Likewise.
1610 * util/raid.c: Likewise.
1611
7f02114b 16122009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
1613
1614 * commands/videotest.c: Removed include to grub/machine/memory.h.
1615
1616 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
1617 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
1618 (video_mod_SOURCES): Removed.
1619 (video_mod_CFLAGS): Likewise.
1620 (video_mod_LDFLAGS): Likewise.
1621 (gfxterm_mod_SOURCES): Likewise.
1622 (gfxterm_mod_CFLAGS): Likewise.
1623 (gfxterm_mod_LDFLAGS): Likewise.
1624 (videotest_mod_SOURCES): Likewise.
1625 (videotest_mod_CFLAGS): Likewise.
1626 (videotest_mod_LDFLAGS): Likewise.
1627 (bitmap_mod_SOURCES): Likewise.
1628 (bitmap_mod_CFLAGS): Likewise.
1629 (bitmap_mod_LDFLAGS): Likewise.
1630 (tga_mod_SOURCES): Likewise.
1631 (tga_mod_CFLAGS): Likewise.
1632 (tga_mod_LDFLAGS): Likewise.
1633 (jpeg_mod_SOURCES): Likewise.
1634 (jpeg_mod_CFLAGS): Likewise.
1635 (jpeg_mod_LDFLAGS): Likewise.
1636 (png_mod_SOURCES): Likewise.
1637 (png_mod_CFLAGS): Likewise.
1638 (png_mod_LDFLAGS): Likewise.
1639
1640 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
1641 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
1642 (video_mod_SOURCES): Added.
1643 (video_mod_CFLAGS): Likewise.
1644 (video_mod_LDFLAGS): Likewise.
1645 (videotest_mod_SOURCES): Likewise.
1646 (videotest_mod_CFLAGS): Likewise.
1647 (videotest_mod_LDFLAGS): Likewise.
1648 (bitmap_mod_SOURCES): Likewise.
1649 (bitmap_mod_CFLAGS): Likewise.
1650 (bitmap_mod_LDFLAGS): Likewise.
1651 (tga_mod_SOURCES): Likewise.
1652 (tga_mod_CFLAGS): Likewise.
1653 (tga_mod_LDFLAGS): Likewise.
1654 (jpeg_mod_SOURCES): Likewise.
1655 (jpeg_mod_CFLAGS): Likewise.
1656 (jpeg_mod_LDFLAGS): Likewise.
1657 (png_mod_SOURCES): Likewise.
1658 (png_mod_CFLAGS): Likewise.
1659 (png_mod_LDFLAGS): Likewise.
1660 (gfxterm_mod_SOURCES): Likewise.
1661 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 1662 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 1663
1664 * term/gfxterm.c: Removed include to grub/machine/memory.h,
1665 grub/machine/console.h.
1666
644fff97 16672009-01-04 Jerone Young <jerone@gmail.com>
1668
1669 Make on screen instructions clearer
1670
1671 Based on patch created by Jidanni <jidanni@jidanni.org>
1672
1673 * normal/menu.c: print clearer instructions on the screen
1674
1e901a75 16752009-01-02 Colin D Bennett <colin@gibibit.com>
1676
1677 New font engine.
34c44600 1678
1e901a75 1679 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
1680 build system and fixed gfxterm.c to work with different sized fonts.
1681
1682 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 1683
1e901a75 1684 * configure: Re-generated.
34c44600 1685
1e901a75 1686 * DISTLIST: Removed font/manager.c.
1687 Added font/font.c.
1688 Added font/font_cmd.c.
34c44600 1689
1e901a75 1690 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
1691 compilation.
34c44600 1692
1e901a75 1693 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 1694
1695 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 1696
1697 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 1698
1e901a75 1699 * normal/menu.c: Likewise.
34c44600 1700
1e901a75 1701 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
1702 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 1703
1e901a75 1704 * include/grub/font.h: Replaced with new file.
34c44600 1705
1e901a75 1706 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
1707 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
1708 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
1709 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
1710 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 1711 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 1712 fg_red, fg_green, fg_blue, fg_alpha.
1713 (grub_video_adapter): Removed blit_glyph.
34c44600 1714 (grub_video_blit_glyph): Removed.
1715
1e901a75 1716 * font/manager.c: Removed file.
34c44600 1717
1718 * font/font.c: New file.
1719
1e901a75 1720 * font/font_cmd.c: Likewise.
34c44600 1721
1e901a75 1722 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 1723
1e901a75 1724 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
1725 (grub_video_vbe_map_rgba): Likewise.
1726 (grub_video_vbe_unmap_color_int): Likewise.
1727 (grub_video_vbe_blit_glyph): Removed.
1728 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 1729
1e901a75 1730 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
1731 (get_pixel): Likewise.
34c44600 1732 (set_pixel): Likewise.
1733
1e901a75 1734 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 1735
1e901a75 1736 * term/gfxterm.c: Adapted to new font engine.
34c44600 1737
1e901a75 1738 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 1739
1e901a75 1740 * term/i386/pc/vga.c: Likewise.
34c44600 1741
1e901a75 1742 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 1743
1e901a75 1744 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 1745
1e901a75 1746 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1747
1e901a75 1748 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1749
1e901a75 1750 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 1751
1e901a75 1752 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 1753
1e901a75 1754 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 1755
1e901a75 1756 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 1757
1e901a75 1758 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1759
1760 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 1761
1e901a75 1762 * util/grub-mkconfig_lib.in: Changed font extension.
1763
278922e8 17642008-12-28 Felix Zielcke <fzielcke@z-51.de>
1765
1766 * util/getroot.c (grub_util_get_grub_dev): Add support for
1767 /dev/md/dNNpNN style partitionable mdraid devices.
1768
3ced05cf 17692008-12-12 Alex Smith <alex@alex-smith.me.uk>
1770
1771 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
1772 at a time limit of the PXE TFTP API correctly.
1773 (grub_pxefs_close): Likewise.
1774
7fd0ee30 17752008-11-29 Robert Millan <rmh@aybabtu.com>
1776
34c44600 1777 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 1778 grub_ata_device_initialize() calls.
1779
34c44600 17802008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 1781
1782 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
1783 iteration failed.
1784 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
1785
89313780 17862008-11-28 Robert Millan <rmh@aybabtu.com>
1787
1788 Fix build on powerpc-ieee1275. Based on patch created by
1789 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
1790 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
1791 `kern/ieee1275/mmap.c'.
1792 * include/grub/powerpc/ieee1275/memory.h: New file.
1793
15257703 1794 Provide grub-install on coreboot.
1795 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
1796 (grub_install_SOURCES): New variable.
1797 * util/i386/pc/grub-install.in: Add a few condition checks to make it
1798 usable on coreboot.
1799
9fc5388a 18002008-11-25 Felix Zielcke <fzielcke@z-51.de>
1801
1802 * util/grub-fstest.c (grub_term_get_current_input): Change return type
1803 to `grub_term_input_t'.
1804 (grub_term_get_current_output): Change return type to
1805 `grub_term_output_t'.
1806
bc3a2f31 18072008-11-22 Robert Millan <rmh@aybabtu.com>
1808
34c44600 1809 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 1810 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
1811 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
1812 grub_vga_text_cls().
1813
80fc88f2 1814 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 1815 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 1816
cbf36fd3 1817 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
1818 to 0x200000 (avoids trouble with some OFW implementations, and matches
1819 with the one in Yaboot).
1820 Reported by Manoel Abranches
1821
73e8e268 18222008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 1823
1824 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
1825 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
1826
73e8e268 1827 * util/grub-mkconfig_lib.in (grub_warn): New function.
1828 (convert_system_path_to_grub_path): Use grub_warn() when issuing
1829 warnings, to obtain consistent formatting.
1830 * util/grub.d/00_header.in: Likewise.
1831 * util/update-grub_lib.in: Likewise.
1832
e94045a1 1833 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 1834 Move comment text to `#error' stanza.
e94045a1 1835
79d29fd7 1836 Harmonize ieee1275's grub_available_iterate() with the generic
1837 grub_machine_mmap_iterate() interface (fixes a recently-introduced
1838 build problem on i386-ieee1275):
1839 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
1840 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
1841 parameter `type'. Update all users of this function.
1842 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
1843 `kern/ieee1275/mmap.c'.
1844 * kern/ieee1275/init.c
1845 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
1846 with ...
1847 (grub_machine_mmap_iterate): ... this.
1848 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
1849 return type to `grub_err_t'. Update all implementations of this
1850 function prototype.
1851 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
1852 Likewise.
1853
60d6b16e 1854 Add `lsmmap' command (lists firmware-provided memory map):
1855 * commands/lsmmap.c: New file.
1856 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
1857 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
1858 variables.
1859 * conf/powerpc-ieee1275.rmk: Likewise.
1860 * conf/i386-coreboot.rmk: Likewise.
1861 * conf/i386-ieee1275.rmk: Likewise.
1862
ebaaf49b 18632008-11-19 Robert Millan <rmh@aybabtu.com>
1864
1865 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 1866 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
1867 constraints to initrd allocation (based on code from
1868 loader/i386/pc/linux.c). Without them, initrd was allocated too high
1869 for Linux to find it.
ebaaf49b 1870
dfab719f 18712008-11-14 Robert Millan <rmh@aybabtu.com>
1872
1873 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
1874 order to cope with duplicate slashes.
1875
10fc3eb9 18762008-11-14 Robert Millan <rmh@aybabtu.com>
1877
1878 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
1879 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
1880 don't want to mess with lower memory, because it is used in the Linux
1881 loader.
1882
1883 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 1884 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 1885 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
1886 is in our heap (probably as a result of it being corrupted during
2f2a3442 1887 decompression). Add #error instance with comment to explain why this
1888 loader isn't currently usable on PC/BIOS.
10fc3eb9 1889
e2e07847 18902008-11-14 Robert Millan <rmh@aybabtu.com>
1891
1892 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 1893 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 1894
fe8e8d69 18952008-11-12 Robert Millan <rmh@aybabtu.com>
1896
1897 Make loader/i386/linux.c buildable on i386-pc (although disabled).
1898
1899 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
1900 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
1901 from here ...
1902 * include/grub/i386/pc/memory.h: ... to here.
1903
976b07d0 19042008-11-12 Robert Millan <rmh@aybabtu.com>
1905
1906 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
1907 split).
1908
1909 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
1910 (grub_console_cur_color, grub_console_real_putchar)
1911 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
1912 (grub_console_setcolorstate, grub_console_setcolor)
1913 (grub_console_getcolor): Move from here ...
1914 * include/grub/i386/vga_common.h: ... to here (new file).
1915
1916 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
1917 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
1918 `<grub/i386/io.h>'.
1919 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
1920 `<grub/i386/vga_common.h>'.
1921
76679cd3 19222008-11-12 Robert Millan <rmh@aybabtu.com>
1923
1924 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
1925 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
1926 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
1927 variables.
1928 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
1929 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
1930
1931 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
1932 grub_console_init() with call to grub_vga_text_init().
1933 (grub_machine_fini): Replace call to
1934 grub_console_fini() with call to grub_vga_text_fini() and
1935 grub_at_keyboard_fini().
1936
1937 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
1938 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
1939 (grub_console_setcolorstate, grub_console_setcolor)
1940 (grub_console_getcolor): New function prototypes.
1941
1942 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
1943 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
1944 (grub_vga_text_setcursor): Static-ize.
1945 (grub_vga_text_term): New structure.
1946 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
1947
1948 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
1949 (grub_console_cur_color, grub_console_standard_color)
1950 (grub_console_normal_color, grub_console_highlight_color)
1951 (map_char, grub_console_putchar, grub_console_getcharwidth)
1952 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
1953 (grub_console_getcolor): Move from here ...
1954 * term/i386/vga_common.c: ... to here (same function names).
1955
95b841d3 19562008-11-12 Robert Millan <rmh@aybabtu.com>
1957
1958 Use newly-added Multiboot support in coreboot.
1959
1960 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
1961 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
1962
1963 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
1964 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
1965 (codestart): Store the MBI in `startup_multiboot_info' when we're
1966 being loaded using Multiboot.
1967
1968 * kern/i386/coreboot/init.c (grub_machine_init): Move
1969 grub_at_keyboard_init() call to beginning of function (useful for
1970 debugging). Call grub_machine_mmap_init() before attempting to use
1971 grub_machine_mmap_iterate().
1972 (grub_lower_mem, grub_upper_mem): Move from here ...
1973 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
1974 here (new file).
1975
1976 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
1977 function prototype.
1978
761ca975 19792008-11-12 Robert Millan <rmh@aybabtu.com>
1980
1981 Fix a regression introduced by the at_keyboard.mod split. Because
1982 some terminals are default on some platforms and non-default on
1983 others, the first terminal being registered determines which is
1984 going to be default.
1985
1986 * kern/term.c (grub_term_register_input): If this is the first
1987 terminal being registered, set it as the current one.
1988 (grub_term_register_output): Likewise.
1989
1990 * term/efi/console.c (grub_console_init): Do not call
1991 grub_term_set_current_output() or grub_term_set_current_input().
1992 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
1993 * term/i386/pc/console.c (grub_console_init): Likewise.
1994 (grub_console_fini): Do not call grub_term_set_current_input()
1995 (but leave grub_term_set_current_output() to restore text mode).
1996
6c529df7 19972008-11-10 Robert Millan <rmh@aybabtu.com>
1998
1999 * util/grub.d/00_header.in: Add backward compatibility check for
2000 versions of terminal.mod that don't understand `terminal_input' or
2001 `terminal_output'.
2002
132e4113 20032008-11-09 Robert Millan <rmh@aybabtu.com>
2004
2005 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
2006 `terminal_input' / `terminal_output', not `terminal'.
2007
ac293d50 20082008-11-08 Robert Millan <rmh@aybabtu.com>
2009
2010 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 2011 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 2012
0025933a 20132008-11-08 Robert Millan <rmh@aybabtu.com>
2014
2015 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 2016 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 2017 members. Update all users.
2018 * util/console.c (grub_ncurses_term): Split in ...
2019 (grub_ncurses_term_input): ... this, and ...
2020 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 2021 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 2022
37c86336 20232008-11-08 Robert Millan <rmh@aybabtu.com>
2024
2025 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
2026 (PKGDATA): Add $(pkgdata_SRCDIR).
2027 (pkglib_BUILDDIR): New variable.
2028 (pkgdata_SRCDIR): New variable.
2029 (build_env.mk): New target.
2030 (include_DATA): New variable.
2031 (install-local): Install $(include_DATA) files in $(includedir).
2032
b6c15a2d 20332008-11-07 Pavel Roskin <proski@gnu.org>
2034
d99d46f1 2035 * gendistlist.sh: Use C locale for sorting to ensure consistent
2036 output on all systems.
2037
b6c15a2d 2038 * util/grub.d/00_header.in: Remove incorrect space before
2039 "serial".
2040
c32ee8c9 20412008-11-07 Robert Millan <rmh@aybabtu.com>
2042
2043 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
2044 per specification.
2045 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
2046 * loader/multiboot_loader.c (find_multi_boot2_header): New function
2047 (based on find_multi_boot1_header).
2048 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
2049 using find_multi_boot2_header(), and abort if neither Multiboot or
2050 Multiboot headers were found.
2051
651c29b7 20522008-11-07 Robert Millan <rmh@aybabtu.com>
2053
2054 Modularize at_keyboard.mod:
2055
2056 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
2057 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
2058 (at_keyboard_mod_LDFLAGS): New variables.
2059
2060 Actual terminal split:
2061
2062 * include/grub/term.h (struct grub_term): Split in ...
2063 (struct grub_term_input): ... this, and ...
2064 (struct grub_term_output): ... this. Update all users.
2065 (grub_term_set_current): Split in ...
2066 (grub_term_set_current_input): ... this, and ...
2067 (grub_term_set_current_output): ... this.
2068 (grub_term_get_current): Split in ...
2069 (grub_term_get_current_input): ... this, and ...
2070 (grub_term_get_current_output): ... this.
2071 (grub_term_register): Split in ...
2072 (grub_term_register_input): ... this, and ...
2073 (grub_term_register_output): ... this.
2074 (grub_term_unregister): Split in ...
2075 (grub_term_unregister_input): ... this, and ...
2076 (grub_term_unregister_output): ... this.
2077 (grub_term_iterate): Split in ...
2078 (grub_term_iterate_input): ... this, and ...
2079 (grub_term_iterate_output): ... this.
2080
2081 * kern/term.c (grub_term_list): Split in ...
2082 (grub_term_list_input): ... this, and ...
2083 (grub_term_list_output): ... this. Update all users.
2084 (grub_cur_term): Split in ...
2085 (grub_cur_term_input): ... this, and ...
2086 (grub_cur_term_output): ... this. Update all users.
2087 (grub_term_set_current): Split in ...
2088 (grub_term_set_current_input): ... this, and ...
2089 (grub_term_set_current_output): ... this.
2090 (grub_term_get_current): Split in ...
2091 (grub_term_get_current_input): ... this, and ...
2092 (grub_term_get_current_output): ... this.
2093 (grub_term_register): Split in ...
2094 (grub_term_register_input): ... this, and ...
2095 (grub_term_register_output): ... this.
2096 (grub_term_unregister): Split in ...
2097 (grub_term_unregister_input): ... this, and ...
2098 (grub_term_unregister_output): ... this.
2099 (grub_term_iterate): Split in ...
2100 (grub_term_iterate_input): ... this, and ...
2101 (grub_term_iterate_output): ... this.
2102
2103 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
2104 a check for input and one for output (and only attempt to get keys
2105 from user when input works).
2106
2107 * util/grub-probe.c (grub_term_get_current): Split in ...
2108 (grub_term_get_current_input): ... this, and ...
2109 (grub_term_get_current_output): ... this.
2110 * util/grub-fstest.c: Likewise.
2111 * util/i386/pc/grub-setup.c: Likewise.
2112 * util/grub-editenv.c: Likewise.
2113
2114 Portability adjustments:
2115
2116 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
2117 `term/i386/pc/at_keyboard.c'.
2118 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
2119 grub_keyboard_controller_init() (now handled by terminal .init).
2120 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
2121 grub_at_keyboard_init().
2122 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
2123 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
2124 at_keyboard.mod via input terminal interface).
2125 * include/grub/i386/coreboot/console.h: Convert into a stub for
2126 `<grub/i386/pc/console.h>'.
2127
2128 Migrate full terminals to new API:
2129
2130 * term/efi/console.c (grub_console_term): Split into ...
2131 (grub_console_term_input): ... this, and ...
2132 (grub_console_term_output): ... this. Update all users.
2133 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
2134 (grub_ofconsole_init): Split into ...
2135 (grub_ofconsole_init_input): ... this, and ...
2136 (grub_ofconsole_init_output): ... this.
2137 (grub_ofconsole_term): Split into ...
2138 (grub_ofconsole_term_input): ... this, and ...
2139 (grub_ofconsole_term_output): ... this. Update all users.
2140 * term/i386/pc/serial.c (grub_serial_term): Split into ...
2141 (grub_serial_term_input): ... this, and ...
2142 (grub_serial_term_output): ... this. Update all users.
2143 * term/i386/pc/console.c (grub_console_term): Split into ...
2144 (grub_console_term_input): ... this, and ...
2145 (grub_console_term_output): ... this. Update all users.
2146 (grub_console_term_input): Only enable it on PC/BIOS platform.
2147 (grub_console_init): Remove grub_keyboard_controller_init() call.
2148
2149 Migrate input terminals to new API:
2150
2151 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
2152 `i386' and `i386/pc' to enable build on x86_64 (this driver is
2153 i386-specific anyway).
2154 (grub_console_checkkey): Rename to ...
2155 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
2156 users.
2157 (grub_keyboard_controller_orig): New variable.
2158 (grub_console_getkey): Rename to ...
2159 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
2160 users.
2161 (grub_keyboard_controller_init): Static-ize. Save original
2162 controller value so that it can be restored ...
2163 (grub_keyboard_controller_fini): ... here (new function).
2164 (grub_at_keyboard_term): New structure.
2165 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
2166 functions.
2167
2168 Migrate output terminals to new API:
2169
2170 * term/i386/pc/vga.c (grub_vga_term): Change type to
2171 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2172 members. Update all users.
2173 * term/gfxterm.c (grub_video_term): Change type to
2174 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2175 members. Update all users.
2176 * include/grub/i386/pc/console.h (grub_console_checkkey)
2177 (grub_console_getkey): Do not export (no longer needed by gfxterm,
2178 etc).
2179
2180 Migrate `terminal' command and userland tools to new API:
2181
2182 * commands/terminal.c (grub_cmd_terminal): Split into ...
2183 (grub_cmd_terminal_input): ... this, and ...
2184 (grub_cmd_terminal_output): ... this.
2185 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
2186 `terminal_input' and `terminal_output'.
2187 * util/grub.d/00_header.in: Adjust `terminal' calls to new
2188 `terminal_input' / `terminal_output' API.
2189 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
2190 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
2191 provided ${GRUB_TERMINAL}, convert it).
2192
96e5d876 21932008-11-04 Robert Millan <rmh@aybabtu.com>
2194
2195 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
2196 for FreeBSD.
2197 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
2198
556f3775 21992008-11-03 Bean <bean123ch@gmail.com>
2200
2201 * kern/elf.c (grub_elf32_load): Revert to previous code.
2202 (grub_elf64_load): Likewise.
2203
2204 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
2205
926b9823 22062008-11-01 Robert Millan <rmh@aybabtu.com>
2207
2208 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
2209 (TARGET_CPPFLAGS): Likewise.
2210 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
2211
1432e958 22122008-11-01 Carles Pina i Estany <carles@pina.cat>
2213
2214 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
2215
dba3f844 22162008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 2217
2218 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
2219 addition of objects until the code is not going to be able to fail.
2220
dba3f844 22212008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 2222
2223 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
2224 (add a missing NULL check, and correct them by moving the pointer
2225 operations after the actual check).
2226
7ab28c21 22272008-10-29 Robert Millan <rmh@aybabtu.com>
2228
2229 * util/i386/pc/grub-install.in: Handle empty string as output from
2230 make_system_path_relative_to_its_root().
2231
1b7748eb 22322008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
2233
2234 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
2235 circular metadata worst case scenario. If the metadata is circular
2236 then copy the wrap in place.
2237 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
2238 project lib/format_text/layout.h
2239 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
2240
c9618ab2 22412008-10-03 Felix Zielcke <fzielcke@z-51.de>
2242
7a36edca 2243 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 2244
bf981c62 22452008-10-03 Felix Zielcke <fzielcke@z-51.de>
2246
2247 * util/update-grub_lib.in: Mention filename in warning message.
2248
6d994591 22492008-09-29 Felix Zielcke <fzielcke@z-51.de>
2250
2251 * NEWS: Update for rename of update-grub to grub-mkconfig.
2252
18ade780 22532008-09-29 Felix Zielcke <fzielcke@z-51.de>
2254
2255 * util/update-grub_lib.in: Copy to ...
2256 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 2257 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 2258 * util/update-grub.in: Rename to ...
2259 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
2260 option. Add `--output' option to allow users to specify the generated
2261 configuration file. Default to stdout.
2262 (update_grub_dir): Rename to ...
2263 (grub_mkconfig_dir): ... this.
2264 (grub_cfg): Default to an empty string.
2265 * conf/common.rmk (update-grub): Rename to ...
2266 (grub-mkconfig): ... this.
2267 (update-grub_lib): Copy to ...
2268 (grub-mkconfig_lib): ... this.
2269 (update-grub_SCRIPTS): Copy to ...
2270 (grub-mkconfig_SCRIPTS): ... this. Update all users.
2271 (update-grub_DATA): Rename to ...
2272 (grub-mkconfig_DATA): ... this.
2273
556ce6ac 22742008-09-28 Robert Millan <rmh@aybabtu.com>
2275
2276 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
2277 to `modified'. Add the real `created' field.
2278 (grub_iso9660_uuid): Use `modified' rather than `created' for
2279 constructing the UUID.
2280
22812008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 2282
2283 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
2284 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
2285
92274e85 22862008-09-28 Bean <bean123ch@gmail.com>
2287
2288 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
2289 Thanks to Christian Franke for finding this bug.
2290
add6f17a 22912008-09-25 Robert Millan <rmh@aybabtu.com>
2292
2293 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
2294 instances of grub_util_get_disk_name() (see previous commit).
2295
d2a367b8 22962008-09-25 Robert Millan <rmh@aybabtu.com>
2297
2298 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
2299 `util/i386/get_disk_name.c'.
2300 * conf/i386-efi.rmk: Likewise.
2301 * conf/x86_64-efi.rmk: Likewise.
2302 * conf/i386-coreboot.rmk: Likewise.
2303 * conf/i386-ieee1275.rmk: Likewise.
2304 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
2305 `util/ieee1275/get_disk_name.c'.
2306 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
2307 * util/ieee1275/get_disk_name.c: Remove file.
2308 * util/i386/get_disk_name.c: Remove file.
2309 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
2310 "hd%d" for device.map entries, rather than using
2311 grub_util_get_disk_name().
2312
81a06771 23132008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 2314
2315 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
2316 warning.
2317 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
2318
5a004279 23192008-09-24 Carles Pina i Estany <carles@pina.cat>
2320
2321 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
2322 Changed to 0x5100.
2323 (GRUB_TERM_PPAGE): Changed to 0x4900.
2324
397093d3 23252008-09-24 Robert Millan <rmh@aybabtu.com>
2326
2327 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
2328 macros (they were i386-pc specific).
2329 * include/grub/sparc64/ieee1275/console.h: Likewise.
2330 * include/grub/efi/console.h: Likewise.
2331
a91b6c7c 23322008-09-22 Bean <bean123ch@gmail.com>
2333
2334 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
2335 resident and in attribute list.
2336
2337 * include/grub/ntfs.h (BMP_LEN): Removed.
2338
c40fd116 23392008-09-22 Bean <bean123ch@gmail.com>
2340
81a06771 2341 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 2342 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
2343
2344 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
2345 error occurs, as grub_disk_open will call grub_disk_close, which will
2346 call p->close (scsi).
2347
81a06771 23482008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 2349
2350 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
2351 (AC_PREREQ): Bumped to 2.59.
2352 (AC_TRY_COMPILE): Replace obsolete macro with ...
2353 (AC_COMPILE_IFELSE): ... this.
2354 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
2355 (AC_LINK_IFELSE): ... this.
2356
5dc43410 23572008-09-21 Felix Zielcke <fzielcke@z-51.de>
2358
2359 * autogen.sh: Add a call to `gendistlist.sh'.
2360
9035dce4 23612008-09-19 Christian Franke <franke@computer.org>
2362
2363 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
2364 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
2365 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
2366 Export __enable_execute_stack() to modules.
2367 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
2368 New function.
2369
7fd75377 23702008-09-09 Felix Zielcke <fzielcke@z-51.de>
2371
040030b3 2372 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
2373 Sort the list.
2374
23752008-09-09 Felix Zielcke <fzielcke@z-51.de>
2376
2377 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 2378 #include <grub/util/hostdisk.h>.
2379
89d5ffcf 23802008-09-08 Robert Millan <rmh@aybabtu.com>
2381
2382 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
2383 segments when their filesz is zero (grub_file_read() interprets
81a06771 2384 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 2385 Use `lowest_segment' rather than 0 for calculating the current
2386 segment load address.
2387
40da438f 23882008-09-08 Robert Millan <rmh@aybabtu.com>
2389
2390 * util/hostdisk.c (open_device): Replace a grub_util_info() call
2391 with grub_dprintf("hostdisk", ...), as it was so verbose that it
2392 clobbered useful information.
2393
ddbf5556 23942008-09-08 Robert Millan <rmh@aybabtu.com>
2395
2396 * include/grub/util/biosdisk.h: Move to ...
2397 * include/grub/util/hostdisk.h: ... here. Update all users.
2398 * util/biosdisk.c: Move to ...
2399 * util/hostdisk.c: ... here. Update all users.
2400
783d0f48 24012008-09-07 Robert Millan <rmh@aybabtu.com>
2402
2403 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
2404 variables.
2405 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
2406 and length can be stored directly in the `mbi->mmap_addr' and
2407 `mbi->mmap_length' struct fields.
2408
548e2ea5 24092008-09-07 Robert Millan <rmh@aybabtu.com>
2410
2411 * conf/i386.rmk: New file. Provides declaration for building
2412 `cpuid.mod'.
2413 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
2414 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
2415 variables.
2416 Include `conf/i386.mk'.
2417 * conf/i386-efi.rmk: Likewise.
2418 * conf/x86_64-efi.rmk: Likewise.
2419 * conf/i386-coreboot.rmk: Likewise.
2420 * conf/i386-ieee1275.rmk: Likewise.
2421
0ea85a37 24222008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
2423
2424 Based on patch created by Colin D Bennett <colin@gibibit.com>.
2425 Adds optimization support for BGR based modes.
2426
2427 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
2428 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2429 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2430 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2431 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2432 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2433 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2434 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2435 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2436 (grub_video_i386_vbeblit_index_index): Likewise.
2437 (grub_video_i386_vbeblit_replace_directN): Added.
2438 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2439 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2440 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2441 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2442 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2443 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 2444 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 2445 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2446 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2447 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2448 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2449 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2450 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
2451
2452 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
2453 (grub_video_i386_vbefill_R8G8B8): Likewise.
2454 (grub_video_i386_vbefill_index): Likewise.
2455 (grub_video_i386_vbefill_direct32): Added.
2456 (grub_video_i386_vbefill_direct24): Likewise.
2457 (grub_video_i386_vbefill_direct16): Likewise.
2458 (grub_video_i386_vbefill_direct8): Likewise.
2459
81a06771 2460 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 2461 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
2462 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
2463 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
2464 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
2465 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 2466
0ea85a37 2467 * video/video.c (grub_video_get_blit_format): Updated to use new
2468 blit formats. Added handling for 16 bit color modes.
81a06771 2469
2470 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 2471 fillers.
2472 (common_blitter): Updated to use new blitters.
2473
2474 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
2475 Removed.
2476 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2477 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2478 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2479 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2480 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2481 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2482 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2483 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2484 (grub_video_i386_vbeblit_index_index): Likewise.
2485 (grub_video_i386_vbeblit_replace_directN): Added.
2486 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2487 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2488 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2489 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2490 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2491 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
2492 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
2493 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2494 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2495 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2496 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2497 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2498 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 2499
0ea85a37 2500 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
2501 (grub_video_i386_vbefill_R8G8B8): Likewise.
2502 (grub_video_i386_vbefill_index): Likewise.
2503 (grub_video_i386_vbefill_direct32): Added.
2504 (grub_video_i386_vbefill_direct24): Likewise.
2505 (grub_video_i386_vbefill_direct16): Likewise.
2506 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 2507
0ea85a37 2508 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
2509 types.
81a06771 2510
0ea85a37 2511 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
2512 types.
81a06771 2513
0ea85a37 2514 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
2515 blitter types.
81a06771 2516
0ea85a37 2517 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
2518 types.
2519
e8a83df6 25202008-09-06 Felix Zielcke <fzielcke@z-51.de>
2521
2522 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
2523 RAID level 1.
2524
6bcd8ee5 25252008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 2526
6bcd8ee5 2527 * fs/iso9660.c (grub_iso9660_date): New structure.
2528 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
2529 (grub_iso9660_uuid): New function.
c375ae58 2530
59261157 25312008-09-05 Bean <bean123ch@gmail.com>
2532
2533 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
2534
2535 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
2536 insensitive bit for names in Win32 and Win32 & DOS namespace.
2537
2538 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
2539
2540 * include/grub/types.h (LONG_MAX): Likewise.
2541
58b6645a 25422008-09-04 Felix Zielcke <fzielcke@z-51.de>
2543
4ee55921 2544 * util/getroot.c: Include <config.h>.
2545 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
2546 add support for /dev/md/N devices and handle LVM double dash escaping.
2547
25482008-09-04 Felix Zielcke <fzielcke@z-51.de>
2549
2550 * config.guess: Update to latest version from config git.
2551 * config.sub: Likewise.
58b6645a 2552
9124f65d 25532008-09-03 Robert Millan <rmh@aybabtu.com>
2554
2555 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
2556 `disk->total_sectors'.
2557
81a06771 25582008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 2559
2560 * include/grub/normal.h: Fixed incorrect comment for
2561 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
2562
81a06771 25632008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 2564
2565 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
2566 values with defines.
2567
2568 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
2569 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
2570 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
2571 (GRUB_VBE_MODEATTR_COLOR): Likewise.
2572 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
2573 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
2574 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
2575 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
2576 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
2577 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
2578 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
2579 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
2580 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
2581 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
2582 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
2583 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
2584 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
2585 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
2586 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
2587
93d5cbf8 25882008-08-31 Robert Millan <rmh@aybabtu.com>
2589
2590 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
2591 declaration.
2592 (grub_multiboot): Fix a few warnings.
2593
21751d50 25942008-08-31 Robert Millan <rmh@aybabtu.com>
2595
2596 * loader/i386/pc/multiboot.c: Update comment not to say that
2597 boot_device support is unimplemented.
2598
e27a75c5 25992008-08-31 Robert Millan <rmh@aybabtu.com>
2600
2601 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
2602 or memory map support are unimplemented.
2603
81a06771 26042008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 2605
2606 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
2607
81a06771 26082008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 2609
2610 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
2611 total video memory in 'vbeinfo' output; show color format details for
2612 each video mode.
2613
7c5d8d95 26142008-08-30 Pavel Roskin <proski@gnu.org>
2615
2616 * util/genmoddep.c: Remove for real this time.
2617 * DISTLIST: Remove util/genmoddep.c.
2618
4cebd25a 26192008-08-30 Robert Millan <rmh@aybabtu.com>
2620
2621 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
2622 as required by Multiboot spec (it was already 4-byte aligned, but
2623 only by chance).
2624
b497a269 26252008-08-29 Pavel Roskin <proski@gnu.org>
2626
e3925185 2627 * kern/powerpc/ieee1275/crt0.S: Rename to ...
2628 * kern/powerpc/ieee1275/startup.S: ... this.
2629 * conf/powerpc-ieee1275.rmk: Adjust for the above.
2630 * DISTLIST: Likewise.
2631
b497a269 2632 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
2633 grub/cpu/kernel.h. Add start label for consistency with other
2634 platforms. Add grub_prefix immediately after start. Add jump
2635 to the code after grub_prefix.
2636 * include/grub/powerpc/kernel.h: Provide valid values for
2637 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
2638
6e5a42fe 26392008-08-29 Bean <bean123ch@gmail.com>
2640
2641 * configure.ac: Change host_os to cygwin for mingw.
2642 (asprintf): New check for function.
2643
2644 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
2645 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
2646
2647 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 2648 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 2649 sync, sleep and grub_util_get_disk_size for mingw.
2650
2651 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
2652 to get size in mingw.
2653 (open_device): Use flag O_BINARY if it's defined.
2654 (find_root_device): Add dummy code for mingw.
2655
2656 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
2657 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
2658 (get_scsi_disk_name): Return 0 for mingw.
2659
2660 * util/hostfs.c: #include <grub/util/misc.h>.
2661 (grub_hostfs_open): Use "rb" flag to open file, use
2662 grub_util_get_disk_size to get disk size for mingw.
2663
2664 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
2665 (asprintf): New function if HAVE_ASPRINTF is not set.
2666 (sync): New function for mingw.
2667 (sleep): Likewise.
2668 (grub_util_get_disk_size): Likewise.
2669
ab3f2673 26702008-08-28 Pavel Roskin <proski@gnu.org>
2671
2672 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
2673 kern/time.c.
2674
1c282483 26752008-08-28 Robert Millan <rmh@aybabtu.com>
2676
2677 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
2678
678e849c 26792008-08-28 Robert Millan <rmh@aybabtu.com>
2680
2681 Change find_grub_drive() syntax so it doesn't prevent it from
2682 detecting NULL names as errors.
2683
2684 * util/biosdisk.c (find_grub_drive): Move free slot search code
2685 from here ...
2686 (find_free_slot): ... to here.
2687 (read_device_map): Use find_free_slot() to search for free slots.
2688
965c75ca 26892008-08-27 Marco Gerards <marco@gnu.org>
2690
2691 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
2692 (scsi_mod_SOURCES): New variable.
2693 (scsi_mod_CFLAGS): Likewise
2694 (scsi_mod_LDFLAGS): Likewise.
2695
2696 * disk/scsi.c: New file.
2697
2698 * include/grub/scsi.h: Likewise.
2699
2700 * include/grub/scsicmd.h: Likewise.
2701
2702 * disk/ata.c: Include <grub/scsi.h>.
2703 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
2704 instead.
2705 (grub_ata_iterate): Skip ATAPI devices.
2706 (grub_ata_open): Only handle ATAPI devices.
2707 (struct grub_atapi_read): Removed.
2708 (grub_atapi_readsector): Likewise.
2709 (grub_ata_read): No longer handle ATAPI devices.
2710 (grub_ata_write): Likewise.
2711 (grub_atapi_iterate): New function.
2712 (grub_atapi_read): Likewise.
2713 (grub_atapi_write): Likewise.
2714 (grub_atapi_open): Likewise.
2715 (grub_atapi_close): Likewise.
2716 (grub_atapi_dev): New variable.
2717 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
2718 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
2719
2720 * include/grub/disk.h (enum grub_disk_dev_id): Add
2721 `GRUB_DISK_DEVICE_SCSI_ID'.
2722
c07ae501 27232008-08-26 Robert Millan <rmh@aybabtu.com>
2724
2725 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
2726 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
2727 descriptive.
2728
5ed20adc 27292008-08-23 Bean <bean123ch@gmail.com>
2730
2731 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
2732 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2733 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
2734 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
2735 dm_nv.mod.
2736 (raid5rec_mod_SOURCES): New macro.
2737 (raid5rec_mod_CFLAGS): Likewise.
2738 (raid5rec_mod_LDFLAGS): Likewise.
2739 (raid6rec_mod_SOURCES): Likewise.
2740 (raid6rec_mod_CFLAGS): Likewise.
2741 (raid6rec_mod_LDFLAGS): Likewise.
2742 (mdraid_mod_SOURCES): Likewise.
2743 (mdraid_mod_CFLAGS): Likewise.
2744 (mdraid_mod_LDFLAGS): Likewise.
2745 (dm_nv_mod_SOURCES): Likewise.
2746 (dm_nv_mod_CFLAGS): Likewise.
2747 (dm_nv_mod_LDFLAGS): Likewise.
2748
2749 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
2750 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2751 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2752
2753 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
2754 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2755
2756 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2757
2758 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2759
2760 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2761
2762 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2763
2764 * disk/raid5_recover.c: New file.
2765
2766 * disk/raid6_recover.c: Likewise.
2767
2768 * disk/mdraid_linux.c: Likewise.
2769
2770 * disk/dmraid_nvidia.c: Likewise.
2771
2772 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
2773 ULONG_MAX.
2774
2775 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
2776 calculate the size of raid device.
2777 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
2778 different layout of raid5.
2779 (grub_raid_scan_device): Remove code specific to mdraid.
2780 (grub_raid_list): New variable.
2781 (free_array): New function.
2782 (grub_raid_register): Likewise.
2783 (grub_raid_unregister): Likewise.
2784 (grub_raid_rescan): Likewise.
2785 (GRUB_MOD_INIT): Don't iterate device here.
2786 (GRUB_MOD_FINI): Use free_array to release resource.
2787
2788 * include/grub/raid.h: Remove macro and structure specific to mdraid.
2789 (grub_raid5_recover_func_t): New function variable type.
2790 (grub_raid6_recover_func_t): Likewise.
2791 (grub_raid5_recover_func): New variable.
2792 (grub_raid6_recover_func): Likewise.
2793 (grub_raid_register): New function.
2794 (grub_raid_unregister): Likewise.
2795 (grub_raid_rescan): Likewise.
2796 (grub_raid_block_xor): Likewise.
2797
2798 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
2799 (CMD_CRC): New macro.
2800 (part): Removed.
2801 (read_file): Handle device as well as file.
2802 (cmd_crc): New function.
2803 (fstest): Handle multiple disks.
2804 (options): Remove part, raw and long, add root and diskcount.
2805 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 2806 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 2807 add handling for the new options, support multiple disks.
2808
2809 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
2810
29c18915 28112008-08-23 Bean <bean123ch@gmail.com>
2812
2813 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
2814
2815 * genfslist.sh: Ignore kernel.mod.
2816
2817 * genpartmaplist.sh: Likewise.
2818
8415f261 28192008-08-23 Robert Millan <rmh@aybabtu.com>
2820
2821 * util/getroot.c (find_root_device): Skip anything that starts with
2822 a dot, not just directories. This avoids things like /dev/.tmp.md0.
2823
d5a7dc5b 28242008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 2825
d5a7dc5b 2826 * util/update-grub.in (GRUB_GFXMODE): Export variable.
2827 * util/grub.d/00_header.in: Allow the administrator to change default
2828 gfxmode via ${GRUB_GFXMODE}.
2829
380cfbb4 28302008-08-21 Felix Zielcke <fzielcke@z-51.de>
2831
2832 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
2833
c9baafe7 28342008-08-21 Robert Millan <rmh@aybabtu.com>
2835
2836 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
2837 loader.
2838 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
2839 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
2840
e290bef2 28412008-08-20 Carles Pina i Estany <carles@pina.cat>
2842
2843 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
2844 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
2845
f9dbfc96 28462008-08-19 Robert Millan <rmh@aybabtu.com>
2847
2848 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
2849 (struct grub_virtual_screen): Remove `cursor_color'.
2850 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
2851 initialization.
2852 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
2853
dd6bd6ab 28542008-08-18 Robert Millan <rmh@aybabtu.com>
2855
2856 Unify (identical) linux_normal.c files.
2857 * loader/i386/efi/linux_normal.c: Move from here ...
2858 * loader/linux_normal.c: ... to here. Update all users.
2859 * loader/i386/pc/linux_normal.c: Delete. Update all users.
2860 * loader/i386/ieee1275/linux_normal.c: Likewise.
2861
7f42f83e 28622008-08-18 Robert Millan <rmh@aybabtu.com>
2863
2864 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
2865 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
2866 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
2867 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
2868 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
2869 New macros.
2870 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
2871 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
2872 (GRUB_LINUX_CL_END_OFFSET): ... to here.
2873 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
2874 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
2875 (GRUB_EFI_CL_END_OFFSET): Rename to ...
2876 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
2877 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
2878 Initialize `params->video_cursor_x' and `params->video_cursor_y'
2879 portably using grub_getxy().
2880 Replace `-EFI' with `-bzImage' in boot message.
2881
38487ddb 28822008-08-17 Robert Millan <rmh@aybabtu.com>
2883
2884 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
2885
deceb3ec 28862008-08-17 Robert Millan <rmh@aybabtu.com>
2887
2888 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
2889
2890 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
2891 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
2892 (grub_machine_mmap_iterate): New function declaration.
2893 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
2894 structure.
2895 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
2896 macros.
2897
2898 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
2899 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
2900 Move e820 parsing from here ...
2901 * kern/i386/pc/mmap.c: New file.
2902 (grub_machine_mmap_iterate): ... to here.
2903
2904 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
2905 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
2906 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
2907 (grub_available_iterate): Redeclare to return `void', and redeclare
2908 its hook to use grub_uint64_t as addr and size parameters, and rename
2909 to ...
2910 (grub_machine_mmap_iterate): ... this. Update all users.
2911
2912 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
2913 to make it more readable. Rename to ...
2914 (grub_machine_mmap_iterate): ... this.
2915
2916 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
2917 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
2918 (grub_multiboot): Allocate an extra region after the payload, and fill
2919 it with a Multiboot memory map. Adjust a.out loader to calculate size
2920 with the extra space.
2921 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
2922 with the extra space.
2923
f8aa0f43 29242008-08-17 Carles Pina i Estany <carles@pina.cat>
2925
9807deb9 2926 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 2927
605f5bb6 29282008-08-17 Felix Zielcke <fzielcke@z-51.de>
2929
2930 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
2931 mdate-sh to the list `find' searches for.
2932 * DISTLIST: Regenerated.
2933
210db6c6 29342008-08-16 Felix Zielcke <fzielcke@z-51.de>
2935
2936 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
2937 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 2938 genmoddep.awk, gensymlist.sh.in.
2939 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 2940 * DISTLIST: Regenerated.
48cdbfd4 2941 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 2942
1082b929 29432008-08-16 Robert Millan <rmh@aybabtu.com>
2944
2945 * disk/raid.c (grub_raid_init): Handle/report errors set by
2946 grub_device_iterate().
2947 * disk/lvm.c (grub_lvm_init): Likewise.
2948
42ce5170 29492008-08-15 Bean <bean123ch@gmail.com>
2950
2951 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
2952 and datehook.mod.
2953 (datetime_mod_SOURCES): New macro.
2954 (datetime_mod_CFLAGS): Likewise.
2955 (datetime_mod_LDFLAGS): Likewise.
2956 (date_mod_SOURCES): Likewise.
2957 (date_mod_CFLAGS): Likewise.
2958 (date_mod_LDFLAGS): Likewise.
2959 (datehook_mod_SOURCES): Likewise.
2960 (datehook_mod_CFLAGS): Likewise.
2961 (datehook_mod_LDFLAGS): Likewise.
2962
2963 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
2964 and datehook.mod.
2965 (datetime_mod_SOURCES): New macro.
2966 (datetime_mod_CFLAGS): Likewise.
2967 (datetime_mod_LDFLAGS): Likewise.
2968 (date_mod_SOURCES): Likewise.
2969 (date_mod_CFLAGS): Likewise.
2970 (date_mod_LDFLAGS): Likewise.
2971 (datehook_mod_SOURCES): Likewise.
2972 (datehook_mod_CFLAGS): Likewise.
2973 (datehook_mod_LDFLAGS): Likewise.
2974
2975 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
2976 and datehook.mod.
2977 (datetime_mod_SOURCES): New macro.
2978 (datetime_mod_CFLAGS): Likewise.
2979 (datetime_mod_LDFLAGS): Likewise.
2980 (date_mod_SOURCES): Likewise.
2981 (date_mod_CFLAGS): Likewise.
2982 (date_mod_LDFLAGS): Likewise.
2983 (datehook_mod_SOURCES): Likewise.
2984 (datehook_mod_CFLAGS): Likewise.
2985 (datehook_mod_LDFLAGS): Likewise.
2986
2987 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
2988 and datehook.mod.
2989 (datetime_mod_SOURCES): New macro.
2990 (datetime_mod_CFLAGS): Likewise.
2991 (datetime_mod_LDFLAGS): Likewise.
2992 (date_mod_SOURCES): Likewise.
2993 (date_mod_CFLAGS): Likewise.
2994 (date_mod_LDFLAGS): Likewise.
2995 (datehook_mod_SOURCES): Likewise.
2996 (datehook_mod_CFLAGS): Likewise.
2997 (datehook_mod_LDFLAGS): Likewise.
2998
2999 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3000 and datehook.mod.
3001 (datetime_mod_SOURCES): New macro.
3002 (datetime_mod_CFLAGS): Likewise.
3003 (datetime_mod_LDFLAGS): Likewise.
3004 (date_mod_SOURCES): Likewise.
3005 (date_mod_CFLAGS): Likewise.
3006 (date_mod_LDFLAGS): Likewise.
3007 (datehook_mod_SOURCES): Likewise.
3008 (datehook_mod_CFLAGS): Likewise.
3009 (datehook_mod_LDFLAGS): Likewise.
3010
3011 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
3012
3013 * commands/date.c: New file.
3014
3015 * hook/datehook.c: Likewise.
3016
3017 * include/grub/lib/datetime.h: Likewise.
3018
3019 * include/grub/i386/cmos.h: Likewise.
3020
3021 * lib/datetime.c: Likewise.
3022
3023 * lib/i386/datetime.c: Likewise.
3024
3025 * lib/efi/datetime.c: Likewise.
3026
0e9242da 30272008-08-14 Robert Millan <rmh@aybabtu.com>
3028
3029 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
3030 (grub_mkelfimage_SOURCES): New variable.
3031 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
3032
3033 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
3034 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
3035 * conf/powerpc-ieee1275.rmk: Likewise.
3036 * conf/i386-ieee1275.rmk: Likewise.
3037
3038 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
3039 * kern/i386/coreboot/init.c: Likewise.
3040
3041 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
3042 with `<grub/cpu/kernel.h>'.
3043 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
3044 to ...
3045 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
3046 * kern/i386/coreboot/startup.S: Likewise.
3047
3048 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
3049 (GRUB_MOD_GAP): Remove.
3050 * include/grub/powerpc/kernel.h: New file.
3051 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
3052 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3053 * include/grub/i386/kernel.h: New file.
3054 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
3055 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
3056 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3057
3058 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
3059 `grub-mkelfimage'.
3060 Use --directory when invoking grub_mkimage.
3061
3062 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
3063 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
3064 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
3065 and GRUB_KERNEL_CPU_PREFIX.
3066
b86408f8 30672008-08-14 Felix Zielcke <fzielcke@z-51.de>
3068
d5e619ca 3069 * include/grub/err.h (grub_err_printf): New function prototype.
3070 * util/misc.c (grub_err_printf): New function.
3071 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
3072 grub_printf.
3073 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 3074
7161f0e0 30752008-08-13 Robert Millan <rmh@aybabtu.com>
3076
3077 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
3078
a1967522 30792008-08-13 Robert Millan <rmh@aybabtu.com>
3080
3081 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
3082 boot entry.
3083
371458b5 30842008-08-12 Robert Millan <rmh@aybabtu.com>
3085
3086 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
3087 of the relocation code from here ...
3088 (grub_multiboot): ... to here.
3089 (forward_relocator, backward_relocator): Move from here ...
3090 * kern/i386/loader.S (grub_multiboot_forward_relocator)
3091 (grub_multiboot_backward_relocator): ... to here.
3092 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
3093 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
3094 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
3095 (grub_multiboot_forward_relocator_end)
3096 (grub_multiboot_backward_relocator)
3097 (grub_multiboot_backward_relocator_end): New variables.
3098
05f9452b 30992008-08-12 Bean <bean123ch@gmail.com>
3100
3101 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
3102
20024ab0 31032008-08-11 Robert Millan <rmh@aybabtu.com>
3104
3105 * kern/i386/linuxbios/startup.S: Move from here ...
3106 * kern/i386/coreboot/startup.S: ... to here.
3107
3108 * kern/i386/linuxbios/init.c: Move from here ...
3109 * kern/i386/coreboot/init.c: ... to here.
3110
3111 * kern/i386/linuxbios/table.c: Move from here ...
3112 * kern/i386/coreboot/mmap.c: ... to here.
3113
3114 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
3115
e352e9cd 31162008-08-11 Robert Millan <rmh@aybabtu.com>
3117
3118 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
3119 errors. Leave it to the upper layer to handle them.
3120
2d05bc6a 31212008-08-09 Christian Franke <franke@computer.org>
3122
3123 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
3124 * conf/common.rmk: Install `grub-pe2elf' only if requested.
3125 Install `grub.d/10_windows' only on Cygwin.
3126 * configure.ac: Add subst of `target_os'.
3127 Check `target_os' also before setting TARGET_OBJ2ELF.
3128 Add `--enable-grub-pe2elf'.
3129
042bd419 31302008-08-08 Robert Millan <rmh@aybabtu.com>
3131
3132 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3133 (grub_last_time): Change type to grub_uint64_t.
3134 (grub_disk_open): Migrate code from to using grub_get_time_ms().
3135 (grub_disk_close): Likewise.
3136
3137 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3138 (run_menu): Migrate code from to using grub_get_time_ms().
3139
3140 * util/misc.c (grub_get_time_ms): New function.
3141
7f280db5 31422008-08-08 Marco Gerards <marco@gnu.org>
3143
3144 * disk/ata.c (grub_ata_regget): Change return type to
3145 `grub_uint8_t'.
3146 (grub_ata_regget2): Likewise.
3147 (grub_ata_wait_status): New function.
3148 (grub_ata_wait_busy): Removed function, updated all users to use
3149 `grub_ata_wait_status'.
3150 (grub_ata_wait_drq): Likewise.
3151 (grub_ata_cmd): New function.
3152 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
3153 error handling.
3154 (grub_ata_pio_write): Add error handling.
3155 (grub_atapi_identify): Likewise.
3156 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
3157 handling.
3158 (grub_ata_identify): Use `grub_ata_cmd' and improve error
3159 handling. Actually use the detected registers. Reorder the
3160 detection logic such that it is easier to read.
3161 (grub_ata_pciinit): Do not assign the same ID to each controller.
3162 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
3163 handling.
3164 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
3165
3166 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
3167
1fbc5e66 31682008-08-08 Marco Gerards <marco@gnu.org>
3169
3170 * NEWS: Update.
3171
819ce6c0 31722008-08-07 Bean <bean123ch@gmail.com>
3173
3174 * include/grub/x86_64/pci.h: New file.
3175
5c41d44d 31762008-08-07 Christian Franke <franke@computer.org>
3177
3178 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
3179 (TIMER2_GATE): Likewise.
3180 (grub_pit_wait): Add enable/disable of the timer2 gate
3181 bit of port 0x61. This fixes a possible infinite loop.
3182
5ebc275d 31832008-08-07 Bean <bean123ch@gmail.com>
3184
3185 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
3186 kern/i386/tsc.c and kern/i386/pit.c.
3187
3188 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
3189 x86_64 platform.
3190
3191 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
3192 <grub/i386/tsc.h>.
3193
3194 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
3195
e383b3d0 31962008-08-07 Bean <bean123ch@gmail.com>
3197
3198 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
3199
3200 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
3201
3202 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
3203 multiple inclusion. Add #include <grub/types.h>.
3204
1cbb58ac 32052008-08-06 Christian Franke <franke@computer.org>
3206
3207 * conf/common.rmk: Build and install `10_windows'.
3208 * util/grub.d/10_windows.in: New script.
3209
337f5a1e 32102008-08-06 Pavel Roskin <proski@gnu.org>
3211
3212 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
3213
057bc4ac 32142008-08-06 Robert Millan <rmh@aybabtu.com>
3215
3216 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
3217 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
3218
2b99f123 32192008-08-06 Bean <bean123ch@gmail.com>
3220
3221 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
3222 (grub_pxefs_fs_int): Remove dummy definition.
3223 (grub_pxefs_open): Use data->block_size to store the current block
3224 size setting.
3225 (grub_pxefs_read): Use block size stored in data->block_size. As the
3226 value of grub_pxe_blksize can be changed after the file is opened.
3227
9f0234cb 32282008-08-06 Bean <bean123ch@gmail.com>
3229
3230 * fs/i386/pc/pxe.c (curr_file): new variable.
3231 (grub_pxefs_open): Simply the handling of pxe file system. Don't
3232 require the dummy internal file system anymore.
3233 (grub_pxefs_read): Removed.
3234 (grub_pxefs_close): Likewise.
3235 (grub_pxefs_fs_int): Likewise.
3236 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
3237 connection when we switch file.
3238 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
3239
a55d42e0 32402008-08-06 Robert Millan <rmh@aybabtu.com>
3241
3242 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
3243 `halt.mod'.
3244 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
3245 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
3246
3247 * kern/i386/halt.c: New file.
3248 * kern/i386/reboot.c: Likewise.
3249 * include/grub/i386/reboot.h: Likewise.
3250 * include/grub/i386/halt.h: Likewise.
3251
3252 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
3253 Include `<grub/cpu/halt.h>'.
3254 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
3255 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
3256
3257 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
3258 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
3259 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
3260 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
3261 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
3262 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
3263 from here ...
3264 * include/grub/i386/at_keyboard.h: ... to here.
3265
24371d26 32662008-08-05 Robert Millan <rmh@aybabtu.com>
3267
3268 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
3269 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
3270 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
3271 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3272 `kern/generic/millisleep.c'.
3273
3274 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
3275 instead of grub_get_rtc().
3276 (grub_tsc_init): Initialize `tsc_boot_time'.
3277
3278 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
3279 (grub_machine_init): Use grub_tsc_init() rather than
3280 installing an RTC-based handler via grub_install_get_time_ms().
3281
3282 * kern/i386/pit.c: New file.
3283 * include/grub/i386/pit.h: Likewise.
3284
9e7007b3 32852008-08-05 Bean <bean123ch@gmail.com>
3286
3287 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
3288
3289 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
3290 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
3291 (pxe_mod_SOURCES): New macro.
3292 (pxe_mod_CFLAGS): Likewise.
3293 (pxe_mod_LDFLAGS): Likewise.
3294 (pxecmd_mod_SOURCES): Likewise.
3295 (pxecmd_mod_CFLAGS): Likewise.
3296 (pxecmd_mod_LDFLAGS): Likewise.
3297
3298 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
3299 (grub_pxe_call): Likewise.
3300
3301 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
3302
3303 * commands/i386/pc/pxecmd.c: New file.
3304
9f0234cb 3305 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 3306
3307 * include/grub/i386/pc/pxe.h: Likewise.
3308
6977d49f 33092008-08-05 Bean <bean123ch@gmail.com>
3310
3311 * util/console.c (grub_console_cur_color): New variable.
3312 (grub_console_standard_color): Likewise.
3313 (grub_console_normal_color): Likewise.
3314 (grub_console_highlight_color): Likewise.
3315 (color_map): Likewise.
3316 (use_color): Likewise.
3317 (NUM_COLORS): New macro.
3318 (grub_ncurses_setcolorstate): Handle color properly.
3319 (grub_ncurses_setcolor): Don't change color here, just remember the
3320 settings, color will be set in grub_ncurses_setcolorstate.
3321 (grub_ncurses_getcolor): New function.
3322 (grub_ncurses_init): Initialize color pairs.
3323 (grub_ncurses_term): New member grub_ncurses_getcolor.
3324
9c2ff3ee 33252008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 3326
9c2ff3ee 3327 High resolution timer support. Implemented for x86 CPUs using TSC.
3328 Extracted generic grub_millisleep() so it's linked in only as needed.
3329 This requires a Pentium compatible CPU; if the RDTSC instruction is
3330 not supported, then it falls back on the generic grub_get_time_ms()
3331 implementation that uses the machine's RTC.
3332
3333 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
3334 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3335 `kern/generic/millisleep.c'.
3336
3337 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
3338 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
3339
3340 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
3341 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
3342
3343 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3344
3345 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3346 `kern/generic/millisleep.c'.
3347
3348 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3349
3350 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
3351
3352 * kern/generic/rtc_get_time_ms.c: New file.
3353
3354 * kern/generic/millisleep.c: New file.
337f5a1e 3355
9c2ff3ee 3356 * kern/misc.c: Don't include
3357 <kern/time.h> anymore.
3358 (grub_millisleep_generic): Removed.
3359
3360 * commands/sleep.c (grub_interruptible_millisleep): Uses
3361 grub_get_time_ms() instead of grub_get_rtc().
3362
3363 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
3364 function.
3365 (grub_cpu_is_cpuid_supported): New inline function.
3366 (grub_cpu_is_tsc_supported): New inline function.
3367 (grub_tsc_init): New function prototype.
3368 (grub_tsc_get_time_ms): New function prototype.
3369
3370 * kern/i386/tsc.c (grub_get_time_ms): New file.
3371
3372 * include/grub/time.h: Include <grub/types.h.
3373 (grub_millisleep_generic): Removed.
3374 (grub_get_time_ms): New prototype.
3375 (grub_install_get_time_ms): New prototype.
3376 (grub_rtc_get_time_ms): New prototype.
3377
3378 * kern/time.c (grub_get_time_ms): New function.
3379 (grub_install_get_time_ms): New function.
3380
3381 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
3382 <grub/time.h> anymore.
3383 (grub_millisleep): Removed.
3384 (grub_machine_init): Call grub_tsc_init.
3385
3386 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
3387 get_time_ms() implementation.
3388
3389 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
3390 (ieee1275_get_time_ms): New function.
3391 (grub_machine_init): Install get_time_ms() implementation.
3392
3393 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
3394 (grub_machine_init): Call grub_tsc_init().
3395 (grub_millisleep): Removed.
bf06a93f 3396
9c2ff3ee 3397 * kern/ieee1275/init.c (grub_millisleep): Removed.
3398 (grub_machine_init): Install ieee1275_get_time_ms()
3399 implementation.
3400 (ieee1275_get_time_ms): New function.
3401 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
3402 real work.
3403
9ec92aaf 34042008-08-05 Marco Gerards <marco@gnu.org>
3405
3406 * disk/ata.c: Include <grub/pci.h>.
3407 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
3408 (grub_ata_initialize): Rewritten.
3409 (grub_ata_device_initialize): New function.
3410
8d23f507 34112008-08-04 Pavel Roskin <proski@gnu.org>
3412
3413 * kern/main.c: Include grub/mm.h.
3414
5e15ee3d 34152008-08-04 Robert Millan <rmh@aybabtu.com>
3416
3417 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
3418 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
3419 corruption problem).
3420
a9053f8f 34212008-08-04 Robert Millan <rmh@aybabtu.com>
3422
3423 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
3424 warnings introduced in my last commit.
3425
dd19c7d7 34262008-08-03 Robert Millan <rmh@aybabtu.com>
3427
3428 Make PCI available on all i386 architectures.
3429
3430 * include/grub/i386/pc/pci.h: Move from here ...
3431 * include/grub/i386/pci.h: ... to here.
3432
3433 * include/grub/i386/pc/pci.h: Remove.
3434 * include/grub/i386/efi/pci.h: Remove.
3435 * include/grub/x86_64/efi/pci.h: Remove.
3436
3437 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
3438 `<grub/cpu/pci.h>'.
3439
3440 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
3441 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
3442 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
3443
3444 * conf/i386-ieee1275.rmk: Likewise.
3445
e14a6184 34462008-08-03 Robert Millan <rmh@aybabtu.com>
3447
3448 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
3449 (grub_console_setcursor): Make it possible to set cursor off.
3450
52768e37 34512008-08-03 Robert Millan <rmh@aybabtu.com>
3452
3453 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
3454 of modules instead of assuming which platform provides what.
3455 * util/update-grub.in: Likewise.
3456
2d52f57f 34572008-08-03 Robert Millan <rmh@aybabtu.com>
3458
3459 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
3460 instead of `grub_install_dos_part' to determine whether a drive needs
3461 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 3462 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 3463
2a5cd121 34642008-08-02 Robert Millan <rmh@aybabtu.com>
3465
3466 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
3467
93808428 34682008-08-02 Robert Millan <rmh@aybabtu.com>
3469
3470 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
3471 of informational grub_dprintf() calls.
3472
3bd0a12a 34732008-08-02 Robert Millan <rmh@aybabtu.com>
3474
3475 * disk/memdisk.c (memdisk_size): Don't initialize.
3476 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
3477
3478 * include/grub/i386/pc/kernel.h
3479 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
3480 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
3481 (grub_memdisk_image_size, grub_arch_memdisk_addr)
3482 (grub_arch_memdisk_size): Remove.
3483
3484 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
3485 field (was only used to transfer a constant). Add `type' field to
3486 support multiple module types.
3487 (grub_module_iterate): New function.
3488
3489 * kern/device.c (grub_device_open): Do not hide error messages
3490 when grub_disk_open() fails. Use grub_print_error() instead.
3491
3492 * kern/i386/pc/init.c (grub_arch_modules_addr)
3493 (grub_arch_memdisk_size): Remove functions.
3494 (grub_arch_modules_addr): Return the module address in high memory
3495 (now that it isn't copied anymore).
3496
3497 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
3498 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
3499 decompression routine (grub_total_module_size already includes that
3500 now). Don't copy modules back to low memory.
3501
3502 * kern/main.c: Include `<grub/mm.h>'.
3503 (grub_load_modules): Split out (and use) ...
3504 (grub_module_iterate): ... this function, which iterates through
3505 module objects and runs a hook.
3506 Comment out grub_mm_init_region() call, as it would cause non-ELF
3507 modules to be overwritten.
3508
3509 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
3510 the memdisk image in its own region, make it part of the module list.
3511 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
3512 (main): Parse --memdisk|-m option, and pass user-provided path as
3513 parameter to generate_image().
3514 (add_segments): Pass `memdisk_path' down to load_modules().
3515 (load_modules): Embed memdisk image in module section when requested.
3516 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
3517 `header.type' instead of `header.offset'.
3518
3519 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
3520 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
3521 (memdisk_mod_LDFLAGS): New variables.
3522 * conf/i386-coreboot.rmk: Likewise.
3523 * conf/i386-ieee1275.rmk: Likewise.
3524
a927cc73 35252008-08-02 Robert Millan <rmh@aybabtu.com>
3526
3527 * loader/i386/pc/multiboot.c (playground, forward_relocator)
3528 (backward_relocator): New variables. Used to allocate and relocate
3529 the payload, respectively.
3530 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 3531 address, install the appropriate relocator code in each bound of
a927cc73 3532 the payload, and set the entry point such that
3533 grub_multiboot_real_boot() will jump to one of them.
3534
3535 * kern/i386/loader.S (grub_multiboot_payload_size)
3536 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3537 (grub_multiboot_payload_entry_offset): New variables.
3538 (grub_multiboot_real_boot): Set cpu context to what the relocator
3539 expects, and jump to the relocator instead of the payload.
3540
3541 * include/grub/i386/loader.h (grub_multiboot_payload_size)
3542 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3543 (grub_multiboot_payload_entry_offset): Export.
3544
b15d8a0c 35452008-08-01 Bean <bean123ch@gmail.com>
3546
3547 * normal/menu_entry.c (editor_getline): Don't return the original
3548 string as result, as it will be released by lexer once it has done
3549 using it.
3550
cdfb3d22 35512008-08-01 Robert Millan <rmh@aybabtu.com>
3552
3553 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
3554 within menuentries, not before them.
3555 util/grub.d/10_hurd.in: Likewise.
3556
9175e93d 35572008-08-01 Bean <bean123ch@gmail.com>
3558
3559 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
3560 (bufio_mod_SOURCES): New macro.
3561 (bufio_mod_CFLAGS): Likewise.
3562 (bufio_mod_LDFLAGS): Likewise.
3563
3564 * include/grub/bufio.h: New file.
3565
3566 * io/bufio.c: Likewise.
3567
3568 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
3569 (grub_video_reader_png): Use grub_buffile_open to open file.
3570
3571 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
3572 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
3573
3574 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
3575 (grub_video_reader_tga): Use grub_buffile_open to open file.
3576
3577 * font/manager.c: Include <grub/bufio.h>.
3578 (add_font): Use grub_buffile_open to open file.
3579
3d8383e7 35802008-07-31 Robert Millan <rmh@aybabtu.com>
3581
3582 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
3583 ELF segments, use a macro for arbitrarily accessing any of them instead
3584 of preparing a pointer that allows access to one at a time.
3585 (grub_multiboot_load_elf64): Likewise.
3586
16e641b6 35872008-07-31 Bean <bean123ch@gmail.com>
3588
3589 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
3590 GRUB_KERNEL_MACHINE_DATA_END.
3591
59198b72 35922008-07-30 Robert Millan <rmh@aybabtu.com>
3593
3594 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
3595 Increase from 0x50 to 0x60.
3596 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
3597 use UUIDs to identify the root drive for them. If that's not
3598 possible, abort.
3599 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
3600 check, for cross-disk installs.
3601
ae88bca3 36022008-07-30 Robert Millan <rmh@aybabtu.com>
3603
3604 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
3605 is non-empty, use it to set the `prefix' environment variable instead
3606 of the usual approach.
3607 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
3608 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
3609 environment variable instead of dummy make_install_device().
3610
3611 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
3612 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 3613 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 3614
3615 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
3616 New variable reference.
3617 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
3618 New macro. Defines offset of `grub_prefix' within startup.S (relative
3619 to `start').
3620 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
3621 section within startup.S (relative to `start').
3622 * include/grub/i386/coreboot/kernel.h: Likewise.
3623
3624 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
3625 Overwrite grub_prefix with its contents, at the beginning of the
3626 first segment.
3627 (main): Understand -p|--prefix.
3628
14f41dd1 36292008-07-30 Robert Millan <rmh@aybabtu.com>
3630
3631 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
3632
4ca049a3 36332008-07-30 Robert Millan <rmh@aybabtu.com>
3634
3635 * term/i386/pc/vga_text.c (grub_console_cls): Use
3636 grub_console_gotoxy() to go back to beginning of the screen.
3637 Found by Patrick Georgi <patrick.georgi@coresystems.de>
3638
2921d337 36392008-07-29 Christian Franke <franke@computer.org>
3640
3641 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3642 Add conversion of emulated mount points on Cygwin.
3643
b609876d 36442008-07-29 Christian Franke <franke@computer.org>
3645
3646 * util/update-grub.in: Add a check for admin
3647 group on Cygwin.
3648 Remove old `grub.cfg.new' before creation.
3649 Add `-f' to `mv' to handle the different filesystem
3650 semantics of Windows.
3651
e93e4679 36522008-07-29 Bean <bean123ch@gmail.com>
3653
3654 * normal/main.c (get_line): Fix buffer overflow bug.
3655
41694fd0 36562008-07-28 Robert Millan <rmh@aybabtu.com>
3657
3658 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
3659 (struct grub_apple_header): New struct. Describes the layout of
3660 the partmap header.
3661 (apple_partition_map_iterate): Check the header magic as well as the
3662 partition magic (which was already being checked).
3663
cfd0b4e6 36642008-07-28 Pavel Roskin <proski@gnu.org>
3665
3666 * genmk.rb: Add a warning to the beginning of the output that
3667 it's a generated file and should not be edited.
3668
93cce016 36692008-07-28 Robert Millan <rmh@aybabtu.com>
3670
3671 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
3672 with the same number are found, just use issue a warning with
3673 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 3674
cd1df915 36752008-07-27 Robert Millan <rmh@aybabtu.com>
3676
3677 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
3678 information.
3679
b70a8427 36802008-07-27 Bean <bean123ch@gmail.com>
3681
3682 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
3683 (grub_fat_find_dir): Ignore case when comparing filename.
3684
8f5e379f 36852008-07-27 Bean <bean123ch@gmail.com>
3686
3687 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
3688 smallino, as it's more descriptive, and i8count can be confused with
3689 the other field count.
3690 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
3691 inode type.
3692
a85cd5a0 36932008-07-27 Bean <bean123ch@gmail.com>
3694
3695 * commands/crc.c: New file.
3696
3697 * lib/crc.c: Likewise.
3698
3699 * include/grub/lib/crc.h: Likewise.
3700
3701 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
3702
3703 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
3704 (hexdump): Move this function to ...
3705
3706 * lib/hexdump.c: ... here.
3707
3708 * include/grub/hexdump.h: Renamed to ...
3709
3710 * include/grub/lib/hexdump.h: ... this.
3711
3712 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
3713
3714 * util/grub-editenv.c: Likewise.
3715
3716 * include/envblk.h: Renamed to ...
3717
3718 * include/lib/envblk.h: ... this.
3719
3720 * util/envblk.c: Renamed to ...
3721
3722 * lib/envblk.c: ... this.
3723
3724 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
3725 lib/hexdump.c.
3726 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
3727 (pkglib_MODULES): Add crc.mod.
3728 (hexdump_mod_SOURCES): Add lib/hexdump.c.
3729 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
3730 (crc_mod_SOURCES): New macro.
3731 (crc_mod_CFLAGS): Likewise.
3732 (crc_mod_LDFLAGS): Likewise.
3733
3734 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
3735
3736 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3737
3738 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3739
3740 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3741
3742 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3743
c298def0 37442008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 3745
3746 * commands/help.c: Include <grub/term.h>.
3747 (TERM_WIDTH): Removed. Updated all users.
3748
cc349fb3 37492008-07-27 Pavel Roskin <proski@gnu.org>
3750
3751 * util/getroot.c (find_root_device): Rephrase a comment to avoid
3752 spurious warnings about a comment within a comment.
3753
9051607e 37542008-07-25 Robert Millan <rmh@aybabtu.com>
3755
3756 * util/getroot.c (find_root_device): Skip devices that match
3757 /dev/dm-[0-9]. This lets the real device be found for any type of
3758 abstraction (LVM, EVMS, RAID..).
3759 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
3760 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
3761 device is found first, find_root_device() will now skip it.
3762
01453bfc 37632008-07-24 Pavel Roskin <proski@gnu.org>
3764
3765 * include/grub/types.h: Use __builtin_bswap32() and
3766 __builtin_bswap64() with gcc 4.3 and newer.
3767
6af9849f 37682008-07-24 Christian Franke <franke@computer.org>
3769
3a0fa256 3770 * util/i386/pc/grub-install.in: If `--debug' is specified,
3771 pass `--verbose' to grub-setup.
3772 Abort script if make_system_path_relative_to_its_root() fails.
3773
7810e747 37742008-07-24 Bean <bean123ch@gmail.com>
3775
3776 * configure.ac: Fixed a bug caused by the previous cygwin patch,
3777 variable `target_platform' should be `platform'.
3778
42290e17 37792008-07-24 Bean <bean123ch@gmail.com>
3780
51cc5193 3781 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 3782 (grub_png_init_fixed_block): New function.
3783 (grub_png_decode_image_data): Handle fixed huffman code compression.
3784
2a8a80e4 37852008-07-24 Bean <bean123ch@gmail.com>
3786
3787 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
3788 (grub_pe2elf_SOURCES): New macro.
3789 (CLEANFILES): Add grub-pe2elf.
3790
3791 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
3792 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
3793 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
3794 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
3795 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
3796 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
3797 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
3798 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
3799 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
3800 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
3801 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
3802 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
3803 (GRUB_PE32_DT_FUNCTION): Likewise.
3804 (GRUB_PE32_REL_I386_DIR32): Likewise.
3805 (GRUB_PE32_REL_I386_REL32): Likewise.
3806 (grub_pe32_symbol): New structure.
3807 (grub_pe32_reloc): Likewise.
3808
3809 * util/grub-pe2elf.c: New file.
3810
3811 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
3812 start symbol in non pc platform.
3813
3814 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
3815
3816 The following patches are from Christian Franke.
3817
3818 * include/grub/dl.h: Remove .previous, gas supports this only
3819 for ELF format.
3820
3821 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
3822 Remove .type, gas supports this only for ELF format.
3823
3824 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
3825 nullbytes in symbol table. This fixes an infinite loop if table is
3826 zero filled.
3827
3828 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
3829 TARGET_IMG_LDFLAGS and EXEEXT.
3830
3831 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
3832 TARGET_IMG_LDFLAGS_AC.
3833 (grub_CHECK_STACK_ARG_PROBE): New function.
3834
3835 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
3836
3837 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
3838
3839 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
3840 to set TARGET_IMG_LD* accordingly.
3841 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
3842 Add call to grub_CHECK_STACK_ARG_PROBE.
3843 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
3844
3845 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
3846
3847 * genmk.rb: Add EXEEXT to CLEANFILES.
3848
12ccdb75 38492008-07-23 Robert Millan <rmh@aybabtu.com>
3850
3851 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
3852 define the codes for arrows and lines used for the menu).
3853 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
3854 as well.
3855
3856 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
3857 fonts, because the latter are too slow.
3858
18eeaf04 38592008-07-21 Bean <bean123ch@gmail.com>
3860
3861 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
3862 a20. Run keyboard test last, as it will cause macbook to halt.
3863
b095e2ad 38642008-07-18 Pavel Roskin <proski@gnu.org>
3865
3866 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
3867 load foreign architecture modules correctly anyway. Keep
3868 support for loading host architecture modules, whether we
3869 compile them or not.
3870
737feb35 38712008-07-17 Pavel Roskin <proski@gnu.org>
3872
3f4ce737 3873 * configure.ac: Use -m32 or -m64 regardless of whether we had to
3874 change target_cpu. The compiler default can mismatch target_cpu
3875 in any case.
3876
4ad2d049 3877 * disk/efi/efidisk.c: Fix format warnings on x86_64.
3878 * kern/efi/efi.c: Likewise.
3879
f6130a12 3880 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
3881 target compiler is functional.
3882 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
3883 are set up.
3884
58393a2d 3885 * configure.ac: Default to efi platform for x86_64-apple. Allow
3886 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
3887 adjustments from the rest, only do them if target is not
3888 explicitly given. Merge other adjustments with the final sanity
3889 check. Remove an extraneous check for supported CPU. Be
3890 specific which CPU and which platform is not supported.
3891
737feb35 3892 * configure.ac: Default to pc platform for x86_64.
3893
546f966a 38942008-07-17 Robert Millan <rmh@aybabtu.com>
3895
3896 Partial LinuxBIOS -> Coreboot rename.
3897
3898 * conf/i386-linuxbios.rmk: Renamed to ...
3899 * conf/i386-coreboot.rmk: ... this.
3900 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
3901 * configure.ac: Accept "coreboot" as input platform (but maintain
3902 compatibility with "linuxbios").
3903 * include/grub/i386/linuxbios: Renamed to ...
3904 * include/grub/i386/coreboot: ... this.
3905
20011694 39062008-07-17 Bean <bean123ch@gmail.com>
3907
3908 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 3909 (appleldr_mod_SOURCE): New variable.
20011694 3910 (appleldr_mod_CFLAGS): Likewise.
3911 (appleldr_mod_LDFLAGS): Likewise.
3912 (pci_mod_SOURCES): Likewise.
3913 (pci_mod_CFLAGS): Likewise.
3914 (pci_mod_LDFLAGS): Likewise.
3915 (lspci_mod_SOURCES): Likewise.
3916 (lspci_mod_CFLAGS): Likewise.
3917 (lspci_mod_LDFLAGS): Likewise.
3918
3919 * conf/x86_64-efi.rmk: New file.
3920
3921 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
3922 macro.
3923 (grub_efidisk_write): Likewise.
3924
3925 * include/efi/api.h (efi_call_0): New macro.
3926 (efi_call_1): Likewise.
3927 (efi_call_2): Likewise.
3928 (efi_call_3): Likewise.
3929 (efi_call_4): Likewise.
3930 (efi_call_5): Likewise.
3931 (efi_call_6): Likewise.
3932
3933 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
3934 grub_rescue_cmd_chainloader.
3935
3936 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
3937 (grub_pe32_optional_header): Change some fields based on i386 or
3938 x86_64 platform.
3939 (GRUB_PE32_PE32_MAGIC): Likewise.
3940
3941 * include/grub/efi/uga_draw.h: New file.
3942
3943 * include/grub/elf.h (STN_ABS): New constant.
3944 (R_X86_64_NONE): Relocation constant for x86_64.
3945 (R_X86_64_64): Likewise.
3946 (R_X86_64_PC32): Likewise.
3947 (R_X86_64_GOT32): Likewise.
3948 (R_X86_64_PLT32): Likewise.
3949 (R_X86_64_COPY): Likewise.
3950 (R_X86_64_GLOB_DAT): Likewise.
3951 (R_X86_64_JUMP_SLOT): Likewise.
3952 (R_X86_64_RELATIVE): Likewise.
3953 (R_X86_64_GOTPCREL): Likewise.
3954 (R_X86_64_32): Likewise.
3955 (R_X86_64_32S): Likewise.
3956 (R_X86_64_16): Likewise.
3957 (R_X86_64_PC16): Likewise.
3958 (R_X86_64_8): Likewise.
3959 (R_X86_64_PC8): Likewise.
3960
3961 * include/grub/i386/efi/pci.h: New file.
3962
3963 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
3964 Change it value based on platform.
3965 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
3966 (GRUB_E820_RAM): Likewise.
3967 (GRUB_E820_RESERVED): Likewise.
3968 (GRUB_E820_ACPI): Likewise.
3969 (GRUB_E820_NVS): Likewise.
3970 (GRUB_E820_EXEC_CODE): Likewise.
3971 (GRUB_E820_MAX_ENTRY): Likewise.
3972 (grub_e820_mmap): New structure.
3973 (linux_kernel_header): Change the efi field according to different
3974 kernel version, also field from linux_kernel_header.
3975
3976 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
3977
3978 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
3979 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
3980 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
3981 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
3982 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
3983 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
3984 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
3985 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
3986 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
3987 (GRUB_PCI_ADDR_IO_MASK): Likewise.
3988
3989 * include/grub/x86_64/efi/kernel.h: New file.
3990
3991 * include/grub/x86_64/efi/loader.h: Likewise.
3992
3993 * include/grub/x86_64/efi/machine.h: Likewise.
3994
3995 * include/grub/x86_64/efi/pci.h: Likewise.
3996
3997 * include/grub/x86_64/efi/time.h: Likewise.
3998
3999 * include/grub/x86_64/linux.h: Likewise.
4000
4001 * include/grub/x86_64/setjmp.h: Likewise.
4002
4003 * include/grub/x86_64/time.h: Likewise.
4004
4005 * include/grub/x86_64/types.h: Likewise.
4006
4007 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
4008 GRUB_TARGET_SIZEOF_VOID_P.
4009
4010 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
4011 (grub_efi_locate_handle): Likewise.
4012 (grub_efi_open_protocol): Likewise.
4013 (grub_efi_set_text_mode): Likewise.
4014 (grub_efi_stall): Likewise.
4015 (grub_exit): Likewise.
4016 (grub_reboot): Likewise.
4017 (grub_halt): Likewise.
4018 (grub_efi_exit_boot_services): Likewise.
4019 (grub_get_rtc): Likewise.
4020
4021 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
4022 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
4023 (grub_efi_allocate_pages): Wrap efi calls.
4024 (grub_efi_free_pages): Wrap efi calls.
4025 (grub_efi_get_memory_map): Wrap efi calls.
4026
4027 * kern/x86_64/dl.c: New file.
4028
4029 * kern/x86_64/efi/callwrap.S: Likewise.
4030
4031 * kern/x86_64/efi/startup.S: Likewise.
4032
4033 * loader/efi/appleloader.c: Likewise.
4034
4035 * loader/efi/chainloader.c (cmdline): New variable.
4036 (grub_chainloader_unload): Wrap efi calls.
4037 (grub_chainloader_boot): Likewise.
4038 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
4039 command line.
4040
4041 * loader/efi/chainloader_normal.c (chainloader_command):
4042 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
4043 command line.
4044
4045 * loader/i386/efi/linux.c (allocate_pages): Change allocation
4046 method.
4047 (grub_e820_add_region): New function.
4048 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
4049 booting.
4050 (grub_find_video_card): New function.
4051 (grub_linux_setup_video): New function.
4052 (grub_rescue_cmd_linux): Probe for video information.
4053
4054 * normal/x86_64/setjmp.S: New file.
4055
4056 * term/efi/console.c (map_char): New function.
4057 (grub_console_putchar): Map unicode char.
4058 (grub_console_checkkey): Wrap efi calls.
4059 (grub_console_getkey): Likewise.
4060 (grub_console_getwh): Likewise.
4061 (grub_console_gotoxy): Likewise.
4062 (grub_console_cls): Likewise.
4063 (grub_console_setcolorstate): Likewise.
4064 (grub_console_setcursor): Likewise.
4065
4066 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
4067
59652a20 40682008-07-16 Pavel Roskin <proski@gnu.org>
4069
ef294055 4070 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
4071 format strings.
4072
59652a20 4073 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
4074 pointer, not an integer. This fixes a warning and prevents
4075 precision loss on 64-bit systems.
4076 (relocate_addresses): Remove unneeded cast.
4077
afc3b5d7 40782008-07-15 Pavel Roskin <proski@gnu.org>
4079
506b2b3e 4080 * kern/i386/ieee1275/init.c: Include grub/cache.h.
4081
62ead89c 4082 * term/ieee1275/ofconsole.c: Disable code unused on i386.
4083
c4cd51d7 4084 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
4085 Fix comparison between signed and unsigned.
4086
0d3d8f28 4087 * include/grub/i386/ieee1275/console.h: Declare
4088 grub_console_init() and grub_console_fini().
4089
8804b286 4090 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
4091 It's empty and unused.
4092
ee01cf35 4093 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
4094 beginning to avoid warnings with some compilers.
4095
afc3b5d7 4096 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
4097 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
4098
e4e8eaa5 40992008-07-14 Pavel Roskin <proski@gnu.org>
4100
407aceb4 4101 * kern/env.c (grub_register_variable_hook): Don't copy empty
4102 string, it leaks memory. Pass "" to grub_env_set(), it should
4103 handle constant strings.
4104
e4e8eaa5 4105 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
4106 * commands/cmp.c (grub_cmd_cmp): Likewise.
4107 * kern/dl.c (grub_dl_flush_cache): Likewise.
4108 (grub_dl_load_core): Likewise.
4109 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
4110 (grub_elf64_load_phdrs): Likewise.
4111
d4e2dad3 41122008-07-13 Pavel Roskin <proski@gnu.org>
4113
4114 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
4115 between signed and unsigned.
4116 (LzmaEnc_Finish): Fix warning about an unused parameter.
4117
aa24b516 41182008-07-13 Bean <bean123ch@gmail.com>
4119
4120 * Makefile.in (enable_lzo): New rule.
4121
4122 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
4123
4124 * configure.ac (ENABLE_LZO): New option --enable-lzo.
4125
4126 * boot/i386/pc/lnxboot.S: #include <config.h>.
4127
4128 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 4129 its value according to the compression algorithm used, lzo or lzma.
aa24b516 4130
4131 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
4132 compression algorithm according to configure macro.
4133
4134 * kern/i386/pc/startup.S (codestart): Likewise.
4135
4136 * kern/i386/pc/lzma_decode.S: New file.
4137
4138 * include/grub/lib/LzFind.h: Likewise.
4139
4140 * include/grub/lib/LzHash.h: Likewise.
4141
4142 * include/grub/lib/LzmaDec.h: Likewise.
4143
4144 * include/grub/lib/LzmaEnc.h: Likewise.
4145
4146 * include/grub/lib/LzmaTypes.h: Likewise.
4147
4148 * lib/LzFind.c: Likewise.
4149
4150 * lib/LzmaDec.c: Likewise.
4151
4152 * lib/LzmaEnc.c: Likewise.
4153
4ae821ac 41542008-07-13 Bean <bean123ch@gmail.com>
4155
4156 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
4157 (grub_ext4_extent_header): New structure.
4158 (grub_ext4_extent): Likewise.
4159 (grub_ext4_extent_idx): Likewise.
4160 (grub_ext4_find_leaf): New function.
4161 (grub_ext2_read_block): Handle extents.
4162
9a745147 41632008-07-12 Robert Millan <rmh@aybabtu.com>
4164
4165 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
4166
d49a4cf6 41672008-07-11 Robert Millan <rmh@aybabtu.com>
4168
4169 * util/grub.d/40_custom.in: New file. Example on how to add custom
4170 entries to /etc/grub.d.
4171 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
4172 40_custom (implicitly, by merging all the grub.d rules).
4173
947414b4 41742008-07-11 Pavel Roskin <proski@gnu.org>
4175
0059cf6f 4176 * commands/read.c (grub_getline): Fix invalid memory access.
4177 Don't add newline to the variable value.
4178
947414b4 4179 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
4180 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
4181 (serial_hw_get_port): Check validity of the port number.
4182 (grub_cmd_serial): Check return value of serial_hw_get_port().
4183
62a02d00 41842008-07-07 Pavel Roskin <proski@gnu.org>
4185
4186 * boot/i386/pc/diskboot.S (notification_string): Replace
4187 "Loading kernel" with just "loading". This is shorter, less
4188 confusing and saves a few bytes for possible future changes.
4189
3e5581b0 41902008-07-05 Pavel Roskin <proski@gnu.org>
4191
ea387a48 4192 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
4193 size for ATAPI devices, they are undefined. Output sector
4194 number in decimal form.
4195
3e5581b0 4196 * disk/ata.c: Use named constants for status bits.
4197
fdecb8fd 41982008-07-04 Pavel Roskin <proski@gnu.org>
4199
bcd35b90 4200 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
4201 grub_addr_t before casting it to the void pointer to fix a
4202 warning. Non-addressable regions are discarded earlier.
4203 (grub_arch_modules_addr): Cast _end to grub_addr_t.
4204 * kern/i386/linuxbios/table.c: Include grub/misc.h.
4205 (check_signature): Don't shadow table_header.
4206 (grub_linuxbios_table_iterate): Cast numeric constants to
4207 grub_linuxbios_table_header_t.
4208 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
4209 grub_stop().
4210
af58ab3d 4211 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
4212 prevent warnings.
4213
1759aa57 4214 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
4215 pointer, which can cause warnings. Support 64-bit addresses.
4216
fdecb8fd 4217 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
4218 of sizeof(long). This fixes PowerPC image generation on x86_64.
4219
8516d2a8 42202008-07-04 Robert Millan <rmh@aybabtu.com>
4221
4222 This fixes a performance issue when pc & gpt partmap iterators
4223 didn't abort iteration even after our hook found what it was
fe987087 4224 looking for (often causing expensive probes of non-existent drives).
8516d2a8 4225
4226 Some callers relied on previous buggy behaviour, since they would
34c44600 4227 raise an error when their own hooks caused early abortion of its
8516d2a8 4228 iteration.
4229
4230 * kern/device.c (grub_device_open): Improve error message.
4231 * disk/lvm.c (grub_lvm_open): Likewise.
4232 * disk/raid.c (grub_raid_open): Likewise.
4233
4234 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
4235 when hook requests it, independently of grub_errno.
4236 (pc_partition_map_probe): Do not fail when find_func() caused
4237 early abortion of pc_partition_map_iterate().
4238
4239 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
4240 when hook requests it, independently of grub_errno.
4241 (gpt_partition_map_probe): Do not fail when find_func() caused
4242 early abortion of gpt_partition_map_iterate().
4243
4244 * kern/partition.c (grub_partition_iterate): Abort parent iteration
4245 when hook requests it, independently of grub_errno. Do not fail when
4246 part_map_iterate_hook() caused early abortion of p->iterate().
4247
4248 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
4249 when grub_partition_iterate() returned with non-zero.
4250
277d0de9 42512008-07-03 Pavel Roskin <proski@gnu.org>
4252
4253 * disk/ata.c (grub_ata_pio_write): Check status before writing,
4254 like we do in grub_ata_pio_read().
4255 (grub_ata_readwrite): Always write individual sectors. Fix the
4256 sector count for the remainder.
4257 (grub_ata_write): Enable writing to ATA devices. Correctly
4258 report error for ATAPI devices.
4259
d4c9b428 42602008-07-02 Pavel Roskin <proski@gnu.org>
4261
e43fc690 4262 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
4263 warning.
4264
f707af42 4265 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
4266 for every read sector, we already increment it for the whole
4267 batch. This fixes reading more than 256 sectors at once.
4268
11e16b15 4269 * util/grub-editenv.c (cmd_info): Cast argument to long
4270 explicitly. ptrdiff_t reduces to int on i386.
4271
cbabfdd4 4272 * util/grub-editenv.c (main): Be specific which parameter is
4273 missing.
4274
b8fbce0a 4275 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
4276 (memdisk): Make memdisk_orig_addr a pointer.
4277
c9c8e606 4278 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
4279 for file offsets, use grub_off_t instead. Fix printf format
4280 warnings.
4281
ca62e598 4282 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
4283 there. Real unexpected warnings should not drown in the noise
4284 about known problems.
4285
ce8d1766 4286 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
4287 grub_disk_addr_t for memory addresses.
4288
00c7a56a 4289 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
4290 explicitly to fix a warning.
4291
08d3ef09 4292 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
4293
cb71ba20 4294 * Makefile.in (MODULE_LDFLAGS): New variable.
4295 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
4296 the linker accepts --build-id=none.
4297 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
4298 MODULE_LDFLAGS.
4299 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
4300
d4c9b428 4301 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
4302 those in Linux XFS code. Provide a way to access 64-bit parent
4303 inode.
4304 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
4305 the end of struct grub_xfs_dir_header.
4306
d4156eee 43072008-07-02 Bean <bean123ch@gmail.com>
4308
4309 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
4310 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4311 and GRUB_IEEE1275_FLAG_NO_ANSI.
4312
4313 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
4314 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4315 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
4316
4317 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
4318 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
4319
4320 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
4321 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
4322
4323 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
4324 esc sequence on non ANSI terminal.
4325 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
4326
4327 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
4328 beginning of file.
4329
2270f77b 43302008-07-02 Bean <bean123ch@gmail.com>
4331
4332 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
4333 (grub_editenv_SOURCES): New variable.
4334 (pkglib_MODULES): Add loadenv.mod.
4335 (loadenv_mod_SOURCES): New variable.
4336 (loadenv_mod_CFLAGS): Likewise.
4337 (loadenv_mod_LDFLAGS): Likewise.
4338
4339 * include/grub/envblk.h: New file.
4340
4341 * util/envblk.c: New file.
4342
4343 * util/grub-editenv.c: New file.
4344
4345 * commands/loadenv.c: New file.
4346
0e9e51ec 43472008-07-01 Pavel Roskin <proski@gnu.org>
4348
d89b7634 4349 * include/multiboot2.h (struct multiboot_tag_module): Use char,
4350 not unsigned char. This fixes warnings and is consistent with
4351 other tags.
4352
bf1835b1 4353 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
4354
8222a04b 4355 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
4356
6a42d99d 4357 * term/tparm.c (analyze): Always set *popcount.
4358
10b159d1 4359 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
4360 cast to fix a warning.
4361
b8789f6c 4362 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
4363 cast to suppress a warning.
4364
29d7e38a 4365 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
4366 grub_fshelp_read_file() expects.
4367
f341f669 4368 * fs/fat.c: Fix UUID calculation on big-endian systems. We
4369 write uuid as a 32-bit value in CPU byte order, so declare and
4370 use it as such.
4371
0e9e51ec 4372 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
4373 long if the format specifier expects it.
4374 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
4375 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4376 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
4377 long to fix a warning.
4378 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
4379 grub_dprintf() arguments to fix warnings.
4380
3aefa857 43812008-06-30 Pavel Roskin <proski@gnu.org>
4382
56c7668b 4383 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
4384 install_bsd_part immediately before core.img is embedded or
4385 modified on disk. This fixes core.img verification if core.img
4386 cannot be embedded.
4387
3aefa857 4388 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
4389 core_path to calculate the blocklist.
4390 Patch from Javier Martín <lordhabbit@gmail.com>
4391
5444088d 43922008-06-29 Robert Millan <rmh@aybabtu.com>
4393
4394 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
4395 block to disk block.
4396 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
4397 Patch from Niels Böhm <bitbucket@arcor.de>
4398
674835c8 43992008-06-29 Robert Millan <rmh@aybabtu.com>
4400
4401 * util/update-grub_lib.in (font_path): Search for fonts in
4402 /boot/grub first, which is more likely to be readable (we aren't
4403 deciding where fonts live, just looking for them).
4404
f527dbc8 44052008-06-26 Pavel Roskin <proski@gnu.org>
4406
6c2d8df6 4407 * util/biosdisk.c (read_device_map): Don't leave dead map
4408 entries for devices failing stat() check.
4409
f527dbc8 4410 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
4411 core_path_dev for the core.img path on the target device.
4412
aebe3d13 44132008-06-26 Robert Millan <rmh@aybabtu.com>
4414
4415 * disk/fs_uuid.c: New file.
4416 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
4417 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
4418 (fs_uuid_mod_LDFLAGS): New variables.
4419 * include/grub/disk.h (grub_disk_dev_id): Add
4420 `GRUB_DISK_DEVICE_UUID_ID'.
4421 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
4422 implement iterate().
4423
37aaf354 44242008-06-26 Robert Millan <rmh@aybabtu.com>
4425
4426 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
4427 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
4428 Linux image includes no initrd.
4429
25ff262a 44302008-06-21 Javier Martín <lordhabbit@gmail.com>
4431
4432 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
4433 call to resolve the core image location that effectively appended the
4434 name twice.
4435
76a2bd44 44362008-06-21 Robert Millan <rmh@aybabtu.com>
4437
4438 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
4439 call from here ...
4440
4441 * util/grub.d/10_hurd.in: ... to here ...
4442 * util/grub.d/10_linux.in: ... and here.
4443
650e1c79 44442008-06-19 Robert Millan <rmh@aybabtu.com>
4445
fe987087 4446 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 4447 after it has been set by grub_machine_set_prefix().
4448
6ce63911 44492008-06-19 Robert Millan <rmh@aybabtu.com>
4450
4451 * commands/search.c (search_label, search_fs_uuid, search_file): Print
4452 search result when not saving to variable, not the other way around.
4453 When saving to variable, abort iteration as soon as a match is found.
4454
73940cec 44552008-06-19 Robert Millan <rmh@aybabtu.com>
4456
4457 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
4458 check for partition that provides /boot/grub. Its logic is flawed,
4459 as it prevents prepare_grub_to_access_device() from being called
4460 multiple times.
4461
3c62a39d 44622008-06-19 Robert Millan <rmh@aybabtu.com>
4463
4464 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
4465 "insmod" command directly when abstraction modules are needed,
fe987087 4466 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 4467 since it had already been processed).
4468
47395a42 44692008-06-19 Pavel Roskin <proski@gnu.org>
4470
4471 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
4472 changed. This is needed in case GRUB_LIBDIR changes.
4473 * conf/i386-ieee1275.rmk: Likewise.
4474 * conf/i386-linuxbios.rmk: Likewise.
4475 * conf/i386-pc.rmk: Likewise.
4476 * conf/powerpc-ieee1275.rmk: Likewise.
4477
a145ac2d 44782008-06-18 Pavel Roskin <proski@gnu.org>
4479
4480 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
4481 kernel_elf_symlist.c to symlist.c for consistency with other
4482 architectures. Update all users.
4483 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
4484
7847c51e 44852008-06-18 Robert Millan <rmh@aybabtu.com>
4486
4487 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
4488 it in prefix.
4489
4490 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
4491 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
4492 a RAID device, run setup() for all members independently on whether
4493 LVM abstraction is being used.
4494 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
4495 If grub-mkimage has set `*install_dos_part == -2', don't override this
4496 value.
4497 Perform *install_dos_part adjustments independently on whether
4498 we're embedding or not.
4499 Clarify error message when image is too big for embedding.
4500 Remove duplicate *install_dos_part stanza.
4501
b23e5644 45022008-06-17 Robert Millan <rmh@aybabtu.com>
4503
4504 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
4505 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
4506 variables.
4507 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
4508 values in grub_ofconsole_normal_color and
4509 grub_ofconsole_highlight_color (they're not directly related to
4510 background and foreground).
4511 (grub_ofconsole_setcolorstate): Extract background and foreground
4512 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
4513
0aac2f79 45142008-06-17 Robert Millan <rmh@aybabtu.com>
4515
4516 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
4517 /boot/grub for the check in last commit, not /boot (they could be
4518 different partitions).
4519
3cca7ef3 45202008-06-16 Robert Millan <rmh@aybabtu.com>
4521
4522 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
4523 asked to setup access for the same partition that provides /boot,
4524 don't bother using UUIDs since our root already has the value we
4525 want.
4526
347396d8 45272008-06-16 Robert Millan <rmh@aybabtu.com>
4528
4529 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
4530 I2O devices.
4531 Patch from Sven Mueller <sven@debian.org>.
4532
991477f8 45332008-06-16 Robert Millan <rmh@aybabtu.com>
4534
4535 * util/update-grub.in: Check for $EUID instead of $UID.
4536 Reported by Vincent Zweije.
4537
d31a32a1 45382008-06-16 Bean <bean123ch@gmail.com>
4539
fe987087 4540 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 4541 (grub_ext2_read_block): Likewise.
4542 (grub_ext2_read_inode): Likewise.
4543 (grub_ext2_mount): Likewise.
4544 (grub_ext2_close): Likewise.
4545 (grub_ext3_get_journal): Removed.
4546
fe987087 4547 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 4548 (grub_reiserfs_read_symlink): Likewise.
4549 (grub_reiserfs_mount): Likewise.
4550 (grub_reiserfs_open): Likewise.
4551 (grub_reiserfs_read): Likewise.
4552 (grub_reiserfs_close): Likewise.
4553 (grub_reiserfs_get_journal): Removed.
4554
4555 * fs/fshelp.c (grub_fshelp_read): Removed.
4556 (grub_fshelp_map_block): Likewise.
4557
4558 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
4559 (grub_fshelp_journal): Likewise.
4560 (grub_fshelp_read): Likewise.
4561 (grub_fshelp_map_block): Likewise.
4562
3540a760 45632008-06-16 Pavel Roskin <proski@gnu.org>
4564
4565 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
4566 floating point anymore.
4567 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
4568
95614c84 45692008-06-15 Pavel Roskin <proski@gnu.org>
4570
4571 * commands/ls.c (grub_ls_list_files): Use integer calculations
4572 for human readable format, avoid floating point use.
4573 * kern/misc.c (grub_ftoa): Remove.
4574 (grub_vsprintf): Remove floating point support.
4575
50465dd6 45762008-06-15 Robert Millan <rmh@aybabtu.com>
4577
fe6b695a 4578 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 4579 devices.
4580 Reported by Max Vozeler.
4581
a9207284 45822008-06-15 Robert Millan <rmh@aybabtu.com>
4583
4584 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
4585 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
4586 skipped later.
4587 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
4588 the beginning of the prefix.
4589
4590 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
4591 It is assumed that if we have a memdisk, grub-mkimage has set
4592 grub_prefix to include the "(memdisk)" drive in it.
4593
a7cbd45a 45942008-06-15 Robert Millan <rmh@aybabtu.com>
4595
4596 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
4597 Initialize keyboard controller after registering the terminal, so that
4598 grub_printf() can be called from grub_keyboard_controller_init().
4599
21cf716a 46002008-06-15 Robert Millan <rmh@aybabtu.com>
4601
4602 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
4603 extent-btree which is written as big endian on disk.
4604 Reported by Alain Greppin <al@chilibi.org>.
4605
23a64d8e 46062008-06-14 Robert Millan <rmh@aybabtu.com>
4607
4608 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
4609 * util/i386/pc/grub-install.in (modules): Likewise.
4610
d687651c 46112008-06-13 Pavel Roskin <proski@gnu.org>
4612
4613 * commands/ls.c (grub_ls_list_files): Fix format warnings.
4614
dfe9ddd4 46152008-06-13 Bean <bean123ch@gmail.com>
4616
4617 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
4618
4619 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
4620
4621 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
4622 to indicate sparse block.
4623
16ae7781 46242008-06-12 Pavel Roskin <proski@gnu.org>
4625
e6d1a308 4626 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
4627 number, grub_fshelp_read() does it for us.
4628
16ae7781 4629 * fs/fshelp.c (grub_fshelp_read): New function. Implement
4630 linear disk read with journal translation.
4631 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
4632 * include/grub/fshelp.h: Declare grub_fshelp_read().
4633
40fd3a2b 46342008-06-09 Pavel Roskin <proski@gnu.org>
4635
4636 * fs/minix.c (grub_minix_mount): Handle error reading
4637 superblock.
4638
f5679726 46392008-06-08 Robert Millan <rmh@aybabtu.com>
4640
4641 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
4642 don't append the RAID prefix afterwards.
4643 Reported by Clint Adams.
4644
ce525529 46452008-06-08 Robert Millan <rmh@aybabtu.com>
4646
4647 Based on description from Pavel:
4648 * kern/disk.c (grub_disk_check_range): Rename to ...
4649 (grub_disk_adjust_range): ... this. Add a comment explaining the
4650 tasks performed by this function.
4651
ad4936a0 46522008-06-08 Robert Millan <rmh@aybabtu.com>
4653
4654 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
4655 `num_serial' (for consistency with other variables).
4656 (struct grub_ntfs_data): Add `uuid' member.
4657 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
4658 (grub_ntfs_uuid): New function.
4659 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
4660
dc20b0f9 46612008-06-07 Pavel Roskin <proski@gnu.org>
4662
4663 * util/biosdisk.c (open_device): Revert last change to the
4664 function, it broke installation. The sector needs to be
4665 different dependent on which device is opened.
4666
c5e3cfba 46672008-06-06 Robert Millan <rmh@aybabtu.com>
4668
4669 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
4670 rest of GRUB, and breakage doesn't happen if its value were modified.
4671
4672 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
4673 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
4674 a constant (same value).
4675 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
4676 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
4677
26a1f8c4 46782008-06-06 Robert Millan <rmh@aybabtu.com>
4679
4680 * util/biosdisk.c (open_device): Do not modify sector offset when
4681 accessing a partition. kern/disk.c already handles this for us.
4682
25d6b327 46832008-06-06 Robert Millan <rmh@aybabtu.com>
4684
4685 * util/grub-emu.c (grub_machine_init): Move code in this function from
4686 here ...
4687 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
4688 segfault in case grub_printf() is called).
4689
4690 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
4691 grub_probe. Update all users not to explicitly add it again.
4692 (grub_device): New variable; contains corresponding device for grubdir.
4693 (fs_module, partmap_module, devabstraction_module): Pass
4694 `--device ${grub_device}' to grub_probe to avoid traversing /dev
4695 every time.
4696
9ece62fb 46972008-06-05 Robert Millan <rmh@aybabtu.com>
4698
4699 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
4700 is found, print it (same layout as with labels).
4701
1ad36d37 47022008-06-04 Robert Millan <rmh@aybabtu.com>
4703
4704 * util/biosdisk.c (get_drive): Rename to ...
4705 (find_grub_drive): ... this. Update all users.
4706
4707 (get_os_disk): Rename to ...
4708 (convert_system_partition_to_system_disk): ... this. Update all users.
4709
4710 (find_drive): Rename to ...
4711 (find_system_device): ... this. Update all users.
4712
e6a30859 47132008-06-04 Robert Millan <rmh@aybabtu.com>
4714
4715 * util/biosdisk.c (get_os_disk): Handle IDA devices.
4716 * util/grub-mkdevicemap.c (get_mmc_disk_name)
4717 (make_device_map): Likewise.
4718
00c108a4 47192008-06-01 Robert Millan <rmh@aybabtu.com>
4720
4721 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
4722 before dereferencing it.
4723
4724 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
4725 union with fat12/fat16-specific ones. Add some new fields, including
4726 `num_serial' for both versions.
4727 (struct grub_fat_data): Add `uuid' member.
4728 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
4729 names. Initialize `data->uuid' using `num_serial'.
4730 (grub_fat_uuid): New function.
4731 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
4732
4733 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
4734 (grub_reiserfs_uuid): New function.
4735 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
4736 member.
4737
4738 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
4739 (grub_xfs_uuid): New function.
4740 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
4741
1385c5bb 47422008-06-01 Robert Millan <rmh@aybabtu.com>
4743
4744 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
4745 code that is backward compatible with pre-uuid search command.
4746
c682dfd7 47472008-05-31 Robert Millan <rmh@aybabtu.com>
4748
4749 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
4750 floppies after everything else, to ensure floppy drive isn't accessed
4751 unnecessarily (patch from Bean).
4752
b7db5d47 47532008-05-31 Robert Millan <rmh@aybabtu.com>
4754
4755 * commands/search.c (search_label, search_fs_uuid, search_file): Do
4756 not print device names when we were asked to set a variable.
4757
6e037aa9 47582008-05-31 Robert Millan <rmh@aybabtu.com>
4759
4760 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
4761 using "cursor-on" and "cursor-off" commands (understood at least by
4762 the Open Firmware flavour on OLPC).
4763
41305bc8 47642008-05-31 Michael Gorven <michael@gorven.za.net>
4765
4766 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
4767 on and off sequences.
4768
69ba137e 47692008-05-31 Robert Millan <rmh@aybabtu.com>
4770
4771 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
4772 * util/update-grub.in: Likewise.
4773
520ae21b 47742008-05-30 Pavel Roskin <proski@gnu.org>
4775
4776 * util/biosdisk.c (linux_find_partition): Simplify logic and
4777 make the code more universal. Keep special processing for
4778 devfs, but use a simple rule for all other devices. If the
4779 device ends with a number, append 'p' and the partition number.
4780 Otherwise, append only the partition number.
4781
5786569b 47822008-05-30 Robert Millan <rmh@aybabtu.com>
4783
4784 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
4785 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
4786 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
4787 the `root' parameter to Linux.
4788
51500452 47892008-05-30 Robert Millan <rmh@aybabtu.com>
4790
4791 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
4792 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
4793 --fs_uuid with --fs-uuid.
4794 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
4795 all filesystems support them).
4796
811d3878 47972008-05-30 Robert Millan <rmh@aybabtu.com>
4798
4799 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 4800 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 4801
cab63c95 48022008-05-30 Robert Millan <rmh@aybabtu.com>
4803
4804 * util/grub.d/00_header.in: Remove obsolete comment referencing
4805 convert_system_path_to_grub_path().
4806 * util/update-grub.in: Likewise.
4807 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
4808 (convert_system_path_to_grub_path): Add a warning message explaining
4809 that this function is deprecated. Rely on is_path_readable_by_grub()
4810 for the readability checks.
4811 (font_path): Use is_path_readable_by_grub() for the readability
4812 check rather than convert_system_path_to_grub_path().
4813
972e2f7a 48142008-05-30 Robert Millan <rmh@aybabtu.com>
4815
4816 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
4817 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
4818 converting it first.
4819 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
4820 grub.cfg for access to font file, and afterwards call it again to set
4821 the root device.
4822
62191274 48232008-05-30 Robert Millan <rmh@aybabtu.com>
4824
4825 * commands/search.c (options): Add --fs_uuid option.
4826 (search_fs_uuid): New function.
4827 (grub_cmd_search): Fix --set argument passing.
4828 Use search_fs_uuid() when requested via --fs_uuid.
4829 (grub_search_init): Update help message.
4830 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
4831 and redeclare it as an array of 16-bit words.
4832 (grub_ext2_uuid): New function.
4833 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
4834 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
4835 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
4836 (GRUB_DEVICE_BOOT_UUID): New variables.
4837 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
4838 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
4839 whenever possible.
4840 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
4841 just assume `root' variable has the right value.
4842 * util/grub.d/10_linux.in: Likewise.
4843 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
4844 via PRINT_FS_UUID.
4845 (main): Recognise `-t fs_uuid' argument.
4846
01b73ec8 48472008-05-30 Robert Millan <rmh@aybabtu.com>
4848
4849 * util/biosdisk.c (map): Redefine structure to hold information
4850 about GRUB drive name.
fe6b695a 4851 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 4852 drive names.
4853 (call_hook): Remove.
4854 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
4855 member. Assume drive has partitions.
4856 (grub_util_biosdisk_open): Access device names via `.device' struct
4857 member.
4858 (open_device): Likewise.
4859 (find_drive): Likewise.
4860 (read_device_map): Adjust map[] usage to match the new struct
4861 definition. Don't check for duplicates (still possible, but not cheap
4862 anymore).
4863 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
4864 (make_device_name): Remove assumption of BIOS-like drive names.
4865
22f16596 48662008-05-30 Pavel Roskin <proski@gnu.org>
4867
4868 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
4869 compiling execute.c doesn't need grub_script.tab.h anymore.
4870 (normal/command.c_DEPENDENCIES): Likewise.
4871 (normal/function.c_DEPENDENCIES): Likewise.
4872 * conf/i386-ieee1275.rmk: Likewise.
4873 * conf/i386-linuxbios.rmk: Likewise.
4874 * conf/i386-pc.rmk: Likewise.
4875 * conf/powerpc-ieee1275.rmk: Likewise.
4876 * conf/sparc64-ieee1275.rmk: Likewise.
4877
528ad8f2 48782008-05-29 Pavel Roskin <proski@gnu.org>
4879
d1dff95d 4880 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
4881 when scanning metadata for volume group name.
4882
528ad8f2 4883 * include/grub/script.h: Don't include grub_script.tab.h. It's
4884 a generated file, which may only be included from the files with
4885 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
4886 use union YYSTYPE, as the later allows forward declaration.
4887 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
4888
47248e08 48892008-05-29 Robert Millan <rmh@aybabtu.com>
4890
4891 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
4892 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
4893 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
4894 (grub_console_checkkey): Add grub_dprintf() call to report unknown
4895 scan codes.
4896
ee632529 48972008-05-29 Robert Millan <rmh@aybabtu.com>
4898
4899 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
4900 control key combinations.
4901
eee96e08 49022008-05-29 Robert Millan <rmh@aybabtu.com>
4903
4904 * util/powerpc/ieee1275/grub-install.in: Move from here ...
4905 * util/ieee1275/grub-install.in: ... to here.
4906 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
4907 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
4908 (grub_install_SOURCES): Likewise.
4909
da9a6a94 49102008-05-29 Robert Millan <rmh@aybabtu.com>
4911
4912 * fs/affs.c: Update copyright year.
4913 * fs/ext2.c: Likewise.
4914 * fs/fshelp.c: Likewise.
4915 * fs/hfsplus.c: Likewise.
4916 * fs/ntfs.c: Likewise.
4917 * fs/xfs.c: Likewise.
4918 * include/grub/fshelp.h: Likewise.
4919 * util/grub-mkdevicemap.c: Likewise.
4920
12e65f3a 49212008-05-28 Robert Millan <rmh@aybabtu.com>
4922
4923 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
4924 might need to be fatfs to support some firmware implementations
4925 (e.g. OFW or EFI).
4926
23023641 49272008-05-28 Robert Millan <rmh@aybabtu.com>
4928
4929 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
4930 devices.
4931 * util/grub-mkdevicemap.c (get_mmc_disk_name)
4932 (make_device_map): Likewise.
4933
887d2619 49342008-05-20 Bean <bean123ch@gmail.com>
4935
4936 * fs/fshelp.c (grub_fshelp_map_block): New function.
4937 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
4938 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
4939
4940 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
4941 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
4942 (grub_fshelp_journal): New structure.
4943 (grub_fshelp_map_block): New function prototype.
4944 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
4945 (grub_fshelp_map_block): Likewise.
4946
4947 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
4948 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
4949 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
4950 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
4951 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
4952 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
4953 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
4954 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
4955 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
4956 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
4957 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
4958 (grub_ext2_sblock): New members for journal support.
4959 (grub_ext3_journal_header): New structure.
4960 (grub_ext3_journal_revoke_header): Likewise.
4961 (grub_ext3_journal_block_tag): Likewise.
4962 (grub_ext3_journal_sblock): Likewise.
4963 (grub_fshelp_node): New members logfile and journal.
4964 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
4965 grub_fshelp_map_block to get real block number.
4966 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
4967 number.
4968 (grub_ext2_read_inode): Likewise.
4969 (grub_ext3_get_journal): New function.
4970 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
4971 (grub_ext2_close): Release memory used by journal.
4972
4973 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
4974 (REISERFS_MAGIC_DESC_BLOCK): New macro.
4975 (grub_reiserfs_transaction_header): Renamed to
4976 grub_reiserfs_description_block, replace field data with real_blocks.
4977 (grub_reiserfs_commit_block): New structure.
4978 (grub_reiserfs_data): New member journal.
4979 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
4980 number.
4981 (grub_reiserfs_read_symlink): Likewise.
4982 (grub_reiserfs_iterate_dir): Likewise.
4983 (grub_reiserfs_open): Likewise.
4984 (grub_reiserfs_read): Likewise.
4985 (grub_reiserfs_get_journal): New function.
4986 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
4987 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
4988 using grub_reiserfs_get_journal.
4989 (grub_reiserfs_close): Release memory used by journal.
4990
4991 * fs/affs.c (grub_affs_read_block): Change block type to
4992 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
4993
4994 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
4995
4996 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
4997
4998 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
4999
5000 * fs/udf.c (grub_udf_read_block): Change block type to
5001 grub_disk_addr_t. Use type cast to avoid warning.
5002
5003 * fs/xfs.c (grub_xfs_read_block): Likewise.
5004
b7c6bed5 50052008-05-16 Christian Franke <franke@computer.org>
5006
5007 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
5008 to ensure that break with ESC will always work.
5009 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
5010 Remove ESC from keyboard queue.
5011
eedf167f 50122008-05-16 Christian Franke <franke@computer.org>
5013
5014 * util/biosdisk.c: [__CYGWIN__] Add includes.
5015 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
5016 (get_os_disk): Move variable declarations to OS specific
5017 parts to avoid warning.
5018 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
5019 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
5020 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
5021 Cygwin.
5022 * util/getroot.c: [__CYGWIN__] Add includes.
5023 (strip_extra_slashes): Fix "/" case.
5024 [__CYGWIN__] (get_win32_path): New function.
5025 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
5026 [__CYGWIN__] (find_root_device): Disable.
5027 [__CYGWIN__] (get_bootsec_serial): New function.
5028 [__CYGWIN__] (find_cygwin_root_device): Likewise.
5029 [__linux__] (grub_guess_root_device): Add early returns to simplify
5030 structure.
5031 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
5032 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
5033 check for Linux only.
5034
a079699e 50352008-05-15 Bean <bean123ch@gmail.com>
5036
5037 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
5038 keyboard hang problem in apple's intel mac.
5039
1cf4059a 50402008-05-09 Robert Millan <rmh@aybabtu.com>
5041
5042 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
5043 devices.
5044 * util/grub-mkdevicemap.c (get_virtio_disk_name)
5045 (make_device_map): Likewise.
5046 Reported by Aurelien Jarno <aurel32@debian.org>
5047
ed759390 50482008-05-07 Ian Campbell <ijc@hellion.org.uk>
5049
5050 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
5051 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
5052 (make_device_map): Output entries for xvd type disks.
5053
b56c4eaa 50542008-05-07 Robert Millan <rmh@aybabtu.com>
5055
5056 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
5057 devices.
5058 * util/grub-mkdevicemap.c (get_cciss_disk_name)
5059 (make_device_map): Likewise.
5060 Reported by Roland Dreier <rdreier@cisco.com>
5061
7f8866ed 50622008-05-07 Robert Millan <rmh@aybabtu.com>
5063
5064 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
5065 grub_strstr() call. Correct a few mistakes in failure path handling.
5066
b0346e0f 50672008-05-06 Robert Millan <rmh@aybabtu.com>
5068
5069 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5070 Do not print a trailing slash (therefore, the root directory is an
5071 empty string).
5072 (convert_system_path_to_grub_path): Do not remove trailing slash
5073 from make_system_path_relative_to_its_root() output.
5074
5075 * util/i386/pc/grub-install.in: Add trailing slash to output from
5076 make_system_path_relative_to_its_root().
5077
6cf12cbd 50782008-05-06 Robert Millan <rmh@aybabtu.com>
5079
5080 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
5081 ensures that output lines aren't intermangled with those sent to
5082 stderr (via grub_util_info()).
5083 * util/grub-probe.c (grub_refresh): Likewise.
5084 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
5085
0fbb3117 50862008-05-05 Christian Franke <franke@computer.org>
5087
5088 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
5089 Add Cygwin device names.
5090 (get_ide_disk_name) [__CYGWIN__]: Likewise.
5091 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
5092 (check_device): Return error instead of success on empty name.
5093 (make_device_map): Move label inside linux specific code to
5094 prevent compiler warning.
5095
8124cdb7 50962008-04-30 Robert Millan <rmh@aybabtu.com>
5097
5098 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
5099 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
5100 first boot option.
5101 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
5102
094c01d0 51032008-04-29 Robert Millan <rmh@aybabtu.com>
5104
5105 * docs/grub.cfg: New file (example GRUB configuration).
5106
f4b1fc02 51072008-04-26 Robert Millan <rmh@aybabtu.com>
5108
329ce2a5 5109 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
5110 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
5111 and `disk/ieee1275/nand.c'.
f4b1fc02 5112
25f16ec1 51132008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 5114
25f16ec1 5115 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
5116 i386-linuxbios.
5117
5118 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
5119 change the buffer size to 4096 for cdrom device.
5120
5121 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
5122 and nand.mod.
5123 (_linux_mod_SOURCES): New variable.
5124 (_linux_mod_CFLAGS): Likewise.
5125 (_linux_mod_LDFLAGS): Likewise.
5126 (linux_mod_SOURCES): Likewise.
5127 (linux_mod_CFLAGS): Likewise.
5128 (linux_mod_LDFLAGS): Likewise.
5129 (nand_mod_SOURCES): Likewise.
5130 (nand_mod_CFLAGS): Likewise.
5131 (nand_mod_LDFLAGS): Likewise.
5132
5133 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
5134 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
5135 type property. (nand device in olpc don't have this property)
5136
5137 * include/grub/disk.h (grub_disk_dev_id): New macro
5138 GRUB_DISK_DEVICE_NAND_ID.
5139
5140 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
5141 function prototype.
5142 (grub_rescue_cmd_initrd): Likewise.
5143
5144 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
5145 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
5146 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 5147
25f16ec1 5148 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
5149 GRUB_MACHINE_IEEE1275 is defined.
5150
5151 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
5152 Use NESTED_FUNC_ATTR attribute on the hook parameter.
5153
5154 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
5155 on nested function heap_init.
5156 (grub_upper_mem): New variable for i386-ieee1275.
5157 (grub_get_extended_memory): New function for i386-ieee1275.
5158 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
5159
5160 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
5161 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
5162 property.
f19dbdb7 5163
25f16ec1 5164 * loader/i386/ieee1275/linux.c: New file.
5165
5166 * loader/i386/ieee1275/linux_normal.c: New file.
5167
5168 * disk/ieee1275/nand.c: New file.
5169
e89d61e9 51702008-04-18 Thomas Schwinge <tschwinge@gnu.org>
5171
5172 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
5173 value.
5174 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
5175
602566f6 51762008-04-18 Robert Millan <rmh@aybabtu.com>
5177
5178 Restructures early code path on ieee1275 to unify grub_main() as
5179 the first C function that is executed in every platform.
5180
5181 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
5182 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
5183 cmain().
5184 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
5185 * kern/ieee1275/cmain.c (cmain): Rename to ...
5186 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
5187 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
5188 at the beginning.
5189
57490c2b 51902008-04-18 Robert Millan <rmh@aybabtu.com>
5191
5192 * util/update-grub.in: Fix syntax error when setting
5193 `GRUB_PRELOAD_MODULES'.
5194 Reported by Stephane Chazelas <stephane@artesyncp.com>
5195
1977517d 51962008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
5197
5198 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
5199 section into account, newer toolchains generate unique build ids
5200 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 5201 we want build ids to be preserved
1977517d 5202 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
5203 far from other sections don't cause the raw binary images grow
5204 size
5205
bfb1f1a2 52062008-04-15 Robert Millan <rmh@aybabtu.com>
5207
5208 * disk/lvm.c: Update copyright year.
5209 * kern/misc.c: Likewise.
5210
01979850 52112008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5212
5213 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 5214 there is no memory left for physical volume name.
01979850 5215
0a1150e2 52162008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5217
5218 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
5219 volume name mapping to support bigger than 9 character names properly.
5220
82ead3fe 52212008-04-13 Robert Millan <rmh@aybabtu.com>
5222
5223 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
5224 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
5225
e54a72f5 52262008-04-13 Christian Franke <franke@computer.org>
5227
5228 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
5229 to create a floppy emulation boot CD when non emulation mode
5230 does not work.
5231 Enable Joliet CD filesystem extension.
5232
9fe86034 52332008-04-13 Robert Millan <rmh@aybabtu.com>
5234
5235 * kern/misc.c (grub_strncat): Fix off-by-one error.
5236 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
5237
5238 * kern/env.c (grub_env_context_close): Clear current context, not
5239 previous one.
5240 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
5241
5242 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
5243
7ceeee39 52442008-04-13 Robert Millan <rmh@aybabtu.com>
5245
5246 Improve robustness when handling LVM.
5247
5248 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 5249 (and leave `*p' unmodified).
7ceeee39 5250 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
5251 through it.
5252 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
5253 iterating through it.
5254 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
5255 through it.
fe6b695a 5256 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 5257 when due) on each grub_lvm_getvalue() or grub_strstr() call.
5258 Don't assume `vg->pvs != NULL' when iterating through it.
5259
58cd3d85 52602008-04-13 Robert Millan <rmh@aybabtu.com>
5261
5262 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
5263 * genmk.rb (partmap): New variable.
5264 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
5265 (#{partmap}): New target rule.
5266 * genpartmaplist.sh: New file.
5267 * Makefile.in (pkglib_DATA): Add partmap.lst.
5268 (partmap.lst): New target rule.
5269 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
5270 modules (including all partition maps), instead of preloading them.
5271
78b51059 52722007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
5273
5274 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
5275 `linux-boot-prober' (if installed) to detect other operating
5276 systems which are installed on the computer and add them to
5277 the boot menu.
5278 * conf/common.rmk: Build and install 30_os-prober.
5279
a91627b4 52802008-04-12 Robert Millan <rmh@aybabtu.com>
5281
5282 * kern/powerpc/ieee1275/init.c: Move from here ...
5283 * kern/ieee1275/init.c: ... to here. Update all users.
5284
5285 * kern/powerpc/ieee1275/cmain.c: Move from here ...
5286 * kern/ieee1275/cmain.c: ... to here. Update all users.
5287
5288 * kern/powerpc/ieee1275/openfw.c: Move from here ...
5289 * kern/ieee1275/openfw.c: ... to here. Update all users.
5290
5291 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
5292 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
5293
322562ea 52942008-04-10 Pavel Roskin <proski@gnu.org>
5295
5296 * configure.ac: Always use "_cv_" in cache variables for
5297 compatibility with Autoconf 2.62.
5298
a02a73c5 52992008-04-07 Robert Millan <rmh@aybabtu.com>
5300
5301 Revert grub/machine/init.h addition by Pavel (since it breaks on
5302 i386-ieee1275 and others):
5303 * util/i386/pc/misc.c: Remove grub/machine/init.h.
5304 * util/powerpc/ieee1275/misc.c: Likewise.
5305
25c024b1 53062008-04-07 Robert Millan <rmh@aybabtu.com>
5307
5308 * util/grub-probe.c (probe): Improve error message.
5309
3cbd2f98 53102008-04-07 Robert Millan <rmh@aybabtu.com>
5311
5312 * util/biosdisk.c (read_device_map): Skip devices that don't exist
5313 (this prevents the presence of a bogus entry from ruining the whole
5314 thing).
5315
87a297bf 53162008-04-06 Pavel Roskin <proski@gnu.org>
5317
36747a62 5318 * util/biosdisk.c: Include grub/util/biosdisk.h.
5319 * util/grub-fstest.c (execute_command): Make static.
5320 * util/grub-mkdevicemap.c (check_device): Likewise.
5321 * util/i386/pc/misc.c: Include grub/machine/init.h.
5322 * util/powerpc/ieee1275/misc.c: Likewise.
5323 * util/lvm.c: Include grub/util/lvm.h.
5324 * util/misc.c: Include grub/kernel.h, grub/misc.h and
5325 grub/cache.h.
5326 * util/raid.c: Include grub/util/raid.h.
5327 (grub_util_getdiskname): Make static.
5328
87a297bf 5329 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
5330 grub_hostfs_fini(), as they are called from grub_init_all() and
5331 grub_fini_all() respectively. This fixes an infinite loop in
5332 grub-fstest due to double registration of hostfs.
5333 Reported by Christian Franke <Christian.Franke@t-online.de>
5334
f6ce7629 53352008-04-05 Pavel Roskin <proski@gnu.org>
5336
5337 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
5338 all 8 functions. Otherwise, probe function 0 only.
5339
070e49e4 53402008-04-04 Pavel Roskin <proski@gnu.org>
5341
8b088a4c 5342 * commands/lspci.c (grub_lspci_iter): Print the bus number
5343 correctly.
5344
4f657021 5345 * commands/lspci.c (grub_pci_classes): Fix typos.
5346 (grub_lspci_iter): Don't print func twice. Print vendor ID
5347 before device ID, as it's normally done.
5348
070e49e4 5349 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
5350 Fix signedness warnings.
5351 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
5352 Likewise.
5353 * util/ieee1275/get_disk_name.c: Include config.h so that
5354 _GNU_SOURCE is defined and getline() is declared. Mark an
5355 unused argument as such. Fix a signedness warning.
5356
ba7328dc 53572008-04-02 Pavel Roskin <proski@gnu.org>
5358
26887f22 5359 * genkernsyms.sh.in: Use more robust assignments for CC and
5360 srcdir. Quote srcdir.
5361 * gensymlist.sh.in: Likewise. Assert at the compile time that
5362 the symbol table is not empty.
5363
ba7328dc 5364 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
5365 * fs/cpio.c (grub_cpio_read): Likewise.
5366
0f582c6b 53672008-04-01 Pavel Roskin <proski@gnu.org>
5368
4b6e1995 5369 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
5370 * disk/host.c (grub_host_open): Likewise.
5371 * disk/loopback.c (grub_loopback_open): Likewise.
5372 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
5373 disk->id as in disk/host.c, not a multi-character constant.
5374
828a2768 5375 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
5376 later is obsolete, potentially dangerous and sets a bad example.
5377 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
5378 * util/misc.c (grub_util_get_image_size): Likewise.
5379
2bb4fb47 5380 * disk/loopback.c (options): Improve help for "--partitions".
5381
0f582c6b 5382 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
5383 options to align them with the short options, e.g. "echo -e".
5384
a33224e0 53852008-03-31 Bean <bean123ch@gmail.com>
5386
5387 * video/reader/png.c (grub_png_data): New member is_16bit and
5388 image_data.
5389 (grub_png_decode_image_header): Detect 16 bit png image.
5390 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
5391 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
5392 (grub_video_reader_png): Release memory occupied by image_data.
5393
5394 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
5395 4096 bytes.
5396 (grub_nfs_mount): Skip the test for sector per cluster.
5397
5398 * include/grub/ntfs.h (MAX_SPC): Removed.
5399
86cb4f54 54002008-03-31 Bean <bean123ch@gmail.com>
5401
5402 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
5403 (grub_probe_SOURCES): Add fs/afs.c.
5404 (grub_fstest_SOURCES): Likewise.
5405 (afs_mod_SOURCES): New variable.
5406 (afs_mod_CFLAGS): Likewise.
5407 (afs_mod_LDFLAGS): Likewise.
5408
5409 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
5410 (grub_emu_SOURCES): Likewise.
5411
5412 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5413
5414 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5415
5416 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5417
5418 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5419
5420 * fs/afs.c: New file.
5421
17c74c21 54222008-03-30 Pavel Roskin <proski@gnu.org>
5423
4cb68e89 5424 * disk/host.c: Include grub/misc.h to fix a warning.
5425 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
5426 warnings about implicit declarations.
5427
8790bb04 5428 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
5429 variable.
5430 * include/grub/i386/loader.h: Change declaration of
5431 grub_linux_boot() to match what grub_loader_set() expects.
5432 * util/getroot.c (grub_guess_root_device): Return const char* to
5433 fix a warning.
5434 * util/grub-probe.c (probe): Fix a warning about uninitialized
5435 abstraction_name variable.
5436 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
5437 second argument as unused to fix a warning.
5438
9a3f3296 5439 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
5440 missing grub_error() call.
5441
0ecef90d 5442 * util/update-grub_lib.in: Define datarootdir, since Autoconf
5443 2.60 and newer uses it to define datadir.
5444
0bf6d401 5445 * commands/sleep.c: Fix warning about implicit declaration.
5446 * disk/memdisk.c: Likewise.
5447 * loader/aout.c: Likewise.
5448 * loader/i386/bsd_normal.c: Likewise.
5449 * util/grub-probe.c: Likewise.
5450
7cdacf97 5451 * commands/i386/cpuid.c (has_longmode): Make static.
5452 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
5453 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
5454
17c74c21 5455 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
5456 GDT. This is more robust, as %ds can change.
5457 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
5458 calling real_to_prot().
5459 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
5460
80a3e68b 54612008-03-28 Pavel Roskin <proski@gnu.org>
5462
5463 * kern/i386/pc/startup.S: Assert that uncompressed functions
5464 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
5465 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
5466 code, as they push parts of the code (error handlers) beyond
5467 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
5468 code as correctness and size.
5469
77bcd272 54702008-03-28 Pavel Roskin <proski@gnu.org>
5471
5472 * kern/i386/pc/startup.S
5473 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
5474 data block address to the real mode, keep offset minimal. This
5475 works around a bug in AWARD BIOS on old Athlon systems, which
5476 makes CD detection hang.
5477
c5dfd43b 54782008-03-26 Pavel Roskin <proski@gnu.org>
5479
5480 * normal/color.c (grub_parse_color_name_pair): Make `name' a
5481 const.
5482 * include/grub/normal.h: Add grub_parse_color_name_pair()
5483 declaration.
5484
bf962df2 54852008-03-24 Bean <bean123ch@gmail.com>
5486
5487 * disk/i386/pc/biosdisk.c (cd_start): Removed.
5488 (cd_count): Removed.
5489 (cd_drive): New variable.
5490 (grub_biosdisk_get_drive): Don't check for (cdN) device.
5491 (grub_biosdisk_call_hook): Likewise.
5492 (grub_biosdisk_iterate): Change cdrom detection method.
5493 (grub_biosdisk_open): Replace cd_start with cd_drive.
5494 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
5495 detect cdrom device.
5496
5497 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
5498 Removed.
5499 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
5500 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
5501 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
5502 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
5503 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
5504 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
5505 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
5506 (grub_biosdisk_cdrp): New structure.
5507 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
5508
5509 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
5510
5511 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
5512 device.
5513
5514 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
5515 New function.
5516
68e7fc7a 55172008-03-20 Robert Millan <rmh@aybabtu.com>
5518
5519 Remove 2 TiB limit in ata.mod.
5520 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
5521 (grub_ata_dumpinfo): Print sector count with 0x%llx.
5522 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
5523 grub_uint64_t instead of grub_uint32_t.
5524
38ad2cf5 55252008-03-05 Bean <bean123ch@gmail.com>
5526
5527 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
5528 (grub_multiboot): Set boot device.
5529
5530 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
5531
2b89344e 55322008-03-02 Bean <bean123ch@gmail.com>
5533
5534 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
5535 symlink_buffer.
5536
87a95d1f 55372008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
5538
5539 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
5540 texinfo.tex.
5541
5542 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
5543 modified.
5544
5545 * docs/fdl.texi: New file.
f19dbdb7 5546
87a95d1f 5547 * docs/mdate-sh: New file. Copied from gnulib.
5548 * docs/texinfo.tex: Likewise.
5549
5550 * config.guess: Updated from gnulib.
5551 * install-sh: Likewise.
5552
7dc15d8e 55532008-02-28 Robert Millan <rmh@aybabtu.com>
5554
5555 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
5556 (aout_mod_SOURCES): New variable.
5557 (aout_mod_CFLAGS): Likewise.
5558 (aout_mod_LDFLAGS): Likewise.
5559
5560 * conf/i386-ieee1275.rmk: Likewise.
5561
b00ab696 55622008-02-28 Robert Millan <rmh@aybabtu.com>
5563
5564 * util/update-grub.in: Reorganise terminal validity check. Accept
5565 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
5566 Based on suggestion by Franklin PIAT.
5567
79ca2d78 55682008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
5569
5570 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
5571 function.
5572 * util/getroot.c (grub_util_check_block_device): New function that
5573 returns the given argument if it is a block device and returns NULL else.
5574 * util/grub-probe.c (argument_is_device): New variable.
5575 (probe): Promote device_name from a variable to an argument. Receive
5576 device_name from grub_util_check_block_device() if path is NULL and from
5577 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 5578 (options): Introduce new parameter '-d, --device'.
79ca2d78 5579 (main): Add description of the new parameter to the help screen.
5580 Rename path variable to argument. Set argument_is_device if the '-d'
5581 option is given. Pass argument to probe() depending on
5582 argument_is_device.
5583
0d16e571 55842008-02-24 Bean <bean123ch@gmail.com>
5585
5586 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
5587 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
5588 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
5589 (GRUB_ISO9660_VOLDESC_PART): Likewise.
5590 (GRUB_ISO9660_VOLDESC_END): Likewise.
5591 (grub_iso9660_primary_voldesc): New member escape.
5592 (grub_iso9660_data): New member joliet.
5593 (grub_iso9660_convert_string): New function.
5594 (grub_iso9660_mount): Detect joliet extension.
5595 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
5596 (grub_iso9660_iso9660_label): Likewise.
5597
5598 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
5599 (grub_setup_SOURCES): Add fs/udf.c.
5600 (grub_fstest_SOURCES): Likewise.
5601 (udf_mod_SOURCES): New variable.
5602 (udf_mod_CFLAGS): Likewise.
5603 (udf_mod_LDFLAGS): Likewise.
5604
5605 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
5606 (grub_emu_SOURCES): Likewise.
5607
5608 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5609
5610 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5611
5612 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5613
5614 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5615
5616 * fs/udf.c: New file.
5617
8a594a17 56182008-02-24 Robert Millan <rmh@aybabtu.com>
5619
5620 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
5621 (normal/lexer.c_DEPENDENCIES): New variables.
5622 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5623 (normal/lexer.c_DEPENDENCIES): Likewise.
5624 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
5625 (normal/lexer.c_DEPENDENCIES): Likewise.
5626 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
5627 (normal/lexer.c_DEPENDENCIES): Likewise.
5628 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5629 (normal/lexer.c_DEPENDENCIES): Likewise.
5630 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5631 (normal/lexer.c_DEPENDENCIES): Likewise.
5632
2dc33c03 56332008-02-23 Robert Millan <rmh@aybabtu.com>
5634
5635 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
5636 since they were intended to be in hex. This didn't break previously
5637 because of a bug in gpt_partition_map_iterate() (see below).
5638
5639 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
5640 when checking the validity of GPT header.
5641 Remove `partno', since it always provides the same information as `i'.
5642
f6f4cfb0 56432008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
5644
5645 * include/grub/efi/time.h: Fix a wrong comment.
5646
79ff665f 56472008-02-19 Pavel Roskin <proski@gnu.org>
5648
5649 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
5650 message.
5651
d38e24c2 56522008-02-19 Bean <bean123ch@gmail.com>
5653
5654 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
5655 (aout_mod_SOURCES): New variable.
5656 (aout_mod_CFLAGS): Likewise.
5657 (aout_mod_LDFLAGS): Likewise.
5658 (_bsd_mod_SOURCES): New variable.
5659 (_bsd_mod_CFLAGS): Likewise.
5660 (_bsd_mod_LDFLAGS): Likewise.
5661 (bsd_mod_SOURCES): New variable.
5662 (bsd_mod_CFLAGS): Likewise.
5663 (bsd_mod_LDFLAGS): Likewise.
5664
5665 * include/grub/aout.h: New file.
5666
5667 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
5668
5669 * include/grub/i386/bsd.h: New file.
5670
5671 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
5672 to make it public.
5673
5674 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
5675 function is called, so that it's possible to change it inside the hook.
5676 (grub_elf64_load): Likewise.
5677 (grub_elf_file): Don't close the file if elf header is not found.
5678 (grub_elf_close): Close the file if grub_elf_file fails (The new
5679 grub_elf_file won't close it).
5680 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
5681 (grub_elf64_size): Likewise.
5682
5683 * kern/i386/loader.S (grub_unix_real_boot): New function.
5684
5685 * loader/aout.c: New file.
5686
5687 * loader/i386/bsd.c: New file.
5688
5689 * loader/i386/bsd_normal.c: New file.
5690
5691 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
5692
5693 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 5694 can test other formats.
d38e24c2 5695
b93bdb0f 56962008-02-19 Robert Millan <rmh@aybabtu.com>
5697
5698 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
5699 (grub_gpt_partition_type_empty): Redefine with macro from
5700 `<grub/gpt_partition.h>'.
5701 (gpt_partition_map_iterate): Adjust partition type comparison.
5702
5703 Export `entry' as partmap-specific `part.data' struct.
5704 (grub_gpt_header, grub_gpt_partentry): Move from here ...
5705
5706 * include/grub/gpt_partition.h (grub_gpt_header)
5707 (grub_gpt_partentry): ... to here (new file).
5708
5709 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
5710
5711 (grub_gpt_partition_type_bios_boot): New const variable, defined
5712 with macro from `<grub/gpt_partition.h>'.
5713
5714 (setup): Replace `first_start' with `embed_region', which keeps
5715 track of the embed region (and is partmap-agnostic).
5716
5717 Replace find_first_partition_start() with find_usable_region(),
5718 which finds a usable region for embedding using partmap-specific
5719 knowledge (supports PC/MSDOS and GPT).
5720
5721 Fix all assumptions that the embed region start at sector 1, using
5722 `embed_region.start' from now on. Similarly, use `embed_region.end'
5723 rather than `first_start' to calculate available size.
5724
5725 In grub_util_info() message, replace "into after the MBR" with an
5726 indication of the specific sector our embed region starts at.
5727
66cb40f6 57282008-02-19 Robert Millan <rmh@aybabtu.com>
5729
5730 * DISTLIST: Replace `commands/ieee1275/halt.c' and
5731 `commands/ieee1275/reboot.c' with `commands/halt.c' and
5732 `commands/reboot.c'.
5733 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5734 (halt_mod_SOURCES): Likewise.
5735 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5736 (halt_mod_SOURCES): Likewise.
5737
b7202015 57382008-02-17 Christian Franke <franke@computer.org>
5739
5740 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
5741
32b0fc49 57422008-02-17 Robert Millan <rmh@aybabtu.com>
5743
5744 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5745 set `first_start' to 0 for non-PC/MSDOS partition maps.
5746
aca63502 57472008-02-16 Robert Millan <rmh@aybabtu.com>
5748
5749 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5750 do not assume partition map is PC/MSDOS before performing checks that
5751 are specific to that layout.
5752
0de8be86 57532008-02-13 Robert Millan <rmh@aybabtu.com>
5754
5755 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
5756 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
5757 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
5758
c3db8364 57592008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
5760
5761 * configure.ac: Only a cosmetic change on the handling of
5762 -fno-stack-protector.
5763
f714229e 57642008-02-12 Alexandre Boeglin <alex@boeglin.org>
5765
c3db8364 5766 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
5767 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
5768 reboot.c.
f714229e 5769 (grub_install_SOURCES): Add halt.mod and reboot.mod.
5770 (halt_mod_SOURCES): New variable.
5771 (halt_mod_CFLAGS): Likewise.
5772 (halt_mod_LDFLAGS): Likewise.
5773 (reboot_mod_SOURCES): Likewise.
5774 (reboot_mod_CFLAGS): Likewise.
5775 (reboot_mod_LDFLAGS): Likewise.
5776
c3db8364 5777 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
5778 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
5779 reboot.c.
f714229e 5780 (halt_mod_SOURCES): Likewise.
5781 (reboot_mod_SOURCES): Likewise.
5782
c3db8364 5783 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
5784 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 5785 (reboot_mod_SOURCES): Likewise.
5786
5787 * commands/i386/pc/reboot.c: merge this file ...
5788
5789 * commands/ieee1275/reboot.c: ... and this file ...
5790
5791 * commands/reboot.c: ... to this file.
c3db8364 5792 Add some precompiler directive to include the correct header for
5793 each machine.
f714229e 5794
5795 * commands/ieee1275/halt.c: move this file ...
5796
5797 * commands/halt.c: ... to here.
c3db8364 5798 Add some precompiler directive to include the correct header for
5799 each machine.
f714229e 5800
5801 * include/grub/efi/efi.h (grub_reboot): New function declaration.
5802 (grub_halt): Likewise.
5803
5804 * kern/efi/efi.c (grub_reboot): New function.
5805 (grub_halt): Likewise.
5806
c74493e0 58072008-02-12 Robert Millan <rmh@aybabtu.com>
5808
5809 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
5810 /dev (like it is done for /dev/mapper). This doesn't provide support
5811 for EVMS, but at least it is now easy to identify the problem when it
5812 arises.
5813
d0db4b04 58142008-02-11 Robert Millan <rmh@aybabtu.com>
5815
5816 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
5817 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
5818 comparing it with -1, not 0.
5819
bf748642 58202008-02-10 Robert Millan <rmh@aybabtu.com>
5821
5822 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
5823 `disk/lvm.c'.
5824 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5825 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
5826
5827 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
5828 `disk/lvm.c' to the end of the list.
5829 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5830 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5831
b5db202a 58322008-02-10 Robert Millan <rmh@aybabtu.com>
5833
5834 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
5835 grub_print_error() instead. This will let user know why we're entering
5836 rescue mode.
5837 Based on suggestions from Sam Morris.
5838
83abee31 58392008-02-10 Alexandre Boeglin <alex@boeglin.org>
5840
5841 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
5842 on remaining N args, instead of "--" arg N times.
5843
78d5a08b 58442008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
5845
5846 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
5847 (fill_with_default_glyph): Changed to use unknown_glyph for fill
5848 pattern for unknown glyphs.
5849
68807e5f 58502008-02-09 Robert Millan <rmh@aybabtu.com>
5851
5852 * configure.ac: Probe for `help2man'.
5853 * Makefile.in (builddir): New variable.
5854 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
5855 or otherwise add a few flags/options to it.
5856 (install-local): For every executable utility or script that is
5857 installed, invoke $(HELP2MAN) to install a manpage based on --help
5858 output.
5859
5860 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
5861 that it doesn't prevent --help from working in build tree.
5862
5863 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
5864 with `bug-grub@gnu.org'.
5865 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
5866 * util/update-grub.in (usage): New function.
5867 Implement proper argument check, with support for --help and --version
5868 (as well as existing -y).
5869
58702008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 5871
5872 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
5873 avoid overwriting previous output.
5874 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
5875
c1962162 58762008-02-09 Robert Millan <rmh@aybabtu.com>
5877
5878 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
5879 drawing the menu.
5880
3dac2e3f 58812008-02-09 Robert Millan <rmh@aybabtu.com>
5882
5883 * commands/sleep.c: New file.
5884 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
5885 (sleep_mod_SOURCES): New variable.
5886 (sleep_mod_CFLAGS): Likewise.
5887 (sleep_mod_LDFLAGS): Likewise.
5888
7a634e08 58892008-02-09 Robert Millan <rmh@aybabtu.com>
5890
5891 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
5892 situations in which we can deduce the RAID size and the superblock
5893 doesn't match it.
5894
b92f0c18 58952008-02-09 Robert Millan <rmh@aybabtu.com>
5896
5897 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
5898 and return a grub_diskmemberlist_t composed of LVM physical volumes.
5899 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
5900
5901 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
5902 and return a grub_diskmemberlist_t composed of physical array members.
5903 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
5904
5905 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
5906 prototype.
5907 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
5908 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
5909 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
5910
5911 * util/grub-probe.c (probe): Move partmap probing code from here ...
5912 (probe_partmap): ... to here.
5913 (probe): Use probe_partmap() once for the disk we're probing, and
5914 additionally, when such disk contains a memberlist() struct member,
5915 once for each disk that is contained in the structure returned by
5916 memberlist().
5917
91a4bf68 59182008-02-09 Robert Millan <rmh@aybabtu.com>
5919
5920 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
5921 environment variable to 'all' in order to obtain debug output from
5922 non-util/ code.
5923 * util/i386/pc/grub-setup.c (main): Likewise.
5924
a96f9caa 59252008-02-08 Robert Millan <rmh@aybabtu.com>
5926
5927 * disk/raid.c (grub_raid_scan_device): Check for
5928 `array->device[sb.this_disk.number]' rather than for
5929 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 5930 guaranteed to be accessible.
a96f9caa 5931
b37a9222 59322008-02-08 Robert Millan <rmh@aybabtu.com>
5933
5934 * disk/raid.c: Update copyright.
5935 * fs/cpio.c: Likewise.
5936 * include/grub/raid.h: Likewise.
5937 * loader/i386/pc/multiboot.c: Likewise.
5938 * util/hostfs.c: Likewise.
5939
5626aee1 59402008-02-08 Robert Millan <rmh@aybabtu.com>
5941
5942 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
5943 to a grub_disk_t array.
5944 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
5945 `device[x]'.
5946 (grub_raid_scan_device): Replace `device[x].name' accesses with
5947 `device[x]->name'. Simplify initialization of `array->device[x]'.
5948
554f0187 59492008-02-08 Robert Millan <rmh@aybabtu.com>
5950
5951 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
5952 grub_dprintf() calls.
5953 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
5954 error message.
5955
1ec8425d 59562008-02-07 Christian Franke <franke@computer.org>
5957
5958 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
5959 instead of fseek and ftell to support large files.
5960 (grub_hostfs_read): Likewise.
5961
f2156fda 59622008-02-07 Robert Millan <rmh@aybabtu.com>
5963
5964 Patch from Jeroen Dekkers.
5965 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 5966 failure, since successfully reading all array members might not be
f2156fda 5967 required.
5968
9216e0e7 59692008-02-06 Robert Millan <rmh@aybabtu.com>
5970
5971 * util/grub-probe.c (probe): Simplify partmap probing (with the
5972 assumption that the first word up to the underscore equals to
5973 the module name).
5974
b0dfd29a 59752008-02-06 Christian Franke <franke@computer.org>
5976
5977 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
5978 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
5979 last block of a cpio or tar stream.
5980 Check for "TRAILER!!!" instead of any empty data
5981 block to detect last block of a cpio stream.
5982 (grub_cpio_dir): Fix constness of variable np.
5983 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
5984 cpio or tar trailer is detected. This fixes a crash
5985 on open of a non existing file.
5986
c32865bf 59872008-02-05 Bean <bean123ch@gmail.com>
5988
5989 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
5990 address of entry.
5991 (grub_multiboot_load_elf64): Likewise.
5992 (grub_multiboot): Initialize mbi structure.
5993
5994 * util/grub-fstest.c: Don't include unused header file script.h.
5995
fe6b695a 5996 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 5997 of file.
5998 (grub_fstest_SOURCES): Likewise.
5999
409480b7 60002008-02-05 Robert Millan <rmh@aybabtu.com>
6001
6002 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
6003 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
6004 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
6005 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
6006
6007 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
6008 (translation_table): Replace hardcoded values with macros
6009 provided by `<grub/term.h>'.
6010
6011 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
6012 (keyboard_map): Correct/add a few values, with macros provided
6013 by `<grub/term.h>'.
6014 (keyboard_map_shift): Zero values that don't differ from their
6015 `keyboard_map' equivalents.
6016 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
6017 Discard the second scan code that is always sent by Caps lock.
6018 Only use `keyboard_map_shift' when it provides a non-zero value,
6019 otherwise fallback to `keyboard_map'.
6020
99fadbaa 60212008-02-04 Bean <bean123ch@gmail.com>
6022
6023 * Makefile.in (enable_grub_fstest): New variable.
6024
6025 * conf/common.rmk (grub_fstest_init.lst): New rule.
6026 (grub_fstest_init.h): Likewise.
6027 (grub_fstest_init.c): Likewise.
6028 (util/grub-fstest.c_DEPENDENCIES): New variable.
6029 (grub_fstest_SOURCES): Likewise.
6030
6031 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
6032
6033 * util/grub-fstest.c: New file.
6034
bf567c50 60352008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6036
6037 Make grub-setup handle a separate root device.
f19dbdb7 6038
bf567c50 6039 * util/i386/pc/grub-setup.c (setup): Always open the root device,
6040 so that the root device can be compared with the destination
6041 device.
6042 When embedding the core image, if the root and destination devices
6043 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
6044 0xFF.
6045 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 6046
9be6b98b 60472008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6048
6049 Add support for having a grub directory in a different drive. This
6050 is still only the data handling part.
f19dbdb7 6051
9be6b98b 6052 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
6053 (codestart): Save %dh in GRUB_ROOT_DRIVE.
6054 (grub_root_drive): New variable.
6055
6056 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
6057 instead of GRUB_BOOT_DRIVE to construct a device name. Set
6058 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
6059 as it was.
6060
6061 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
6062
6063 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
6064 macro.
6065 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
6066
6067 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
6068 is bogus, because PXE booting does not specify any drive
6069 correctly.
6070
6071 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
6072 am not sure if this is really correct.
6073
6074 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
6075 is always identical to the boot drive when booting from a CD.
6076
6077 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
6078 longer.
6079 (root_drive): New variable.
6080 (real_start): Unconditionally set %dh to ROOT_DRIVE.
6081 (setup_sectors): Push %dx right after popping it, because %dh will
6082 be modified later.
6083 (copy_buffer): Restore %dx.
6084
e0ca0677 60852008-02-03 Robert Millan <rmh@aybabtu.com>
6086
6087 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
6088 use `cdboot.img' for cdrom images.
6089
3b3f6629 60902008-02-03 Robert Millan <rmh@aybabtu.com>
6091
6092 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
6093 only setup gfxterm when `font' command has succeeded.
6094
d42b3672 60952008-02-03 Robert Millan <rmh@aybabtu.com>
6096
6097 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
6098 (grub_rescue_cmd_multiboot_loader)
6099 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
6100
fa370ea6 61012008-02-03 Pavel Roskin <proski@gnu.org>
6102
e0c5dacb 6103 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 6104 %edx and %esi from stack only after grub_gate_a20() is called.
6105 grub_gate_a20() clobbers %edx.
6106
f2a76e1d 61072008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6108
6109 * configure.ac (AC_INIT): Bumped to 1.96.
6110
6111 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
6112 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
6113 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
6114 video/readers/png.c.
6115
90fd32d1 61162008-02-03 Bean <bean123ch@gmail.com>
9be665dd 6117
6118 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
6119 (cdboot_img_SOURCES): New variable.
6120 (cdboot_img_ASFLAGS): New variable.
6121 (cdboot_img_LDFLAGS): New variable.
6122
6123 * boot/i386/pc/cdboot.S: New file.
6124
6125 * disk/i386/pc/biosdisk.c (cd_start): New variable.
6126 (cd_count): Likewise.
6127 (grub_biosdisk_get_drive): Add support for cd device.
6128 (grub_biosdisk_call_hook): Likewise.
6129 (grub_biosdisk_iterate): Likewise.
6130 (grub_biosdisk_open): Likewise.
6131 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
6132 (grub_biosdisk_rw): Support reading from cd device.
6133 (GRUB_MOD_INIT): Iterate cd devices.
6134
6135 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
6136 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
6137 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
6138
6139 * kern/i386/pc/init.c (make_install_device): Check for cd device.
6140
4020aa53 61412008-02-02 Robert Millan <rmh@aybabtu.com>
6142
6143 * commands/read.c: New file.
6144 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
6145 (read_mod_SOURCES): New variable.
6146 (read_mod_CFLAGS): Likewise.
6147 (read_mod_LDFLAGS): Likewise.
6148
e03a1132 61492008-02-02 Robert Millan <rmh@aybabtu.com>
6150
6151 * normal/main.c (grub_normal_execute): Check for `menu->size' when
6152 determining whether menu has to be displayed.
6153
58c69220 61542008-02-02 Marco Gerards <marco@gnu.org>
6155
6156 * bus/pci.c: New file.
6157
6158 * include/grub/pci.h: Likewise.
6159
6160 * include/grub/i386/pc/pci.h: Likewise.
6161
6162 * commands/lspci.c: Likewise.
6163
6164 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
6165 `lspci.mod'.
6166 (pci_mod_SOURCES): New variable.
6167 (pci_mod_CFLAGS): Likewise.
6168 (pci_mod_LDFLAGS): Likewise.
6169 (lspci_mod_SOURCES): Likewise.
6170 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 6171 (lspci_mod_LDFLAGS): Likewise.
58c69220 6172
c004e1b4 61732008-02-02 Bean <bean123ch@gmail.com>
6174
6175 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
6176 (grub_ufs_get_file_block): Fix indirect block calculation problem.
6177
6178 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
6179 (grub_xfs_btree_node): New structure.
6180 (grub_xfs_btree_root): New structure.
6181 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
6182 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
6183 (GRUB_XFS_EXTENT_BLOCK): Likewise.
6184 (GRUB_XFS_EXTENT_SIZE): Likewise.
6185 (grub_xfs_read_block): Support btree format type.
6186 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
6187 Use directory block as basic unit.
6188
6189 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
6190
6191 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
6192 __attribute__ ((__regparm__ (1))).
6193
f95562bf 61942008-02-01 Robert Millan <rmh@aybabtu.com>
6195
6196 Correct a mistake in previous commit.
6197
6198 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
6199 top.
6200 (normal/command.c_DEPENDENCIES): New variable.
6201
7d31f41f 62022008-02-01 Robert Millan <rmh@aybabtu.com>
6203
6204 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
6205 top.
6206 (normal/command.c_DEPENDENCIES): New variable.
6207 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
6208 * conf/i386-ieee1275.rmk: Likewise.
6209 * conf/i386-linuxbios.rmk: Likewise.
6210 * conf/i386-pc.rmk: Likewise.
6211 * conf/sparc64-ieee1275.rmk: Likewise.
6212 * conf/powerpc-ieee1275.rmk: Likewise.
6213 (grub_emu_SOURCES): Add `fs/fshelp.c'.
6214
6215 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
6216
60b6be74 62172008-02-01 Robert Millan <rmh@aybabtu.com>
6218
6219 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
6220 call at beginning of function.
6221
078522ab 62222008-01-31 Pavel Roskin <proski@gnu.org>
6223
6224 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 6225 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
6226 (grub_mkrescue_SOURCES): Likewise.
078522ab 6227 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
6228
ccaa8a5f 62292008-01-30 Robert Millan <rmh@aybabtu.com>
6230
6231 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
6232 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
6233 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
6234 (grub_probe_SOURCES): ... to here.
6235
6236 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
6237 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
6238 * conf/i386-ieee1275.rmk: Likewise.
6239 * conf/i386-linuxbios.rmk: Likewise.
6240 * conf/powerpc-ieee1275.rmk: Likewise.
6241
ae5a9cd7 62422008-01-30 Tristan Gingold <gingold@free.fr>
6243
6244 * kern/rescue.c: Silently accept empty lines.
6245
70bc2ef2 62462008-01-29 Bean <bean123ch@gmail.com>
6247
6248 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
6249 (real_code_2): Code cleanup and change comment style.
6250 (move_memory): Avoid using 32-bit address mode.
6251
6a4d50ea 62522008-01-29 Bean <bean123ch@gmail.com>
6253
6254 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
6255 (png_mod_SOURCES): New variable.
6256 (png_mod_CFLAGS): Likewise.
6257 (png_mod_LDFLAGS): Likewise.
6258
6259 * video/readers/png.c: New file.
6260
11cc30ac 62612008-01-28 Robert Millan <rmh@aybabtu.com>
6262
6263 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
6264 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
6265 `ifndef GRUB_MOD_GAP' hack.
6266 * util/elf/grub-mkimage.c (add_segments): Likewise.
6267
3abc589f 62682008-01-27 Robert Millan <rmh@aybabtu.com>
6269
6270 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
6271 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 6272 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 6273
e1907778 62742008-01-27 Robert Millan <rmh@aybabtu.com>
6275
6276 Get grub-emu to build again (including parallel builds).
6277
6278 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
6279 Split into ...
6280 (util/grub-emu.c_DEPENDENCIES): ... this, ...
6281 (normal/execute.c_DEPENDENCIES): ... this, ...
6282 (grub-emu_DEPENDENCIES): ... and this.
6283
6284 * conf/i386-efi.rmk: Likewise.
6285 * conf/i386-linuxbios.rmk: Likewise.
6286 * conf/i386-ieee1275.rmk: Likewise.
6287 * conf/powerpc-ieee1275.rmk: Likewise.
6288 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
6289
2216b101 62902008-01-27 Robert Millan <rmh@aybabtu.com>
6291
6292 * NEWS: Add a few items.
6293
f75172d9 62942008-01-27 Robert Millan <rmh@aybabtu.com>
6295
6296 Fix parallel builds with grub-emu. Based on earlier commit for
6297 grub-probe and grub-setup.
6298
6299 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6300 (util/grub-emu.c_DEPENDENCIES): ... this.
6301 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6302 (util/grub-emu.c_DEPENDENCIES): ... this.
6303 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6304 (util/grub-emu.c_DEPENDENCIES): ... this.
6305 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6306 (util/grub-emu.c_DEPENDENCIES): ... this.
6307 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6308 (util/grub-emu.c_DEPENDENCIES): ... this.
6309
3f51de77 63102008-01-27 Pavel Roskin <proski@gnu.org>
6311
6312 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
6313 to create a gap between _end and the modules added to the image
6314 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
6315 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
6316 * util/elf/grub-mkimage.c (add_segments): Likewise.
6317
2033f53e 63182008-01-26 Pavel Roskin <proski@gnu.org>
6319
6320 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
6321 just return an error.
6322
22da1f6f 63232008-01-26 Bean <bean123ch@gmail.com>
6324
6325 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
6326 (grub_reiserfs_get_item): Save offset of the next item.
6327 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
6328
2a9525e6 63292008-01-25 Robert Millan <rmh@aybabtu.com>
6330
6331 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
6332 make all filesystem sources appear together (possibly fixing omissions
6333 while at it).
6334 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6335 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6336 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6337 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6338
6339 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
6340 add `kern/file.c'.
6341 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
6342 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6343 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
6344 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6345
6346 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
6347 (probe): Add a sanity check to make sure of our ability to read
6348 requested files when probing for filesystem type.
6349
6350 * genmk.rb: Update copyright year (2007).
6351
6352 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
6353 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
6354 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
6355 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
6356 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
6357 : Remove function prototypes.
6358
b95f71b5 63592008-01-25 Robert Millan <rmh@aybabtu.com>
6360
6361 Revert my previous commits (based on wrong assumption of how grub_errno
6362 works).
6363
fe6b695a 6364 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 6365 * kern/file.c (grub_file_open): Likewise.
6366
d08bbb49 63672008-01-24 Pavel Roskin <proski@gnu.org>
6368
6369 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
6370 that hang if GRUB tries to setup colors.
6371 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
6372 colors for firmwares that don't support it.
6373 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
6374 Recognize Open Hack'Ware, set flags to work around its
6375 limitations.
6376
605e36ed 63772008-01-24 Robert Millan <rmh@aybabtu.com>
6378
6379 * kern/file.c (grub_file_open): Do not account previous failures of
6380 unrelated functions when grub_errno is checked for.
6381 Reported by Oleg Strikov.
6382
bac332a1 63832008-01-24 Bean <bean123ch@gmail.com>
6384
6385 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
6386 (grub_ufs_sblock): New member volume name.
6387 (grub_ufs_find_file): Fix string copy bug.
6388 (grub_ufs_label): Implement this function properly.
6389
6390 * fs/hfs.c (grub_hfs_cnid_type): New enum.
6391 (grub_hfs_iterate_records): Use the correct file number for extents
6392 and catalog file. Fix problem in next index calculation.
6393 (grub_hfs_find_node): Replace recursive function call with loop.
6394 (grub_hfs_iterate_dir): Replace recursive function call with loop.
6395
15c80c09 63962008-01-23 Robert Millan <rmh@aybabtu.com>
6397
6398 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
6399 `<grub/symbol.h>' and `<grub/multiboot.h>'.
6400 (grub_multiboot2_real_boot): New function prototype.
6401
6402 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
6403 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
6404
6405 * kern/i386/ieee1275/init.c (grub_os_area_addr)
6406 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
6407
305338fd 64082008-01-23 Robert Millan <rmh@aybabtu.com>
6409
6410 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
6411 #ifdef'ed out grub_printf().
6412
3ea52685 64132008-01-23 Robert Millan <rmh@aybabtu.com>
6414
6415 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
6416 grub_dprintf calls, since they make "debug=all" mode unusable.
6417 (grub_console_checkkey): Likewise.
6418
5882ae4b 64192008-01-23 Robert Millan <rmh@aybabtu.com>
6420
6421 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
6422 `term/i386/pc/at_keyboard.c'.
6423 (pkglib_MODULES): Add `serial.mod'.
6424 (serial_mod_SOURCES): New variable.
6425 (serial_mod_CFLAGS): Likewise.
6426 (serial_mod_LDFLAGS): Likewise.
6427
6428 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
6429 `<grub/powerpc/ieee1275/console.h>'.
6430 (grub_keyboard_controller_init): New function prototype.
6431 (grub_console_checkkey): Likewise.
6432 (grub_console_getkey): Likewise.
6433
6434 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
6435 keyboard on i386.
6436
6437 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
6438 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
6439
06ab5303 64402008-01-23 Robert Millan <rmh@aybabtu.com>
6441
6442 * kern/i386/pc/init.c (make_install_device): When memdisk image is
6443 present, "(memdisk)/boot/grub" becomes the default prefix.
6444
6445 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
6446 a memdisk tarball with all the modules. Add --overlay=DIR option that
6447 allows users to overlay additional files into the image.
6448
dbb475a4 64492008-01-23 Robert Millan <rmh@aybabtu.com>
6450
6451 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
6452 and `machine/memory.h'.
6453 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
6454 (_multiboot_mod_SOURCES): New variable.
6455 (_multiboot_mod_CFLAGS): Likewise.
6456 (_multiboot_mod_LDFLAGS): Likewise.
6457 (multiboot_mod_SOURCES): Likewise.
6458 (multiboot_mod_CFLAGS): Likewise.
6459 (multiboot_mod_LDFLAGS): Likewise.
6460
6461 * include/grub/i386/ieee1275/loader.h: New file.
6462
6463 * include/grub/i386/ieee1275/machine.h: Likewise.
6464
6465 * include/grub/i386/ieee1275/memory.h: Likewise.
6466
6467 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
6468 variable declaration.
6469 (grub_os_area_size): Likewise.
6470
6471 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
6472 (grub_lower_mem, grub_upper_mem): New variables.
6473 (grub_stop_floppy): New function (just to make
6474 grub_multiboot2_real_boot() happy).
6475
6476 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
6477 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
6478 (grub_stop): New function.
6479 Include `"../realmode.S"' and `"../loader.S"'.
6480
6481 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
6482 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
6483
6484 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
6485 rely on grub_multiboot2_real_boot() for final boot.
6486
25638629 64872008-01-22 Robert Millan <rmh@aybabtu.com>
6488
6489 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
6490 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
6491 device that doesn't look like an SD card.
6492 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6493 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
6494 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
6495 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
6496 found.
6497
9dad816d 64982008-01-22 Robert Millan <rmh@aybabtu.com>
6499
6500 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
6501 avoid claiming over our own code.
6502
34842f2d 65032008-01-22 Bean <bean123ch@gmail.com>
6504
6505 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
6506 (jpeg_mod_SOURCES): New variable.
6507 (jpeg_mod_CFLAGS): Likewise.
6508 (jpeg_mod_LDFLAGS): Likewise.
6509
6510 * video/readers/jpeg.c : New file.
6511
44023a28 65122008-01-22 Bean <bean123ch@gmail.com>
6513
6514 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
6515 there are no more items.
6516
bc2d8ac6 65172008-01-21 Robert Millan <rmh@aybabtu.com>
6518
6519 * kern/mm.c (grub_mm_init_region): Improve debug message.
6520
261bd4bc 65212008-01-21 Robert Millan <rmh@aybabtu.com>
6522
6523 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
6524 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
6525 address.
6526 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
6527 a C macro.
6528 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
6529 Indicates start of upper memory.
6530 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
6531 (generate_image): Abort when image size is big enough to corrupt
6532 upper memory.
6533
6534 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
6535 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
6536 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6537 instead of hardcoding 0xA0000.
6538 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
6539 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6540 instead of hardcoding 0xA0000.
6541
f970b55e 65422008-01-21 Robert Millan <rmh@aybabtu.com>
6543
6544 * disk/memdisk.c (memdisk_size): New variable.
6545 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
6546 `memdisk_size'.
6547 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
6548 image to dynamic memory.
6549 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
6550 `memdisk_size'. Free memdisk block.
6551
1a8b0526 65522008-01-21 Robert Millan <rmh@aybabtu.com>
6553
6554 Fix detection of very small filesystems (like tar).
6555
6556 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
6557 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
6558 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
6559 a problem with this disk).
6560
6e9b4aab 65612008-01-21 Robert Millan <rmh@aybabtu.com>
6562
6563 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
6564 on grub_biosdisk_rw_standard() error.
6565
0d8837b2 65662008-01-21 Robert Millan <rmh@aybabtu.com>
6567
6568 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
6569 recent changes.
6570 * kern/elf.c: Likewise.
6571 * kern/ieee1275/ieee1275.c: Likewise.
6572 * kern/powerpc/ieee1275/openfw.c: Likewise.
6573 * term/ieee1275/ofconsole.c: Likewise.
6574
ffd36e34 65752008-01-21 Robert Millan <rmh@aybabtu.com>
6576
6577 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
6578
3f0093d0 6579 * include/grub/kernel.h (grub_arch_memdisk_addr)
6580 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 6581
3f0093d0 6582 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
6583 (grub_arch_memdisk_size): ... to here.
ffd36e34 6584
6c391b21 65852008-01-21 Robert Millan <rmh@aybabtu.com>
6586
6587 Mostly based on bugfix from Bean.
6588
6589 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
6590 attribute with hook() parameter.
6591 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
6592 declaration.
6593 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
6594 attribute with hook() parameter.
6595 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
6596 declaration.
6597
55a581dc 65982008-01-21 Robert Millan <rmh@aybabtu.com>
6599
6600 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
6601 (pkglib_MODULES): Add `memdisk.mod'.
6602 (memdisk_mod_SOURCES): New variable.
6603 (memdisk_mod_CFLAGS): Likewise.
6604 (memdisk_mod_LDFLAGS): Likewise.
6605
6606 * disk/memdisk.c: New file.
6607
6608 * include/grub/disk.h (grub_disk_dev_id): Add
6609 `GRUB_DISK_DEVICE_MEMDISK_ID'.
6610
6611 * include/grub/i386/pc/kernel.h
6612 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
6613 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
6614 (grub_kernel_image_size): New variable declaration.
6615 (grub_total_module_size): Likewise.
6616 (grub_memdisk_image_size): Likewise.
6617
6618 * include/grub/i386/pc/memory.h
6619 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
6620
6621 * include/grub/kernel.h: Include `<grub/symbol.h>'.
6622 (grub_arch_memdisk_addr): New variable declaration.
6623 (grub_arch_memdisk_size): Likewise.
6624
6625 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
6626 (grub_arch_memdisk_size): Likewise.
6627
6628 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
6629 (codestart): Replace hardcoded `0x100000' with
6630 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
6631
6632 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
6633 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
6634 not NULL, append the contents of the file it refers to, at the end of
6635 the compressed kernel image. Initialize `grub_memdisk_image_size'
6636 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
6637 (options): Add "memdisk"|'m' option.
6638 (main): Parse --memdisk|-m option, and pass user-provided path as
6639 parameter to generate_image().
6640
3d7f54c9 66412008-01-20 Robert Millan <rmh@aybabtu.com>
6642
6643 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
6644 grub_dprintf() calls from here ...
6645 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
6646
0bf74728 66472008-01-20 Robert Millan <rmh@aybabtu.com>
6648
6649 Fix detection of "real mode" when /options/real-mode? doesn't exist.
6650
6651 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
6652 declaration.
6653 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
6654 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
6655 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 6656 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 6657 property).
6658 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
6659 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
6660
33bf70a7 66612008-01-19 Robert Millan <rmh@aybabtu.com>
6662
fe6b695a 6663 Get rid of confusing function (superseded by
33bf70a7 6664 `grub_ieee1275_get_integer_property')
6665 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
6666 prototype.
6667 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
6668 function.
6669 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
6670 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 6671 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 6672
e2da7d26 66732008-01-19 Robert Millan <rmh@aybabtu.com>
6674
6675 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
6676 command after "shut-down", since implementations differ on which
6677 the command for halt is.
6678
59f1fd8d 66792008-01-19 Robert Millan <rmh@aybabtu.com>
6680
6681 * include/grub/i386/linuxbios/console.h: Add header protection.
6682 (grub_keyboard_controller_init): New function prototype.
6683 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
6684 (KEYBOARD_COMMAND_READ): Likewise.
6685 (KEYBOARD_COMMAND_WRITE): Likewise.
6686 (KEYBOARD_SCANCODE_SET1): Likewise.
6687 (grub_keyboard_controller_write): New function.
6688 (grub_keyboard_controller_read): Likewise.
6689 (grub_keyboard_controller_init): Likewise.
6690
6691 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
6692 (grub_console_init): On coreboot/LinuxBIOS, call
6693 grub_keyboard_controller_init().
6694
5f5a7c15 66952008-01-19 Robert Millan <rmh@aybabtu.com>
6696
6697 PowerPC changes provided by Pavel Roskin.
6698
6699 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
6700 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
6701 don't rely on cmain() doing it.
6702 * kern/i386/ieee1275/startup.S (_start): Store %eax in
6703 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
6704
1210e168 67052008-01-16 Robert Millan <rmh@aybabtu.com>
6706
6707 * include/grub/i386/linuxbios/memory.h
6708 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
6709 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
6710 receive `table_header' as argument. Instead, probe for it in the
6711 known memory ranges where it can be present.
6712 (grub_available_iterate): Do not pass a fixed `table_header' address
6713 to grub_linuxbios_table_iterate().
6714
3d04eab8 67152008-01-15 Robert Millan <rmh@aybabtu.com>
6716
6717 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
6718 * conf/i386-ieee1275.rmk: New file.
6719 * include/grub/i386/ieee1275/console.h: Likewise.
6720 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
6721 * include/grub/i386/ieee1275/kernel.h: Likewise.
6722 * include/grub/i386/ieee1275/time.h: Likewise.
6723 * kern/i386/ieee1275/init.c: Likewise.
6724 * kern/i386/ieee1275/startup.S: Likewise.
6725
d1bc1b73 67262008-01-15 Robert Millan <rmh@aybabtu.com>
6727
6728 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
6729 when pointers are 32-bit (but still do set it to one when they are
6730 64-bit).
6731
66a65807 67322008-01-15 Robert Millan <rmh@aybabtu.com>
6733
6734 * include/grub/ieee1275/ieee1275.h
6735 (grub_ieee1275_get_integer_property): New function prototype.
6736
6737 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
6738 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 6739 grub_ieee1275_get_property() to handle endianness.
66a65807 6740
6741 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
6742 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 6743 where appropriate.
66a65807 6744 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
6745 (grub_map): Likewise.
6746 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
6747
a83ccafd 67482008-01-15 Bean <bean123ch@gmail.com>
6749
6750 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
6751 (grub_script_execute_cmdline): Reset grub_errno.
6752
6753 * normal/main.c (read_config_file): Reset grub_errno.
6754
6755 * normal/parse.y (script_init): New.
6756 (script): Move function and menuentry here.
6757 (delimiter): New.
6758 (command): Add delimiter at the end of command.
6759 (commands): Adjust to match the new command.
6760 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 6761 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 6762 (if): Use the new commands.
6763
6764 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
6765
df6ecfc6 67662008-01-15 Robert Millan <rmh@aybabtu.com>
6767
6768 * normal/menu.c (run_menu): Move timeout message from here ...
6769 (print_timeout): ... to here.
6770 (run_menu): Use print_timeout() once during initial draw to print
6771 the whole message, and again in every clock tick to update only
6772 the number of seconds.
6773
87ae25eb 67742008-01-15 Robert Millan <rmh@aybabtu.com>
6775
6776 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
6777 actual size of `available' from grub_ieee1275_get_property(), and
6778 restrict parsing to that bound.
6779
47bf09a4 67802008-01-15 Christian Franke <franke@computer.org>
6781
6782 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
6783 (argp_program_version): Remove variable.
6784 (argp_program_bug_address): Likewise.
6785 (options): Convert from struct argp_option to struct option.
6786 (struct arguments): Remove.
6787 (parse_opt): Remove.
6788 (usage): New function.
6789 (main): Replace struct args members by simple variables.
6790 Replace argp_parse() by getopt_long().
6791 Add switch to evaluate options.
6792 Add missing "(...)" around root_dev in prefix string.
6793
c86f1469 67942008-01-14 Robert Millan <rmh@aybabtu.com>
6795
6796 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
6797 for grub_ieee1275_exit(), in order to improve portability.
6798
e622c559 67992008-01-14 Robert Millan <rmh@aybabtu.com>
6800
6801 * util/grub.d/10_linux.in (prefix): Define.
6802 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
6803
44cb1ec8 68042008-01-13 Pavel Roskin <proski@gnu.org>
6805
6806 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
6807 grub_errno if no errors have been detected.
6808
1eb8c802 68092008-01-12 Robert Millan <rmh@aybabtu.com>
6810
6811 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
6812 (grub_util_get_dev_abstraction): New function prototype.
6813
6814 * util/getroot.c: Include `<grub/util/getroot.h>'
6815 (grub_util_get_grub_dev): Move detection of abstraction type to ...
6816 (grub_util_get_dev_abstraction): ... here (new function).
6817
6818 * util/grub-probe.c: Convert PRINT_* to an enum. Add
6819 `PRINT_ABSTRACTION'.
6820 (probe): Probe for abstraction type when requested.
6821 (main): Understand `--target=abstraction'.
6822
6823 * util/i386/efi/grub-install.in: Add abstraction module to core
6824 image when it is found to be necessary.
6825 * util/i386/pc/grub-install.in: Likewise.
6826 * util/powerpc/ieee1275/grub-install.in: Likewise.
6827
6828 * util/update-grub_lib.in (font_path): Return system path without
6829 converting to GRUB path.
6830 * util/update-grub.in: Convert system path returned by font_path()
6831 to a GRUB path. Use `grub-probe -t abstraction' to determine what
6832 abstraction module is needed for loading fonts (if any). Export
6833 that as `GRUB_PRELOAD_MODULES'.
6834 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
6835 insmod commands).
6836
52bd3de9 68372008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
6838
6839 Remove some unused code from reiserfs.
f19dbdb7 6840
52bd3de9 6841 * fs/reiserfs.c (struct grub_reiserfs_key)
6842 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
6843 (struct grub_reiserfs_node_body): Removed.
6844 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
6845 Likewise.
6846 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
6847 Likewise.
6848 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
6849 Likewise.
6850 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
6851 Likewise.
6852 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
6853 Likewise.
6854 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
6855 Likewise.
6856 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
6857 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
6858 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
6859
2f80039d 68602008-01-10 Robert Millan <rmh@aybabtu.com>
6861
6862 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
6863 Determines if a file is garbage left by packaging systems, etc.
6864 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
6865 for processing /etc/grub.d scripts.
6866 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
6867 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
6868 as a condition for processing Linux images.
6869
87888032 68702008-01-10 Pavel Roskin <proski@gnu.org>
6871
6872 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
6873 to compile reiserfs.c on PowerPC.
6874
7e54fced 68752008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 6876
6877 * kern/device.c (grub_device_iterate): Do not abort device iteration
6878 when one of the devices cannot be opened.
6879 * kern/disk.c (grub_disk_open): Do not account previous failures of
6880 unrelated functions when grub_errno is checked for.
6881
5aa541e6 68822008-01-08 Robert Millan <rmh@aybabtu.com>
6883
6884 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
6885 `! grub_linux_is_bzimage', change order of address comparison to make
6886 it more intuitive, and improve "too big zImage" error message.
6887
7076340d 68882008-01-08 Robert Millan <rmh@aybabtu.com>
6889
6890 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
6891 `$(update-grub_DATA)'.
6892 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
6893 targets.
6894
9ca70333 68952008-01-07 Robert Millan <rmh@aybabtu.com>
6896
6897 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
6898 which instruction is modified by grub-setup during installation
6899 (since it wasn't obvious by only looking at this file).
6900
38ccf575 69012008-01-07 Robert Millan <rmh@aybabtu.com>
6902
6903 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
6904 listing actual TODO items.
6905
f5db4291 69062008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
6907
868967cf 6908 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
6909 correctly.
6910 (grub_reiserfs_get_key_offset): Likewise.
6911 (grub_reiserfs_set_key_offset): Likewise.
6912 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 6913 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 6914
6915 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
6916 better to remove the bitfield version completely.
f19dbdb7 6917
868967cf 69182008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 6919
f5db4291 6920 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
6921 allocated from the heap, due to the fshelp implementation.
6922 (grub_reiserfs_dir): Free NODE, due to the same reason.
6923
492e6d9d 69242008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
6925
6926 Mostly from Vincent Pelletier:
f19dbdb7 6927
492e6d9d 6928 * fs/reiserfs.c: New file.
f19dbdb7 6929
492e6d9d 6930 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
6931 (reiserfs_mod_SOURCES): New variable.
6932 (reiserfs_mod_CFLAGS): Likewise.
6933 (reiserfs_mod_LDFLAGS): Likewise.
6934
6935 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
6936 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
6937 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
6938 normal/color.c.
6939
9ce3e7c1 69402008-01-06 Robert Millan <rmh@aybabtu.com>
6941
6942 * normal/color.c: Remove `<grub/env.h>'.
6943
f3b58148 69442008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
6945
6946 * include/grub/normal.h: Include <grub/env.h>.
6947
7ac3bcfa 69482008-01-05 Robert Millan <rmh@aybabtu.com>
6949
6950 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
6951 usage example with `(hd0,1)'.
fb358190 6952 Reported by Samuel Thibault.
7ac3bcfa 6953
c8ee99d7 69542008-01-05 Robert Millan <rmh@aybabtu.com>
6955
6956 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
6957 (grub_linux_boot_zimage): Rename to ...
6958 (grub_linux_boot): ... this.
6959 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
6960 (grub_linux_boot_zimage): Conditionalize zImage copy.
6961
6962 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
6963 (grub_linux_boot_bzimage): Remove prototype.
6964 (grub_linux_boot_zimage): Rename to ...
6965 (grub_linux_boot): ... this.
6966
6967 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
6968 (grub_linux_boot): Remove function.
6969
0ece25b1 69702008-01-05 Robert Millan <rmh@aybabtu.com>
6971
6972 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
6973 (grub_env_write_color_highlight): Likewise.
6974 (grub_wait_after_message): Likewise.
6975
6976 * normal/color.c: New file.
6977
6978 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
6979 (normal_mod_DEPENDENCIES): Likewise.
6980
6981 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
6982 (normal_mod_DEPENDENCIES): Likewise.
6983
6984 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
6985 (normal_mod_DEPENDENCIES): Likewise.
6986
6987 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
6988 (normal_mod_DEPENDENCIES): Likewise.
6989
6990 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
6991 for waiting after a message is printed.
6992 * normal/main.c (read_config_file): Likewise.
6993 (grub_normal_init): Register grub_env_write_color_normal() and
6994 grub_env_write_color_highlight() hooks. Mark `color_normal' and
6995 `color_highlight' variables as global.
6996
6997 * normal/menu.c (grub_wait_after_message): New function.
6998 (grub_color_menu_normal): New variable. Replaces ...
6999 (GRUB_COLOR_MENU_NORMAL): ... this macro.
7000 (grub_color_menu_highlight): New variable. Replaces ...
7001 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
7002 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
7003 `GRUB_TERM_COLOR_STANDARD'.
7004 (print_message): Use `grub_setcolorstate' to reload colors. Rename
7005 `normal_code' and `highlight_code' to `old_color_normal' and
7006 `old_color_highlight', respectively.
7007 (grub_menu_init_page): Update colors when drawing the menu, based on
7008 `menu_color_normal' and `menu_color_highlight' variables.
7009 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
7010 a message is printed.
7011
182dd4e5 70122008-01-05 Robert Millan <rmh@aybabtu.com>
7013
7014 * kern/env.c (grub_env_context_open): Propagate hooks for global
7015 variables to new context.
7016
7017 * kern/main.c (grub_set_root_dev): Export `root' variable.
7018
ddf8f6ad 70192008-01-05 Robert Millan <rmh@aybabtu.com>
7020
7021 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 7022 discs unconditionally, since udev and others have options to provide
ddf8f6ad 7023 them.
7024
d8b43d9b 70252008-01-05 Robert Millan <rmh@aybabtu.com>
7026
7027 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
7028
2bff2de3 70292008-01-04 Christian Franke <franke@computer.org>
7030
7031 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
7032 of eisa_mmap.
7033
97eab917 70342008-01-03 Pavel Roskin <proski@gnu.org>
7035
7036 * kern/i386/linuxbios/init.c: Put "void" to all function
7037 declarations with no arguments.
7038 * kern/powerpc/ieee1275/init.c: Likewise.
7039 * term/i386/pc/at_keyboard.c: Likewise.
7040 * term/i386/pc/vga_text.c: Likewise.
7041 * util/grub-mkdevicemap.c: Likewise.
7042
b9416d00 70432008-01-02 Robert Millan <rmh@aybabtu.com>
7044
7045 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
7046 message when loaded image is out of bounds.
7047 (grub_multiboot_load_elf64): Likewise.
7048
92695df9 70492008-01-02 Pavel Roskin <proski@gnu.org>
7050
7051 * util/grub.d/10_linux.in: Try version without ".old" when
7052 looking for initrd. It's better to use initrd from the newer
7053 kernel of the same version than no initrd at all.
7054
d98d9cad 70552008-01-01 Robert Millan <rmh@aybabtu.com>
7056
7057 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
7058
dbfdce36 70592008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
7060
f19dbdb7 7061 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 7062 grub_video_get_active_render_target.
7063 (grub_video_adapter): Added unmap_color and get_active_render_target.
7064
f19dbdb7 7065 * video/video.c: Added grub_video_unmap_color and
dbfdce36 7066 grub_video_get_active_render_target.
7067 (grub_video_get_info): Changed method to accept NULL pointer as an
7068 argument to allow detection of active video adapter.
7069
7070 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
7071 grub_video_vbe_unmap_color_int.
7072 Added grub_video_vbe_unmap_color and
7073 grub_video_vbe_get_active_render_target.
7074 (grub_video_vbe_adapter): Added unmap_color and
7075 get_active_render_target.
7076
f19dbdb7 7077 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 7078 with grub_video_vbe_unmap_color_int.
7079
7080 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
7081 (DEFAULT_NORMAL_COLOR): Likewise.
7082 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
7083 (DEFAULT_FG_COLOR): Removed.
7084 (DEFAULT_BG_COLOR): Likewise.
7085 (DEFAULT_CURSOR_COLOR): Changed value.
7086 (grub_virtual_screen): Added standard_color_setting,
7087 normal_color_setting, highlight_color_setting and term_color.
7088 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
7089 (bitmap_width): Added.
7090 (bitmap_height): Likewise.
7091 (bitmap): Likewise.
7092 (set_term_color): Likewise.
7093 (grub_virtual_screen_setup): Changed to use new terminal coloring
7094 settings.
7095 (grub_gfxterm_init): Added init for bitmap.
7096 (grub_gfxterm_fini): Added destroy for bitmap.
7097 (redraw_screen_rect): Updated to use background bitmap and new
7098 terminal coloring.
7099 (scroll_up): Added optimization for case when there is no bitmap.
7100 (grub_gfxterm_cls): Fixed to use correct background color.
7101 (grub_virtual_screen_setcolorstate): Changed to use new terminal
7102 coloring.
7103 (grub_virtual_screen_setcolor): Likewise.
7104 (grub_virtual_screen_getcolor): Added.
7105 (grub_gfxterm_background_image_cmd): Likewise.
7106 (grub_video_term): Added setcolor and getcolor.
7107 (MOD_INIT): Added registration of background_image command.
7108 (MOD_TERM): Added unregistration for background_image command.
7109
c3c20931 71102007-12-30 Pavel Roskin <proski@gnu.org>
7111
7112 * loader/multiboot_loader.c: Fix multiboot command
7113 unregistration. Fix all typos in the word "multiboot".
7114
df266716 71152007-12-29 Pavel Roskin <proski@gnu.org>
94239199 7116
7117 * util/grub.d/10_linux.in: Refactor search for initrd. Add
7118 support for initrd names used in Fedora.
7119
fc6e896c 71202007-12-26 Bean <bean123ch@gmail.com>
7121
7122 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
7123 (cpio_mod_SOURCES): New variable.
7124 (cpio_mod_CFLAGS): Likewise.
7125 (cpio_mod_LDFLAGS): Likewise.
7126
7127 * fs/cpio.c: New file.
7128
7129 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
7130
7131 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7132
7133 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7134
7135 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7136
533110ad 71372007-12-25 Robert Millan <rmh@aybabtu.com>
7138
7139 * include/grub/term.h (struct grub_term): Add `getcolor' function.
7140 (grub_getcolor): New function.
7141
7142 * kern/term.c (grub_getcolor): New function.
7143 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
7144 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
7145 (print_entry): Set normal and highlight colors to
7146 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
7147 respectively, before printing and restore them to old
7148 values afterwards.
7149 (grub_menu_init_page): Likewise. Fill an additional colored space
7150 that would otherwise be left blank.
7151
7152 * term/efi/console.c (grub_console_getcolor): New function.
7153 (struct grub_console_term.getcolor): New variable.
7154 * term/i386/pc/console.c (grub_console_getcolor): New function.
7155 (struct grub_console_term.getcolor): New variable.
7156 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
7157 (struct grub_console_term.getcolor): New variable.
7158
7159 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
7160 (struct grub_console_term.setcolor): Remove variable.
7161 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
7162 (struct grub_console_term.setcolor): Remove variable.
7163 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
7164 (struct grub_console_term.setcolor): Remove variable.
7165 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
7166 (struct grub_console_term.setcolor): Remove variable.
7167
4931827f 71682007-12-25 Robert Millan <rmh@aybabtu.com>
7169
7170 * configure.ac: Search for possible unifont.hex locations, and
7171 define UNIFONT_HEX if found.
7172
7173 * Makefile.in (UNIFONT_HEX): Define variable.
7174 (DATA): Rename to ...
7175 (PKGLIB): ... this. Update all users.
7176 (PKGDATA): New variable.
7177 (pkgdata_IMAGES): Rename to ...
7178 (pkglib_IMAGES): ... this. Update all users.
7179 (pkgdata_MODULES): Rename to ...
7180 (pkglib_MODULES): ... this. Update all users.
7181 (pkgdata_PROGRAMS): Rename to ...
7182 (pkglib_PROGRAMS): ... this. Update all users.
7183 (pkgdata_DATA): Rename to ...
7184 (pkglib_DATA): ... this. Update all users.
7185 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
7186 (unicode.pff, ascii.pff): New rules.
7187 (all-local): Add `$(PKGDATA)' dependency.
7188 (install-local): Process `$(PKGDATA)'.
7189
7190 * util/update-grub_lib.in (font_path): Search for *.pff files in
7191 a few more locations, including `${pkgdata}'.
7192
57e57e31 71932007-12-23 Robert Millan <rmh@aybabtu.com>
7194
7195 Patch from Bean <bean123ch@gmail.com>:
7196 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
7197 `size'.
7198
4bc72aa9 71992007-12-21 Bean <bean123ch@gmail.com>
7200
7201 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
7202 (ntfscomp_mod_SOURCES): New variable.
7203 (ntfscomp_mod_CFLAGS): Likewise.
7204 (ntfscomp_mod_LDFLAGS): Likewise.
7205
7206 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
7207 (grub_probe_SOURCES): Likewise.
7208 (grub_emu_SOURCES): Likewise.
7209
7210 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7211 (grub_emu_SOURCES): Likewise.
7212
7213 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7214 (grub_emu_SOURCES): Likewise.
7215
7216 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7217 (grub_emu_SOURCES): Likewise.
7218
7219 * fs/ntfs.c (grub_ntfscomp_func): New variable.
7220 (read_run_list): Renamed to grub_ntfs_read_run_list.
7221 (decomp_nextvcn): Moved to ntfscomp.c.
7222 (decomp_getch): Likewise.
7223 (decomp_get16): Likewise.
7224 (decomp_block): Likewise.
7225 (read_block): Likewise.
7226 (read_data): Partially moved to ntfscomp.c.
7227 (fixup): Change unsigned to grub_uint16_t.
7228 (read_mft): Change unsigned long to grub_uint32_t.
7229 (read_attr): Likewise.
7230 (read_data): Likewise.
7231 (read_run_data): Likewise.
7232 (read_run_list): Likewise.
7233 (read_mft): Likewise.
7234
7235 * fs/ntfscomp.c: New file.
7236
7237 * include/grub/ntfs.h: New file.
7238
af680a87 72392007-12-16 Robert Millan <rmh@aybabtu.com>
7240
7241 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
7242 IDE disk check, since Linux is known to support 20 IDE disks.
7243 Reported by Colin Watson.
7244
84be7599 72452007-12-15 Bean <bean123ch@gmail.com>
7246
7247 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
7248 (lnxboot_img_SOURCES): New variable.
7249 (lnxboot_img_ASFLAGS): Likewise.
7250 (lnxboot_img_LDFLAGS): Likewise.
7251
7252 * boot/i386/pc/lnxboot.S: New file.
7253
6af9db01 72542007-11-24 Pavel Roskin <proski@gnu.org>
7255
7256 * configure.ac: Test if '--build-id=none' is supported by the
7257 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
7258 objcopy to generate incorrect binary files (binutils
7259 2.17.50.0.18-1 as shipped by Fedora 8).
7260 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
7261 linking, so that build ID doesn't break the test.
7262
7361cfe6 72632007-11-24 Pavel Roskin <proski@gnu.org>
7264
7265 * include/grub/i386/time.h: use "void" in the argument list
7266 of grub_cpu_idle().
7267 * include/grub/powerpc/time.h: Likewise.
7268 * include/grub/sparc64/time.h: Likewise.
7269
1593e10c 72702007-11-18 Christian Franke <franke@computer.org>
7271
7272 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
7273 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
7274 This fixes the problem that function keys did not work in grub-emu.
7275
3b8db1a8 72762007-11-18 Christian Franke <franke@computer.org>
7277
7278 * disk/host.c (grub_host_open): Remove attribute unused from
7279 name parameter. Add check for "host". This fixes the problem
7280 that grub-emu does not find partitions.
7281
2e29408d 72822007-11-18 Christian Franke <franke@computer.org>
7283
7284 * util/hostfs.c (is_dir): New function.
7285 (grub_hostfs_dir): Handle missing dirent.d_type case.
7286 (grub_hostfs_read): Add missing fseek().
7287 (grub_hostfs_label): Clear label pointer. This fixes a crash
7288 of grub-emu on "ls (host)".
7289
398cd047 72902007-11-18 Christian Franke <franke@computer.org>
7291
7292 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
7293 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
7294 to 64 bit boundary by default.
7295
c405c391 72962007-11-18 Bean <bean123ch@gmail.com>
7297
7298 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
7299 (hexdump_mod_SOURCES): New variable.
7300 (hexdump_mod_CFLAGS): Likewise.
7301 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 7302
c405c391 7303 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7304
7305 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7306
7307 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7308
7309 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7310
7311 * include/grub/hexdump.h: New file.
7312
7313 * commands/hexdump.c: New file.
7314
5cced7fd 73152007-11-10 Robert Millan <rmh@aybabtu.com>
7316
7317 * commands/i386/pc/play.c (beep_off): Switch order of arguments
7318 in grub_outb() calls.
7319 (beep_on): Likewise.
7320
8b714eb0 73212007-11-10 Christian Franke <franke@computer.org>
7322
7323 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
7324 (grub_menu_run): Likewise.
7325
ce0f1839 73262007-11-10 Robert Millan <rmh@aybabtu.com>
7327
7328 * include/grub/i386/efi/machine.h: New file.
7329 * include/grub/i386/linuxbios/machine.h: Likewise.
7330 * include/grub/i386/pc/machine.h: Likewise.
7331 * include/grub/powerpc/ieee1275/machine.h: Likewise.
7332 * include/grub/sparc64/ieee1275/machine.h: Likewise.
7333
7334 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
7335 (serial_hw_io_addr): New variable.
7336 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
7337 instead of `(unsigned short *) 0x400'.
7338
270c237d 73392007-11-10 Bean <bean123ch@gmail.com>
7340
7341 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
7342
a87783bf 73432007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7344
7345 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
7346 (vga_mod_SOURCES): Added.
7347 (vga_mod_CFLAGS): Likewise.
7348 (vga_mod_LDFLAGS): Likewise.
7349
7350 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
7351 grub_outb() calls.
7352 (set_map_mask): Likewise.
7353 (set_read_map): Likewise.
7354 (set_read_address): Likewise.
7355 (vga_font): Removed variable.
7356 (get_vga_glyph): Removed function.
7357 (invalidate_char): Likewise.
7358 (write_char): Changed to use grub_font_get_glyph() for font
7359 information.
7360 (grub_vga_putchar): Likewise.
7361 (grub_vga_getcharwidth): Likewise.
7362
6433b448 73632007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7364
7365 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
7366 flags.
7367 (pxeboot_img_LDFLAGS): Likewise.
7368 (diskboot_img_LDFLAGS): Likewise.
7369 (kernel_img_LDFLAGS): Likewise.
7370
49178511 73712007-11-06 Robert Millan <rmh@aybabtu.com>
7372
7373 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
7374 in grub_outb() calls.
7375 (serial_hw_init): Likewise.
7376
53b052de 73772007-11-05 Robert Millan <rmh@aybabtu.com>
7378
7379 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
7380 spaces. Skip non-regular files.
7381
5ab33bba 73822007-11-05 Robert Millan <rmh@aybabtu.com>
7383
7384 * kern/disk.c (grub_disk_firmware_fini)
7385 (grub_disk_firmware_is_tainted): New variables.
7386
7387 * include/grub/disk.h (grub_disk_firmware_fini)
7388 (grub_disk_firmware_is_tainted): Likewise.
7389
7390 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
7391 (grub_disk_biosdisk_fini): ... to here.
7392 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
7393 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
7394 is set. Register grub_disk_biosdisk_fini() in
7395 `grub_disk_firmware_fini'.
7396
7397 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
7398 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
7399 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
7400 to finish existing firmware disk interface.
7401
7402 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
7403 (ata_mod_SOURCES): New variable.
7404 (ata_mod_CFLAGS): Likewise.
7405 (ata_mod_LDFLAGS): Likewise.
7406
0149ab7c 74072007-11-05 Robert Millan <rmh@aybabtu.com>
7408
7409 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
7410 (grub_ata_wait): Reimplement using grub_millisleep().
7411
7412 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
7413 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
7414
be7ac41e 74152007-11-03 Marco Gerards <marco@gnu.org>
7416
7417 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
7418 (CRTC_ADDR_PORT): New macro.
7419 (CRTC_DATA_PORT): Likewise.
7420 (CRTC_CURSOR): Likewise.
7421 (CRTC_CURSOR_ADDR_HIGH): Likewise.
7422 (CRTC_CURSOR_ADDR_LOW): Likewise.
7423 (update_cursor): New function.
7424 (grub_console_real_putchar): Call `update_cursor'.
7425 (grub_console_gotoxy): Likewise.
7426 (grub_console_cls): Set the default color when clearing the
7427 screen.
7428 (grub_console_setcursor): Implemented.
7429
bb06ab2e 74302007-11-03 Marco Gerards <marco@gnu.org>
7431
7432 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
7433 become activate.
7434 (grub_ata_pio_write): Likewise.
7435
7436 (grub_atapi_identify): Wait after issuing an ATA command.
7437 (grub_atapi_packet): Likewise.
7438 (grub_ata_identify): Likewise.
7439 (grub_ata_readwrite): Likewise.
7440
cf8f780b 74412007-11-03 Marco Gerards <marco@gnu.org>
7442
7443 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
7444 (grub_ata_pio_write): Likewise.
7445 (grub_ata_readwrite): Use `grub_error', instead of
7446 returning `grub_errno'.
7447
ed649e54 74482007-11-03 Marco Gerards <marco@gnu.org>
7449
7450 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
7451 grub_ata_pio_write once for every single sector, instead of for
7452 multiple sectors.
7453
ca25d8f0 74542007-10-31 Robert Millan <rmh@aybabtu.com>
7455
7456 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
7457
7458 * conf/i386-linuxbios.rmk: New file.
7459
7460 * kern/i386/pc/hardware.c: Likewise.
7461 * term/i386/pc/at_keyboard.c: Likewise.
7462 * term/i386/pc/vga_text.c: Likewise.
7463
7464 * include/grub/i386/linuxbios/boot.h: Likewise.
7465 * include/grub/i386/linuxbios/console.h: Likewise.
7466 * include/grub/i386/linuxbios/init.h: Likewise.
7467 * include/grub/i386/linuxbios/kernel.h: Likewise.
7468 * include/grub/i386/linuxbios/loader.h: Likewise.
7469 * include/grub/i386/linuxbios/memory.h: Likewise.
7470 * include/grub/i386/linuxbios/serial.h: Likewise.
7471 * include/grub/i386/linuxbios/time.h: Likewise.
7472
7473 * kern/i386/linuxbios/init.c: Likewise.
7474 * kern/i386/linuxbios/startup.S: Likewise.
7475 * kern/i386/linuxbios/table.c: Likewise.
7476
e911ecc1 74772007-10-31 Marco Gerards <marco@gnu.org>
7478
7479 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
7480 (ata_mod_SOURCES): New variable.
7481 (ata_mod_CFLAGS): Likewise.
7482 (ata_mod_LDFLAGS): Likewise.
7483
7484 * disk/ata.c: New file.
7485
7486 * include/grub/disk.h (grub_disk_dev_id): Add
7487 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 7488
7f66d0e0 74892007-10-31 Robert Millan <rmh@aybabtu.com>
7490
7491 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
7492 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
7493
7494 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
7495 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
7496
7497 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
7498 `<grub/types.h>'.
7499
7500 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
7501
5cd7dd46 75022007-10-27 Robert Millan <rmh@aybabtu.com>
7503
3236ca65 7504 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 7505
2ebfc90f 75062007-10-22 Robert Millan <rmh@aybabtu.com>
7507
7508 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
7509 `"../realmode.S"'.
7510 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
7511
73fcb0f3 75122007-10-22 Robert Millan <rmh@aybabtu.com>
7513
7514 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
7515 (pkgdata_MODULES): Add `biosdisk.mod'.
7516 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
7517 variables.
7518
7519 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
7520 (grub_biosdisk_init): Replace with ...
7521 (GRUB_MOD_INIT(biosdisk)): ... this.
7522 (grub_biosdisk_fini): Replace with ...
7523 (GRUB_MOD_FINI(biosdisk)): ... this.
7524
7525 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
7526 (grub_machine_init): Remove call to grub_biosdisk_init().
7527 (grub_machine_fini): Remove call to grub_machine_fini().
7528
7529 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
7530
3381d274 75312007-10-22 Robert Millan <rmh@aybabtu.com>
7532
7533 * include/grub/time.h: New file.
7534 * include/grub/i386/time.h: Likewise.
7535 * include/grub/powerpc/time.h: Likewise.
7536 * include/grub/sparc64/time.h: Likewise.
7537
7538 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
7539 instances to ...
7540 (KERNEL_MACHINE_TIME_HEADER): ... this.
7541 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7542 instances to ...
7543 (KERNEL_MACHINE_TIME_HEADER): ... this.
7544 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7545 instances to ...
7546 (KERNEL_MACHINE_TIME_HEADER): ... this.
7547
7548 * kern/i386/efi/init.c: Include `<grub/time.h>'.
7549 (grub_millisleep): New function.
7550 * kern/i386/pc/init.c: Include `<grub/time.h>'.
7551 (grub_millisleep): New function.
7552 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
7553 Remove `grub/machine/time.h' include.
7554 (grub_millisleep): New function.
7555 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
7556 Remove `grub/machine/time.h' include.
7557 (grub_millisleep): New function.
7558
7559 * include/grub/misc.h (grub_div_roundup): New function.
7560
7561 * kern/misc.c: Include `<grub/time.h>'.
7562 (grub_millisleep_generic): New function.
7563
7564 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
7565 Add `time.h'.
7566 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
7567 Add `time.h'.
7568 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
7569 `machine/time.h'. Add `time.h'.
7570 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
7571
a39a0312 75722007-10-21 Robert Millan <rmh@aybabtu.com>
7573
7574 * include/grub/misc.h (grub_max): New function.
7575
2aad70e2 75762007-10-21 Robert Millan <rmh@aybabtu.com>
7577
7578 * util/misc.c (grub_util_info): Call fflush() before returning.
7579
54b71c4b 75802007-10-20 Robert Millan <rmh@aybabtu.com>
7581
7582 * genmk.rb (Image): Copy `extra_flags' from here ...
7583 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
7584
7585 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
7586 to `argc' and `args' arguments.
7587
a979f513 75882007-10-17 Robert Millan <rmh@aybabtu.com>
7589
7590 * kern/i386/loader.S: New file.
7591
7592 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
7593 * kern/i386/loader.S (grub_linux_prot_size)... to here.
7594 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
7595 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
7596 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
7597 * kern/i386/loader.S (grub_linux_real_addr)... to here.
7598 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
7599 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
7600 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
7601 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
7602 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
7603 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
7604 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
7605 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
7606
7607 * kern/i386/realmode.S: New file.
7608
7609 * kern/i386/pc/startup.S (protstack): Moved from here ...
7610 * kern/i386/realmode.S (protstack)... to here.
7611 * kern/i386/pc/startup.S (gdt): Moved from here ...
7612 * kern/i386/realmode.S (gdt)... to here.
7613 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
7614 * kern/i386/realmode.S (prot_to_real)... to here.
7615
7616 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
7617 `kern/i386/realmode.S'.
7618
825fc8fd 76192007-10-17 Robert Millan <rmh@aybabtu.com>
7620
7621 * include/grub/i386/loader.h: New file.
7622
7623 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
7624 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7625 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7626 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7627 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
7628 * include/grub/i386/loader.h (grub_linux_prot_size)
7629 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7630 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7631 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7632 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
7633
7634 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
7635
e179b2f4 76362007-10-15 Robert Millan <rmh@aybabtu.com>
7637
7638 * normal/misc.c (grub_normal_print_device_info): Do not probe for
7639 filesystem when dev->disk is unset.
7640 Do probe for filesystem even when dev->disk->has_partitions is set.
7641 In case a filesystem is found, always report it.
7642 In case it isn't, if dev->disk->has_partitions is set, report that
7643 a partition table was found instead of reporting that no filesystem
7644 could be identified.
7645
5db82af6 76462007-10-12 Robert Millan <rmh@aybabtu.com>
7647
7648 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
7649 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
7650
68f6ac74 7651 * include/grub/types.h (grub_host_to_target16): New macro.
7652 (grub_host_to_target32): Likewise.
7653 (grub_host_to_target64): Likewise.
7654 (grub_target_to_host16): Likewise.
7655 (grub_target_to_host32): Likewise.
7656 (grub_target_to_host64): Likewise.
5db82af6 7657
7658 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
7659 Renamed from to ...
7660 (GRUB_MOD_ALIGN): ...this. Update all users.
7661
68f6ac74 7662 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
7663 grub_host_to_target32.
7664 Replace grub_be_to_cpu32 with grub_target_to_host32.
7665 (load_modules): Likewise.
7666 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
7667 Replace grub_be_to_cpu32 with grub_target_to_host32.
7668 Replace grub_cpu_to_be16 with grub_host_to_target16.
7669 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 7670
3cf497cc 76712007-10-12 Robert Millan <rmh@aybabtu.com>
7672
7673 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
7674 * util/elf/grub-mkimage.c: ... here.
7675
7676 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
7677 `util/powerpc/ieee1275/grub-mkimage.c'.
7678
c8cc3692 76792007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 7680
c8cc3692 7681 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
7682 and make it easier to figure out.
7683 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
7684 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
7685 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
7686 leave us with less than HEAP_MIN_SIZE total heap.
7687 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 7688
5c58b791 76892007-10-03 Robert Millan <rmh@aybabtu.com>
7690
7691 * include/grub/i386/io.h: New file.
7692 * commands/i386/pc/play.c (inb): Removed.
7693 (outb): Removed.
7694 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7695 with grub_outb().
afcd2ef8 7696 * term/i386/pc/serial.c (inb): Removed.
7697 (outb): Removed.
7698 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7699 with grub_outb().
7700 * term/i386/pc/vga.c (inb): Removed.
7701 (outb): Removed.
7702 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7703 with grub_outb().
5c58b791 7704
1a477ed6 77052007-10-02 Robert Millan <rmh@aybabtu.com>
7706
7707 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
7708 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7709 Reported by Marcin Kurek.
7710
6b5d80fa 77112007-09-07 Robert Millan <rmh@aybabtu.com>
7712
7713 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
7714 SmartFirmware version updates (as released by Sven Luther), and avoid
7715 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
7716 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
7717 known broken.
7718
5618afbf 77192007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7720
7721 From Hitoshi Ozeki:
7722 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
7723 when merging two regions.
7724
6139dcd9 77252007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7726
508e39ee 7727 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
7728 * normal/completion.c (grub_normal_do_completion): Likewise.
7729 Reported by Hitoshi Ozeki.
7730
77312007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7732
6139dcd9 7733 Do not use devices at boot in chainloading.
f19dbdb7 7734
6139dcd9 7735 * loader/i386/pc/chainloader.c (boot_drive): New variable.
7736 (boot_part_addr): Likewise.
7737 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
7738 with BOOT_DRIVE and BOOT_PART_ADDR.
7739 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
7740 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
7741
38da6516 77422007-08-29 Robert Millan <rmh@aybabtu.com>
7743
7744 Patch from Simon Peter <dn.tlp@gmx.net>:
7745 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
7746 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
7747 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
7748 util/i386/pc/grub-setup.c_DEPENDENCIES.
7749 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
7750 util/grub-probe.c_DEPENDENCIES.
7751 * conf/powerpc-ieee1275.rmk: Likewise.
7752
29d0928c 77532007-08-28 Robert Millan <rmh@aybabtu.com>
7754
7755 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
7756 to tell grub-mkdevicemap how to name devices.
7757 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
7758 feature).
7759
7760 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
7761 util/i386/get_disk_name.c.
7762 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
7763 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
7764 util/ieee1275/get_disk_name.c.
7765
7766 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
7767
7768 * DISTLIST: Add util/i386/get_disk_name.c and
7769 util/ieee1275/get_disk_name.c.
7770
7771 * util/grub-mkdevicemap.c: Replace device naming logic with
7772 grub_util_get_disk_name() calls.
7773
5a0d3cca 77742007-08-20 Robert Millan <rmh@aybabtu.com>
7775
7776 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
7777 (so that it works for both plural and singular quantities).
7778
8b72db2f 77792007-08-05 Robert Millan <rmh@aybabtu.com>
7780
7781 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
7782 so that [xz] isn't taken into account when determining order.
7783
352466bf 77842007-08-02 Marco Gerards <marco@gnu.org>
7785
7786 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
7787 `include/multiboot2.h', `include/grub/elfload.h',
7788 `include/multiboot.h', `include/grub/multiboot.h',
7789 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
7790 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
7791 `kern/elf.c', `loader/multiboot_loader.c',
7792 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
7793 `loader/i386/pc/multiboot2.c',
7794 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
7795 `util/i386/pc/grub-mkrescue.in'. Remove
7796 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
7797 `include/grub/i386/pc/util/biosdisk.h' and
7798 `include/grub/powerpc/ieee1275/multiboot.h'.
7799
8f096014 78002007-08-02 Bean <bean123ch@gmail.com>
7801
7802 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
7803 (ntfs_mod_SOURCES): New variable.
7804 (ntfs_mod_CFLAGS): Likewise.
7805 (ntfs_mod_LDFLAGS): Likewise.
7806
7807 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
7808 (grub_probe_SOURCES): Likewise.
7809 (grub_emu_SOURCES): Likewise.
7810
7811 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
7812 (grub_emu_SOURCES): Likewise.
7813
7814 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
7815 (grub_emu_SOURCES): Likewise.
f19dbdb7 7816
8f096014 7817 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
7818
7819 * fs/ntfs.c: New file.
7820
9959f7db 78212007-08-02 Bean <bean123ch@gmail.com>
7822
7823 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
7824
7825 * file.h (grub_file): Likewise.
7826
7827 * fshelp.h (grub_fshelp_read_file): Likewise.
7828
7829 * util/i386/pc/grub-setup.c (setup): Likewise.
7830 (save_first_sector): Likewise.
7831 (save_blocklists): Likewise.
f19dbdb7 7832
9959f7db 7833 * fs/affs.c (grub_affs_read_file): Likewise.
7834
7835 * fs/ext2.c (grub_ext2_read_file): Likewise.
7836
7837 * fs/fat.c (grub_fat_read_data): Likewise.
7838
7839 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
7840
7841 * fs/hfs.c (grub_hfs_read_file): Likewise.
7842
7843 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
7844
7845 * fs/jfs.c (grub_jfs_read_file): Likewise.
7846
7847 * fs/minix.c (grub_minix_read_file): Likewise.
7848
7849 * fs/sfs.c (grub_sfs_read_file): Likewise.
7850
7851 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 7852
9959f7db 7853 * fs/xfs.c (grub_xfs_read_file): Likewise.
7854
7855 * command/blocklist.c (read_blocklist): Likewise.
7856 (print_blocklist): Likewise.
7857
0a203f83 78582007-08-02 Marco Gerards <marco@gnu.org>
7859
7860 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
7861 `util/hostfs.c'.
7862
7863 * disk/host.c: New file.
7864
7865 * util/hostfs.c: Likewise.
7866
7867 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
7868 return `GRUB_ERR_BAD_FS'.
7869 * fs/sfs.c (grub_sfs_mount): Likewise.
7870 * fs/xfs.c (grub_xfs_mount): Likewise.
7871
7872 * include/grub/disk.h (enum grub_disk_dev_id): Add
7873 `GRUB_DISK_DEVICE_HOST_ID'.
7874
7875 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
7876
e5dfe777 78772007-07-24 Jerone Young <jerone@gmail.com>
7878
f19dbdb7 7879 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 7880 modules for compilation.
7881 * conf/powerpc-ieee1275.rmk: Likewise.
7882
7883 * include/multiboot.h: Move multiboot definitions to one file. Rename
7884 many definitions to not get grub specific.
7885 * include/multiboot2.h: Create header with multiboot 2 definitions.
7886 * include/grub/multiboot.h: Header for grub specific function
7887 prototypes and definitions.
7888 * include/grub/multiboot2.h: Likewise.
7889 * include/grub/multiboot_loader.h: Likewise.
7890 * include/grub/i386/pc/multiboot.h: Removed.
7891 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
7892
7893 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
7894 and 2 to allow for one multiboot and module commands.
7895 * loader/multiboot2.c: Add multiboot2 functionality.
7896 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
7897 and definition names.
7898 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
7899 2 functions.
7900 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
7901 ieee1275 specific multiboot2 code.
7902
7903 * kern/i386/pc/startup.S: Change headers and definition names for
7904 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
7905
daf0f0ba 79062007-07-22 Robert Millan <rmh@aybabtu.com>
7907
7908 * geninitheader.sh: Process file specified in first parameter rather
7909 than hardcoding grub_modules_init.lst.
fe6b695a 7910 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 7911 than hardcoding grub_modules_init.h.
7912
7913 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
7914 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
7915 grub_probe_init.[ch] and grub_setup_init.[ch].
7916
7917 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
7918 grub_modules_init.h with grub_emu_init.h.
7919 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
7920 grub_probe_init.[ch] files.
7921 * conf/i386-efi.rmk: Likewise.
7922 * conf/i386-pc.rmk: Likewise.
7923 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
7924 grub_setup_init.[ch] files.
7925
7926 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
7927 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
7928 to initialize modules rather than a list of hardcoded functions.
7929 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
7930 grub_init_all() to initialize modules rather than a list of hardcoded
7931 functions.
7932
54cdc1cc 79332007-07-22 Robert Millan <rmh@aybabtu.com>
7934
7935 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
7936 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
7937
ad0686cc 79382007-07-22 Robert Millan <rmh@aybabtu.com>
7939
7940 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
7941 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
7942 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
7943 flag when running on SmartFirmware.
7944 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
7945 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
7946 was set.
7947
7948 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
7949 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
7950 rather than decreasing it.
7951
7952 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
7953 there's not enough space to do it, fail in the same way as when it
7954 can't be done because there are no partitions.
7955
7956 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
7957 when nvsetenv failed.
7958
969c02ec 79592007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
7960
7961 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
7962 because this rule is automatically generated.
7963 (grub-mkrescue): Removed for the same reason as above.
7964
5a79f472 79652007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
7966
7967 Migrate to GNU General Public License Version 3.
f19dbdb7 7968
5a79f472 7969 * COPYING: Replaced with the plain text version of GPLv3.
7970
7971 * config.guess: Updated from gnulib.
7972 * config.sub: Likewise.
7973
7974 * geninit.sh: Output a GPLv3 copyright notice.
7975 * geninitheader.sh: Likewise.
7976 * genmodsrc.sh: Likewise.
7977 * gensymlist.sh.in: Likewise.
7978
7979 * boot/i386/pc/boot.S: Upgraded to GPLv3.
7980 * boot/i386/pc/diskboot.S: Likewise.
7981 * boot/i386/pc/pxeboot.S: Likewise.
7982 * commands/blocklist.c: Likewise.
7983 * commands/boot.c: Likewise.
7984 * commands/cat.c: Likewise.
7985 * commands/cmp.c: Likewise.
7986 * commands/configfile.c: Likewise.
7987 * commands/echo.c: Likewise.
7988 * commands/help.c: Likewise.
7989 * commands/ls.c: Likewise.
7990 * commands/search.c: Likewise.
7991 * commands/terminal.c: Likewise.
7992 * commands/test.c: Likewise.
7993 * commands/videotest.c: Likewise.
7994 * commands/i386/cpuid.c: Likewise.
7995 * commands/i386/pc/halt.c: Likewise.
7996 * commands/i386/pc/play.c: Likewise.
7997 * commands/i386/pc/reboot.c: Likewise.
7998 * commands/i386/pc/vbeinfo.c: Likewise.
7999 * commands/i386/pc/vbetest.c: Likewise.
8000 * commands/ieee1275/halt.c: Likewise.
8001 * commands/ieee1275/reboot.c: Likewise.
8002 * commands/ieee1275/suspend.c: Likewise.
8003 * disk/loopback.c: Likewise.
8004 * disk/lvm.c: Likewise.
8005 * disk/raid.c: Likewise.
8006 * disk/efi/efidisk.c: Likewise.
8007 * disk/i386/pc/biosdisk.c: Likewise.
8008 * disk/ieee1275/ofdisk.c: Likewise.
8009 * font/manager.c: Likewise.
8010 * fs/affs.c: Likewise.
8011 * fs/ext2.c: Likewise.
8012 * fs/fat.c: Likewise.
8013 * fs/fshelp.c: Likewise.
8014 * fs/hfs.c: Likewise.
8015 * fs/hfsplus.c: Likewise.
8016 * fs/iso9660.c: Likewise.
8017 * fs/jfs.c: Likewise.
8018 * fs/minix.c: Likewise.
8019 * fs/sfs.c: Likewise.
8020 * fs/ufs.c: Likewise.
8021 * fs/xfs.c: Likewise.
8022 * hello/hello.c: Likewise.
8023 * include/grub/acorn_filecore.h: Likewise.
8024 * include/grub/arg.h: Likewise.
8025 * include/grub/bitmap.h: Likewise.
8026 * include/grub/boot.h: Likewise.
8027 * include/grub/cache.h: Likewise.
8028 * include/grub/device.h: Likewise.
8029 * include/grub/disk.h: Likewise.
8030 * include/grub/dl.h: Likewise.
8031 * include/grub/elfload.h: Likewise.
8032 * include/grub/env.h: Likewise.
8033 * include/grub/err.h: Likewise.
8034 * include/grub/file.h: Likewise.
8035 * include/grub/font.h: Likewise.
8036 * include/grub/fs.h: Likewise.
8037 * include/grub/fshelp.h: Likewise.
8038 * include/grub/gzio.h: Likewise.
8039 * include/grub/hfs.h: Likewise.
8040 * include/grub/kernel.h: Likewise.
8041 * include/grub/loader.h: Likewise.
8042 * include/grub/lvm.h: Likewise.
8043 * include/grub/misc.h: Likewise.
8044 * include/grub/mm.h: Likewise.
8045 * include/grub/net.h: Likewise.
8046 * include/grub/normal.h: Likewise.
8047 * include/grub/parser.h: Likewise.
8048 * include/grub/partition.h: Likewise.
8049 * include/grub/pc_partition.h: Likewise.
8050 * include/grub/raid.h: Likewise.
8051 * include/grub/rescue.h: Likewise.
8052 * include/grub/script.h: Likewise.
8053 * include/grub/setjmp.h: Likewise.
8054 * include/grub/symbol.h: Likewise.
8055 * include/grub/term.h: Likewise.
8056 * include/grub/terminfo.h: Likewise.
8057 * include/grub/tparm.h: Likewise.
8058 * include/grub/types.h: Likewise.
8059 * include/grub/video.h: Likewise.
8060 * include/grub/efi/api.h: Likewise.
8061 * include/grub/efi/chainloader.h: Likewise.
8062 * include/grub/efi/console.h: Likewise.
8063 * include/grub/efi/console_control.h: Likewise.
8064 * include/grub/efi/disk.h: Likewise.
8065 * include/grub/efi/efi.h: Likewise.
8066 * include/grub/efi/pe32.h: Likewise.
8067 * include/grub/efi/time.h: Likewise.
8068 * include/grub/i386/linux.h: Likewise.
8069 * include/grub/i386/setjmp.h: Likewise.
8070 * include/grub/i386/types.h: Likewise.
8071 * include/grub/i386/efi/kernel.h: Likewise.
8072 * include/grub/i386/efi/loader.h: Likewise.
8073 * include/grub/i386/efi/time.h: Likewise.
8074 * include/grub/i386/pc/biosdisk.h: Likewise.
8075 * include/grub/i386/pc/boot.h: Likewise.
8076 * include/grub/i386/pc/chainloader.h: Likewise.
8077 * include/grub/i386/pc/console.h: Likewise.
8078 * include/grub/i386/pc/init.h: Likewise.
8079 * include/grub/i386/pc/kernel.h: Likewise.
8080 * include/grub/i386/pc/loader.h: Likewise.
8081 * include/grub/i386/pc/memory.h: Likewise.
8082 * include/grub/i386/pc/multiboot.h: Likewise.
8083 * include/grub/i386/pc/serial.h: Likewise.
8084 * include/grub/i386/pc/time.h: Likewise.
8085 * include/grub/i386/pc/vbe.h: Likewise.
8086 * include/grub/i386/pc/vbeblit.h: Likewise.
8087 * include/grub/i386/pc/vbefill.h: Likewise.
8088 * include/grub/i386/pc/vbeutil.h: Likewise.
8089 * include/grub/i386/pc/vga.h: Likewise.
8090 * include/grub/ieee1275/ieee1275.h: Likewise.
8091 * include/grub/ieee1275/ofdisk.h: Likewise.
8092 * include/grub/powerpc/libgcc.h: Likewise.
8093 * include/grub/powerpc/setjmp.h: Likewise.
8094 * include/grub/powerpc/types.h: Likewise.
8095 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
8096 * include/grub/powerpc/ieee1275/console.h: Likewise.
8097 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
8098 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
8099 * include/grub/powerpc/ieee1275/loader.h: Likewise.
8100 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
8101 * include/grub/powerpc/ieee1275/time.h: Likewise.
8102 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
8103 * include/grub/sparc64/libgcc.h: Likewise.
8104 * include/grub/sparc64/setjmp.h: Likewise.
8105 * include/grub/sparc64/types.h: Likewise.
8106 * include/grub/sparc64/ieee1275/console.h: Likewise.
8107 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
8108 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
8109 * include/grub/sparc64/ieee1275/time.h: Likewise.
8110 * include/grub/util/biosdisk.h: Likewise.
8111 * include/grub/util/getroot.h: Likewise.
8112 * include/grub/util/lvm.h: Likewise.
8113 * include/grub/util/misc.h: Likewise.
8114 * include/grub/util/raid.h: Likewise.
8115 * include/grub/util/resolve.h: Likewise.
8116 * io/gzio.c: Likewise.
8117 * kern/device.c: Likewise.
8118 * kern/disk.c: Likewise.
8119 * kern/dl.c: Likewise.
8120 * kern/elf.c: Likewise.
8121 * kern/env.c: Likewise.
8122 * kern/err.c: Likewise.
8123 * kern/file.c: Likewise.
8124 * kern/fs.c: Likewise.
8125 * kern/loader.c: Likewise.
8126 * kern/main.c: Likewise.
8127 * kern/misc.c: Likewise.
8128 * kern/mm.c: Likewise.
8129 * kern/parser.c: Likewise.
8130 * kern/partition.c: Likewise.
8131 * kern/rescue.c: Likewise.
8132 * kern/term.c: Likewise.
8133 * kern/efi/efi.c: Likewise.
8134 * kern/efi/init.c: Likewise.
8135 * kern/efi/mm.c: Likewise.
8136 * kern/i386/dl.c: Likewise.
8137 * kern/i386/efi/init.c: Likewise.
8138 * kern/i386/efi/startup.S: Likewise.
8139 * kern/i386/pc/init.c: Likewise.
8140 * kern/i386/pc/lzo1x.S: Likewise.
8141 * kern/i386/pc/startup.S: Likewise.
8142 * kern/ieee1275/ieee1275.c: Likewise.
8143 * kern/powerpc/cache.S: Likewise.
8144 * kern/powerpc/dl.c: Likewise.
8145 * kern/powerpc/ieee1275/cmain.c: Likewise.
8146 * kern/powerpc/ieee1275/crt0.S: Likewise.
8147 * kern/powerpc/ieee1275/init.c: Likewise.
8148 * kern/powerpc/ieee1275/openfw.c: Likewise.
8149 * kern/sparc64/cache.S: Likewise.
8150 * kern/sparc64/dl.c: Likewise.
8151 * kern/sparc64/ieee1275/init.c: Likewise.
8152 * kern/sparc64/ieee1275/openfw.c: Likewise.
8153 * loader/efi/chainloader.c: Likewise.
8154 * loader/efi/chainloader_normal.c: Likewise.
8155 * loader/i386/efi/linux.c: Likewise.
8156 * loader/i386/efi/linux_normal.c: Likewise.
8157 * loader/i386/pc/chainloader.c: Likewise.
8158 * loader/i386/pc/chainloader_normal.c: Likewise.
8159 * loader/i386/pc/linux.c: Likewise.
8160 * loader/i386/pc/linux_normal.c: Likewise.
8161 * loader/i386/pc/multiboot.c: Likewise.
8162 * loader/i386/pc/multiboot_normal.c: Likewise.
8163 * loader/powerpc/ieee1275/linux.c: Likewise.
8164 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
8165 * normal/arg.c: Likewise.
8166 * normal/cmdline.c: Likewise.
8167 * normal/command.c: Likewise.
8168 * normal/completion.c: Likewise.
8169 * normal/execute.c: Likewise.
8170 * normal/function.c: Likewise.
8171 * normal/lexer.c: Likewise.
8172 * normal/main.c: Likewise.
8173 * normal/menu.c: Likewise.
8174 * normal/menu_entry.c: Likewise.
8175 * normal/misc.c: Likewise.
8176 * normal/parser.y: Likewise.
8177 * normal/script.c: Likewise.
8178 * normal/i386/setjmp.S: Likewise.
8179 * normal/powerpc/setjmp.S: Likewise.
8180 * normal/sparc64/setjmp.S: Likewise.
8181 * partmap/acorn.c: Likewise.
8182 * partmap/amiga.c: Likewise.
8183 * partmap/apple.c: Likewise.
8184 * partmap/gpt.c: Likewise.
8185 * partmap/pc.c: Likewise.
8186 * partmap/sun.c: Likewise.
8187 * term/gfxterm.c: Likewise.
8188 * term/terminfo.c: Likewise.
8189 * term/efi/console.c: Likewise.
8190 * term/i386/pc/console.c: Likewise.
8191 * term/i386/pc/serial.c: Likewise.
8192 * term/i386/pc/vesafb.c: Likewise.
8193 * term/i386/pc/vga.c: Likewise.
8194 * term/ieee1275/ofconsole.c: Likewise.
8195 * util/biosdisk.c: Likewise.
8196 * util/console.c: Likewise.
8197 * util/genmoddep.c: Likewise.
8198 * util/getroot.c: Likewise.
8199 * util/grub-emu.c: Likewise.
8200 * util/grub-mkdevicemap.c: Likewise.
8201 * util/grub-probe.c: Likewise.
8202 * util/lvm.c: Likewise.
8203 * util/misc.c: Likewise.
8204 * util/raid.c: Likewise.
8205 * util/resolve.c: Likewise.
8206 * util/update-grub.in: Likewise.
8207 * util/update-grub_lib.in: Likewise.
8208 * util/grub.d/00_header.in: Likewise.
8209 * util/grub.d/10_hurd.in: Likewise.
8210 * util/grub.d/10_linux.in: Likewise.
8211 * util/i386/efi/grub-install.in: Likewise.
8212 * util/i386/efi/grub-mkimage.c: Likewise.
8213 * util/i386/pc/grub-install.in: Likewise.
8214 * util/i386/pc/grub-mkimage.c: Likewise.
8215 * util/i386/pc/grub-mkrescue.in: Likewise.
8216 * util/i386/pc/grub-setup.c: Likewise.
8217 * util/i386/pc/misc.c: Likewise.
8218 * util/powerpc/ieee1275/grub-install.in: Likewise.
8219 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
8220 * util/powerpc/ieee1275/misc.c: Likewise.
8221 * video/bitmap.c: Likewise.
8222 * video/video.c: Likewise.
8223 * video/i386/pc/vbe.c: Likewise.
8224 * video/i386/pc/vbeblit.c: Likewise.
8225 * video/i386/pc/vbefill.c: Likewise.
8226 * video/i386/pc/vbeutil.c: Likewise.
8227 * video/readers/tga.c: Likewise.
8228
3572d015 82292007-07-02 Robert Millan <rmh@aybabtu.com>
8230
8231 * conf/i386-efi.rmk: Replace obsolete reference to
8232 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
8233 with util/getroot.c.
8234 * conf/powerpc-ieee1275.rmk: Likewise.
8235 * conf/sparc64-ieee1275.rmk: Likewise.
8236
8237 * util/grub-emu.c (main): Fix unchecked pointer handling.
8238
2c2a681b 82392007-07-02 Robert Millan <rmh@aybabtu.com>
8240
8241 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
8242 invocation to fail, in order to support partition-less media.
8243
8244 * util/i386/pc/grub-install.in: Likewise.
8245
8246 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
8247 which fs or partmap modules are needed (akin to its sister scripts).
8248
8249 Also use grub-probe to get rid of unportable /proc/mounts check.
8250
8251 Print the same informational message that the other scripts do, before
fe6b695a 8252 exiting.
2c2a681b 8253
6193defe 82542007-06-23 Robert Millan <rmh@aybabtu.com>
8255
fe6b695a 8256 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 8257 a font file can be found and, if so, echo the GRUB path to it.
8258
8259 * util/update-grub.in: Handle multiple terminals depending on user
8260 input, platform availability and font file presence. Propagate
8261 variables of our findings to /etc/grub.d/ children.
8262
8263 * util/grub.d/00_header.in: Handle multiple terminals, based on
8264 environment setup by update-grub.
8265
eface1dc 82662007-06-23 Robert Millan <rmh@aybabtu.com>
8267
ba50d28f 8268 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 8269
bf697e28 82702007-06-21 Robert Millan <rmh@aybabtu.com>
8271
8272 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
8273 indicate end of data section in kernel image.
8274 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
8275 GRUB_KERNEL_MACHINE_DATA_END.
8276
8277 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
8278 space for it.
8279 * kern/i386/efi/startup.S: Likewise.
8280
8281 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
8282 during image generation. Implement --prefix option to override this
8283 patch.
8284 * util/i386/efi/grub-mkimage.c: Likewise.
8285
8286 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
8287 code to make path relative to its root into a separate function.
8288
8289 * util/i386/pc/grub-install.in: Use newly provided
8290 make_system_path_relative_to_its_root() to convert ${grubdir}, then
8291 pass the result to grub-install --prefix.
8292
baa574b4 82932007-06-13 Robert Millan <rmh@aybabtu.com>
8294
8295 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
8296 DEFAULT_DEVICE_MAP.
8297 * util/grub-emu.c: Use above definitions from misc.h instead of
8298 defining them.
8299 * util/grub-mkdevicemap.c: Likewise.
8300 * util/i386/pc/grub-setup.c: Likewise.
8301 * util/grub-probe.c: Likewise.
8302 (probe): Abort with grub_util_error() when either
8303 grub_guess_root_device or grub_util_get_grub_dev fails.
8304
0215dcbf 83052007-06-12 Robert Millan <rmh@aybabtu.com>
8306
8307 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
8308 "pager" assignment.
8309 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
8310 "pcdata".
8311 * util/grub-probe.c (probe): Likewise for "drive_name".
8312
8af2ab7b 83132007-06-11 Robert Millan <rmh@aybabtu.com>
8314
8315 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
8316 not just the cdrom one.
8317
59d31694 83182007-06-11 Robert Millan <rmh@aybabtu.com>
8319
8320 * util/i386/pc/grub-mkrescue.in: Add "set -e".
8321 Add --pkglibdir=DIR option to override pkglibdir.
8322 Mention --image-type=TYPE in help output.
8323 Fix --grub-mkimage (it was a no-op).
fe6b695a 8324 Abort gracefully when no parameter is given.
59d31694 8325
7ee367e4 83262007-06-11 Robert Millan <rmh@aybabtu.com>
8327
8328 * util/i386/pc/grub-mkrescue.in: New file.
8329 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
8330 * Makefile.in: Handle bin_SCRIPTS.
8331
29b0ed46 83322007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
8333
8334 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
8335 list of video modes.
8336
c0f90770 83372007-06-06 Robert Millan <rmh@aybabtu.com>
8338
8339 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
8340 file doesn't exist, or if it is in a filesystem grub can't read.
8341
8342 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
8343 not abort if GRUB_DRIVE could not be defined. Rearrange generated
8344 header comment to fit in 80 columns when the variables are resolved.
8345
8346 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
8347 could be identified by update-grub. Remove redundant check for
fe6b695a 8348 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 8349 handles that).
8350
fb36dc26 83512007-06-04 Robert Millan <rmh@aybabtu.com>
8352
8353 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
8354
8355 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
8356
8357 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
8358
0c68c93e 83592007-06-04 Robert Millan <rmh@aybabtu.com>
8360
8361 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
8362
8363 * include/grub/partition.h: Declare grub_apple_partition_map_init and
8364 grub_apple_partition_map_fini.
8365
8366 * util/biosdisk.c
8367 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
8368 to access >2 TiB disks).
8369
8370 Print disk->total_sectors with %llu instead of %lu, since this
8371 variable is always 64-bit (prevents wrong disk size from being displayed
8372 on either >2 TiB disk or big-endian CPU).
8373
8374 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
8375 into a generic case that supports all (sane) partition maps.
8376
8377 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
8378 breaks big-endian.
8379
8380 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
8381 and grub_apple_partition_map_fini() after that.
8382
0f23eb74 83832007-06-01 Robert Millan <rmh@aybabtu.com>
8384
8385 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
8386
8387 * util/grub.d/00_header.in: Only enable gfxterm when
8388 convert_system_path_to_grub_path() succeeds.
8389
42c71976 83902007-05-20 Robert Millan <rmh@aybabtu.com>
8391
8392 * util/update-grub_lib.in: New file.
8393 * DISTLIST: Add update-grub_lib.in.
8394 * conf/common.rmk: Generate update-grub_lib and install it in
8395 $(lib_DATA).
8396 * Makefile.in: Add install routine for $(lib_DATA).
8397
8398 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
8399 function provided by update-grub_lib to support arbitrary paths of
8400 unifont.pff.
8401 * util/update-grub.in: Use convert_system_path_to_grub_path() to
8402 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
8403
5beb2291 84042007-05-19 Robert Millan <rmh@aybabtu.com>
8405
8406 * commands/i386/cpuid.c: New module.
8407 * DISTLIST: Add it.
8408 * conf/i386-efi.rmk: Enable cpuid.mod.
8409 * conf/i386-pc.rmk: Likewise.
8410
7262eca1 84112007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8412
8413 * kern/disk.c (grub_disk_read): Check return value of
8414 grub_realloc().
8415
260ba823 84162007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8417
8418 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
8419 arrays.
8420 * disk/raid.c (grub_raid_open): Likewise.
8421
1ecb6cf2 84222007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8423
8424 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
8425 stack instead of on the heap.
8426
8427 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
8428 before doing a read on it.
8429
8430 * configure.ac: Only use -fno-stack-protector for the target
8431 environment.
f19dbdb7 8432
21c8cbb1 84332007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8434
8435 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
8436 __attribute_ ((unused)) to mode_type argument.
8437
8438 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 8439
21c8cbb1 8440 * kern/misc.c (memcmp): Fix prototype.
8441
8442 * include/grub/partition.h [GRUB_UTIL]
8443 (grub_gpt_partition_map_init): Add prototype.
8444 (grub_gpt_partition_map_fini): Likewise.
8445
8446 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
8447 at the right place.
8448
8449 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
8450 (grub_fat_read_data): Likewise.
8451 (grub_fat_find_dir): Likewise.
8452
8453 * font/manager.c (find_glyph): Make table a const.
8454 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 8455
849d55d3 84562007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
8457
8458 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
8459 code, first search for device in /dev/mapper, then in /dev.
8460 (grub_util_get_grub_dev): New function.
8461 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
8462 prototype.
8463 * util/grub-probe.c (probe): Remove check for RAID, call
8464 grub_util_get_grub_dev() instead of
8465 grub_util_biosdisk_get_grub_dev().
8466 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
8467 grub_util_biosdisk_get_grub_dev().
8468 * util/i386/pc/grub-setup.c (main): Likewise.
8469
8fff7c2f 84702007-05-16 Robert Millan <rmh@aybabtu.com>
8471
8472 * DISTLIST: Update for the latest changes.
8473 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
8474 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
8475 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
8476 grub/util/biosdisk.h.
8477 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
8478 grub/util/biosdisk.h.
8479
48e12b52 84802007-05-16 Robert Millan <rmh@aybabtu.com>
8481
8482 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
8483
46b9d128 84842007-05-16 Robert Millan <rmh@aybabtu.com>
8485
8486 * util/i386/efi/grub-install.in: New.
8487 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
8488 newly added grub-install.
8489 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
8490 include.
8491 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
8492 grub/util/biosdisk.h.
8493 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
8494 grub/util/biosdisk.h.
8495
2d1a40a9 84962007-05-16 Robert Millan <rmh@aybabtu.com>
8497
8498 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
8499 * include/grub/util/biosdisk.h: ... here.
8500 * util/i386/pc/biosdisk.c: Moved to ...
8501 * util/biosdisk.c: ... here.
8502 * util/i386/pc/getroot.c: Moved to ...
8503 * util/getroot.c: ... here.
8504 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
8505 * util/grub-mkdevicemap.c: ... here.
8506 * util/i386/pc/grub-probe.c: Moved to ...
8507 * util/grub-probe.c: ... here.
8508
9e26e3bc 85092007-05-15 Robert Millan <rmh@aybabtu.com>
8510
8511 * util/update-grub.in: Remove duplicated line in grub.cfg header
8512 message.
8513
57f96397 85142007-05-13 Robert Millan <rmh@aybabtu.com>
8515
8516 * util/update-grub.in: Fix a few assumptions about the devices holding
8517 /, /boot and /boot/grub being the same.
8518 * util/grub.d/00_header.in: Likewise.
8519 * util/grub.d/10_hurd.in: Likewise.
8520 * util/grub.d/10_linux.in: Likewise.
8521
8522 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
8523 patterns. Use that to define the `.old' suffix as older than `'.
8524
8525 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
8526
8527 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
8528 the grub.cfg header message.
8529
2e610d62 85302007-05-11 Robert Millan <rmh@aybabtu.com>
8531
8532 * util/update-grub.in: Create device.map if it doesn't already exist,
8533 before attempting to run grub-probe.
8534 Check for grub-probe and grub-mkdevicemap with the same code
8535 grub-install is using.
8536 Remove test mode.
8537
3f6a10ef 85382007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
8539
8540 * Makefile.in: Add the datarootdir autoconf variable.
8541
02e7b75e 85422007-05-09 Robert Millan <rmh@aybabtu.com>
8543
8544 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 8545 fail gracefully if dev->disk->partition == NULL.
02e7b75e 8546
75f396cc 85472007-05-07 Robert Millan <rmh@aybabtu.com>
8548
8549 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
8550 determine partition map module.
8551 * util/i386/pc/grub-install.in: Use this feature to decide which
8552 partition module to load, instead of hardcoding pc and gpt.
8553
da65cb36 85542007-05-07 Robert Millan <rmh@aybabtu.com>
8555
8556 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
8557 source directory differs from build directory.
8558
b57d6a91 85592007-05-05 Robert Millan <rmh@aybabtu.com>
8560
8561 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
8562 initialisation.
8563
509d00f1 85642007-05-05 Robert Millan <rmh@aybabtu.com>
8565
8566 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
8567
c48f23ef 85682007-05-05 Robert Millan <rmh@aybabtu.com>
8569
8570 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
8571 command-line arguments via ${GRUB_CMDLINE_LINUX}.
8572
20b97658 85732007-05-05 Robert Millan <rmh@aybabtu.com>
8574
8575 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
8576 (grub_probe_SOURCES): Likewise.
8577 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
8578 GPT and initialize dos_part and bsd_part accordingly.
8579 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
8580 install_bsd_part.
8581 (main): Activate gpt module for use during partition identification,
8582 and deactivate it afterwards.
8583 * util/i386/pc/grub-install.in: Add gpt module to core.img.
8584 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
8585 partition identification, and deactivate it afterwards.
8586
99123174 85872007-05-05 Robert Millan <rmh@aybabtu.com>
8588
8589 * term/i386/pc/console.c (grub_console_fini): Call
8590 grub_term_set_current() before grub_term_unregister().
8591
ebd97f6e 85922007-05-04 Robert Millan <rmh@aybabtu.com>
8593
8594 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
8595 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
8596 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
8597 and update-grub_DATA.
8598 * conf/common.rmk: Build and install update-grub components.
8599 * conf/common.mk: Regenerate.
8600 * util/update-grub.in: New. Core of update-grub.
8601 * util/grub.d/00_header.in: New. Generates grub.cfg header.
8602 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
8603 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
8604 * util/grub.d/README: New. Document grub.d directory layout.
8605
b06a264d 86062007-05-01 Robert Millan <rmh@aybabtu.com>
8607
8608 * util/grub-emu.c: Move initialization functions
8609 grub_util_biosdisk_init() and grub_init_all() before
8610 grub_util_biosdisk_get_grub_dev(), which relies on them.
8611
41f0050e 86122007-04-19 Robert Millan <rmh@aybabtu.com>
8613
8614 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
8615 it is used later.
8616
04582bb3 86172007-04-18 Jerone Young <jerone@gmail.com>
8618
f19dbdb7 8619 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 8620 stanza.
8621
08db4632 86222007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 8623
08db4632 8624 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
8625 continue on and look for device node with real device name.
8626
801b76be 86272007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 8628
fe6b695a 8629 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 8630 ability.
8631 * Makefile.in: Add autoconf package transformation code.
8632 * util/i386/pc/grub-install.in: Likewise.
8633 * util/powerpc/ieee1275/grub-install.in: Likewise.
8634
6795c4e1 86352007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
8636
8637 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
8638 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
8639 (EXT2_REVISION): Likewise.
8640 (EXT2_INODE_SIZE): Likewise.
8641 (struct grub_ext2_block_group): Added a missing member
8642 "used_dirs".
8643 (grub_ext2_read_inode): Divide by the inode size in a superblock
8644 instead of 128 to obtain INODES_PER_BLOCK.
8645 Use the macro EXT2_INODE_SIZE instead of directly using
8646 SBLOCK->INODE_SIZE.
8647
d70af616 86482007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
8649
8650 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
8651 superblock instead of the structure size to compute an
8652 offset. This fixes the problem that GRUB could not read a
8653 filesystem when inode size is different from 128-byte.
8654
3b801603 86552007-03-05 Marco Gerards <marco@gnu.org>
8656
8657 * normal/main.c (read_config_file): When "menu" is not set, create
8658 an initial context.
8659
4785bfe4 86602007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8661
8662 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
8663 (HEAP_LIMIT): New macro.
8664 (grub_claim_heap): Claim memory up to `heaplimit'.
8665
a0cbb023 86662007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8667
8668 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
8669 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
8670 (_start): Likewise.
8671 (grub_arch_modules_addr): Return address after `_end'.
8672 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
8673 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
8674 (add_segments): Calculate `_end' from phdr size and location.
8675 (ALIGN_UP): Moved to ...
8676 * include/grub/misc.h: here.
8677 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
8678 New macro.
8679 (GRUB_IEEE1275_MODULE_BASE): Removed.
8680
fd7d8eba 86812007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8682
8683 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
8684 loop boundary.
8685
9b09e6fc 86862007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8687
8688 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
8689 All users updated.
8690 (grub_elf64_load_hook_t): Likewise.
8691 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
8692 debug output.
8693
3ce27299 86942007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8695
8696 * kern/mm.c: Update copyright.
8697 (grub_mm_debug): Correct syntax error.
8698 (grub_mm_dump_free): New function.
8699 (grub_debug_free): Call `grub_free'.
8700 * include/grub/mm.h: Update copyright.
8701 (grub_mm_dump_free): Add declaration.
8702
077d5fee 87032007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8704
8705 * include/grub/ieee1275/ieee1275.h: Update copyright.
8706 * kern/powerpc/ieee1275/init.c: Likewise.
8707 * kern/powerpc/ieee1275/openfw.c: Likewise.
8708
8709 * loader/powerpc/ieee1275/linux.c: Likewise.
8710 * include/grub/elfload.h: Likewise.
8711 * kern/elf.c: Likewise.
8712 (grub_elf32_load): Pass `base' and `size' parameters. Update all
8713 callers.
8714 (grub_elf64_load): Likewise.
8715 (grub_elf32_load_segment): Move to a nested function.
8716 (grub_elf64_load_segment): Likewise.
8717
dc946850 87182007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8719
8720 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
8721 prototype.
8722 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
8723 (grub_heap_len): Likewise.
8724 (HEAP_SIZE): New macro.
8725 (grub_claim_heap): New function.
8726 (grub_machine_init): Don't claim heap directly. Call
8727 `grub_claim_heap'.
8728 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
8729 (grub_available_iterate): New function.
8730
baa2a121 87312007-02-03 Thomas Schwinge <tschwinge@gnu.org>
8732
8733 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
8734 * configure.ac: Use it for testing the HOST and TARGET compilers.
8735
4fe9862e 87362006-12-13 Thomas Schwinge <tschwinge@gnu.org>
8737
8738 * Makefile.in (enable_grub_emu): New variable.
8739 * configure.ac (--enable-grub-emu): New option.
8740 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
8741 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
8742 * conf/i386-pc.rmk: Likewise.
8743 * conf/powerpc-ieee1275.rmk: Likewise.
8744 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
8745
a8aa5762 87462006-12-12 Marco Gerards <marco@gnu.org>
8747
8748 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
8749
8750 * kern/env.c (grub_env_unset): Don't free the member `value' when
8751 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
8752 pointer.
8753
8754 * normal/main.c (current_menu): Removed.
8755 (free_menu): Unset the `menu' environment variable.
8756 (grub_normal_menu_addentry): Make use of the environment variable
8757 `menu', instead of using the global `current_menu'. Allocate
8758 memory for the sourcecode of this entry.
8759 (read_config_file): New argument `nested', changed all callers.
8760 Only in the case of a new context, initialize a new menu. Set the
8761 `menu' environment variable.
8762 (grub_normal_execute): Don't set and unset the environment
8763 variable `menu' here anymore. Only free the menu when leaving the
8764 context.
8765
8766 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
8767 leak.
8768
957b3a3e 87692006-12-11 Marco Gerards <marco@gnu.org>
8770
8771 * normal/menu_entry.c (run): Fix off by one bug so the last line
8772 is executed. Move the loader check to outside the loop.
8773
ef875714 87742006-12-08 Hollis Blanchard <hollis@penguinppc.org>
8775
8776 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
8777
4e739985 87782006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
8779
8780 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
8781 the number of sectors. Reported by Andrey Shuvikov
8782 <mr_hyro@yahoo.com>.
f19dbdb7 8783
790707f2 87842006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
8785
8786 * kern/disk.c (grub_disk_read): When there is a read error, always
8787 try to read only the necessary data.
f19dbdb7 8788
790707f2 8789 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
8790 disk/raid.c.
8791 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
8792 prototype.
8793 [GRUB_UTIL] (grub_raid_fini): Likewise.
8794 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 8795 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 8796 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
8797 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
8798 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
8799 and grub_raid_fini().
f19dbdb7 8800
03e58196 88012006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
8802
8803 * include/grub/types.h (__unused): Rename to UNUSED.
8804 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
8805 (grub_elf64_size): Likewise.
f19dbdb7 8806
ae4f23bf 88072006-11-03 Hollis Blanchard <hollis@penguinppc.org>
8808
8809 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
8810 grub_error_push and grub_error_pop in the error-handling path.
8811 (grub_elf32_load_segment): Only call grub_file_read with non-zero
8812 length.
8813
2166cc83 88142006-11-03 Hollis Blanchard <hollis@penguinppc.org>
8815
8816 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
8817 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8818 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8819 (kernel_elf_SOURCES): Likewise.
8820 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
8821 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
8822 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
8823 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
8824 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
8825 (elf_mod_SOURCES): New variable.
8826 (elf_mod_CFLAGS): Likewise.
8827 (elf_mod_LDFLAGS): Likewise.
8828 * include/grub/types.h (__unused): New macro.
8829 * include/grub/elfload.h: New file.
8830 * kern/elf.c: Likewise.
8831 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
8832 (ELF32_LOADMASK): New macro.
8833 (ELF64_LOADMASK): Likewise.
8834 (vmlinux): Removed.
8835 (grub_linux_load32): New function.
8836 (grub_linux_load64): Likewise.
8837 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
8838 Use grub_elf_t instead of grub_file_t.
8839
a09d5aa5 88402006-11-02 Hollis Blanchard <hollis@penguinppc.org>
8841
8842 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
8843 `catch_result' to struct set_color_args.
8844
d976fc51 88452006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
8846
8847 * normal/menu.c: Include grub/script.h.
8848 * normal/menu_entry.c: Likewise.
8849 * include/grub/normal.h: Do not include grub/script.h.
8850
67507549 88512006-10-27 Hollis Blanchard <hollis@penguinppc.org>
8852
8853 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
8854
69203a99 88552006-10-27 Hollis Blanchard <hollis@penguinppc.org>
8856
8857 * kern/disk.c (grub_disk_open): Print debug messages when opening a
8858 disk.
8859 (grub_disk_close): Print debug messages when closing a disk.
8860 (grub_disk_read): Print debug messages when disk read fails.
8861 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
8862 filesystem type.
8863 * kern/partition.c: Include misc.h.
8864 (grub_partition_iterate): Print debug messages when detecting
8865 partition type.
8866
e2b8278c 88672006-10-27 Hollis Blanchard <hollis@penguinppc.org>
8868
8869 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
8870 is negative.
8871 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
8872
97b2f2ff 88732006-10-26 Hollis Blanchard <hollis@penguinppc.org>
8874
8875 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
8876 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
8877
6555d655 88782006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
8879
8880 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
8881 instead of sizeof(lv). Patch by Michael Guntsche.
8882
4d42b77f 88832006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
8884
8885 * disk/lvm.c: Rename VGS to VG_LIST.
8886 (grub_lvm_iterate): Change VGS->LV to VG-LV.
8887 (grub_lvm_open): Likewise.
8888 Thanks to Michael Guntsche for finding this bug.
8889
5d74d927 88902006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
8891
8892 * configure.ac (AC_INIT): Bumped to 1.95.
8893
a1bb27e4 88942006-10-14 Robert Millan <rmh@aybabtu.com>
8895
8896 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
8897 with "/dev/.static/dev/md".
8898
e0994b8b 88992006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
8900
8901 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
8902 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
8903 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
8904 DRIVE_NAME are always freed.
8905
8906 * util/i386/pc/biosdisk.c (make_device_name): Add one into
8907 DOS_PART, as a DOS partition is counted from one instead of zero
8908 now. Reported by Robert Millan.
8909
ddd5cee9 89102006-10-14 Robert Millan <rmh@aybabtu.com>
8911
8912 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
8913 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
8914 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
8915 string returned by grub_guess_root_device.
8916 * util/i386/pc/grub-setup.c: Likewise.
8917 * util/i386/pc/grub-probefs.c: Likewise.
8918
8919 * util/i386/pc/grub-probefs.c: Rename to ...
8920 * util/i386/pc/grub-probe.c: ... this.
8921 * DISTLIST: Remove grub-probefs, add grub-probe.
8922 * conf/i386-efi.rmk: Likewise.
8923 * conf/i386-pc.rmk: Likewise.
8924 * util/i386/pc/grub-install.in: Likewise.
8925
8926 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
8927 choose which information we want to print.
8928
2b002173 89292006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
8930
8931 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
8932 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
8933 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
8934 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
8935 video/readers/tga.c and video/i386/pc/vbeutil.c.
8936
89372006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
8938
8939 Added support for RAID and LVM.
f19dbdb7 8940
2b002173 8941 * disk/lvm.c: New file.
8942 * disk/raid.c: Likewise.
8943 * include/grub/lvm.h: Likewise.
f19dbdb7 8944 * include/grub/raid.h: Likewise.
2b002173 8945 * include/grub/util/lvm.h: Likewise.
8946 * include/grub/util/raid.h: Likewise.
8947 * util/lvm.c: Likewise.
8948 * util/raid.c: Likewise.
8949
8950 * include/grub/disk.h (grub_disk_dev_id): Add
8951 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
8952 (grub_disk_get_size): New prototype.
8953 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
8954 returns a partition.
8955 (grub_disk_get_size): New function.
f19dbdb7 8956
2b002173 8957 * kern/i386/pc/init.c (make_install_device): Copy the prefix
8958 verbatim if grub_install_dos_part is -2.
8959
8960 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
8961 and LVM devices.
8962
8963 * util/i386/pc/grub-setup.c (setup): New argument
8964 MUST_EMBED. Force embedding of GRUB when the argument is
8965 true. Close FILE before returning.
8966 (main): Add support for RAID and LVM.
f19dbdb7 8967
2b002173 8968 * conf/common.rmk: Add RAID and LVM modules.
8969 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
8970 util/lvm.c.
8971 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
8972
8973 * kern/misc.c (grub_strstr): New function.
8974 * include/grub/misc.h (grub_strstr): New prototype.
8975
050548d0 89762006-10-10 Tristan Gingold <tristan.gingold@bull.net>
8977
8978 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
8979
da849d2d 89802006-10-05 Tristan Gingold <tristan.gingold@bull.net>
8981
8982 * kern/misc.c (grub_strtoull): Guess the base only if not
8983 specified.
8984
97b2f2ff 89852006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 8986
8987 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
8988 PowerMac support.
8989
97b2f2ff 89902006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 8991
8992 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
8993
8994 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
8995 Remove `flags' argument. All callers changed.
8996 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
8997 (IEEE1275_IHANDLE_INVALID): New variable.
8998 (IEEE1275_CELL_INVALID): New variable.
8999 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
9000 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
9001 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
9002 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
9003 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
9004 codes from Open Firmware. All callers updated.
9005 (grub_ieee1275_next_property): Directly return Open Firmware return
9006 code.
9007 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
9008 Standardize error checking from `grub_ieee1275_get_property'.
9009 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
9010 `devalias' to `aliases'. Correct comments. Consolidate error paths.
9011
97b2f2ff 90122006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 9013
9014 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
9015 `instance_to_package_args' to `instance_to_path_args'.
9016
9017 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
9018 `grub_ieee1275_chosen'.
9019
9020 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
9021 `grub_ieee1275_interpret'.
9022
97b2f2ff 90232006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 9024
9025 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
9026
97b2f2ff 90272006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 9028
9029 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
9030 (__cmpdi): Likewise.
9031
9032 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
9033 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
9034 `grub_ssize_t'.
9035
02bb8acc 9036 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 9037
9038 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
9039 to type `grub_ssize_t'.
9040 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
9041
7f9a8531 90422006-09-22 Marco Gerards <marco@gnu.org>
9043
9044 * normal/script.c (grub_script_create_cmdmenu): Skip leading
9045 newlines.
9046
b5ef1102 90472006-09-22 Marco Gerards <marco@gnu.org>
9048
9049 * commands/echo.c: New file.
9050
9051 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
9052
9053 * conf/common.rmk (echo_mod_SOURCES): New variable.
9054 (echo_mod_CFLAGS): Likewise.
9055 (echo_mod_LDFLAGS): Likewise.
9056
2cff3677 90572006-09-22 Marco Gerards <marco@gnu.org>
9058
9059 * normal/main.c (get_line): Malloc memory instead of using
9060 preallocated memory. Removed the arguments `cmdline' and
9061 `max_len'. Updated all callers.
9062
6ba4688b 90632006-09-22 Marco Gerards <marco@gnu.org>
9064
9065 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
9066 (normal_mod_DEPENDENCIES): Likewise.
9067
9068 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
9069 (normal_mod_DEPENDENCIES): Likewise.
9070
9071 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
9072
e02ac02c 90732006-09-22 Johan Rydberg <jrydberg@gnu.org>
9074
9075 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
9076 programs.
9077 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
9078 (normal_mod_DEPENDENCIES): Likewise.
9079 * conf/i386-pc.mk: Regenerate.
9080 * conf/i386-efi.mk: Likewise
9081 * conf/common.mk: Likewise.
9082 * conf/powerpc-ieee1275.mk: Likewise.
9083 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9084
8d252e44 90852006-09-22 Robert Millan <rmh@aybabtu.com>
9086
9087 Sync with i386 version.
9088 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
9089 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
9090
209bf7ac 90912006-09-21 Robert Millan <rmh@aybabtu.com>
9092
9093 Import from GRUB Legacy (lib/device.c):
9094 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
9095 (init_device_map) [__linux__]: Add support for I2O devices.
9096
6b146090 90972006-09-14 Marco Gerards <marco@gnu.org>
9098
9099 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
9100 `-melf_i386'.
9101
e38600a8 91022006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 9103
9104 * util/i386/pc/grub-install.in: Skip menu.lst when removing
9105 /boot/grub/*.lst.
78fa1790 9106
2952da5d 9107 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 9108
2952da5d 9109 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
9110 before adding it to device.map.
9111
01b82a64 91122006-08-15 Johan Rydberg <jrydberg@gnu.org>
9113
fe6b695a 9114 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 9115 compiles a file; using the -MD option.
9116 * conf/common.mk: Regenerate.
9117 * conf/i386-pc.mk: Likewise.
9118 * conf/i386-efi.mk: Likewise.
9119 * conf/powerpc-ieee1275.mk: Likewise.
9120 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9121
1064790d 91222006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
9123
9124 Move the prototypes of grub_setjmp and grub_longjmp to
9125 cpu/setjmp.h, so that each architecture may specify different
9126 attributes.
f19dbdb7 9127
1064790d 9128 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
9129 (grub_longjmp): Likewise.
9130 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
9131 (grub_longjmp): Likewise.
9132 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
9133 (grub_longjmp): Likewise.
9134
9135 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
9136 [!GRUB_UTIL] (grub_longjmp): Removed.
9137
29dda3ed 91382006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
9139
9140 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
9141 "color!" method does not return any value.
9142
ad2a06ed 91432006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9144
9145 * include/grub/bitmap.h: New file.
9146
9147 * include/grub/i386/pc/vbeutil.h: Likewise.
9148
9149 * video/bitmap.c: Likewise.
9150
9151 * video/readers/tga.c: Likewise.
9152
9153 * video/i386/pc/vbeutil.c: Likewise.
9154
9155 * commands/videotest.c: Code cleanup and updated to reflect to new
9156 video API.
9157
9158 * term/gfxterm.c: Likewise.
9159
9160 * video/video.c: Likewise.
9161
9162 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
9163 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
9164 (bitmap_mod_SOURCES): New entry.
9165 (bitmap_mod_CFLAGS): Likewise.
9166 (bitmap_mod_LDFLAGS): Likewise.
9167 (tga_mod_SOURCES): Likewise.
9168 (tga_mod_CFLAGS): Likewise.
9169 (tga_mod_LDFLAGS): Likewise.
9170
9171 * include/grub/video.h (grub_video_blit_operators): New enum type.
9172 (grub_video_render_target): Changed as forward declaration and moved
9173 actual definition to be video driver specific.
9174 (grub_video_adapter.blit_bitmap): Added blitting operator.
9175 (grub_video_adapter.blit_render_target): Likewise.
9176 (grub_video_blit_bitmap): Likewise.
9177 (grub_video_blit_render_target): Likewise.
9178
9179 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
9180 driver specific render target definition.
9181 (grub_video_vbe_map_rgba): Added driver internal helper.
9182 (grub_video_vbe_unmap_color): Updated to use
9183 grub_video_i386_vbeblit_info.
9184 (grub_video_vbe_get_video_ptr): Likewise.
9185
9186 * include/grub/i386/pc/vbeblit.h
9187 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
9188 grub_video_i386_vbeblit_info.
9189 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
9190 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
9191 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
9192 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
9193 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
9194 (grub_video_i386_vbeblit_index_index): Likewise.
9195 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
9196 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
9197 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
9198 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
9199 operator.
9200 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
9201 operator.
9202
9203 * video/i386/pc/vbeblit.c: Updated to reflect changes on
9204 include/grub/i386/pc/vbeblit.h.
9205
9206 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
9207 Updated to use grub_video_i386_vbeblit_info.
9208 (grub_video_i386_vbefill_R8G8B8): Likewise.
9209 (grub_video_i386_vbefill_index): Likewise.
9210 (grub_video_i386_vbefill): Added generic filler.
9211
9212 * video/i386/pc/vbefill.c: Updated to reflect changes on
9213 include/grub/i386/pc/vbefill.h.
9214
9215 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
9216 grub_video_i386_vbeblit_info.
9217 (grub_video_vbe_unmap_color): Likewise.
9218 (grub_video_vbe_blit_glyph): Likewise.
9219 (grub_video_vbe_scroll): Likewise.
9220 (grub_video_vbe_draw_pixel): Removed function.
9221 (grub_video_vbe_get_pixel): Likewise.
9222 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
9223 updated code to use it.
9224 (common_blitter): Added common blitter for render target and bitmap.
9225 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
9226 (grub_video_vbe_blit_render_target): Likewise.
9227
bc8c036d 92282006-07-30 Johan Rydberg <jrydberg@gnu.org>
9229
9230 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
9231 is in text mode if there is no console control protocol instance
9232 available.
9233
684a8eff 92342006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9235
9236 * include/grub/video.h: Code cleanup.
9237
9238 * include/grub/i386/pc/vbe.h: Likewise.
9239
9240 * video/i386/pc/vbe.c: Likewise.
9241
9242 * video/i386/pc/vbeblit.c: Likewise.
9243
9244 * video/i386/pc/vbefill.c: Likewise.
9245
9246 * video/video.c: Likewise. Also added more comments.
9247
5915059b 92482006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9249
9250 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
9251 (struct grub_biosdisk_dap): Likewise.
9252
9253 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
9254 linkage settings for all functions.
9255
90ce5d56 92562006-07-12 Marco Gerards <marco@gnu.org>
9257
9258 * configure.ac (--enable-mm-debug): Fix typo.
9259
9260 * genkernsyms.sh.in: Use proper quoting for `CC'.
9261
43e7f879 92622006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
9263
9264 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
9265 (normal_mod_ASFLAGS): Remove "-m32".
9266
4889bdec 92672006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
9268
9269 * util/misc.c: Include config.h.
9270 [!HAVE_MEMALIGN]: Do not include malloc.h.
9271 (grub_memalign): Use posix_memalign, if present. Then, use
9272 memalign, if present. Otherwise, emit an error.
9273
9274 * util/grub-emu.c: Do not include malloc.h.
9275
9276 * include/grub/util/misc.h: Include unistd.h. This is required for
9277 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
9278 D. Eades III <hde@foobar-qux.org>.
9279
9280 * configure.ac (AC_GNU_SOURCE): Added.
9281 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
9282 type.
9283
fd39d4da 92842006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
9285
9286 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
9287 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
9288
b786f3b5 92892006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
9290
9291 * include/grub/types.h (grub_host_addr_t): Rename to
9292 grub_target_addr_t.
9293 (grub_host_off_t): Rename to grub_target_off_t.
9294 (grub_host_size_t): Rename to grub_target_size_t.
9295 (grub_host_ssize_t): Rename to grub_target_ssize_t.
9296 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
9297
9298 * include/grub/kernel.h (struct grub_module_header): Change type
9299 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
9300 (grub_module_info): Likewise.
f19dbdb7 9301
051988bb 93022006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9303
9304 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
9305 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
9306 Velazquez <jesus.velazquez@gmail.com>.
9307
deae281b 93082006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9309
9310 Count partitions from 1 instead of 0 in the string representation
9311 of partitions. Still use 0-based internally.
f19dbdb7 9312
deae281b 9313 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
9314 (sun_partition_map_iterate): Use grub_partition_t instead of
9315 struct grub_partition *. Cast DESC->START_CYLINDER to
9316 grub_uint64_t after converting the endian.
9317 (sun_partition_map_probe): Subtract 1 for PARTNUM.
9318 (sun_partition_map_get_name): Add 1 to P->INDEX.
9319
9320 * partmap/pc.c (grub_partition_parse): Subtract 1 for
9321 PCDATA->DOS_PART.
9322 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
9323
9324 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
9325 zero instead of one.
9326 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
9327 (gpt_partition_map_get_name): Add 1 into P->INDEX.
9328
9329 * partmap/apple.c (apple_partition_map_iterate): Change the type
9330 of POS to unsigned.
9331 (apple_partition_map_probe): Subtract 1 for PARTNUM.
9332 (apple_partition_map_get_name): Add 1 into P->INDEX.
9333
9334 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
9335 of POS to unsigned.
9336 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
9337 calculate the offset of a partition.
9338 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
9339 (amiga_partition_map_get_name): Add 1 into P->INDEX.
9340
9341 * partmap/acorn.c (acorn_partition_map_find): Change the type of
9342 SECTOR to grub_disk_addr_t.
9343 (acorn_partition_map_iterate): Likewise.
9344 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
9345 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
9346 top.
9347 (acorn_partition_map_get_name): Add 1 into P->INDEX.
9348
9349 * kern/i386/pc/init.c (make_install_device): Add 1 into
9350 GRUB_INSTALL_DOS_PART.
9351
9352 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
9353 conditional.
9354
524a1e6a 93552006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9356
9357 Clean up the code to support 64-bit addressing in disks and
9358 files. This change is not enough for filesystems yet.
f19dbdb7 9359
524a1e6a 9360 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
9361 type of "start" to grub_uint64_t.
9362 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
9363 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
9364 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
9365 convert addresses.
9366
9367 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
9368 to grub_disk_addr_t.
9369
9370 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
9371 string.
9372
9373 * partmap/pc.c (pc_partition_map_iterate): Likewise.
9374
9375 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
9376 to char *.
9377
9378 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
9379
9380 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
9381
9382 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
9383
9384 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
9385 to grub_off_t, to detect an error from grub_file_seek.
9386 (grub_multiboot_load_elf32): Likewise.
9387
9388 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
9389 maximum unsigned long value when an overflow is detected.
9390 (grub_strtoull): New function.
9391 (grub_divmod64): Likewise.
9392 (grub_lltoa): use grub_divmod64.
9393
9394 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
9395 grub_disk_addr_t.
9396 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
9397 the pointer to next character. Use grub_strtoull instead of
9398 grub_strtoul.
9399 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
9400 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
9401 respectively.
9402
fe6b695a 9403 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 9404 return value is signed.
9405 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
9406 test if OFFSET is less than zero, as OFFSET is unsigned now.
9407
9408 * kern/disk.c (struct grub_disk_cache): Change the type of
9409 "sector" to grub_disk_addr_t.
9410 (grub_disk_cache_get_index): Change the type of SECTOR to
9411 grub_disk_addr_t. Calculate the hash with SECTOR casted to
9412 unsigned after shifting.
9413 (grub_disk_cache_invalidate): Change the type of SECTOR to
9414 grub_disk_addr_t.
9415 (grub_disk_cache_unlock): Likewise.
9416 (grub_disk_cache_store): Likewise.
9417 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
9418 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
9419 grub_disk_addr_t and grub_uint64_t, respectively.
9420 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
9421 body, as the value of OFFSET is tweaked by
9422 grub_disk_check_range. Change the types of START_SECTOR, LEN and
9423 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
9424 respectively.
9425 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
9426 body, as the value of OFFSET is tweaked by
9427 grub_disk_check_range. Change the types of LEN and N to
9428 grub_size_t.
9429
9430 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
9431 and "saved_offset" to grub_off_t.
9432 (test_header): Cast BUF to char *.
9433 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
9434 to char *.
9435 (grub_gzio_read): Change the types of OFFSET and SIZE to
9436 grub_off_t and grub_size_t, respectively.
9437
9438 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
9439 Removed.
9440 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
9441 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
9442 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
9443 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
9444 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
9445
9446 * include/grub/types.h (grub_off_t): Unconditionally set to
9447 grub_uint64_t.
9448 (grub_disk_addr_t): Changed to grub_uint64_t.
9449
9450 * include/grub/partition.h (struct grub_partition): Change the
9451 types of "start", "len" and "offset" to grub_disk_addr_t,
9452 grub_uint64_t and grub_disk_addr_t, respectively.
9453 (grub_partition_get_start): Return grub_disk_addr_t.
9454 (grub_partition_get_len): Return grub_uint64_t.
9455
9456 * include/grub/misc.h (grub_strtoull): New prototype.
9457 (grub_divmod64): Likewise.
9458
9459 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
9460 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
9461 grub_off_t, respectively.
9462 All callers and references changed.
9463
9464 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
9465 grub_size_t in "read".
9466 All callers and references changed.
9467
9468 * include/grub/file.h (struct grub_file): Change the types of
9469 "offset" and "size" to grub_off_t and grub_off_t,
9470 respectively. Change the type of SECTOR to grub_disk_addr_t in
9471 "read_hook".
9472 (grub_file_read): Change the type of LEN to grub_size_t.
9473 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
9474 grub_off_t.
9475 (grub_file_size): Return grub_off_t.
9476 (grub_file_tell): Likewise.
9477 All callers and references changed.
9478
9479 * include/grub/disk.h (struct grub_disk_dev): Change the types of
9480 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
9481 "write".
9482 (struct grub_disk): Change the type of "total_sectors" to
9483 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 9484 "read_hook".
524a1e6a 9485 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
9486 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
9487 (grub_disk_write): Likewise.
9488 All callers and references changed.
9489
9490 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
9491 char * for grub_strncmp to silence gcc.
9492 (grub_iso9660_mount): Likewise.
9493 (grub_iso9660_mount): Likewise.
9494 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
9495 return statement.
9496 (grub_iso9660_iterate_dir): Likewise.
9497 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
9498
9499 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
9500 LEN to grub_disk_addr_t and grub_size_t, respectively.
9501
9502 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
9503
9504 * fs/jfs.c (grub_jfs_read_file): Likewise.
9505
9506 * fs/minix.c (grub_jfs_read_file): Likewise.
9507
9508 * fs/sfs.c (grub_jfs_read_file): Likewise.
9509
9510 * fs/ufs.c (grub_jfs_read_file): Likewise.
9511
9512 * fs/xfs.c (grub_jfs_read_file): Likewise.
9513
9514 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
9515 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
9516 respectively.
9517
9518 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
9519 BLKNR to -1 instead of returning GRUB_ERRNO.
9520 (grub_ext2_read_file): Change the types of SECTOR and
9521 LEN to grub_disk_addr_t and grub_size_t, respectively.
9522
9523 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
9524 LEN to grub_disk_addr_t and grub_size_t, respectively.
9525
9526 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
9527 grub_file_read.
9528
9529 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
9530 string. Do not cast SECTOR explicitly.
9531
9532 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
9533 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
9534 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
9535 grub_disk_addr_t and grub_size_t, respectively. If the sector is
9536 over 2TB and LBA mode is not supported, raise an error.
9537 (get_safe_sectors): New function.
9538 (grub_biosdisk_read): Use get_safe_sectors.
9539 (grub_biosdisk_write): Likewise.
9540
9541 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
9542 (grub_efidisk_write): Likewise.
9543
9544 * disk/loopback.c (delete_loopback): Cosmetic changes.
9545 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
9546 correctly.
9547 (grub_loopback_open): Likewise.
9548 (grub_loopback_read): Likewise. Also, change the type of POS to
9549 grub_off_t, and fix the usage of grub_memset.
9550
9551 * commands/i386/pc/play.c: Include grub/machine/time.h.
9552
9553 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
9554 print FILE->SIZE.
9555
9556 * commands/configfile.c: Include grub/env.h.
9557
9558 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
9559 GRUB_ERRNO directly instead. Change the type of POS to
9560 grub_off_t. Follow the coding standard.
9561
9562 * commands/blocklist.c: Include grub/partition.h.
9563 (grub_cmd_blocklist): Return an error if the underlying device is
9564 not a disk. Take the starting sector of a partition into account,
9565 if a partition is used.
9566
9567 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
9568 a length field.
9569 (lba_mode): Support 64-bit addresses.
9570 (chs_mode): Likewise.
9571 (copy_buffer): Adapted to the new offsets of a length field and a
9572 segment field.
9573 (blocklist_default_start): Allocate 64-bit space.
9574
9575 * boot/i386/pc/boot.S (force_lba): Removed.
9576 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 9577 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 9578 space.
9579 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
9580 is useless.
9581 (lba_mode): Refactored to support a 64-bit address. More size
9582 optimization.
9583 (setup_sectors): Likewise.
9584
53af98ad 95852006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9586
9587 * DISTLIST: Added include/grub/i386/linux.h. Removed
9588 include/grub/i386/pc/linux.h
9589
9590 * configure.ac (AC_INIT): Bumped to 1.94.
9591
9592 * config.guess: Updated from gnulib.
9593 * config.sub: Likewise.
9594 * install-sh: Likewise.
9595 * mkinstalldirs: Likewise.
9596
b4c1940a 95972006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9598
9599 * conf/common.rmk (grub_modules_init.lst): Depended on
9600 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
9601 MODSRCFILES.
9602
9603 * genmk.rb (PModule::rule): Reverted the previous change.
9604
cfca1cfd 96052006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9606
9607 * conf/common.rmk (grub_modules_init.lst): Depends on
9608 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
9609 that the target does not exist before producing.
9610 (grub_modules_init.h): Remove the target before generating.
9611 (grub_emu_init.c): Likewise.
9612
9613 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
9614
aa6d7826 96152006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
9616
9617 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
9618 for the target-specific tests. Make sure that we also have the
9619 up-to-date target variables for those tests.
9620
26c607b9 96212006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9622
9623 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
9624 (PModule::rule): Likewise.
9625
0162321a 96262006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9627
9628 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
9629 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
9630 target-specific flags should be prefixed.
9631 (PModule::rule): Likewise.
9632
6c826348 96332006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
9634
9635 * configure.ac (CMP): Check if cmp is available explicitly.
9636
b977bf01 96372006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
9638
9639 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
9640 (target_cpu): New variable.
9641 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 9642
b977bf01 9643 * util/i386/pc/grub-install.in (host_cpu): Removed.
9644 (target_cpu): New variable.
9645 (pkglibdir): Use target_cpu instead of host_cpu.
9646
9647 * util/genmoddep.c: Removed.
f19dbdb7 9648
b977bf01 9649 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
9650 instead of GRUB_HOST_SIZEOF_VOID_P.
9651 * kern/dl.c: Likewise.
9652
9653 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
9654 ...
9655 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9656 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9657 (GRUB_TARGET_SIZEOF_LONG): ... this.
9658 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9659 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9660 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9661 to ...
9662 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9663 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9664 (GRUB_TARGET_SIZEOF_LONG): ... this.
9665 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9666 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9667 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9668 to ...
9669 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9670 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9671 (GRUB_TARGET_SIZEOF_LONG): ... this.
9672 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9673 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9674
9675 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
9676 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
9677 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
9678 instead of GRUB_HOST_SIZEOF_LONG.
9679 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
9680 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
9681 GRUB_CPU_WORDS_BIGENDIAN.
9682 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
9683 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
9684 grub_host_ssize_t.
9685
9686 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
9687 (genmoddep_SOURCES): Likewise.
9688 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
9689 (genmoddep_SOURCES): Likewise.
9690 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
9691 (genmoddep_SOURCES): Likewise.
9692 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
9693 Likewise.
9694 (genmoddep_SOURCES): Likewise.
9695
9696 * genmoddep.awk: New file.
9697
9698 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
9699 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
9700 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
9701 (PModule::rule): Likewise.
9702 (Program::rule): Likewise.
9703 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
9704 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
9705 respectively.
9706
9707 * configure.ac: Rewritten intensively to use host and target
9708 instead of build and host, respectively.
9709
9710 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
9711 (host_cpu): Removed.
9712 (target_cpu): New variable.
9713 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
9714 (BUILD_CC): Removed.
9715 (BUILD_CFLAGS): Likewise.
9716 (BUILD_CPPFLAGS): Likewise.
9717 (TARGET_CC): New variable.
9718 (TARGET_CFLAGS): Likewise.
9719 (TARGET_CPPFLAGS): Likewise.
9720 (TARGET_LDFLAGS): Likewise.
9721 (AWK): Likewise.
9722 (include): Use target_cpu instead of host_cpu.
9723 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 9724
b977bf01 9725 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
9726
f09771a1 97272006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
9728
9729 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
9730 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
9731 field 'false' to 'exec_on_false'.
9732 (grub_script_create_cmdif): Renamed argument names to reflect above
9733 changes.
9734
9735 * normal/execute.c (grub_script_execute_cmdif): Likewise.
9736
9737 * normal/script.c (grub_script_create_cmdif): Likewise.
9738
118f4fb3 97392006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
9740
9741 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
9742 top.
9743 (grub_hfsplus_btree_recptr): Likewise.
9744 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
9745 FILEBLOCK both to pass a block number and store next block
9746 number.
9747 (grub_hfsplus_read_block): Rewritten heavily to support an extent
9748 overflow file correctly. Specify errors appropriately, because
9749 fshelp expects that GRUB_ERRNO is set when fails. Reuse
9750 grub_hfsplus_btree_recptr to get the pointer to a found key.
9751 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
9752 is found.
9753
9754 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
9755 linux.mod.
9756 (_linux_mod_SOURCES): New variable.
9757 (_linux_mod_CFLAGS): Likewise.
9758 (_linux_mod_LDFLAGS): Likewise.
9759 (linux_mod_SOURCES): Likewise.
9760 (linux_mod_CFLAGS): Likewise.
9761 (linux_mod_LDFLAGS): Likewise.
9762
9763 * DISTLIST: Added loader/i386/efi/linux.c,
9764 loader/i386/efi/linux_normal.c and
9765 include/grub/i386/efi/loader.h.
9766
9767 * loader/i386/efi/linux.c: New file.
9768 * loader/i386/efi/linux_normal.c: Likewise.
9769 * include/grub/i386/efi/loader.h: Likewise.
9770
89a7d726 97712006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
9772
9773 * commands/blocklist.c: New file.
9774
9775 * DISTLIST: Added commands/blocklist.c.
9776
9777 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 9778 color for the background, and a darker color for the foreground.
89a7d726 9779 (grub_console_checkkey): Return READ_KEY.
9780 (grub_console_cls): Set the background to
9781 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
9782
9783 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
9784
9785 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
9786 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
9787
9788 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
9789 prototype.
9790
9791 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
9792 BG. The spec is wrong again.
9793
9794 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
9795 prototype.
9796 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
9797
9798 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
9799 commands/blocklist.c.
9800 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 9801
89a7d726 9802 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
9803 (blocklist_mod_SOURCES): New variable.
9804 (blocklist_mod_CFLAGS): Likewise.
9805 (blocklist_mod_LDFLAGS): Likewise.
9806
75c8f258 98072006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
9808
9809 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
9810 duplication.
9811 (lba_mode): Use %eax more intensively to reduce the code size.
9812
da2eb181 98132006-05-20 Marco Gerards <marco@gnu.org>
9814
9815 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
9816
9817 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
9818 for `menuentry'.
9819 (script): Accept leading newlines.
9820 (newlines): New rule to describe 0 or more newlines.
9821 (commands): Accept `command' with trailing newline. Fixed the
9822 order in which arguments were passed to `grub_script_add_cmd'.
9823 Accept commands separated by newlines.
9824 (function): Changed to accept newlines.
9825 (menuentry) Rewritten.
9826
9827 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
9828 front of the list, instead of to the end.
9829
577b4050 98302006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
9831
9832 * util/i386/pc/grub-install.in (bindir): New variable.
9833 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
9834 Shaver <lbgwjl@gmail.com>.
9835
0d6e1189 98362006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
9837
9838 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
9839 grub/machine/linux.h
9840 * loader/i386/pc/linux.c: Likewise.
9841
9842 * include/grub/i386/pc/linux.h: Moved to ...
9843 * include/grub/i386/linux.h: ... here.
9844
9845 * include/grub/i386/linux.h (struct linux_kernel_params): New
9846 struct.
f19dbdb7 9847
31b86e9f 98482006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
9849
9850 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
9851 checking.
9852 (grub_video_vbe_blit_glyph): Likewise.
9853 (grub_video_vbe_blit_bitmap): Likewise.
9854 (grub_video_vbe_blit_render_target): Likewise.
9855
83b984de 98562006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
9857
9858 * configure.ac (--with-platform): Properly quote the square
9859 brackets.
9860
5f0413bd 98612006-05-08 Marco Gerards <marco@gnu.org>
9862
9863 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
9864 this...
9865 (kernel_elf_HEADERS): ...to this. Updated all users.
9866 (grubof_symlist.c): Renamed from this...
9867 (kernel_elf_symlist.c): ...to this. Updated all users.
9868 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
9869 (grubof_SOURCES): Renamed from this...
9870 (kernel_elf_SOURCES): ...to this.
9871 (grubof_HEADERS): Renamed from this...
9872 (kernel_elf_HEADERS): ...to this.
9873 (grubof_CFLAGS): Renamed from this...
9874 (kernel_elf_CFLAGS): ...to this.
9875 (grubof_ASFLAGS): Renamed from this...
9876 (kernel_elf_ASFLAGS): ...to this.
9877 (grubof_LDFLAGS): Renamed from this...
9878 (kernel_elf_LDFLAGS): ...to this.
9879
9880 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
9881 this...
9882 (kernel_elf_HEADERS): ...to this. Updated all users.
9883 (grubof_symlist.c): Renamed from this...
9884 (kernel_elf_symlist.c): ...to this. Updated all users.
9885 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
9886 (grubof_SOURCES): Renamed from this...
9887 (kernel_elf_SOURCES): ...to this.
9888 (grubof_HEADERS): Renamed from this...
9889 (kernel_elf_HEADERS): ...to this.
9890 (grubof_CFLAGS): Renamed from this...
9891 (kernel_elf_CFLAGS): ...to this.
9892 (grubof_ASFLAGS): Renamed from this...
9893 (kernel_elf_ASFLAGS): ...to this.
9894 (grubof_LDFLAGS): Renamed from this...
9895 (kernel_elf_LDFLAGS): ...to this.
9896
9897 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
9898 `kernel.elf' instead of `grubof'.
9899
05568c2e 99002006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
9901
9902 Add --with-platform to configure. Use pkglibdir instead of
9903 pkgdatadir. This is reported by Roger Leigh.
9904
9905 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
9906 (host_vendor): Likewise.
9907 (host_os): Likewise.
9908 (pkgdatadir): Likewise.
9909 (platform): New variable.
9910 (pkglibdir): Likewise.
9911 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 9912
05568c2e 9913 * util/i386/pc/grub-install.in (datadir): Removed.
9914 (host_vendor): Likewise.
9915 (host_os): Likewise.
9916 (pkgdatadir): Likewise.
9917 (platform): New variable.
9918 (pkglibdir): Likewise.
9919 Use PKGLIBDIR instead of PKGDATADIR.
9920
9921 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
9922 instead of GRUB_DATADIR.
9923 (main): Likewise.
9924 * util/i386/pc/grub-mkimage.c (usage): Likewise.
9925 (main): Likewise.
9926 * util/i386/efi/grub-mkimage.c (usage): Likewise.
9927 (main): Likewise.
9928
9929 * configure.ac (--with-platform): New option.
9930 Use PLATFORM instead of HOST_VENDOR to specify a platform.
9931
9932 * Makefile.in: Include a makefile based on PLATFORM instead of
9933 HOST_VENDOR.
9934 (pkgdatadir): Not appended by the machine type.
9935 (pkglibdir): Appended by the machine type.
9936 (host_vendor): Removed.
9937 (platform): New variable.
9938 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
9939 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
9940 (uninstall): Likewise.
9941
4e93851c 99422006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
9943
9944 Use the environment context in the menu. Remove the commands
9945 "default" and "timeout", and use variables instead.
f19dbdb7 9946
4e93851c 9947 * normal/menu.c: Include grub/env.h.
9948 (print_entry): Cast TITLE to silence gcc.
9949 (get_timeout): New function.
9950 (set_timeout): Likewise.
9951 (get_entry_number): Likewise.
9952 (run_menu): Use a default entry, a fallback entry and a timeout
9953 in the environment variables "default", "fallback" and
9954 "timeout". Also, tweak the default entry if it is not within the
9955 current menu entries.
9956 (grub_menu_run): Use a fallback entry in the environment variable
9957 "fallback".
9958
9959 * normal/main.c (read_config_file): Do not initialize
9960 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
9961 NEWMENU->TIMEOUT.
9962 (grub_normal_execute): Use a data slot to store the menu.
9963
9964 * include/grub/normal.h (struct grub_menu): Removed default_entry,
9965 fallback_entry and timeout.
9966 (struct grub_menu_list): Removed.
9967 (grub_menu_list_t): Likewise.
9968 (struct grub_context): Likewise.
9969 (grub_context_t): Likewise.
9970 (grub_context_get): Likewise.
9971 (grub_context_get_current_menu): Likewise.
9972 (grub_context_push_menu): Likewise.
9973 (grub_context_pop_menu): Likewise.
9974 (grub_default_init): Likewise.
9975 (grub_default_fini): Likewise.
9976 (grub_timeout_init): Likewise.
9977 (grub_timeout_fini): Likewise.
9978
9979 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
9980 and timeout.mod.
9981 (normal_mod_SOURCES): Removed normal/context.c.
9982
9983 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
9984 commands/default.c, commands/timeout.c and normal/context.c.
9985 (normal_mod_SOURCES): Removed normal/context.c.
9986
9987 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
9988 commands/timeout.c and normal/context.c.
9989 (normal_mod_SOURCES): Removed normal/context.c.
9990
9991 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
9992 commands/default.c, commands/timeout.c and normal/context.c.
9993 (normal_mod_SOURCES): Removed normal/context.c.
9994
9995 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
9996 timeout.mod.
9997 (default_mod_SOURCES): Removed.
9998 (default_mod_CFLAGS): Likewise.
9999 (default_mod_LDFLAGS): Likewise.
10000 (timeout_mod_SOURCES): Removed.
10001 (timeout_mod_CFLAGS): Likewise.
10002 (timeout_mod_LDFLAGS): Likewise.
10003
10004 * DISTLIST: Removed commands/default.c, commands/timeout.c and
10005 normal/context.c.
10006
10007 * commands/default.c: Removed.
10008 * commands/timeout.c: Likewise.
10009 * normal/context.c: Likewise.
10010
1eb9cc1d 100112006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
10012
10013 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
10014
385bd9c1 100152006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
10016
10017 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
10018 "next" to "prev" for readability.
10019 (struct grub_env_sorted_var): New struct.
10020 (grub_env_context): Renamed to ...
10021 (initial_context): ... this.
10022 (grub_env_var_context): Renamed to ...
10023 (current_context): ... this.
10024 (grub_env_find): Look only at CURRENT_CONTEXT.
10025 (grub_env_context_open): Rewritten to copy exported variables from
10026 previous context.
10027 (grub_env_context_close): Rewritten according to the new
10028 scheme. Also, add an assertion to prevent the initial context from
10029 removed.
10030 (grub_env_insert): Removed the code for the sorted list.
10031 (grub_env_remove): Likewise.
10032 (grub_env_export): Simply mark the variable with
10033 GRUB_ENV_VAR_GLOBAL.
10034 (grub_env_set): A cosmetic change for naming consistency.
10035 (grub_env_get): Likewise.
10036 (grub_env_unset): Likewise.
10037 (grub_env_iterate): Rewritten to sort variables within this
10038 function.
10039 (grub_register_variable_hook): Fixed for naming consistency. Call
10040 grub_env_find again, only if NAME is not found at the first time.
10041 (mangle_data_slot_name): New function.
10042 (grub_env_set_data_slot): Likewise.
10043 (grub_env_get_data_slot): Likewise.
10044 (grub_env_unset_data_slot): Likewise.
10045
10046 * include/grub/env.h (grub_env_var_type): New enum.
10047 (GRUB_ENV_VAR_LOCAL): New constant.
10048 (GRUB_ENV_VAR_GLOBAL): Likewise.
10049 (GRUB_ENV_VAR_DATA): Likewise.
10050 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
10051 "type".
10052 (grub_env_set): Replace VAR with NAME for consistency.
10053 (grub_register_variable_hook): Likewise.
10054 (grub_env_export): Specify the name of the argument.
10055 (grub_env_set_data_slot): New prototype.
10056 (grub_env_get_data_slot): Likewise.
10057 (grub_env_unset_data_slot): Likewise.
10058
7f362539 100592006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10060
10061 Extend the loader so that GRUB can accept a loader which comes
10062 back to GRUB when a loaded image exits. Also, this change adds
10063 support for a chainloader on EFI.
f19dbdb7 10064
7f362539 10065 * term/efi/console.c: Include grub/misc.h.
10066 (grub_console_checkkey): Display a scan code on the top for
10067 debugging. This will be removed once the EFI port gets stable.
10068 Correct the scan code mapping.
10069
10070 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
10071 allocate memory from larger regions, in order to reduce the number
10072 of allocated regions. Otherwise, the MacOSX loader panics.
10073 (filter_memory_map): Avoid less than 1MB for compatibility with
10074 other loaders.
10075 (add_memory_regions): Allocate from the tail of a region, if
10076 possible, to avoid allocating a region near to 1MB, for the MacOSX
10077 loader.
10078
10079 * kern/efi/init.c (grub_efi_set_prefix): Specify
10080 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
10081
10082 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
10083 argument IMAGE_HANDLE and specify it to get a loaded image.
10084 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
10085 grub_efi_get_loaded_image.
fe6b695a 10086 (grub_efi_get_filename): Divide the length by the size of
7f362539 10087 grub_efi_char16_t.
10088 (grub_efi_get_device_path): New function.
10089 (grub_efi_print_device_path): Print End Device Path nodes. Divide
10090 the length by the size of grub_efi_char16_t for a file path device
10091 path node.
10092
10093 * kern/loader.c (grub_loader_noreturn): New variable.
10094 (grub_loader_set): Accept a new argument NORETURN. Set
10095 GRUB_LOADER_NORETURN to NORETURN.
10096 All callers changed.
10097 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
10098 grub_machine_fini.
10099
10100 * include/grub/efi/efi.h (grub_efi_get_device_path): New
10101 prototype.
10102 (grub_efi_get_loaded_image): Take an argument to specify an image
10103 handle.
10104
10105 * include/grub/loader.h (grub_loader_set): Added one more argument
10106 NORETURN.
10107
10108 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
10109 instead of grub_efi_open_protocol.
10110 (grub_efidisk_get_device_name): Likewise.
10111 (grub_efidisk_close): Print a newline.
10112 (grub_efidisk_get_device_handle): Fixed to use
10113 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
10114 GRUB_EFI_DEVICE_PATH_TYPE.
10115
10116 * disk/efi/efidisk.c (device_path_guid): Moved to ...
10117 * kern/efi/efi.c (device_path_guid): ... here.
10118
10119 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
10120 chain.mod.
10121 (kernel_mod_HEADERS): Added efi/disk.h.
10122 (_chain_mod_SOURCES): New variable.
10123 (_chain_mod_CFLAGS): Likewise.
10124 (_chain_mod_LDFLAGS): Likewise.
10125 (chain_mod_SOURCES): Likewise.
10126 (chain_mod_CFLAGS): Likewise.
10127 (chain_mod_LDFLAGS): Likewise.
10128
10129 * DISTLIST: Added include/grub/efi/chainloader.h,
10130 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
10131
10132 * include/grub/efi/chainloader.h: New file.
10133 * loader/efi/chainloader.c: Likewise.
10134 * loader/efi/chainloader_normal.c: Likewise.
10135
c0111d6e 101362006-04-30 Marco Gerards <marco@gnu.org>
10137
10138 * commands/configfile.c (grub_cmd_source): New function.
10139 (GRUB_MOD_INIT): Register the commands `source' and `.'.
10140 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
10141
df5341da 101422006-04-30 Marco Gerards <marco@gnu.org>
10143
10144 * normal/execute.c (grub_script_execute_cmd): Change the return
10145 type to `grub_err_t'. Correctly return the error.
10146 (grub_script_execute_cmdline): In case a command line is not a
10147 command or a function, try to interpret it as an assignment.
10148
f85934bd 101492006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10150
10151 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
10152 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
10153 skip a node whose name is obviously invalid as UTF-16,
10154 i.e. contains a NUL character. Stop the iteration when the last
10155 directory entry is found. Instead of using the return value of
10156 grub_hfsplus_btree_iterate_node, store the value in RET and use
10157 it, because the iterator can be stopped by the last directory
10158 entry.
10159
8f8a2cf8 101602006-04-30 Marco Gerards <marco@gnu.org>
10161
10162 * include/grub/env.h (grub_env_export): New prototype. Reported
10163 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
10164
a27e84ce 101652006-04-30 Marco Gerards <marco@gnu.org>
10166
10167 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
10168 size of the extents in a catalog file record.
10169
eaef0553 101702006-04-29 Marco Gerards <marco@gnu.org>
10171
10172 * commands/configfile.c (grub_cmd_configfile): Execute the
10173 configfile within its own context.
10174
10175 * include/grub/env.h (grub_env_context_open): New prototype.
10176 (grub_env_context_close): Likewise.
10177
10178 * kern/env.c (grub_env): Removed.
10179 (grub_env_sorted): Likewise.
10180 (grub_env_context): New variable.
10181 (grub_env_var_context): Likewise.
10182 (grub_env_find): Search both the active context and the global
10183 context.
10184 (grub_env_context_open): New function.
10185 (grub_env_context_close): Likewise.
10186 (grub_env_insert): Likewise.
10187 (grub_env_remove): Likewise.
10188 (grub_env_export): Likewise.
10189 (grub_env_set): Changed to use helper functions to avoid code
10190 duplication.
10191 (grub_env_iterate): Rewritten so both the current context and the
10192 global context are being used.
10193
10194 * normal/command.c (export_command): New function.
10195 (grub_command_init): Register the `export' function.
10196
7b455f4d 101972006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
10198
10199 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
10200 explicitly to suppress gcc's warnings.
10201 * fs/fat.c (grub_fat_find_dir): Likewise.
10202 (grub_fat_label): Likewise.
10203 * fs/xfs.c (grub_xfs_read_inode): Likewise.
10204 (grub_xfs_mount): Likewise.
10205 (grub_xfs_label): Likewise.
10206 * fs/affs.c (grub_affs_mount): Likewise.
10207 (grub_affs_label): Likewise.
10208 (grub_affs_iterate_dir): Likewise.
10209 * fs/sfs.c (grub_sfs_mount): Likewise.
10210 (grub_sfs_iterate_dir): Likewise.
10211 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
10212 * fs/hfs.c (grub_hfs_mount): Likewise.
10213 (grub_hfs_cmp_catkeys): Likewise.
10214 (grub_hfs_find_dir): Likewise.
10215 (grub_hfs_dir): Likewise.
10216 (grub_hfs_label): Likewise.
10217 * fs/jfs.c (grub_jfs_mount): Likewise.
10218 (grub_jfs_opendir): Likewise.
10219 (grub_jfs_getent): Likewise.
10220 (grub_jfs_lookup_symlink): Likewise.
10221 (grub_jfs_label): Likewise.
10222 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
10223 (grub_hfsplus_iterate_dir): Likewise.
10224 (grub_hfsplus_btree_iterate_node): Made static.
10225
10226 * util/grub-emu.c (prefix): New variable.
10227 (grub_machine_set_prefix): New function.
10228 (main): Do not set the environment variable "prefix" here. Only
10229 set PREFIX, which is used later by grub_machine_set_prefix.
10230
10231 * include/grub/video.h: Do not include grub/symbol.h.
10232 (grub_video_register): Not exported. This symbol is not defined in
10233 the kernel.
10234 (grub_video_unregister): Likewise.
10235 (grub_video_iterate): Likewise.
10236 (grub_video_setup): Likewise.
10237 (grub_video_restore): Likewise.
10238 (grub_video_get_info): Likewise.
10239 (grub_video_get_blit_format): Likewise.
10240 (grub_video_set_palette): Likewise.
10241 (grub_video_get_palette): Likewise.
10242 (grub_video_set_viewport): Likewise.
10243 (grub_video_get_viewport): Likewise.
10244 (grub_video_map_color): Likewise.
10245 (grub_video_map_rgb): Likewise.
10246 (grub_video_map_rgba): Likewise.
10247 (grub_video_fill_rect): Likewise.
10248 (grub_video_blit_glyph): Likewise.
10249 (grub_video_blit_bitmap): Likewise.
10250 (grub_video_blit_render_target): Likewise.
10251 (grub_video_scroll): Likewise.
10252 (grub_video_swap_buffers): Likewise.
10253 (grub_video_create_render_target): Likewise.
10254 (grub_video_delete_render_target): Likewise.
10255 (grub_video_set_active_render_target): Likewise.
10256
10257 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
10258 Undefined.
10259 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
10260
10261 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
10262 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10263 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10264 instead of $(srcdir)/genkernsyms.sh.
10265
10266 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
10267 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10268 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10269 instead of $(srcdir)/genkernsyms.sh.
10270
10271 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
10272 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10273 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10274 instead of $(srcdir)/genkernsyms.sh.
10275
10276 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
10277 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10278 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10279 instead of $(srcdir)/genkernsyms.sh.
10280
10281 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
10282 genkernsyms.sh.
10283
10284 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
10285 genkernsyms.sh.
10286 (gensymlist.sh): New target.
10287 (genkernsyms.sh): Likewise.
10288
10289 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
10290 genkernsyms.sh.in and gensymlist.sh.in.
10291
10292 * genkernsyms.sh: Removed.
10293 * gensymlist.sh: Likewise.
f19dbdb7 10294
7b455f4d 10295 * genkernsyms.sh.in: New file.
10296 * gensymlist.sh.in: Likewise.
10297
1885bb27 102982006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10299
10300 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
10301 clobber "prefix", since we may have already set it manually.
10302
71538dff 103032006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10304
10305 * kern/misc.c (abort): New alias for grub_abort.
10306
2965c7cc 103072006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
10308
10309 A new machine-specific function "grub_machine_set_prefix" is
10310 defined. This is called after loading modules, so that a prefix
10311 initialization can use modules. Also, this change adds an
10312 intensive debugging feature for the memory manager via the
10313 configure option "--enable-mm-debug".
f19dbdb7 10314
2965c7cc 10315 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
10316 PART.LEN.
10317
10318 * kern/sparc64/ieee1275/init.c (abort): Removed.
10319 (grub_stop): Likewise.
10320 (grub_exit): New function.
10321 (grub_set_prefix): Renamed to ...
10322 (grub_machine_set_prefix): ... this.
10323 (grub_machine_init): Do not call grub_set_prefix.
10324
10325 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
10326 (grub_machine_set_prefix): ... this.
10327 (grub_machine_init): Do not call grub_set_prefix.
10328
10329 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
10330 (grub_machine_init): Do not set the prefix here.
10331
10332 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
10333
10334 * kern/efi/init.c: Include grub/mm.h.
10335 (grub_efi_set_prefix): New function.
10336
10337 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
10338 (grub_efi_get_filename): New function.
10339 (grub_print_device_path): Renamed to ...
10340 (grub_efi_print_device_path): ... this.
10341
10342 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
10343 [MM_DEBUG] (grub_realloc): Likewise.
10344 [MM_DEBUG] (grub_free): Likewise.
10345 [MM_DEBUG] (grub_memalign): Likewise.
10346 [MM_DEBUG] (grub_mm_debug): New variable.
10347 [MM_DEBUG] (grub_debug_malloc): New function.
10348 [MM_DEBUG] (grub_debug_free): New function.
10349 [MM_DEBUG] (grub_debug_realloc): New function.
10350 [MM_DEBUG] (grub_debug_memalign): New function.
10351
10352 * kern/misc.c (grub_abort): Print a newline to distinguish
10353 the message.
10354
10355 * kern/main.c (grub_main): Call grub_machine_set_prefix and
10356 grub_set_root_dev after loading modules. This is necessary when
10357 setting a prefix depends on modules.
10358
10359 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
10360 (grub_efi_print_device_path): ... this.
10361 (grub_efi_get_filename): New prototype.
10362 (grub_efi_set_prefix): Likewise.
10363
10364 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
10365 and grub/disk.h.
10366 (grub_efidisk_get_device_handle): New prototype.
10367 (grub_efidisk_get_device_name): Likewise.
10368
10369 * include/grub/mm.h: Include config.h.
10370 (MM_DEBUG): Removed.
10371 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
10372 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
10373 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
10374 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
10375 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
10376 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
10377 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
10378 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
10379 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
10380
10381 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
10382
10383 * disk/efi/efidisk.c: Include grub/partition.h.
10384 (iterate_child_devices): New function.
10385 (add_device): First, compare only last device path nodes, so that
10386 devices are sorted by the types.
10387 (grub_efidisk_get_device_handle): New function.
10388 (grub_efidisk_get_device_name): Likewise.
10389
10390 * configure.ac (--enable-mm-debug): New option to enable the
10391 memory manager debugging feature. This makes the binary much
10392 bigger, so is disabled by default.
10393
9cacaa17 103942006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
10395
10396 Use grub_abort instead of grub_stop, and grub_exit must be
10397 define in each architecture now. Also, this change adds support
10398 for EFI disks.
f19dbdb7 10399
9cacaa17 10400 * util/i386/pc/grub-probefs.c: Include grub/term.h.
10401 (grub_getkey): New function.
10402 (grub_term_get_current): Likewise.
10403
10404 * util/i386/pc/grub-setup.c: Include grub/term.h.
10405 (grub_getkey): New function.
10406 (grub_term_get_current): Likewise.
10407
10408 * util/misc.c (grub_stop): Renamed to ...
10409 (grub_exit): ... this.
10410
10411 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
10412 (grub_exit): ... this.
10413 (grub_machine_init): Use grub_abort instead of abort.
10414 (grub_stop): Removed.
10415
10416 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
10417 abort.
10418
10419 * kern/i386/pc/startup.S (grub_exit): New function.
10420 (cold_reboot): New label.
10421
10422 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
10423 (grub_efi_init): Call grub_efidisk_init.
10424 (grub_efi_fini): Call grub_efidisk_fini.
10425
10426 * kern/efi/efi.c: Include grub/mm.h.
10427 (grub_efi_console_control_guid): Renamed to ...
10428 (console_control_guid): ... this.
10429 (grub_efi_loaded_image_guid): Renamed to ...
10430 (loaded_image_guid): ... this.
10431 (grub_efi_locate_handle): New function.
10432 (grub_efi_open_protocol): Likewise.
10433 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
10434 GRUB_EFI_CONSOLE_CONTROL_GUID.
10435 (grub_efi_exit): Removed.
10436 (grub_stop): Likewise.
10437 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
10438 (grub_exit): New function.
10439 (grub_print_device_path): Likewise.
10440
10441 * kern/rescue.c (grub_rescue_cmd_exit): New function.
10442 (grub_enter_rescue_mode): Register "exit".
10443
10444 * kern/misc.c (grub_real_dprintf): A cosmetic change.
10445 (grub_abort): New function.
10446
10447 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
10448
10449 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
10450
10451 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
10452
10453 * include/grub/efi/efi.h (grub_efi_exit): Removed.
10454 (grub_print_device_path): New prototype.
10455 (grub_efi_locate_handle): Likewise.
10456 (grub_efi_open_protocol): Likewise.
10457
10458 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
10459 * disk/efi/efidisk.c: Likewise.
10460
10461 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
10462
10463 * include/grub/efi/console_control.h
10464 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
10465
10466 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
10467 last 8 bytes as an array.
10468 (GRUB_EFI_DISK_IO_GUID): New macro.
10469 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
10470 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
10471 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
10472 grub_uint8_t.
10473 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
10474 (struct grub_efi_device_path): Rename the member "sub_type" to
10475 "subtype".
10476 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
10477 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
10478 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
10479 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
10480 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
10481 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
10482 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
10483 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
10484 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
10485 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
10486 (struct grub_efi_pci_device_path): New structure.
10487 (grub_efi_pci_device_path_t): New type.
10488 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
10489 (struct grub_efi_pccard_device_path): New structure.
10490 (grub_efi_pccard_device_path_t): New type.
10491 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
10492 (struct grub_efi_memory_mapped_device_path): New structure.
10493 (grub_efi_memory_mapped_device_path_t): New type.
10494 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
10495 (struct grub_efi_vendor_device_path): New structure.
10496 (grub_efi_vendor_device_path_t): New type.
10497 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
10498 (struct grub_efi_controller_device_path): New structure.
10499 (grub_efi_controller_device_path_t): New type.
10500 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
10501 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
10502 (struct grub_efi_acpi_device_path): New structure.
10503 (grub_efi_acpi_device_path_t): New type.
10504 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
10505 (struct grub_efi_expanded_acpi_device_path): New structure.
10506 (grub_efi_expanded_acpi_device_path_t): New type.
10507 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
10508 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
10509 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
10510 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
10511 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
10512 (struct grub_efi_atapi_device_path): New structure.
10513 (grub_efi_atapi_device_path_t): New type.
10514 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
10515 (struct grub_efi_fibre_channel_device_path): New structure.
10516 (grub_efi_fibre_channel_device_path_t): New type.
10517 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
10518 (struct grub_efi_1394_device_path): New structure.
10519 (grub_efi_1394_device_path_t): New type.
10520 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
10521 (struct grub_efi_usb_device_path): New structure.
10522 (grub_efi_usb_device_path_t): New type.
10523 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
10524 (struct grub_efi_usb_class_device_path): New structure.
10525 (grub_efi_usb_class_device_path_t): New type.
10526 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
10527 (struct grub_efi_i2o_device_path): New structure.
10528 (grub_efi_i2o_device_path_t): New type.
10529 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
10530 (struct grub_efi_mac_address_device_path): New structure.
10531 (grub_efi_mac_address_device_path_t): New type.
10532 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
10533 (struct grub_efi_ipv4_device_path): New structure.
10534 (grub_efi_ipv4_device_path_t): New type.
10535 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
10536 (struct grub_efi_ipv6_device_path): New structure.
10537 (grub_efi_ipv6_device_path_t): New type.
10538 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
10539 (struct grub_efi_infiniband_device_path): New structure.
10540 (grub_efi_infiniband_device_path_t): New type.
10541 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
10542 (struct grub_efi_uart_device_path): New structure.
10543 (grub_efi_uart_device_path_t): New type.
10544 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
10545 (struct grub_efi_vendor_messaging_device_path): New structure.
10546 (grub_efi_vendor_messaging_device_path_t): New type.
10547 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
10548 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
10549 (struct grub_efi_hard_drive_device_path): New structure.
10550 (grub_efi_hard_drive_device_path_t): New type.
10551 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
10552 (struct grub_efi_cdrom_device_path): New structure.
10553 (grub_efi_cdrom_device_path_t): New type.
10554 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
10555 (struct grub_efi_vendor_media_device_path): New structure.
10556 (grub_efi_vendor_media_device_path_t): New type.
10557 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
10558 (struct grub_efi_file_path_device_path): New structure.
10559 (grub_efi_file_path_device_path_t): New type.
10560 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
10561 (struct grub_efi_protocol_device_path): New structure.
10562 (grub_efi_protocol_device_path_t): New type.
10563 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
10564 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
10565 (struct grub_efi_bios_device_path): New structure.
10566 (grub_efi_bios_device_path_t): New type.
10567 (struct grub_efi_disk_io): New structure.
10568 (grub_efi_disk_io_t): New type.
10569 (struct grub_efi_block_io_media): New structure.
10570 (grub_efi_block_io_media_t): New type.
10571 (struct grub_efi_block_io): New structure.
10572 (grub_efi_block_io_t): New type.
10573
10574 * include/grub/misc.h (grub_stop): Removed.
10575 (grub_exit): New prototype.
10576 (grub_abort): Likewise.
10577
10578 * include/grub/disk.h (enum grub_disk_dev_id): Added
10579 GRUB_DISK_DEVICE_EFIDISK_ID.
10580
10581 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
10582 disk/efi/efidisk.c.
10583 (kernel_syms.lst): Remove the target if an error occurs.
10584
49986a9f 105852006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
10586
10587 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
10588 as it was simply too buggy.
10589
970d3b8a 105902006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
10591
10592 * kern/misc.c (grub_lltoa): New function.
10593 (grub_vsprintf): Added support for the long long suffix,
10594 i.e. "ll".
10595
ff04ec24 105962006-04-20 Hollis Blanchard <hollis@penguinppc.org>
10597
10598 * Makefile.in (LDFLAGS): Add variable.
10599 (LD): Remove variable.
10600 * configure.ac: Add -m32 to LDFLAGS.
10601 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
10602 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
10603 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
10604 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
10605 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
10606 variables.
10607 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
10608 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
10609 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
10610
37e5e1a4 106112006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
10612
10613 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
10614 length for unknown glyph.
10615
c352d8dd 106162006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
10617
2eab1c0d 10618 Add support for pre-loaded modules into the EFI port.
f19dbdb7 10619
2eab1c0d 10620 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
10621 completely. Accept one more argument DIR. The caller has changed.
10622
10623 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
10624
10625 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
10626 (grub_efi_loaded_image_guid): New variable.
10627 (grub_efi_get_loaded_image): New function.
10628 (grub_arch_modules_addr): Likewise.
10629
10630 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
10631 prototype.
10632
10633 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
10634 (struct grub_efi_loaded_image): New structure.
10635 (grub_efi_loaded_image_t): New type.
10636
106372006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 10638
c352d8dd 10639 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
10640 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
10641 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
10642
6d01d6b4 106432006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
10644
10645 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
10646
976a4ea0 106472006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
10648
10649 * DISTLIST: Added include/grub/efi/console.h,
10650 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
10651 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10652
10653 * include/grub/efi/console.h: New file.
10654 * include/grub/efi/time.h: Likewise.
10655 * include/grub/i386/efi/kernel.h: Likewise.
10656 * kern/efi/init.c: Likewise.
10657 * kern/efi/mm.c: Likewise.
10658 * term/efi/console.c: Likewise.
f19dbdb7 10659
976a4ea0 10660 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
10661 (grub_stop): Removed.
10662 (grub_get_rtc): Likewise.
10663 (grub_machine_init): Simply call grub_efi_init.
10664 (grub_machine_fini): Call grub_efi_fini.
10665
10666 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
10667 (grub_efi_output_string): Removed.
10668 (grub_efi_stall): New function.
10669 (grub_stop): Likewise.
10670 (grub_get_rtc): Likewise.
10671
10672 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
10673 (grub_efi_stall): New prototype.
10674 (grub_efi_allocate_pages): Likewise.
10675 (grub_efi_free_pages): Likewise.
10676 (grub_efi_get_memory_map): Likewise.
10677 (grub_efi_mm_init): Likewise.
10678 (grub_efi_mm_fini): Likewise.
10679 (grub_efi_init): Likewise.
10680 (grub_efi_fini): Likewise.
10681
10682 * include/grub/i386/efi/time.h: Do not include
10683 grub/symbol.h. Include grub/efi/time.h.
10684 (GRUB_TICKS_PER_SECOND): Removed.
10685 (grub_get_rtc): Likewise.
10686
10687 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
10688 Added padding. The EFI spec is buggy.
10689 (GRUB_EFI_BLACK): New macro.
10690 (GRUB_EFI_BLUE): Likewise.
10691 (GRUB_EFI_GREEN): Likewise.
10692 (GRUB_EFI_CYAN): Likewise.
10693 (GRUB_EFI_RED): Likewise.
10694 (GRUB_EFI_MAGENTA): Likewise.
10695 (GRUB_EFI_BROWN): Likewise.
10696 (GRUB_EFI_LIGHTGRAY): Likewise.
10697 (GRUB_EFI_BRIGHT): Likewise.
10698 (GRUB_EFI_DARKGRAY): Likewise.
10699 (GRUB_EFI_LIGHTBLUE): Likewise.
10700 (GRUB_EFI_LIGHTGREEN): Likewise.
10701 (GRUB_EFI_LIGHTCYAN): Likewise.
10702 (GRUB_EFI_LIGHTRED): Likewise.
10703 (GRUB_EFI_LIGHTMAGENTA): Likewise.
10704 (GRUB_EFI_YELLOW): Likewise.
10705 (GRUB_EFI_WHITE): Likewise.
10706 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
10707 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
10708 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
10709 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
10710 (GRUB_EFI_BACKGROUND_RED): Likewise.
10711 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
10712 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
10713 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
10714 (GRUB_EFI_TEXT_ATTR): Likewise.
10715
10716 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
10717 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10718 (kernel_mod_HEADERS): Added efi/time.h.
10719
83709125 107202006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
10721
10722 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
10723 include/grub/efi/api.h, include/grub/efi/console_control.h,
10724 include/grub/efi/efi.h, include/grub/efi/pe32.h,
10725 include/grub/i386/efi/time.h, kern/efi/efi.c,
10726 kern/i386/efi/init.c, kern/i386/efi/startup.S,
10727 and util/i386/efi/grub-mkimage.c.
10728
10729 * Makefile.in (RMKFILES): Added i386-efi.rmk.
10730
10731 * genmk.rb (PModule#rule): Do not export symbols if
10732 #{prefix}_EXPORTS is set to "no".
10733
10734 * conf/i386-efi.mk: New file.
10735 * conf/i386-efi.rmk: Likewise.
10736 * include/grub/efi/api.h: Likewise.
10737 * include/grub/efi/console_control.h: Likewise.
10738 * include/grub/efi/efi.h: Likewise.
10739 * include/grub/efi/pe32.h: Likewise.
10740 * include/grub/i386/efi/time.h: Likewise.
10741 * kern/efi/efi.c: Likewise.
10742 * kern/i386/efi/init.c: Likewise.
10743 * kern/i386/efi/startup.S: Likewise.
10744 * util/i386/efi/grub-mkimage.c: Likewise.
10745
107462006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 10747
10748 * include/grub/script.h: Include <grub/parser.h> and
10749 "grub_script.tab.h".
10750 (struct grub_lexer_param): New struct.
10751 (struct grub_parser_param): Likewise.
10752 (grub_script_create_arglist): Pass the state in an argument.
10753 (grub_script_add_arglist): Likewise.
10754 (grub_script_create_cmdline): Likewise.
10755 (grub_script_create_cmdblock): Likewise.
10756 (grub_script_create_cmdif): Likewise.
10757 (grub_script_create_cmdmenu): Likewise.
10758 (grub_script_add_cmd): Likewise.
10759 (grub_script_arg_add): Likewise.
10760 (grub_script_lexer_ref): Likewise.
10761 (grub_script_lexer_deref): Likewise.
10762 (grub_script_lexer_record_start): Likewise.
10763 (grub_script_lexer_record_stop): Likewise.
10764 (grub_script_mem_record): Likewise.
10765 (grub_script_mem_record_stop): Likewise.
10766 (grub_script_malloc): Likewise.
10767 (grub_script_yylex): Likewise.
10768 (grub_script_yyparse): Likewise.
10769 (grub_script_yyerror): Likewise.
10770 (grub_script_yylex): Likewise.
10771 (grub_script_lexer_init): Return the state.
10772
10773 * normal/lexer.c (grub_script_lexer_state): Removed variable.
10774 (grub_script_lexer_done): Likewise.
10775 (grub_script_lexer_getline): Likewise.
10776 (grub_script_lexer_refs): Likewise.
10777 (script): Likewise.
10778 (newscript): Likewise.
10779 (record): Likewise.
10780 (recording): Likewise.
10781 (recordpos): Likewise.
10782 (recordlen): Likewise.
10783 (grub_script_lexer_init): Return the state instead of setting
10784 global variables.
10785 (grub_script_lexer_ref): Use the newly added argument for state
10786 instead of globals.
10787 (grub_script_lexer_deref): Likewise.
10788 (grub_script_lexer_record_start): Likewise.
10789 (grub_script_lexer_record_stop): Likewise.
10790 (recordchar): Likewise.
10791 (nextchar): Likewise.
10792 (grub_script_yylex2): Likewise.
10793 (grub_script_yylex): Likewise.
10794 (grub_script_yyerror): Likewise.
10795
10796 * normal/parser.y (func_mem): Removed variable.
10797 (menu_entry): Likewise.
10798 (err): Likewise.
10799 (%lex-param): New parser option.
10800 (%parse-param): Likewise.
10801 (script): Always return the AST.
10802 (argument): Pass the state around.
10803 (arguments): Likewise.
10804 (grubcmd): Likewise.
10805 (commands): Likewise.
10806 (function): Likewise.
10807 (menuentry): Likewise.
10808 (if_statement): Likewise.
10809 (if): Likewise.
10810
10811 * normal/script.c (grub_script_memused): Removed variable.
10812 (grub_script_parsed): Likewise.
10813 (grub_script_malloc): Added a state argument. Use that instead of
10814 global variables.
10815 (grub_script_mem_record): Likewise.
10816 (grub_script_mem_record_stop): Likewise.
10817 (grub_script_arg_add): Likewise.
10818 (grub_script_add_arglist): Likewise.
10819 (grub_script_create_cmdline): Likewise.
10820 (grub_script_create_cmdif): Likewise.
10821 (grub_script_create_cmdmenu): Likewise.
10822 (grub_script_add_cmd): Likewise.
10823 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 10824
e2a8c904 108252006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 10826
10827 * normal/command.c (grub_command_init): Remove the title command.
10828
10829 * normal/lexer.c (grub_script_yylex): Renamed from this...
10830 (grub_script_yylex2): ... to this.
10831 (grub_script_yylex): New function. Temporary
10832 introduced to filter some tokens.
10833 (grub_script_yyerror): Print a newline.
10834
10835 * normal/main.c (read_config_file): Output information about the
10836 lines that contain errors. Wait for a key after all lines have
10837 been processed. Don't return an empty menu.
10838
10839 * normal/parser.y (func_mem): Don't initialize.
10840 (menu_entry): Likewise.
10841 (err): New variable.
10842 (script): Don't return anything when an error was encountered.
10843 (ws, returns): Removed rules.
10844 (argument): Disabled concatenated variable support.
10845 (arguments): Remove explicit separators.
10846 (grubcmd): Likewise.
10847 (function): Likewise.
10848 (menuentry): Likewise.
10849 (if): Likewise.
10850 (commands): Likewise. Add error handling.
10851
10852 * normal/script.c (grub_script_create_cmdline): If
10853 `grub_script_parsed' is 0, assume the parser encountered an error.
10854
c9a86192 108552006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
10856
10857 * configure.ac: Add support for EFI. Fix the typo
10858 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
10859
70f3b243 108602006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
10861
10862 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
10863 foreign multibyte characters should be shown correctly.
10864
65f201ad 108652006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
10866
10867 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
10868 calculation.
10869 (read_config_file): Made it to close file before returning.
10870
b4b93674 108712006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
10872
10873 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
10874 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
10875 video/i386/pc/vbefill.c.
10876
10877 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
10878 video/i386/pc/vbefill.c.
10879
10880 * include/grub/video.h (grub_video_blit_format): New enum.
10881 (grub_video_mode_info): Added new member blit_format.
10882 (grub_video_get_blit_format): New function prototype.
10883
10884 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
10885 function prototype.
10886 (grub_video_vbe_map_rgb): Likewise.
10887 (grub_video_vbe_unmap_color): Likewise.
10888
10889 * include/grub/i386/pc/vbeblit.h: New file.
10890
10891 * include/grub/i386/pc/vbefill.h: New file.
10892
10893 * video/video.c (grub_video_get_blit_format): New function.
10894 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
10895 (grub_video_vbe_map_rgb): Likewise.
10896 (grub_video_vbe_unmap_color): Likewise.
10897
10898 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
10899 optimized fills.
10900 (grub_video_vbe_blit_render_target): Changed to use more optimized
10901 blits.
10902 (grub_video_vbe_setup): Added detection for optimized settings.
10903 (grub_video_vbe_create_render_target): Likewise.
10904
10905 * video/i386/pc/vbeblit.c: New file.
10906
10907 * video/i386/pc/vbefill.c: New file.
10908
c2379b9c 109092006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
10910
10911 * font/manager.c (grub_font_get_glyph): Removed font fixup from
10912 here...
10913
10914 * util/unifont2pff.rb: ... and moved it to here. Improved argument
10915 parsing to support both hex and dec ranges. If filename was missing
10916 show usage information.
10917
bd0d7896 109182006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
10919
10920 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
10921 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
10922
10923 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
10924 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
10925 (video_mod_SOURCES): Added.
10926 (video_mod_CFLAGS): Likewise.
10927 (video_mod_LDFLAGS): Likewise.
10928 (gfxterm_mod_SOURCES): Likewise.
10929 (gfxterm_mod_CFLAGS): Likewise.
10930 (gfxterm_mod_LDFLAGS): Likewise.
10931 (videotest_mod_SOURCES): Likewise.
10932 (videotest_mod_CFLAGS): Likewise.
10933 (videotest_mod_LDFLAGS): Likewise.
10934 (vesafb_mod_SOURCES): Removed.
10935 (vesafb_mod_CFLAGS): Likewise.
10936 (vesafb_mod_LDFLAGS): Likewise.
10937 (vga_mod_SOURCES): Likewise.
10938 (vga_mod_CFLAGS): Likewise.
10939 (vga_mod_LDFLAGS): Likewise.
10940
10941 * commands/videotest.c: New file.
10942
10943 * font/manager.c (fill_with_default_glyph): Modified to use
10944 grub_font_glyph.
10945 (grub_font_get_glyph): Likewise.
10946 (fontmanager): Renamed from this...
10947 (font_manager): ... to this.
10948
10949 * include/grub/font.h (grub_font_glyph): Added new structure.
10950 (grub_font_get_glyph): Modified to use grub_font_glyph.
10951
10952 * include/grub/misc.h (grub_abs): Added as inline function.
10953
10954 * include/grub/video.h: New file.
10955
10956 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
10957 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
10958 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
10959 (grub_vbe_get_controller_info): Renamed from this...
10960 (grub_vbe_bios_get_controller_info): ... to this.
10961 (grub_vbe_get_mode_info): Renamed from this...
10962 (grub_vbe_bios_get_mode_info): ... to this.
10963 (grub_vbe_set_mode): Renamed from this...
10964 (grub_vbe_bios_set_mode): ... to this.
10965 (grub_vbe_get_mode): Renamed from this...
10966 (grub_vbe_bios_get_mode): ... to this.
10967 (grub_vbe_set_memory_window): Renamed from this...
10968 (grub_vbe_bios_set_memory_window): ... to this.
10969 (grub_vbe_get_memory_window): Renamed from this...
10970 (grub_vbe_bios_get_memory_window): ... to this.
10971 (grub_vbe_set_scanline_length): Renamed from this...
10972 (grub_vbe_set_scanline_length): ... to this.
10973 (grub_vbe_get_scanline_length): Renamed from this...
10974 (grub_vbe_bios_get_scanline_length): ... to this.
10975 (grub_vbe_set_display_start): Renamed from this...
10976 (grub_vbe_bios_set_display_start): ... to this.
10977 (grub_vbe_get_display_start): Renamed from this...
10978 (grub_vbe_bios_get_display_start): ... to this.
10979 (grub_vbe_set_palette_data): Renamed from this...
10980 (grub_vbe_bios_set_palette_data): ... to this.
10981 (grub_vbe_set_pixel_rgb): Removed.
10982 (grub_vbe_set_pixel_index): Likewise.
10983
10984 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
10985 from this...
10986 (grub_vbe_bios_get_controller_info): ... to this.
10987 (grub_vbe_get_mode_info): Renamed from this...
10988 (grub_vbe_bios_get_mode_info): ... to this.
10989 (grub_vbe_set_mode): Renamed from this...
10990 (grub_vbe_bios_set_mode): ... to this.
10991 (grub_vbe_get_mode): Renamed from this...
10992 (grub_vbe_bios_get_mode): ... to this.
10993 (grub_vbe_set_memory_window): Renamed from this...
10994 (grub_vbe_bios_set_memory_window): ... to this.
10995 (grub_vbe_get_memory_window): Renamed from this...
10996 (grub_vbe_bios_get_memory_window): ... to this.
10997 (grub_vbe_set_scanline_length): Renamed from this...
10998 (grub_vbe_set_scanline_length): ... to this.
10999 (grub_vbe_get_scanline_length): Renamed from this...
11000 (grub_vbe_bios_get_scanline_length): ... to this.
11001 (grub_vbe_set_display_start): Renamed from this...
11002 (grub_vbe_bios_set_display_start): ... to this.
11003 (grub_vbe_get_display_start): Renamed from this...
11004 (grub_vbe_bios_get_display_start): ... to this.
11005 (grub_vbe_set_palette_data): Renamed from this...
11006 (grub_vbe_bios_set_palette_data): ... to this.
11007 (grub_vbe_bios_get_controller_info): Fixed problem with registers
11008 getting corrupted after calling it. Added more pushes and pops.
11009 (grub_vbe_bios_set_mode): Likewise.
11010 (grub_vbe_bios_get_mode): Likewise.
11011 (grub_vbe_bios_get_memory_window): Likewise.
11012 (grub_vbe_bios_set_scanline_length): Likewise.
11013 (grub_vbe_bios_get_scanline_length): Likewise.
11014 (grub_vbe_bios_get_display_start): Likewise.
11015 (grub_vbe_bios_set_palette_data): Likewise.
11016
11017 * normal/cmdline.c (cl_set_pos): Refresh the screen.
11018 (cl_insert): Likewise.
11019 (cl_delete): Likewise.
11020
11021 * term/gfxterm.c: New file.
11022
11023 * term/i386/pc/vesafb.c: Removed file.
11024
11025 * video/video.c: New file.
11026
11027 * video/i386/pc/vbe.c (real2pm): Added new function.
11028 (grub_video_vbe_draw_pixel): Likewise.
11029 (grub_video_vbe_get_video_ptr): Likewise.
11030 (grub_video_vbe_get_pixel): Likewise
11031 (grub_video_vbe_init): Likewise.
11032 (grub_video_vbe_fini): Likewise.
11033 (grub_video_vbe_setup): Likewise.
11034 (grub_video_vbe_get_info): Likewise.
11035 (grub_video_vbe_set_palette): Likewise.
11036 (grub_video_vbe_get_palette): Likewise.
11037 (grub_video_vbe_set_viewport): Likewise.
11038 (grub_video_vbe_get_viewport): Likewise.
11039 (grub_video_vbe_map_color): Likewise.
11040 (grub_video_vbe_map_rgb): Likewise.
11041 (grub_video_vbe_map_rgba): Likewise.
11042 (grub_video_vbe_unmap_color): Likewise.
11043 (grub_video_vbe_fill_rect): Likewise.
11044 (grub_video_vbe_blit_glyph): Likewise.
11045 (grub_video_vbe_blit_bitmap): Likewise.
11046 (grub_video_vbe_blit_render_target): Likewise.
11047 (grub_video_vbe_scroll): Likewise.
11048 (grub_video_vbe_swap_buffers): Likewise.
11049 (grub_video_vbe_create_render_target): Likewise.
11050 (grub_video_vbe_delete_render_target): Likewise.
11051 (grub_video_vbe_set_active_render_target): Likewise.
11052 (grub_vbe_set_pixel_rgb): Remove function.
11053 (grub_vbe_set_pixel_index): Likewise.
11054 (index_color_mode): Remove static variable.
11055 (active_mode): Likewise.
11056 (framebuffer): Likewise.
11057 (bytes_per_scan_line): Likewise.
11058 (grub_video_vbe_adapter): Added new static variable.
11059 (framebuffer): Likewise.
11060 (render_target): Likewise.
11061 (initial_mode): Likewise.
11062 (mode_in_use): Likewise.
11063 (mode_list): Likewise.
11064
5f97350b 110652006-03-10 Marco Gerards <marco@gnu.org>
11066
11067 * configure.ac (AC_INIT): Bumped to 1.93.
11068
11069 * DISTLIST: Added `include/grub/hfs.h'.
11070
a3c5c6f8 110712006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
11072
11073 * boot/i386/pc/boot.S (general_error): Before looping, try INT
11074 18H, which might help the BIOS falling back to next boot media.
11075
6de53d26 110762006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
11077
11078 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
11079 Poe Chen <poe.poechen@gmail.com>.
11080
77c4a393 110812006-01-17 Marco Gerards <marco@gnu.org>
11082
11083 * include/grub/normal.h: Include <grub/script.h>.
11084 (grub_command_list): Removed struct.
11085 (grub_command_list_t): Removed type.
11086 (grub_menu_entry): Remove members `num' and `command_list'. Add
11087 members `commands' and `sourcecode'.
11088 * include/grub/script.h: Add inclusion guards.
11089 (grub_script_cmd_menuentry): New struct.
11090 (grub_script_execute_menuentry): New prototype.
11091 (grub_script_lexer_record_start): Likewise.
11092 (grub_script_lexer_record_stop): Likewise.
11093 * normal/execute.c (grub_script_execute_menuentry): New function.
11094 * normal/lexer.c (record, recording, recordpos, recordlen): New
11095 variables.
11096 (grub_script_lexer_record_start): New function.
11097 (grub_script_lexer_record_stop): Likewise.
11098 (recordchar): Likewise.
11099 (nextchar): Likewise.
11100 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
11101 2048 as the buffer size. Add the tokens `menuentry' and `@'.
11102 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
11103 (current_menu): New variable.
11104 (free_menu): Mainly rewritten.
11105 (grub_normal_menu_addentry): New function.
11106 (read_config_file): Rewritten.
11107 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 11108 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 11109 the menu entry.
11110 (run): Mainly rewritten.
11111 * normal/parser.y (menu_entry): New variable.
11112 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
11113 (menuentry): New rule.
11114 (command): Add `menuentry'.
11115 (if_statement): Allow additional returns before `fi'.
11116 * normal/script.c (grub_script_create_cmdmenu): New function.
11117
144f1f98 111182006-01-03 Marco Gerards <marco@gnu.org>
11119
11120 * INSTALL: GNU Bison is required.
11121 * configure.ac: Rewritten the test to detect Bison.
11122 * Makefile.in (YACC): New variable. Reported by Xun Sun
11123 <xun.sun.cn@gmail.com>.
11124
af4b2d89 111252006-01-03 Marco Gerards <marco@gnu.org>
11126
11127 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
11128 the HFS+ filesystem to filesystem blocks.
11129 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
11130 GCC warning is silenced.
11131
15643b71 111322006-01-03 Marco Gerards <marco@gnu.org>
11133
11134 * partmap/apple.c (apple_partition_map_iterate): Convert the data
11135 read from disk from big endian to host byte order.
11136
00905879 111372006-01-03 Hollis Blanchard <hollis@penguinppc.org>
11138
11139 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
11140 documentation.
11141 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
11142 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
11143 embedded HFS+ filesystem.
11144 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
11145 (grub_hfs_sblock): Move from here...
11146 * include/grub/hfs.h: To here... New file.
11147 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
11148 documentation.
11149 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
11150 New macros.
11151 (grub_hfsplus_volheader): Change type of member `magic' to
11152 `grub_uint16_t'.
11153 (grub_hfsplus_data): Add new member `embedded_offset'.
11154 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
11155 returned block.
11156 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
11157 Calculate the offset.
11158
8899bc3e 111592005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11160
11161 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
11162 Removed.
11163 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
11164
ae8c0277 111652005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11166
11167 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
11168 ENV->NAME is NULL after allocating ENV->VALUE.
11169
07084456 111702005-12-25 Marco Gerards <marco@gnu.org>
11171
11172 * kern/env.c (grub_env_set): Rewritten the error handling code.
11173
4750f5f1 111742005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11175
11176 * geninit.sh: Made more robust, and more portable.
11177
50214199 111782005-12-25 Marco Gerards <marco@gnu.org>
11179
11180 Add support for Apple HFS+ filesystems.
f19dbdb7 11181
50214199 11182 * fs/hfsplus.c: New file.
11183
11184 * DISTLIST: Added `fs/hfsplus.c'.
11185
11186 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
11187 (hfsplus_mod_SOURCES): New variable.
11188 (hfsplus_mod_CFLAGS): Likewise.
11189 (hfsplus_mod_LDFLAGS): Likewise.
11190 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
11191 (grub_setup_SOURCES): Likewise.
11192 (grub_mkdevicemap_SOURCES): Likewise.
11193 (grub_emu_SOURCES): Likewise.
11194 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11195
11196 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
11197
11198 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
11199
befaed6c 112002005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11201
11202 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
11203 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
11204 include/grub/parser.h, include/grub/script.h, kern/parser.c,
11205 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
11206 normal/lexer.c, normal/parser.y, normal/script.c, and
11207 partmap/gpt.c.
11208 Removed kern/sparc64/cache.c.
11209
11210 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
11211 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
11212 grub_emu_init.c.
11213
11214 * configure.ac (AC_INIT): Bumped to 1.92.
11215
6a124103 112162005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
11217
11218 * kern/err.c (grub_error_push): Added new function to support error
11219 stacks.
11220 (grub_error_pop): Likewise.
11221 (grub_error_stack_items): New local variable to support error stacks.
11222 (grub_error_stack_pos): Likewise.
11223 (grub_error_stack_assert): Likewise.
11224 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
11225 stack depth.
11226 (grub_print_error): Added support to print errors from error stack.
11227
11228 * include/grub/err.h (grub_error_push): Added function prototype.
11229 (grub_error_pop): Likewise.
11230
be973c1b 112312005-12-09 Hollis Blanchard <hollis@penguinppc.org>
11232
11233 * configure.ac: Accept `powerpc64' as host_cpu.
11234 (amd64): Rename to `biarch32'.
11235
11236 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
11237 non-cacheline-aligned addresses.
11238
11239 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
11240 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
11241 if `size' is non-zero.
11242
b04216ab 112432005-12-03 Marco Gerards <mgerards@xs4all.nl>
11244
11245 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
11246 and `cd' to make sure the filename is not prefixed with a
11247 directory name.
11248 (pkgdata_MODULES): Add `gpt.mod'.
11249 (gpt_mod_SOURCES): New variable.
11250 (gpt_mod_CFLAGS): Likewise.
11251 (gpt_mod_LDFLAGS): Likewise.
11252
11253 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
11254
11255 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
11256 New macro.
11257
11258 * partmap/gpt.c: New file.
11259
11260 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
11261 GPT partition map is detected.
11262
41730ed9 112632005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
11264
11265 * commands/i386/pc/play.c: New file.
11266 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
11267 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
11268 macros.
f19dbdb7 11269
95dc3643 112702005-11-27 Marco Gerards <mgerards@xs4all.nl>
11271
11272 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
11273 ((unused))' to silence gcc warning.
11274
1569ec51 112752005-11-26 Hollis Blanchard <hollis@penguinppc.org>
11276
11277 * configure.ac: Correct `AC_PROG_YACC' test.
11278
9abde152 112792005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11280
11281 * util/powerpc/ieee1275/grub-install.in: Run the mount point
11282 check before installing files.
11283
44b83271 112842005-11-22 Mike Small <smallm@panix.com>
11285
11286 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
11287 number regex so multidigit numbers are recognized correctly.
11288
112892005-11-22 Mike Small <smallm@panix.com>
11290
11291 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
11292 debugging message before attempting to claim memory.
11293 (grub_rescue_cmd_initrd): Add a claim debugging message and try
11294 multiple addresses in case of failure.
11295
9c12956b 112962005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11297
11298 * term/tparm.c (get_space): Remove empty `if' statement.
11299
11300 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
11301
11302 * kern/parser.c (check_varstate): Rename `state' to 's'.
11303
aeaf81d9 113042005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11305
11306 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
11307 variable definitions to the beginning of each function. Sort stack
11308 variables by size.
11309 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
11310 `buf' argument to `char *'.
11311
79bbb63f 113122005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11313
11314 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
11315 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11316 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 11317 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11318 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11319 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11320 configfile.mod, search.mod, gzio.mod and test.mod.
11321 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11322 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11323 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11324 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11325 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11326 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11327 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11328 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11329 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11330 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11331 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11332 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11333 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11334 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11335 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11336 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11337 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11338 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11339 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11340 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11341 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11342 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11343 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
11344
11345 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
11346 `grep --include'.
11347 (pkgdata_MODULES): Add test.mod.
11348
233b1628 113492005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11350
11351 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
11352 appending to variables with "+=".
11353 (PModule): Use full pathname to generate *.lst filenames.
11354
11355 * Makefile.in: Fixed list rules moved from genmk.rb.
11356 (.DELETE_ON_ERROR): New special target.
11357 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
11358
11359 * conf/i386-pc.rmk: Include conf/common.mk.
11360 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11361 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 11362 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11363 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11364 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11365 configfile.mod, search.mod, gzio.mod and test.mod.
11366 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11367 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11368 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11369 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11370 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11371 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11372 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11373 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11374 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11375 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11376 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11377 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11378 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11379 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11380 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11381 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11382 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11383 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11384 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11385 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11386 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11387 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11388 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
11389 here...
11390 * conf/common.rmk: ... to here. New file.
11391
11392 * conf/common.mk: New file.
11393
16f820c8 113942005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
11395
11396 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
11397 (grub_script.tab.c): ... here.
11398
11399 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
11400 (grub_script.tab.c): ... here.
11401
11402 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
11403 (grub_script.tab.c): ... here.
11404
11405 * normal/command.c (grub_command_find): Fixed a memory leak of
11406 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
11407
63ba1554 114082005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11409
11410 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
11411 "@" which marks the start of a comment on ARM.
11412 (VARIABLE): Likewise.
11413
7f67dc13 114142005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11415
79bbb63f 11416 Add support for Linux/ADFS partition tables.
7f67dc13 11417
11418 * partmap/acorn.c: New file.
11419
11420 * include/grub/acorn_filecore.h: Likewise.
11421
11422 * DISTLIST: Added `partmap/acorn.c' and
11423 `include/grub/acorn_filecore.h'.
f19dbdb7 11424
7f67dc13 11425 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11426 `partmap/acorn.c'.
11427 (pkgdata_MODULES): Add `acorn.mod'.
11428 (acorn_mod_SOURCES): New variable.
11429 (acorn_mod_CFLAGS): Likewise.
11430
11431 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11432 `partmap/acorn.c'.
11433 (pkgdata_MODULES): Add `acorn.mod'.
11434 (acorn_mod_SOURCES): New variable.
11435 (acorn_mod_CFLAGS): Likewise.
11436
11437 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
11438 (pkgdata_MODULES): Add `acorn.mod'.
11439 (acorn_mod_SOURCES): New variable.
11440 (acorn_mod_CFLAGS): Likewise.
11441 (acorn_mod_LDFLAGS): Likewise.
11442
11443 * include/types.h (grub_disk_addr_t): New typedef.
11444
6d099807 114452005-11-13 Marco Gerards <mgerards@xs4all.nl>
11446
11447 * geninit.sh: New file.
11448
11449 * geninitheader.sh: Likewise.
11450
11451 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
11452 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
11453 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
11454 * commands/configfile.c (grub_configfile_init)
11455 (grub_configfile_fini): Likewise.
11456 * commands/default.c (grub_default_init, grub_default_fini):
11457 Likewise.
11458 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
11459 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
11460 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
11461 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
11462 Likewise.
11463 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
11464 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
11465 Likewise.
11466 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 11467 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 11468 Likewise.
11469 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
11470 Likewise.
fe6b695a 11471 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 11472 Likewise.
11473 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
11474 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
11475 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
11476 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
11477 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
11478 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
11479 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
11480 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
11481 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
11482 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
11483 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
11484 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
11485 * partmap/amiga.c (grub_amiga_partition_map_init)
11486 (grub_amiga_partition_map_fini): Likewise.
11487 * partmap/apple.c (grub_apple_partition_map_init)
11488 (grub_apple_partition_map_fini): Likewise.
11489 * partmap/pc.c (grub_pc_partition_map_init)
11490 (grub_pc_partition_map_fini): Likewise.
11491 * partmap/sun.c (grub_sun_partition_map_init,
11492 grub_sun_partition_map_fini): Likewise.
11493 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
11494 Likewise.
11495
11496 * util/grub-emu.c: Include <grub_modules_init.h>.
11497 (main): Don't initialize and de-initialize any modules directly,
11498 use `grub_init_all' and `grub_fini_all' instead.
11499
11500 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
11501 `grub_vesafb_mod_init'.
11502 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
11503 all users.
11504 * term/i386/pc/vga.c (grub_vga_init): Renamed to
11505 `grub_vga_mod_init'. Updated all users.
11506 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 11507
6d099807 11508 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
11509 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
11510 rules.
11511
11512 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
11513 Generate a function to initialize the module in utilities.
11514 Updated all callers.
11515 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
11516 initialize the module in utilities. Updated all callers.
11517
9046bcf0 115182005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11519
11520 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
11521 escape sequence and a literal ^L to clear the screen.
11522
11523 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
11524 when returning from Open Firmware.
11525
d13ea639 115262005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11527
11528 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
11529 (grub_ofconsole_height): Likewise.
11530 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
11531 manually insert a '\n'.
11532 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
11533 `grub_ofconsole_height'. Return early if these are already set.
11534
a8fcf206 115352005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
11536
11537 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11538 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
11539 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
11540 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
11541 and `normal/script.c'.
11542 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11543 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11544 (test_mod_SOURCES): New variable.
11545 (test_mod_CFLAGS): Likewise.
11546 (test_mod_LDFLAGS): Likewise.
11547 (pkgdata_MODULES): Add `test.mod'.
11548 (grub_script.tab.c): New rule.
11549 (grub_script.tab.h): Likewise.
11550
b6b32745 115512005-11-07 Marco Gerards <mgerards@xs4all.nl>
11552
11553 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11554 `commands/test.c', `normal/execute.c', `normal/lexer.c',
11555 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11556 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11557 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11558 (test_mod_SOURCES): New variable.
11559 (test_mod_CFLAGS): Likewise.
11560 (pkgdata_MODULES): Add `test.mod'.
11561 (grub_script.tab.c): New rule.
11562 (grub_script.tab.h): Likewise.
11563
daac212a 115642005-11-06 Marco Gerards <mgerards@xs4all.nl>
11565
11566 Add initial scripting support.
11567
11568 * commands/test.c: New file.
11569 * include/grub/script.h: Likewise.
11570 * normal/execute.c: Likewise.
11571 * normal/function.c: Likewise.
11572 * normal/lexer.c: Likewise.
11573 * normal/parser.y: Likewise.
11574 * normal/script.c: Likewise.
11575
11576 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 11577
daac212a 11578 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
11579 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
11580 `normal/function.c' and `normal/script.c'.
11581 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11582 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 11583 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
11584 variables.
daac212a 11585 (pkgdata_MODULES): Add `test.mod'.
11586 (grub_script.tab.c): New rule.
11587 (grub_script.tab.h): Likewise.
11588
11589 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
11590
11591 * include/grub/normal.h (grub_test_init): New prototype.
11592 (grub_test_fini): Likewise.
f19dbdb7 11593
daac212a 11594 * normal/command.c: Include <grub/script.h>.
11595 (grub_command_execute): Rewritten.
f19dbdb7 11596
daac212a 11597 * util/grub-emu.c (main): Call `grub_test_init' and
11598 `grub_test_fini'.
11599
77500b2b 116002005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11601
11602 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
11603 to 0.
11604 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
11605 there are no pending characters.
11606
e45deb9e 116072005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11608
11609 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
11610 `grub_strndup' to drop device arguments. Replace unnecessary
11611 `grub_strndup' with `grub_strdup'.
11612
4ce32619 116132005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11614
11615 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
11616 `debug' environment variable has been set.
11617
116182005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11619
4ce32619 11620 * Makefile.in (install-local): Use $(DATA).
11621 (uninstall): Likewise.
11622 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
11623 (sbin_UTILITIES): ... to here.
11624 (sbin_SCRIPTS): New variable.
11625 (grub_install_SOURCES): New variable.
11626 * util/powerpc/ieee1275/grub-install.in: New file.
11627 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
11628 variable.
11629 (add_segments): Call `grub_util_get_path'.
11630
25fe6f03 116312005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
11632
11633 From Timothy Baldwin:
11634 * commands/ls.c (grub_ls_list_files): Close FILE with
11635 grub_file_close.
11636 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
11637
04ccf3ec 116382005-10-24 Marco Gerards <mgerards@xs4all.nl>
11639
11640 * include/grub/parser.h: New file.
11641
11642 * kern/parser.c: Likewise.
11643
11644 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
11645 (grub_setup_SOURCES): Likewise.
11646 (grub_probefs_SOURCES): Likewise.
11647 (grub_emu_SOURCES): Likewise.
11648 (kernel_img_HEADERS): Add `parser.h'.
11649
11650 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11651 (grub_emu_SOURCES): Add `kern/parser.c'.
11652 (grubof_SOURCES): Likewise.
11653
11654 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11655 (grubof_SOURCES): Add `kern/parser.c'.
11656
11657 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
11658
11659 * kern/misc.c (grub_split_cmdline): Removed function.
11660
11661 * kern/rescue.c: Include <grub/parser.h>.
11662 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
11663 of `grub_split_cmdline'.
11664
11665 * normal/command.c: Include <grub/parser.h>.
11666 (grub_command_execute): Use `grub_parser_split_cmdline' instead
11667 of `grub_split_cmdline'.
11668
11669 * normal/completion.c: Include <grub/parser.h>.
11670 (cmdline_state): New variable.
11671 (iterate_dir): End the filename with a quote depending on the
11672 command line state.
11673 (get_state): new function.
11674 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
11675 split the arguments and determine the current argument. When the
11676 argument string is not quoted, escape all spaces.
11677
6d8f4b0e 116782005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11679
11680 * normal/sparc64/setjmp.S: New file.
11681
15cf03ed 116822005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11683
11684 * include/grub/sparc64/libgcc.h: New file.
11685 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
11686 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
11687 normal/sparc64/setjmp.c.
11688
03e8661a 116892005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11690
11691 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
11692 * kern/sparc64/cache.S: New file.
11693 * kern/sparc64/cache.c: Removed.
11694 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
11695 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
11696 -mtune=ultrasparc.
11697 (COMMON_LDFLAGS): Add -melf64_sparc.
11698 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
11699 (grubof_SOURCES): Use cache.S instead of cache.c.
11700 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
11701 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
11702 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
11703 commented though.
11704 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
11705 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
11706 (linux_mod_CFLAGS): Commented out.
11707 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
11708 out because module isn't built.
11709 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
11710 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
11711 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
11712 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
11713 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
11714 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
11715 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
11716 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
11717 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
11718 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
11719 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11720 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11721 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
11722 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
11723
34eeec8a 117242005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
11725
11726 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
11727 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
11728 longer, because HFS should not be used on PC.
11729
708367a3 117302005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11731
11732 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
11733 consistently within the loop.
11734
6fa1251a 117352005-10-15 Marco Gerards <mgerards@xs4all.nl>
11736
11737 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
11738 directory can not be read.
11739
4801580b 117402005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11741
11742 * configure.ac (AC_INIT): Increase the version number to 1.91.
11743
11744 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
11745 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
11746 term/i386/pc/serial.c.
11747
219ad426 117482005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11749
11750 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
11751 file size must be permitted.
11752
11753 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
11754 between %ah and %al.
11755
688e5699 117562005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11757
11758 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
11759 grub_uint64_t.
11760 Call the hook with a NUL-terminated filename.
11761 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
11762 grub_cpu_to_be32.
11763
11764 * kern/term.c (cursor_state): New variable.
11765 (grub_term_set_current): Reset the cursor state on a new
11766 terminal.
11767 (grub_setcursor): Rewritten to use CURSOR_STATE.
11768 (grub_getcursor): New function.
11769
11770 * include/grub/term.h (grub_getcursor): New prototype.
11771
11772 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
11773 integers on ARM. Reported by Timothy Baldwin
11774 <T.E.Baldwin99@members.leeds.ac.uk>.
11775
bb34586c 117762005-10-11 Marco Gerards <mgerards@xs4all.nl>
11777
11778 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
11779 allocated.
11780 (grub_sfs_dir): Likewise.
11781
9a909877 117822005-10-09 Marco Gerards <mgerards@xs4all.nl>
11783
11784 Add support for the SFS filesystem.
11785
11786 * fs/sfs.c: New file.
11787
11788 * DISTLIST: Added `fs/sfs.c'.
11789
11790 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
11791 (grub_probefs_SOURCES): Likewise.
11792 (grub_emu_SOURCES): Likewise.
11793 (pkgdata_MODULES): Add `sfs.mod'.
11794 (sfs_mod_SOURCES): New variable.
11795 (sfs_mod_CFLAGS): Likewise.
11796 (sfs_mod_LDFLAGS): Likewise.
11797
11798 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
11799 (pkgdata_MODULES): Add `sfs.mod'.
11800 (sfs_mod_SOURCES): New variable.
11801 (sfs_mod_CFLAGS): Likewise.
11802
11803 * util/grub-emu.c (main): Call `grub_sfs_init' and
11804 `grub_sfs_fini'.
11805
11806 * include/grub/fs.h (grub_sfs_init): New prototype.
11807 (grub_sfs_fini): Likewise.
11808
57bdbde3 118092005-10-07 Marco Gerards <mgerards@xs4all.nl>
11810
11811 Add support for the AFFS filesystem.
11812
11813 * fs/affs.c: New file.
11814
11815 * DISTLIST: Added `fs/affs.c'.
11816
11817 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
11818 (grub_probefs_SOURCES): Likewise.
11819 (grub_emu_SOURCES): Likewise.
11820 (pkgdata_MODULES): Add `affs.mod'.
11821 (affs_mod_SOURCES): New variable.
11822 (affs_mod_CFLAGS): Likewise.
11823 (affs_mod_LDFLAGS): Likewise.
11824
11825 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
11826 (pkgdata_MODULES): Add `affs.mod'.
11827 (affs_mod_SOURCES): New variable.
11828 (affs_mod_CFLAGS): Likewise.
11829
11830 * util/grub-emu.c (main): Call `grub_affs_init' and
11831 `grub_affs_fini'.
11832
11833 * include/grub/fs.h (grub_affs_init): New prototype.
11834 (grub_affs_fini): Likewise.
11835
047b67e0 118362005-10-01 Marco Gerards <mgerards@xs4all.nl>
11837
11838 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
11839
59b8208a 118402005-10-01 Marco Gerards <mgerards@xs4all.nl>
11841
11842 * configure.ac: Accept `x86_64' as host_cpu. In that case add
11843 `-m32' to CFLAGS.
11844
11845 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
11846 linking.
f19dbdb7 11847
59b8208a 11848 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
11849 (COMMON_LDFLAGS): New variable.
11850 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
11851 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
11852 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
11853 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
11854 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
11855 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
11856 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
11857 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
11858 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
11859 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
11860 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
11861 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
11862 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
11863 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
11864 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
11865 variables.
11866 (normal_mod_ASFLAGS): Add `-m32'.
11867
11868 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
11869 (grub_host_size_t, grub_host_ssize_t): New types.
11870 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 11871 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 11872 `GRUB_HOST_SIZEOF_VOID_P'.
11873
11874 * include/grub/kernel.h (struct grub_module_header): Type of
11875 member offset changed to `grub_host_off_t'. Type of member size
11876 changed to `grub_host_size_t'.
11877 (struct grub_module_info): Type of member offset changed to
11878 `grub_host_off_t'. Type of member size changed to
11879 `grub_host_size_t'.
11880
b4093103 118812005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
11882
11883 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 11884
b4093103 11885 * kern/i386/pc/startup.S (multiboot_header): New label.
11886 (multiboot_entry): Likewise.
11887 (multiboot_trampoline): Likewise.
11888
11889 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
11890 Increased to 0x4A0.
11891
11892 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
11893 put parentheses after a question mark.
11894 [!GRUB_UTIL] (my_mod): New variable.
11895
11896 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
11897
b2499b29 118982005-09-28 Marco Gerards <mgerards@xs4all.nl>
11899
11900 Adds support for the XFS filesystem. Btrees are not supported
11901 yet.
11902
11903 * fs/xfs.c: New file.
11904
11905 * DISTLIST: Added `fs/xfs.c'.
11906
11907 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
11908 (grub_probefs_SOURCES): Likewise.
11909 (grub_emu_SOURCES): Likewise.
11910 (pkgdata_MODULES): Add `xfs.mod'.
11911 (xfs_mod_SOURCES): New variable.
11912 (xfs_mod_CFLAGS): Likewise.
11913
11914 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
11915 (pkgdata_MODULES): Add `xfs.mod'.
11916 (xfs_mod_SOURCES): New variable.
11917 (xfs_mod_CFLAGS): Likewise.
11918
11919 * util/grub-emu.c (main): Call `grub_xfs_init' and
11920 `grub_xfs_fini'.
11921
11922 * include/grub/fs.h (grub_xfs_init): New prototype.
11923 (grub_xfs_fini): Likewise.
11924
f19dbdb7 11925
83d37a62 119262005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
11927
11928 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
11929 color modes, allow greater than 16 colors to be configured as
11930 a default palette.
11931
47d2d65e 119322005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
11933
11934 * normal/completion.c (complete_arguments): Add the qualifier
11935 const into OPTIONS.
11936
11937 From Omniflux <omniflux+lists@omniflux.com>:
11938 * include/grub/terminfo.h: New file.
11939 * include/grub/tparm.h: Likewise.
11940 * include/grub/i386/pc/serial.h: Likewise.
11941 * term/terminfo.c: Likewise.
11942 * term/tparm.c: Likewise.
11943 * term/i386/pc/serial.c: Likewise.
11944 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
11945 serial.mod.
11946 (terminfo_mod_SOURCES): New variable.
11947 (terminfo_mod_CFLAGS): Likewise.
11948 (serial_mod_SOURCES): Likewise.
11949 (serial_mod_CFLAGS): Likewise.
11950
48b671ff 119512005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
11952
11953 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
11954 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
11955 and kern/powerpc/ieee1275/cmain.c, respectively.
11956
11957 * boot/powerpc/ieee1275/crt0.S: Moved to ...
11958 * kern/powerpc/ieee1275/crt0.S: ... here.
11959
11960 * boot/powerpc/ieee1275/cmain.c: Moved to ...
11961 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 11962
48b671ff 11963 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
11964 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
11965 instead of boot/powerpc/ieee1275/crt0.S and
11966 boot/powerpc/ieee1275/cmain.c, respectively.
11967
11968 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
11969 sectors. It was not used anyway.
11970
09fc77a7 119712005-08-30 Hollis Blanchard <hollis@penguinppc.org>
11972
11973 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
11974 `unused parameter' warning.
11975
003789c7 119762005-08-30 Hollis Blanchard <hollis@penguinppc.org>
11977
11978 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
11979 function.
11980 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
11981 getcharwidth.
11982
67f44c86 119832005-08-28 Marco Gerards <metgerards@student.han.nl>
11984
11985 * include/grub/normal.h (enum grub_completion_type): Added
11986 `GRUB_COMPLETION_TYPE_ARGUMENT'.
11987
11988 * normal/cmdline.c (print_completion): Handle
11989 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
11990 * normal/menu_entry.c (store_completion): Likewise.
11991
11992 * normal/completion.c (complete_arguments): New function.
11993 (grub_normal_do_completion): Call `complete_arguments' when the
11994 current words start with a dash.
11995
0b5abe02 119962005-08-27 Marco Gerards <metgerards@student.han.nl>
11997
11998 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
11999 `gzio.mod' instead of `io.mod').
12000
d9864ee1 120012005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
12002
12003 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
12004 (DISTDIRS): Added io and video.
12005 Rewrite the search routine to make an output consistently.
12006
12007 * DISTLIST: Added conf/sparc64-ieee1275.mk,
12008 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
12009 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
12010 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
12011 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
12012 util/powerpc/ieee1275/misc.c.
f19dbdb7 12013
d9864ee1 12014 * include/grub/gzio.h: New file.
12015 * io/gzio.c: Likewise.
f19dbdb7 12016
d9864ee1 12017 * kern/file.c (grub_file_close): Call grub_device_close only if
12018 FILE->DEVICE is not NULL.
12019
12020 * include/grub/mm.h [!NULL] (NULL): New macro.
12021
12022 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
12023
12024 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
12025 (pkgdata_MODULES): Added gzio.mod.
12026 (gzio_mod_SOURCES): New variable.
12027 (gzio_mod_CFLAGS): Likewise.
12028
12029 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
12030 (pkgdata_MODULES): Added gzio.mod.
12031 (gzio_mod_SOURCES): New variable.
12032 (gzio_mod_CFLAGS): Likewise.
12033
12034 * commands/cat.c: Include grub/gzio.h.
12035 (grub_cmd_cat): Use grub_gzfile_open instead of
12036 grub_file_open.
f19dbdb7 12037
d9864ee1 12038 * commands/cmp.c: Include grub/gzio.h.
12039 (grub_cmd_cmp): Use grub_gzfile_open instead of
12040 grub_file_open.
12041
12042 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
12043 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
12044 grub_file_open.
12045 (grub_rescue_cmd_module): Likewise.
12046
fa46f4b5 120472005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12048
12049 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
12050 kern/sparc64/ieee1275/init.c because it contains _start.
12051 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
12052
e9211b5d 120532005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12054
12055 * configure.ac: Add support for sparc64 host with ieee1275
12056 firmware.
12057 * configure: Generated from configure.ac.
12058 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
12059 instead of int.
12060 (grub_ofdisk_read): Likewise.
12061 (grub_ofdisk_open): Use %p to print pointer values, and cast the
12062 pointers as (void *) to remove a warning.
12063 (grub_ofdisk_close): Likewise.
12064 (grub_ofdisk_read): Likewise.
12065 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
12066 returns, so make it return void to remove a warning.
12067 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
12068 Corresponding prototype change.
12069 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
12070 values, and cast the pointers as (void *) to remove a warning.
12071 (grub_mm_dump): Likewise.
12072 * conf/sparc64-ieee1275.mk: New file.
12073 * conf/sparc64-ieee1275.rmk: Likewise.
12074 * include/grub/sparc64/setjmp.h: Likewise.
12075 * include/grub/sparc64/types.h: Likewise.
12076 * include/grub/sparc64/ieee1275/console.h: Likewise.
12077 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
12078 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
12079 * include/grub/sparc64/ieee1275/time.h: Likewise.
12080 * kern/sparc64/cache.c: Likewise.
12081 * kern/sparc64/dl.c: Likewise.
12082 * kern/sparc64/ieee1275/init.c: Likewise.
12083 * kern/sparc64/ieee1275/openfw.c: Likewise.
12084
385c6a92 120852005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12086
12087 * util/console.c (grub_ncurses_putchar): If C is greater than
12088 0x7f, set C to a question mark.
12089 (grub_ncurses_getcharwidth): New function.
12090 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
12091 getcharwidth.
12092
12093 * normal/menu.c (print_entry): Made aware of Unicode. First,
12094 convert TITLE to UCS-4, and predict the cursor position by
12095 grub_getcharwidth.
12096
12097 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
12098 const to SRC.
12099 * kern/misc.c (grub_utf16_to_utf8): Likewise.
12100
16ccb8b1 121012005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12102
12103 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
12104 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12105 grub_strcat.
12106
12107 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
12108 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12109 grub_strcpy and grub_strlen. Take it into account that a space
12110 character is inserted as a delimiter.
12111
6a85ce79 121122005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12113
12114 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 12115 invalid magic in the error.
6a85ce79 12116
12117 * commands/search.c: New file.
f19dbdb7 12118
6a85ce79 12119 * util/grub-emu.c (main): Call grub_search_init and
12120 grub_search_fini.
12121
12122 * kern/rescue.c (grub_rescue_print_disks): Removed.
12123 (grub_rescue_print_devices): New function.
12124 (grub_rescue_cmd_ls): Use grub_device_iterate with
12125 grub_rescue_print_devices instead of grub_disk_dev_iterate with
12126 grub_rescue_print_disks.
12127
12128 * kern/partition.c (grub_partition_iterate): Return the result of
12129 PARTMAP->ITERATE instead of GRUB_ERRNO.
12130
12131 * kern/device.c: Include grub/partition.h.
12132 (grub_device_iterate): New function.
12133
12134 * include/grub/partition.h (grub_partition_iterate): Return int
12135 instead of grub_err_t.
12136
12137 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
12138 prototype.
12139 [GRUB_UTIL] (grub_search_fini): Likewise.
12140
12141 * include/grub/device.h (grub_device_iterate): New prototype.
12142
12143 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12144 commands/search.c.
12145 (pkgdata_MODULES): Added search.mod.
12146 (search_mod_SOURCES): New variable.
12147 (search_mod_CFLAGS): Likewise.
12148
12149 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
12150 (pkgdata_MODULES): Added search.mod.
12151 (search_mod_SOURCES): New variable.
12152 (search_mod_CFLAGS): Likewise.
12153
12154 * commands/ls.c (grub_ls_list_disks): Renamed to ...
12155 (grub_ls_list_devices): ... this, and use grub_device_iterate.
12156 All callers changed.
12157
12158 * DISTLIST: Added commands/search.c.
12159
ef095434 121602005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12161
12162 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
12163 conversion.
12164 (grub_getcharwidth): New function.
12165
12166 * kern/misc.c (grub_utf8_to_ucs4): New function.
12167
12168 * include/grub/term.h (struct grub_term): Added a new member
12169 "getcharwidth".
12170 (grub_getcharwidth): New prototype.
12171
12172 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
12173
12174 * term/i386/pc/console.c (map_char): New function. Segregated from
12175 grub_console_putchar.
12176 (grub_console_putchar): Use map_char.
12177 (grub_console_getcharwidth): New function.
12178 (grub_console_term): Specified grub_console_getcharwidth as
12179 getcharwidth.
12180
12181 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
12182 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
12183
12184 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
12185 GRUB_ERRNO.
12186 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
12187 on grub_strtoul completely.
12188 (write_char): Declare local variables in the beginning of the
12189 function.
12190 (grub_vesafb_getcharwidth): New function.
12191 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
12192 getcharwidth.
12193
1f0a95e4 121942005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
12195
12196 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
12197 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
12198 commands/i386/pc/vbetest.c.
12199
12200 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
12201 call grub_vbe_get_controller_info again, because the returned
12202 information is volatile.
12203 (grub_vbe_set_video_mode): Mostly rewritten.
12204 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
12205 grub_vbe_status_t correctly.
12206 (grub_vbe_get_video_mode_info): Likewise.
12207 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
12208 several if statements.
12209
12210 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
12211 * commands/i386/pc/vbeinfo.c: ... this.
12212
12213 * commands/i386/pc/vbe_test.c: Renamed to ...
12214 * commands/i386/pc/vbetest.c: ... this.
12215
12216 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
12217 ...
12218 (grub_cmd_vbeinfo): ... this. Save video modes before
12219 iterating. Skip a video mode, if it is not available, not enough
12220 information is given or it is monochrome. Show the memory
12221 model. Leave the interpretation of MODEVAR to grub_strtoul
12222 completely.
12223 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
12224 (GRUB_MOD_FINI): Likewise.
12225
12226 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
12227 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
12228 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
12229 duplicated grub_env_get. Leave the interpretation of MODEVAR to
12230 grub_strtoul completely.
12231 (real2pm): Removed.
12232 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
12233 (GRUB_MOD_FINI): Likewise.
12234
12235 * normal/misc.c: Include grub/mm.h.
12236
12237 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
12238 vbe_list_modes with vbetest.mod and vbeinfo.mod.
12239 (vbe_list_modes_mod_SOURCES): Removed.
12240 (vbe_list_modes_mod_CFLAGS): Likewise.
12241 (vbe_test_mod_SOURCES): Likewise.
12242 (vbe_test_mod_CFLAGS): Likewise.
12243 (vbeinfo_mod_SOURCES): New variable.
12244 (vbeinfo_mod_CFLAGS): Likewise.
12245 (vbetest_mod_SOURCES): Likewise.
12246 (vbetest_mod_CFLAGS): Likewise.
12247
992ffbbe 122482005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
12249
12250 * normal/misc.c: New file.
12251
12252 * DISTLIST: Added normal/misc.c.
f19dbdb7 12253
992ffbbe 12254 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
12255 DISK to HOOK. Call HOOK with DISK.
12256 * partmap/apple.c (apple_partition_map_iterate): Likewise.
12257 * partmap/pc.c (pc_partition_map_iterate): Likewise.
12258 * partmap/sun.c (sun_partition_map_iterate): Likewise.
12259
12260 * normal/menu_entry.c (struct screen): Added a new member
12261 "completion_shown".
12262 (completion_buffer): New global variable.
12263 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
12264 (store_completion): New function.
12265 (complete): Likewise.
12266 (clear_completions): Likewise.
12267 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
12268 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
12269 a tab, call complete.
12270
12271 * normal/completion.c (disk_dev): Removed.
12272 (print_simple_completion): Likewise.
12273 (print_partition_completion): Likewise.
12274 (print_func): New global variable.
12275 (add_completion): Do not take the arguments WHAT or PRINT any
12276 longer. Added a new argument TYPE. Instead of printing directly,
12277 call PRINT_FUNC if not NULL.
12278 All callers changed.
12279 (complete_device): Use a local variable DEV instead of
12280 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
12281 (grub_normal_do_completion): Take a new argument HOOK. Do not
12282 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
12283 empty string, return NULL instead.
12284 All callers changed.
12285
12286 * normal/cmdline.c (print_completion): New function.
12287
12288 * kern/partition.c (grub_partition_iterate): Add an argument DISK
12289 to HOOK.
12290 All callers changed.
12291
12292 * kern/disk.c (grub_print_partinfo): Removed.
12293
12294 * include/grub/partition.h (struct grub_partition_map): Add a new
12295 argument DISK into HOOK of ITERATE.
12296 (grub_partition_iterate): Add a new argument DISK to HOOK.
12297
12298 * include/grub/normal.h (enum grub_completion_type): New enum.
12299 (grub_completion_type_t): New type.
12300 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
12301 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
12302 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
12303 (GRUB_COMPLETION_TYPE_FILE): Likewise.
12304 (grub_normal_do_completion): Added a new argument HOOK.
12305 (grub_normal_print_device_info): New prototype.
12306
12307 * include/grub/disk.h (grub_print_partinfo): Removed.
12308
12309 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
12310 (normal_mod_SOURCES): Likewise.
12311 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12312 (normal_mod_SOURCES): Likewise.
12313
12314 * commands/ls.c (grub_ls_list_disks): Use
12315 grub_normal_print_device_info instead of grub_print_partinfo. Free
12316 PNAME.
12317 (grub_ls_list_files): Use grub_normal_print_device_info instead of
12318 duplicating the code.
12319
0bd41162 123202005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12321
12322 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 12323 follow GCS more precisely.
12324 * commands/i386/pc/vbe_test.c: Likewise.
12325 * include/grub/i386/pc/vbe.h: Likewise.
12326 * term/i386/pc/vesafb.c: Likewise.
12327 * video/i386/pc/vbe.c: Likewise.
0bd41162 12328
6323696a 123292005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12330
12331 * DISTLIST: Added term/i386/pc/vesafb.c
12332 DISTLIST: Added video/i386/pc/vbe.c
12333 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
12334 DISTLIST: Added commands/i386/pc/vbe_test.c.
12335 * commands/i386/pc/vbe_list_modes.c: New file.
12336 * commands/i386/pc/vbe_test.c: Likewise.
12337 * term/i386/pc/vesafb.c: Likewise.
12338 * video/i386/pc/vbe.c: Likewise.
12339 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
12340 (grub_vbe_probe) Added prototype.
12341 (grub_vbe_set_video_mode) Likewise.
12342 (grub_vbe_get_video_mode) Likewise.
12343 (grub_vbe_get_video_mode_info) Likewise.
12344 (grub_vbe_set_pixel_rgb) Likewise.
12345 (grub_vbe_set_pixel_index) Likewise.
12346 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
12347 (pkgdata_MODULES): Added vesafb.mod.
12348 (pkgdata_MODULES): Added vbe_list_modes.mod.
12349 (pkgdata_MODULES): Added vbe_test.mod.
12350 (vbe_mod_SOURCES): Added.
12351 (vbe_mod_CFLAGS): Likewise.
12352 (vesafb_mod_SOURCES): Likewise.
12353 (vesafb_mod_CFLAGS): Likewise.
12354 (vbe_list_modes_mod_SOURCES): Likewise.
12355 (vbe_list_modes_mod_CFLAGS): Likewise.
12356 (vbe_test_mod_SOURCES): Likewise.
12357 (vbe_test_mod_CFLAGS): Likewise.
12358
0a74e62f 123592005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
12360
0a74e62f 12361 * normal/command.c (grub_command_execute): If INTERACTIVE is
12362 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
12363 CMDLINE. Disable the pager if INTERACTIVE is true.
12364 All callers are changed.
12365
12366 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
12367 before reading a config file.
12368 * normal/main.c (read_config_file): Even if a command is not
12369 found, register it if it is within an entry.
12370
12371 * util/grub-emu.c: Include sys/types.h and unistd.h.
12372 (options): Added --hold.
12373 (struct arguments): Added a new member "hold".
12374 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
12375 missing.
12376 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
12377 cleared by a debugger, if it is not zero.
12378
12379 * include/grub/normal.h (grub_command_execute): Add an argument
12380 INTERACTIVE.
12381
e51f85ae 123822005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
12383
12384 * DISTLIST: Added include/grub/i386/pc/vbe.h.
12385
e9c6f39b 123862005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
12387
12388 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
12389 program with another one, because the old one didn't detect a bug
12390 in gcc-3.4. Always use regparm 2, because the new test is still
12391 not enough for gcc-4.0. Someone must investigate a simple test
12392 case which detects a bug in gcc-4.0.
12393
8de3495c 123942005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
12395
12396 * DISTLIST: Added normal/completion.c.
12397
12398 * normal/completion.c: New file.
f19dbdb7 12399
8de3495c 12400 * term/i386/pc/console.c (grub_console_getwh): New function.
12401 (grub_console_term): Assign grub_console_getwh to getwh.
12402
12403 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
12404 function is defined in normal/completion.c as
12405 grub_normal_do_completion.
12406 (grub_cmdline_get): Use grub_normal_do_completion instead of
12407 grub_tab_complete.
12408
12409 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
12410 returns non-zero, otherwise return 0.
12411 (grub_partition_iterate): First, probe the partition map. Then,
12412 call ITERATE only for this partition map.
12413
12414 * kern/misc.c (grub_strncmp): Rewritten.
12415
12416 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
12417 returns non-zero. Otherwise return 0.
12418
12419 * include/grub/partition.h (grub_partition_map_iterate): Return
12420 int instead of void.
12421
12422 * include/grub/normal.h (grub_normal_do_completion): New prototype.
12423
12424 * include/grub/misc.h (grub_strncmp): Change the type of N to
12425 grub_size_t.
12426
12427 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
12428 of void.
12429
12430 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 12431 unsigned explicitly before comparing it with I.
8de3495c 12432
12433 * kern/main.c (grub_env_write_root): Add the attribute unused into
12434 VAR.
12435
12436 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12437 normal/completion.c.
12438 (normal_mod_SOURCES): Likewise.
12439 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
12440 (normal_mod_SOURCES): Likewise.
12441
12442 * normal/command.c (grub_iterate_commands): If ITERATE returns
12443 non-zero, return one immediately.
12444
e85e144b 124452005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
12446
12447 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
12448 * kern/i386/pc/startup.S: Updated Global Descriptor table's
12449 descriptions.
12450 (grub_vbe_get_controller_info): New function.
12451 (grub_vbe_get_mode_info): Likewise.
12452 (grub_vbe_set_mode): Likewise.
12453 (grub_vbe_get_mode): Likewise.
12454 (grub_vbe_set_memory_window): Likewise.
12455 (grub_vbe_get_memory_window): Likewise.
12456 (grub_vbe_set_scanline_length): Likewise.
12457 (grub_vbe_get_scanline_length): Likewise.
12458 (grub_vbe_set_display_start): Likewise.
12459 (grub_vbe_get_display_start): Likewise.
12460 (grub_vbe_set_palette_data): Likewise.
12461 * include/grub/i386/pc/vbe.h: New file.
12462
c46153d2 124632005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12464
12465 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12466 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
12467 * DISTLIST: Likewise.
12468 * kern/ieee1275/of.c: Moved to ...
12469 * kern/ieee1275/ieee1275.c: ... here.
12470
0cb90c45 124712005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12472
12473 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
12474 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
12475 Pass 0 as `end' parameter to grub_strtoul().
12476
a19fb360 124772005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12478
12479 * include/grub/powerpc/ieee1275/console.h: Do not include
12480 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
12481 ifdef.
12482 (grub_console_cur_color): Remove i386-specific prototype.
12483 (grub_console_real_putchar): Likewise.
12484 (grub_console_checkkey): Likewise.
12485 (grub_console_getkey): Likewise.
12486 (grub_console_getxy): Likewise.
12487 (grub_console_gotoxy): Likewise.
12488 (grub_console_cls): Likewise.
12489 (grub_console_setcursor): Likewise.
12490 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
12491 Include <grub/machine/console.h>.
12492 * term/ieee1275/ofconsole.c: Likewise.
12493
4ac9bd04 124942005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
12495
12496 * Makefile.in (LIBLZO): New variable.
12497
12498 * configure.ac: Check for LZO version 2.
12499
12500 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
12501 lzo/lzo1x.h instead of lzo1x.h.
12502
12503 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
12504 of -llzo.
12505
12506 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
12507 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
12508
12509 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
12510 copying the data from PARTITION to P.
12511
f4917dfd 125122005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12513
12514 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
12515 negative, unload the module.
12516
12517 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
12518 map is "pc_partition_map" but not "pc".
12519 (usage): Fix the description. The options are --boot-image and
12520 --core-image but not --boot-file or --core-file.
12521 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
12522 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
12523 DEFAULT_DIRECTORY.
12524
12525 * util/i386/pc/grub-install.in: Do not specify --boot-file or
12526 --core-file. Specify INSTALL_DEVICE as an argument.
12527
12528 * util/console.c: Include config.h.
12529 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
12530 [HAVE_NCURSES_H]: Include ncurses.h.
12531 [HAVE_CURSES_H]: Include curses.h.
12532 [!A_NORMAL] (A_NORMAL): Defined as zero.
12533 [!A_STANDOUT] (A_STANDOUT): Likewise.
12534
12535 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
12536 -lncurses.
12537 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
12538
12539 * configure.ac: Check for curses libraries and headers.
12540
12541 * Makefile.in (LIBCURSES): New variable.
12542
12543 * genmk.rb (Script::rule): Set the executable bits.
12544
12545 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
12546 name of the PC partition map is "pc_partition_map" but not "pc".
12547
0e143073 125482005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12549
12550 * util/i386/pc/grub-install.in (grub_probefs): New variable.
12551 (modules): Likewise.
12552 (usage): Added descriptions for --modules and --grub-probefs.
12553 Handle --modules and --grub-probefs. Save the arguments in MODULES
12554 and GRUB_PROBEFS, respectively.
12555 Auto-detect a filesystem module against GRUBDIR. If the result is
12556 empty and modules are not specified explicitly, abort the
12557 installation. Add the result to MODULES.
12558
12559 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
12560 disk/powerpc/ieee1275/ofdisk.c,
12561 include/grub/powerpc/ieee1275/init.h and
12562 term/powerpc/ieee1275/ofconsole.c.
12563 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
12564 term/ieee1275/ofconsole.c.
12565
12566 * include/grub/powerpc/ieee1275/console.h: Resurrected.
12567
12568 * COPYING: Upgraded to the latest version. Only the address of the
12569 FSF office has changed.
f19dbdb7 12570
efd6e6d5 125712005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12572
12573 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12574 kern/ieee1275.c with kern/ieee1275/of.c.
12575
12576 * kern/ieee1275.c: Moved to ...
12577 * kern/ieee1275/of.c: ... here.
12578
8ceafda2 125792005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
12580
12581 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 12582 readability.
8ceafda2 12583
12584 * config.guess: Updated to the latest version from gnulib.
12585 * config.sub: Likewise.
12586 * install.sh: Likewise.
12587 * mkinstalldirs: Likewise.
12588
12589 * include/grub/console.h: Removed. This file is arch-specific. Do
12590 not put this in include/grub.
12591
12592 * include/grub/i386/pc/console.h: Resurrected.
12593
12594 * util/console.c: Include grub/machine/console.h instead of
12595 grub/console.h.
12596 * util/grub-emu.c: Likewise.
12597
267f6cd9 125982005-08-04 Marco Gerards <metgerards@student.han.nl>
12599
12600 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
12601 hardcoded value.
f19dbdb7 12602
267f6cd9 12603 From Vincent Pelletier <subdino2004@yahoo.fr>
12604 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
12605 Redefined to use grub_getwh.
12606 (grub_term): New member named getwh.
12607 (grub_getwh): New prototype.
12608 * kern/term.c (grub_getwh): New function.
12609 * term/i386/pc/console.c (grub_console_getwh): New function.
12610 (grub_console_term): New member `getwh'.
12611 * term/i386/pc/vga.c (grub_vga_getwh): New function.
12612 (grub_vga_term): New member `getwh'.
0b5abe02 12613 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 12614 grub_ssize_t.
12615 (grub_ofconsole_getw): New function.
12616 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
12617 (grub_ofconsole_term): New field named getwh and new initial
12618 value.
12619
3be7266d 126202005-08-03 Hollis Blanchard <hollis@penguinppc.org>
12621
12622 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
12623 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
12624 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
12625 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
12626 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
12627 of <grub/machine/ieee1275.h>.
12628 * commands/ieee1275/reboot.c: Likewise.
12629 * boot/powerpc/ieee1275/ieee1275.c: Move ...
12630 * kern/ieee1275.c: ... to here. All users updated. Change all
12631 parameter structs to use new type `grub_ieee1275_cell_t'.
12632 * term/powerpc/ieee1275/ofconsole.c: Move ...
12633 * term/ieee1275/ofconsole.c: ... to here. All users updated.
12634 * disk/powerpc/ieee1275/ofdisk.c: Move ...
12635 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
12636 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
12637 to return int.
12638 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
12639 Remove unused prototypes. All users updated.
12640 * include/grub/powerpc/ieee1275/console.h: Removed.
12641 * include/grub/powerpc/ieee1275/ieee1275.h: Define
12642 `grub_ieee1275_cell_t'.
12643 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
12644 Cast comparisons with -1 to the correct type.
12645 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
12646 type to match `grub_ieee1275_entry_fn'.
12647
8b5f3938 126482005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
12649
12650 * DISTLIST: Added util/i386/pc/grub-probefs.c.
12651
12652 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
12653 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
12654 partmap/sun.c.
12655 (grub_probefs_SOURCES): New variable.
12656
12657 * util/i386/pc/grub-probefs.c: New file.
12658
12659 * util/i386/pc/grub-setup.c (main): Call
12660 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
12661 grub_hfs_init and grub_jfs_init to initialize the system. Call
12662 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
12663 grub_pc_partition_map_fini to finish the system.
12664
ea409713 126652005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
12666
12667 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
12668 function.
12669 (grub_multiboot_load_elf32): Likewise.
12670 (grub_multiboot_is_elf64): Likewise.
12671 (grub_multiboot_load_elf64): Likewise.
12672 (grub_multiboot_load_elf): Likewise.
12673 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
12674 an ELF32 or ELF64 file.
12675 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
12676
12677 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
12678 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
12679 NULL before calling FS->LABEL.
12680 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
12681 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
12682 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
12683 before calling FS->LABEL.
12684
141a288b 126852005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
12686
12687 * util/i386/pc/grub-install.in (datadir): New variable.
12688 (libdir): Removed.
12689 (pkgdatadir): New variable.
12690 (pkglibdir): Removed.
12691
0d5f8a54 126922005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
12693
12694 * DISTLIST: Added util/i386/pc/grub-install.in.
12695
12696 * util/i386/pc/grub-install.in: New file.
12697
12698 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
12699 (grub_install_SOURCES): Likewise.
12700
12701 * genmk.rb: Added support for scripts.
12702 (Script): New class.
12703 (scripts): New variable.
12704
12705 * Makefile.in (install-local): Install sbin_SCRIPTS by
12706 INSTALL_SCRIPT.
12707 (uninstall): Remove sbin_SCRIPTS.
12708
12709 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
12710 device, try to get a GRUB device by
12711 grub_util_biosdisk_get_grub_dev.
12712 Free DEST_DEV.
12713
12714 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
12715 description for --device-map.
12716
5f968e1e 127172005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12718
12719 Change the semantics of variable hooks. They now return strings
12720 instead of error values.
f19dbdb7 12721
5f968e1e 12722 * util/i386/pc/grub-setup.c: Include grub/env.h.
12723 (setup): Use grub_device_set_root instead of grub_env_set.
12724
12725 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
12726 grub_env_get instead of grub_device_set_root and
12727 grub_device_get_root, respectively.
12728
12729 * kern/main.c (grub_env_write_root): New function.
12730 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
12731 grub_env_set instead of grub_device_set_root.
12732
12733 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
12734 many variables.
12735 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
12736 rather than calling ENV->WRITE_HOOK afterwards.
12737 (grub_env_get): Return the result of ENV->READ_HOOK rather than
12738 passing a pointer of a pointer.
12739 (grub_register_variable_hook): Change the types of "read_hook" and
12740 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
12741 respectively.
12742 Allocate the default empty string on the heap, because this string
12743 may be freed later.
12744
12745 * kern/device.c: Include grub/env.h.
12746 (grub_device_set_root): Removed.
12747 (grub_device_get_root): Likewise.
12748 (grub_device_open): Use grub_env_get instead of
12749 grub_device_get_root.
12750
12751 * include/grub/env.h (grub_env_read_hook_t): New type.
12752 (grub_env_write_hook_t): Likewise.
12753 (grub_env_var): Change the types of "read_hook" and "write_hook"
12754 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
12755 (grub_register_variable_hook): Likewise.
12756
12757 * include/grub/device.h (grub_device_set_root): Removed.
12758 (grub_device_set_root): Likewise.
12759
12760 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
12761 make sure that DIRNAME terminates with '/', so that
12762 grub_fat_find_dir will fail if PATH is not a directory.
12763
12764 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
12765 from DIRNAME.
12766 Use the qualifier auto for print_files and print_files_long.
12767 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
12768 as a regular file.
12769 Put a newline only if there is no error.
12770 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
12771 used.
12772
896f0afd 127732005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12774
12775 * kern/partition.c (grub_partition_probe): Initialize PART to
12776 NULL. Otherwise, when no partition map is registered, this returns
12777 a garbage.
12778
b28b81b2 127792005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
12780
12781 * partmap/apple.c (apple_partition_map_iterate): Check if POS
12782 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
12783 valid.
12784
5f3607e0 127852005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
12786
12787 * commands/ls.c (grub_ls_list_disks): Print the filesystem
12788 information on each device, if it does not have partitions. Print
12789 "Device" instead of "Disk", because this function is not specific
12790 to disk devices.
12791
12792 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
12793 static to ensure that it is put on the memory rather than a
12794 register.
12795
502c87e8 127962005-07-17 Yoshinori Okuji <okuji@enbug.org>
12797
12798 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
12799 (grub_cat_init): Likewise.
12800 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
12801 (options): Likewise.
12802 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
12803 (grub_configfile_init): Likewise.
12804 * font/manager.c (GRUB_MOD_INIT): Likewise.
12805 * commands/help.c (GRUB_MOD_INIT): Likewise.
12806 (grub_help_init): Likewise.
12807 * normal/command.c (grub_command_init): Likewise.
12808 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
12809 * disk/loopback.c (grub_loop_init): Likewise.
12810 (GRUB_MOD_INIT): Likewise.
12811 * commands/ls.c (grub_ls_init): Likewise.
12812 (GRUB_MOD_INIT): Likewise.
12813 (options): Likewise.
12814 * commands/boot.c (grub_boot_init): Likewise.
12815 (GRUB_MOD_INIT): Likewise.
12816 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
12817 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
12818 (GRUB_MOD_INIT): Likewise.
12819 * commands/cmp.c (grub_cmp_init): Likewise.
12820 (GRUB_MOD_INIT): Likewise.
12821
12822 * normal/arg.c: Use <> instead of "" to include header files.
12823 (SHORT_ARG_HELP): New macro.
12824 (SHORT_ARG_USAGE): Likewise.
12825 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
12826 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
12827 descriptions.
12828 (find_short): Check if C is 'h' or 'u' explicitly.
12829 (grub_arg_show_help): Use space characters instead of tabs. Treat
12830 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
12831 are shown with --help and --usage only if they are not used for
12832 the command itself.
12833 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
12834 'h' and 'u'.
12835
12836 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
12837 const into "longarg". Change the type of "shortarg" to int.
12838
f806d18e 128392005-07-17 Yoshinori Okuji <okuji@enbug.org>
12840
12841 * boot/i386/pc/boot.S (boot_drive_check): New label.
12842
12843 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
12844 macro.
12845
12846 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
12847 which do not pass a boot drive correctly. Copied from GRUB Legacy.
12848
e293232b 128492005-07-17 Yoshinori Okuji <okuji@enbug.org>
12850
12851 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
12852 When turning off Gate A20, skip the check and return immediately,
12853 because this is not fatal usually.
12854
ebedfd00 128552005-07-17 Yoshinori Okuji <okuji@enbug.org>
12856
12857 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
12858 be 0x7C00 instead of 0x8000.
12859
12860 * boot/i386/pc/pxeboot.S: Rewritten.
12861
12862 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
12863 EXT_C.
12864 (gate_a20_check_state): Read a byte from 0x108000. Invert the
12865 result.
12866
654fc59f 128672005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
12868
12869 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
12870 robustness. This routine now supports a BIOS call and System
12871 Control Port A to modify the gate A20.
12872
12873 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
12874 Increased to 0x440.
12875
09f9923f 128762005-07-12 Hollis Blanchard <hollis@penguinppc.org>
12877
12878 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
12879 device path and resulting ihandle.
12880 (grub_ofdisk_close): dprintf the ihandle being closed.
12881 (grub_ofdisk_read): dprintf function parameters.
12882 * kern/mm.c (grub_mm_init_region): Likewise.
12883 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
12884 (grub_linux_boot): dprintf the Linux entry point, initrd address and
12885 size, and boot arguments.
12886 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
12887 before loading into memory.
12888 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
12889 before loading into memory.
12890
7ef504d8 128912005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
12892
12893 * kern/mm.c: Added much documentation.
12894 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
12895 8, set to 5 instead of 8.
12896
e0f050c2 128972005-07-10 Yoshinori Okuji <okuji@enbug.org>
12898
12899 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
12900
12901 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
12902 (grub_mkdevicemap_SOURCES): New variable.
12903
12904 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
12905 lib/device.c of GRUB Legacy.
12906
7224189a 129072005-07-10 Yoshinori Okuji <okuji@enbug.org>
12908
12909 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
12910 instead of PATH is NULL.
12911
68c864eb 129122005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
12913
12914 * commands/cmp.c (BUFFER_SIZE): New macro.
12915 (grub_cmd_cmp): Close the right file at the right time. Compare
12916 only data just read. Don't report files of different size as
12917 identical. Dynamically allocate buffers. Move variable
12918 declarations at the beginning of function.
12919
e6f3e614 129202005-07-09 Yoshinori Okuji <okuji@enbug.org>
12921
12922 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
12923 reverse.
12924
f8f1559a 129252004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
12926
12927 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
12928 when backspace is pressed at beginning of line.
12929
39c9d41d 129302005-07-03 Yoshinori Okuji <okuji@enbug.org>
12931
12932 * DISTLIST: Added genfslist.sh.
12933
12934 * normal/main.c (fs_module_list): New variable.
12935 (autoload_fs_module): New function.
12936 (read_fs_list): Likewise.
12937 (grub_normal_execute): Call read_fs_list.
12938
12939 * kern/fs.c (grub_fs_autoload_hook): New variable.
12940 (grub_fs_probe): Added support for auto-loading.
12941
12942 * include/grub/normal.h (struct grub_fs_module_list): New struct.
12943 (grub_fs_module_list_t): New type.
12944
12945 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
12946 (grub_fs_autoload_hook): New prototype.
12947
12948 * genfslist.sh: New file.
f19dbdb7 12949
39c9d41d 12950 * genmk.rb: Added a rule to generate a filesystem list.
12951
121c1d83 129522005-06-30 Marco Gerards <metgerards@student.han.nl>
12953
12954 * configure.ac: Fix the test for cross-compiling.
12955
12956 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
12957 define GRUB_UTIL anymore.
12958
12959 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
12960 so this function works on other systems than just big endian.
12961 (load_modules): Likewise.
12962 (add_segments): Likewise.
12963
e75d76e1 129642005-06-23 Hollis Blanchard <hollis@penguinppc.org>
12965
12966 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
12967 contains `l' modifier, get a long from va_arg().
12968
50b5a0a7 129692005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
12970
12971 * kern/mm.c (grub_free): If the next free block which is being
12972 merged is the first free block, set the first block to the block
12973 being freed.
12974 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
12975
89371b20 129762005-05-08 Hollis Blanchard <hollis@penguinppc.org>
12977
12978 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
12979 `grub_ieee1275_chosen'.
12980
168d6e58 129812005-05-08 Hollis Blanchard <hollis@penguinppc.org>
12982
12983 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
12984 (grub_ieee1275_chosen): New variable.
12985 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
12986 `chosen'.
12987 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
12988 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
12989 Rename first argument to `phandle' for consistency.
12990 (grub_ieee1275_get_property_length): Likewise.
12991 (grub_ieee1275_next_property): Likewise. Change type of first argument
12992 to grub_ieee1275_phandle_t.
12993 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
12994 Move export next to declaration.
12995 (grub_ieee1275_chosen): New variable.
12996 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
12997 Correct cosmetic typo.
12998 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
12999 `grub_ieee1275_chosen'.
13000 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
13001 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
13002 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
13003 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
13004 `grub_ieee1275_chosen'.
13005
ca5baa3f 130062005-05-10 Hollis Blanchard <hollis@penguinppc.org>
13007
13008 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
13009 /chosen/bootargs.
13010 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
13011 /chosen/bootargs as "variable=value" pairs.
13012
708b345f 130132005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
13014
13015 * include/grub/misc.h (grub_dprintf): New macro.
13016 (grub_real_dprintf): New prototype.
13017 (grub_strword): Likewise.
13018 (grub_iswordseparator): Likewise.
13019 * kern/misc.c (grub_real_dprintf): New function.
13020 (grub_strword): Likewise.
13021 (grub_iswordseparator): Likewise.
13022
f4c5e67c 130232005-04-30 Hollis Blanchard <hollis@penguinppc.org>
13024
13025 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
13026 (roundup): Remove macro.
13027 (grub_ieee1275_flags): Make static.
13028 (grub_ieee1275_realmode): Remove.
13029 (grub_ieee1275_test_flag): New function.
13030 (grub_ieee1275_set_flag): Likewise.
13031 (find_options): Rename to `grub_ieee1275_find_options'; update
13032 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
13033 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
13034 (cmain): New prototype.
13035 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
13036 `grub_ieee1275_flags' directly.
13037 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
13038 machine/biosdisk.h.
13039 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
13040 Don't include grub/machine/init.h.
13041 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
13042 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
13043 Remove prototype.
13044 (grub_ieee1275_realmode): Likewise.
13045 (grub_ieee1275_flag): New enum.
13046 (grub_ieee1275_test_flag): New prototype.
13047 (grub_ieee1275_set_flag): New prototype.
13048 * include/grub/powerpc/ieee1275/init.h: Remove file.
13049 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
13050 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
13051 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
13052 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
13053 comment.
13054 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
13055 `grub_ieee1275_test_flag'.
13056 (grub_ieee1275_encode_devname): Likewise.
13057
ed16607e 130582005-04-21 Hollis Blanchard <hollis@penguinppc.org>
13059
13060 * include/grub/powerpc/ieee1275/ieee1275.h
13061 (grub_ieee1275_encode_devname): New prototype.
13062 (grub_ieee1275_get_filename): Likewise.
13063 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
13064 function.
13065 (grub_set_prefix): Likewise.
13066 (grub_machine_init): Call grub_set_prefix.
13067 * kern/powerpc/ieee1275/openfw.c: Fix typos.
13068 (grub_parse_type): New enum.
13069 (grub_ieee1275_get_devargs): New function.
13070 (grub_ieee1275_get_devname): Likewise.
13071 (grub_ieee1275_parse_args): Likewise.
13072 (grub_ieee1275_get_filename): Likewise.
13073 (grub_ieee1275_encode_devname): Likewise.
13074
be369920 130752005-03-30 Marco Gerards <metgerards@student.han.nl>
13076
13077 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
13078 `grub_loader_unset'.
13079
a5ce3a4a 130802005-03-26 Hollis Blanchard <hollis@penguinppc.org>
13081
13082 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
13083 instead of grub_ieee1275_interpret.
13084 (grub_halt_init): New function.
13085 (grub_halt_fini): Likewise.
13086 (GRUB_MOD_INIT): Correct message grammar.
13087 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
13088 instead of grub_ieee1275_interpret.
13089 (grub_reboot_init): New function.
13090 (grub_reboot_fini): Likewise.
13091 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
13092 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
13093 util/i386/pc/misc.c with commands/ieee1275/halt.c,
13094 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
13095 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
13096 function.
13097 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
13098 Add prototype.
13099 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
13100 prototype.
13101 (grub_halt): Likewise.
13102 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
13103 (cmain): Remove __attribute__((unused)).
13104 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
13105 (grub_heap_len): Likewise.
13106 (grub_machine_fini): New function.
13107 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
13108 (grub_halt): Likewise.
13109 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
13110 function.
13111 * util/powerpc/ieee1275/misc.c: New file.
13112
0058f771 131132005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
13114
13115 * DISTLIST: New file.
13116 * gendistlist.sh: Likewise.
f19dbdb7 13117
0058f771 13118 * Makefile.in (COMMON_DISTFILES): Removed.
13119 (BOOT_DISTFILES): Likewise.
13120 (CONF_DISTFILES): Likewise.
13121 (DISK_DISTFILES): Likewise.
13122 (FS_DISTFILES): Likewise.
13123 (INCLUDE_DISTFILES): Likewise.
13124 (KERN_DISTFILES): Likewise.
13125 (LOADER_DISTFILES): Likewise.
13126 (TERM_DISTFILES): Likewise.
13127 (UTIL_DISTFILES): Likewise.
13128 (DISTFILES): Likewise.
13129 (uninstall): Uninstall files in $(pkgdata_DATA).
13130 (DISTLIST): New target.
13131 (distdir): Use the contents of the file DISTLIST to get a list of
13132 distributed files.
13133
46b3b8a5 131342005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
13135
13136 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
13137 descriptor. This is ported from GRUB Legacy.
13138
13139 * gencmdlist.sh: Added an extra semicolon to make it work with
13140 old sed versions. Reported by Robert Bihlmeyer
13141 <robbe@orcus.priv.at>.
13142
5822ff87 131432005-03-08 Yoshinori Okuji <okuji@enbug.org>
13144
13145 Automatic loading of commands is supported.
f19dbdb7 13146
5822ff87 13147 * normal/main.c (read_command_list): New function.
13148 (grub_normal_execute): Call read_command_list.
13149
13150 * normal/command.c (grub_register_command): Return zero or CMD.
13151 Allocate CMD->NAME from the heap.
13152 Initialize CMD->MODULE_NAME to zero.
13153 Find the same name as well. If the same command is found and it is
13154 a dummy command, overwrite members. If it is not a dummy command,
13155 return zero.
13156 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
13157 (grub_command_find): If a dummy command is found, load a module
13158 and retry to find a command only once.
13159
13160 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
13161 make sure that each command is loaded.
13162
13163 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
13164 macro.
13165 (struct grub_command): Remove const from the member `name'.
13166 Add a new member `module_name'.
13167 (grub_register_command): Return grub_command_t.
13168
13169 * commands/help.c (grub_cmd_help): Call grub_command_find to make
13170 sure that each command is loaded.
13171
13172 * genmk.rb (PModule::rule): Specify a module name without the
13173 suffix ".mod" to gencmdlist.sh.
13174
7b1f4b57 131752005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13176
13177 * gencmdlist.sh: New file.
f19dbdb7 13178
7b1f4b57 13179 * genmk.rb (PModule::rule): Generate a rule for a command list.
13180 Clean command.lst.
13181 Generate command.lst from $(COMMANDFILES).
13182
13183 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
13184 (DATA): Added $(pkgdata_DATA).
13185 (install-local): Install files in $(pkgdata_DATA).
13186
062aaf39 131872005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13188
13189 * term/i386/pc/vga.c (debug_command): Removed.
13190 (GRUB_MOD_INIT): Do not register the command "debug".
13191
13192 From Hollis Blanchard:
13193 * commands/configfile.c: New file.
13194 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13195 commands/configfile.c.
13196 (pkgdata_MODULES): Added configfile.mod.
13197 (configfile_mod_SOURCES): New variable.
13198 (configfile_mod_CFLAGS): Likewise.
13199 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
13200 commands/configfile.c.
13201 (pkgdata_MODULES): Added configfile.mod.
13202 (configfile_mod_SOURCES): New variable.
13203 (configfile_mod_CFLAGS): Likewise.
13204 * util/grub-emu.c (main): Call grub_configfile_init and
13205 grub_configfile_fini.
13206 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
13207 prototype.
13208 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 13209
cee01aa6 132102005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13211
13212 * normal/arg.c (grub_arg_show_help): Do not show the bug report
13213 address.
13214
13215 * commands/help.c (grub_cmd_help): Do not print newlines after
13216 the last command in print_command_help.
13217
93f3a1d8 132182005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13219
13220 * commands/default.h: New file.
13221 * commands/timeout.h: Likewise.
13222 * normal/context.c: Likewise.
f19dbdb7 13223
93f3a1d8 13224 * util/misc.c: Do not include sys/times.h.
13225 Include sys/time.h and grub/machine/time.h.
13226 (grub_get_rtc): Rewritten with gettimeofday.
13227
13228 * util/grub-emu.c (main): Call grub_default_init and
13229 grub_timeout_init before grub_normal_init, and call
13230 grub_timeout_fini and grub_default_fini after grub_main.
13231
13232 * util/console.c (grub_ncurses_checkkey): Return the read
13233 character or -1.
13234
13235 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
13236 timeouts.
13237
13238 * normal/main.c (read_config_file): Push MENU. If this fails,
13239 print an error and wait for a user input.
13240 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
13241 If a menu is empty or an error occurs, pop MENU.
13242 (grub_normal_execute): Pop and free MENU after grub_menu_run
13243 returns.
13244
13245 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
13246
13247 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
13248 include time.h.
13249 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13250 without GRUB_UTIL.
13251 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
13252 time.h.
13253 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13254 without GRUB_UTIL.
13255
13256 * include/grub/normal.h (struct grub_menu_list): New struct.
13257 (grub_menu_list_t): New type.
13258 (struct grub_context): New struct.
13259 (grub_context_t): New type.
13260 (grub_register_command): Got rid of EXPORT_FUNC.
13261 (grub_unregister_command): Likewise.
13262 (grub_context_get): New prototype.
13263 (grub_context_get_current_menu): Likewise.
13264 (grub_context_push_menu): Likewise.
13265 (grub_context_pop_menu): Likewise.
13266 [GRUB_UTIL] (grub_default_init): Likewise.
13267 [GRUB_UTIL] (grub_default_fini): Likewise.
13268 [GRUB_UTIL] (grub_timeout_init): Likewise.
13269 [GRUB_UTIL] (grub_timeout_fini): Likewise.
13270
13271 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
13272 commands/timeout.c and normal/context.c.
13273 (pkgdata_MODULES): Added default.mod and timeout.mod.
13274 (normal_mod_SOURCES): Added normal/context.c.
13275 (default_mod_SOURCES): New variable.
13276 (default_mod_CFLAGS): Likewise.
13277 (timeout_mod_SOURCES): Likewise.
13278 (timeout_mod_CFLAGS): Likewise.
13279 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
13280 conf/i386-pc.rmk.
13281 (pkgdata_MODULES): Added default.mod and timeout.mod.
13282 (normal_mod_SOURCES): Added normal/context.c.
13283 (default_mod_SOURCES): New variable.
13284 (default_mod_CFLAGS): Likewise.
13285 (timeout_mod_SOURCES): Likewise.
13286 (timeout_mod_CFLAGS): Likewise.
13287
13288 * Makefile.in (all-local): Added $(MKFILES).
13289
4ed2e1dd 132902005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
13291
13292 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
13293 (grub_emu_SOURCES): Likewise.
13294 (pkgdata_MODULES): Add `sun.mod'.
13295 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13296 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13297 `partmap/sun.c'.
13298 (pkgdata_MODULES): Add `sun.mod'.
13299 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13300 * include/grub/partition.h (grub_sun_partition_map_init): New
13301 prototype.
13302 (grub_sun_partition_map_fini): Likewise.
13303 * partmap/sun.c: New file.
13304 * util/grub-emu.c (main): Initialize and de-initialize the sun
13305 partitionmap support.
13306
4d4e372e 133072005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
13308
13309 This implements an Emacs-like menu entry editor.
f19dbdb7 13310
4d4e372e 13311 * normal/menu_entry.c: New file.
f19dbdb7 13312
4d4e372e 13313 * util/console.c (grub_ncurses_putchar): Translate some Unicode
13314 characters to ASCII.
13315 (saved_char): New variable.
13316 (grub_ncurses_checkkey): Rewritten completely.
13317 (grub_ncurses_getkey): Likewise.
13318 (grub_ncurses_init): Call raw instead of cbreak.
13319
13320 * normal/menu.c (print_entry): Do not put a space.
13321 (init_page): Renamed to ...
13322 (grub_menu_init_page): ... this. All callers changed.
13323 (edit_menu_entry): Removed.
13324 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
13325
13326 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
13327
13328 * kern/misc.c (grub_vprintf): Call grub_refresh.
13329
13330 * normal/menu.c (DISP_LEFT): Renamed to ...
13331 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
13332 * normal/menu.c (DISP_UP): Renamed to ...
13333 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
13334 * normal/menu.c (DISP_RIGHT): Renamed to ...
13335 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
13336 * normal/menu.c (DISP_DOWN): Renamed to ...
13337 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
13338 * normal/menu.c (DISP_HLINE): Renamed to ...
13339 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
13340 * normal/menu.c (DISP_VLINE): Renamed to ...
13341 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
13342 * normal/menu.c (DISP_UL): Renamed to ...
13343 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
13344 * normal/menu.c (DISP_UR): Renamed to ...
13345 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
13346 * normal/menu.c (DISP_LL): Renamed to ...
13347 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
13348 * normal/menu.c (DISP_LR): Renamed to ...
13349 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
13350 * normal/menu.c (TERM_WIDTH): Renamed to ...
13351 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
13352 * normal/menu.c (TERM_HEIGHT): Renamed to ...
13353 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
13354 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
13355 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
13356 * normal/menu.c (TERM_MARGIN): Renamed to ...
13357 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
13358 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
13359 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
13360 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
13361 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
13362 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
13363 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
13364 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
13365 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
13366 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
13367 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
13368 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
13369 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
13370 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
13371 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
13372 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
13373 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
13374 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
13375 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
13376 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
13377 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
13378 All callers changed.
13379
13380 * include/grub/normal.h: New prototype.
13381
13382 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13383 normal/menu_entry.c.
13384 (normal_mod_SOURCES): Likewise.
13385 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13386 (normal_mod_SOURCES): Likewise.
13387
e6b92c8a 133882005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
13389
13390 * include/grub/normal.h (grub_halt_init): New prototype.
13391 (grub_halt_fini): Likewise.
13392 (grub_reboot_init): Likewise.
13393 (grub_reboot_fini): Likewise.
13394
13395 * util/grub-emu.c: Include signal.h.
13396 (main_env): New global variable.
13397 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
13398 catch C-c.
13399 (grub_machine_fini): New function.
13400 (main): Call grub_halt_init and grub_reboot_init before
13401 grub_main, and grub_reboot_fini and grub_halt_fini after it.
13402 Call setjmp with MAIN_ENV to go back afterwards.
13403 Call grub_machine_fini right before return.
13404
13405 * include/grub/util/misc.h: Include setjmp.h.
13406 (main_env): New prototype.
13407
13408 * include/grub/kernel.h (grub_machine_fini): New prototype.
13409 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
13410 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
13411
13412 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
13413 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
13414 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 13415
e6b92c8a 13416 * util/i386/pc/misc.c: New file.
f19dbdb7 13417
e6b92c8a 13418 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13419 util/i386/pc/misc.c, commands/i386/pc/halt.c and
13420 commands/i386/pc/reboot.c.
13421
c642636f 134222005-02-14 Guillem Jover <guillem@hadrons.org>
13423
13424 * include/grub/dl.h (grub_dl_check_header): New prototype.
13425 (grub_arch_dl_check_header): Change return type to grub_err_t,
13426 remove size parameter and export function. Update all callers.
13427 * kern/dl.c (grub_dl_check_header): New function.
13428 (grub_dl_load_core): Use `grub_dl_check_header' instead of
13429 `grub_arch_dl_check_header'. Check ELF type. Check if sections
13430 are inside the core.
13431 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
13432 independent ELF header checks.
13433 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13434 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
13435 `grub_dl_check_header' instead of explicit checks. Check for the
13436 ELF type.
13437 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
13438 `grub_dl_check_header' instead of explicit checks. Remove arch
13439 specific ELF header checks.
13440
e6b92c8a 13441 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
13442 argument SIZE.
13443
5eabe94b 134442005-02-13 Hollis Blanchard <hollis@penguinppc.org>
13445
13446 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
13447 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
13448
1b14a681 134492005-02-12 Hollis Blanchard <hollis@penguinppc.org>
13450
13451 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 13452 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 13453 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 13454 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 13455 * partmap/amiga.c (amiga_partition_map_iterate): Return
13456 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
13457 * partmap/apple.c (apple_partition_map_iterate): Likewise.
13458
aca108aa 134592005-02-01 Guillem Jover <guillem@hadrons.org>
13460
13461 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
13462 help info.
13463
c9f9c556 134642005-01-31 Marco Gerards <metgerards@student.han.nl>
13465
13466 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
13467 Removed prototype.
13468 (grub_rescue_cmd_linux): New prototype.
13469 (grub_rescue_cmd_initrd): Likewise.
13470 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
13471 `bi_rec'.
13472 (grub_linux_release_mem): Release the memory for the initrd.
13473 (grub_load_linux): Renamed from this...
13474 (grub_rescue_cmd_linux): ...To this. Changed all callers.
13475 Changed `entry' not to be static. Loop over memory regions to
13476 find another one when the default fails.
13477 (grub_rescue_cmd_initrd): New function.
13478 (grub_linux_init): Remove function.
13479 (grub_linux_fini): Likewise.
13480 (GRUB_MOD_INIT): Register `initrd'.
13481 (GRUB_MOD_FINI): Unregister `initrd'.
13482 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
13483 Function removed.
13484 (grub_linux_normal_fini): Likewise.
13485 (GRUB_MOD_INIT): Register `initrd'.
13486 (GRUB_MOD_FINI): Unregister `initrd'.
13487
990cf3aa 134882005-01-31 Marco Gerards <metgerards@student.han.nl>
13489
13490 * commands/help.c: New file.
13491 * normal/arg.c (show_help): Renamed to...
13492 (grub_arg_show_help): ... this.
13493 * commands/i386/pc/halt.c: New file.
13494 * commands/i386/pc/reboot.c: Likewise.
13495 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
13496 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
13497 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
13498 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
13499 variables.
13500 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13501 `commands/help.c'.
13502 (pkgdata_MODULES): Add `help.mod'.
13503 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
13504 * grub/i386/pc/init.h (grub_reboot): New prototype.
13505 (grub_halt): Likewise.
13506 * include/grub/normal.h (grub_arg_show_help): New prototype.
13507 (grub_help_init): Likewise.
13508 (grub_help_fini): Likewise.
13509 * util/grub-emu.c (main): Initialize and deinitialize the help
13510 command.
13511
13512 * normal/cmdline.c (grub_cmdline_get): Doc fix.
13513
13514 * normal/command.c (grub_command_init): Fixed the description of
13515 the `set' and `unset' commands.
13516
135172005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 13518
13519 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
13520 function.
13521 * commands/ieee1275/halt.c: New file.
13522 * commands/ieee1275/reboot.c: Likewise.
13523 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
13524 `__attribute__ ((unused))'. Some GCS related fixed.
13525 (grub_suspend_init) [GRUB_UTIL]: Function removed.
13526 (grub_suspend_fini): Likewise.
13527 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
13528 and `halt.mod'.
13529 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
13530 (halt_mod_CFLAGS): New variables.
13531 * include/grub/powerpc/ieee1275/ieee1275.h
13532 (grub_ieee1275_interpret): New prototype.
13533
1ab09cc7 135342005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
13535
13536 * include/grub/misc.h (memmove): New prototype.
13537 (memcpy): Likewise.
13538
8b8cbdb2 135392005-01-22 Hollis Blanchard <hollis@penguinppc.org>
13540
13541 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
13542 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
13543
e3741a27 135442005-01-22 Marco Gerards <metgerards@student.han.nl>
13545
13546 * kern/misc.c (grub_strndup): Function rewritten.
13547
776bd780 135482005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
13549
13550 * normal/menu.c (TERM_WIDTH): Macro redefined.
13551 (TERM_TOP_BORDER_Y): Likewise.
13552 (draw_border): Replaced while-loop by a for-loop. Make the number
13553 of lines consistent with the number of lines displayed in
13554 print_entries. Added a margin below the rectangle.
13555 (print_entry): Make the entry fit in the rectangle.
13556 (print_entries): Display the scroll arrows next to the right
13557 border.
13558
78026bce 135592005-01-21 Marco Gerards <metgerards@student.han.nl>
13560
13561 * fs/minix.c (grub_minix_find_file): Reserve more space for
13562 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
13563 `grub_strncpy' to copy `path' into it.
13564
67bbaf0f 135652005-01-21 Marco Gerards <metgerards@student.han.nl>
13566
13567 Add the loopback device, a device via which files can be accessed
13568 as devices.
f19dbdb7 13569
67bbaf0f 13570 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
13571 (pkgdata_MODULES): Add loopback.mod.
13572 (loopback_mod_SOURCES): New variable.
13573 (loopback_mod_CFLAGS): Likewise.
13574 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13575 `disk/loopback.c'.
13576 (pkgdata_MODULES): Add loopback.mod.
13577 (loopback_mod_SOURCES): New variable.
13578 (loopback_mod_CFLAGS): Likewise.
13579 * disk/loopback.c: new file.
13580 * include/grub/normal.h (grub_loop_init): New prototype.
13581 (grub_loop_fini): New prototype.
13582 * util/grub-emu.c (main): Initialize and de-initialize loopback
13583 support.
13584 * include/grub/disk.h (grub_disk_dev_id): Add
13585 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
13586
6f1c18bd 135872005-01-20 Hollis Blanchard <hollis@penguinppc.org>
13588
13589 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
13590 function.
13591 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
13592 (suspend_mod_SOURCES): New variable.
13593 (suspend_mod_CFLAGS): Likewise.
13594 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
13595 New prototype.
13596 * commands/ieee1275/suspend.c: New file.
13597
b38551da 135982005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13599
13600 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 13601 ((unused))' to `__attribute__ ((used))'.
b38551da 13602 (GRUB_MOD_FINI): Likewise.
13603 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
13604 * genmk.rb (PModule): Assign space to common symbols when linking
13605 modules.
13606
777aff39 136072005-01-20 Marco Gerards <metgerards@student.han.nl>
13608
13609 * include/grub/mm.h (grub_mm_init_region): Change the type of the
13610 `unsigned' arguments to `grub_size_t'.
13611 (grub_malloc): Likewise.
13612 (grub_realloc): Likewise.
13613 (grub_memalign): Likewise.
13614 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
13615 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13616 * util/misc.c (grub_malloc): Likewise.
13617 (grub_realloc): Likewise.
13618 * kern/mm.c (get_header_from_pointer): Change the casts to
13619 `unsigned' into a cast to `grub_size_t'.
13620
13621 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
13622 point to `currnode' when `currnode' is changed.
13623
13624 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
13625 Schottelius <nico-linux@schottelius.org>.
13626
d0ff18e1 136272005-01-09 Hollis Blanchard <hollis@penguinppc.org>
13628
13629 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
13630 (note_path): Remove variable.
13631 (GRUB_IEEE1275_NOTE_NAME): New macro.
13632 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
13633 (grub_ieee1275_note_hdr): New structure.
13634 (grub_ieee1275_note_desc): Likewise.
13635 (grub_ieee1275_note): Likewise.
13636 (load_note): Remove `dir' argument. All callers updated. Remove
13637 `note_img' and `path'. Do not load a file from `note_path'.
13638 Initialize a struct grub_ieee1275_note and write that to `out'.
13639 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
13640
4ca7004c 136412005-01-05 Marco Gerards <metgerards@student.han.nl>
13642
13643 * util/misc.c (grub_util_read_image): Revert last change. It
13644 called `grub_util_read_at', which seeks from the beginning of the
13645 file.
13646
0b412211 136472005-01-04 Hollis Blanchard <hollis@penguinppc.org>
13648
13649 * TODO: Add note about endianness in grub-mkimage.
13650 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
13651 section.
13652 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
13653 (grub_mkimage_SOURCES): New target.
13654 * include/grub/kernel.h (grub_start_addr): Remove variable.
13655 (grub_end_addr): Likewise.
13656 (grub_total_module_size): Likewise.
13657 (grub_kernel_image_size): Likewise.
13658 (GRUB_MODULE_MAGIC): New constant.
13659 (grub_module_info): New structure.
13660 (grub_arch_modules_addr): New prototype.
13661 (grub_get_end_addr): Remove prototype.
13662 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
13663 * include/grub/powerpc/ieee1275/kernel.h: New file.
13664 * include/grub/util/misc.h (grub_util_get_fp_size): New
13665 prototype.
13666 (grub_util_read_at): Likewise.
13667 (grub_util_write_image_at): Likewise.
13668 * kern/main.c (grub_get_end_addr): Remove function.
13669 (grub_load_modules): Call grub_arch_modules_addr instead of using
13670 grub_end_addr. Look for a grub_module_info struct in memory. Use
13671 the grub_module_info fields instead of calling grub_get_end_addr
13672 as loop conditions. Move grub_add_unused_region code here.
13673 (grub_add_unused_region): Remove function.
13674 * kern/i386/pc/init.c: Include grub/cache.h.
13675 (grub_machine_init): Remove call to grub_get_end_addr. Remove
13676 one call to add_mem_region.
13677 (grub_arch_modules_addr): New function.
13678 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
13679 (grub_total_module_size): Likewise.
13680 Include grub/machine/kernel.h.
13681 (grub_arch_modules_addr): New function.
13682 * util/grub-emu.c (grub_end_addr): Remove variable.
13683 (grub_total_module_size): Likewise.
13684 (grub_arch_modules_addr): New function.
13685 * util/misc.c: Include unistd.h.
13686 (grub_util_get_fp_size): New function.
13687 (grub_util_read_at): Likewise.
13688 (grub_util_write_image_at): Likewise.
13689 (grub_util_read_image): Call grub_util_read_at.
13690 (grub_util_write_image): Call grub_util_write_image_at.
13691 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
13692 additional memory in kernel_img for a struct grub_module_info.
13693 Fill in that grub_module_info.
13694 * util/powerpc/ieee1275/grub-mkimage.c: New file.
13695
458786f8 136962005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13697
13698 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
13699 New function.
13700 * include/grub/powerpc/ieee1275/ieee1275.h
13701 (grub_ieee1275_milliseconds): New prototype.
13702 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
13703 Change to 1000.
13704 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
13705 grub_ieee1275_milliseconds.
13706
ac507d1b 137072005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13708
13709 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
13710 variable.
13711 (find_options): New function.
13712 (cmain): Call find_options.
13713 * include/grub/powerpc/ieee1275/ieee1275.h
13714 (grub_ieee1275_realmode): New extern variable.
13715 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
13716 grub_map if grub_ieee1275_realmode is false.
13717
6b8fd1c4 137182004-12-29 Marco Gerards <metgerards@student.han.nl>
13719
13720 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
13721 lines are inserted and make it work like readline. Reported by
13722 Vincent Pelletier <subdino2004@yahoo.fr>.
13723
8514a1e0 137242004-12-28 Marco Gerards <metgerards@student.han.nl>
13725
13726 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
13727
13728 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
13729 `kern/powerpc/cache.S'.
13730
924b6140 137312004-12-27 Marco Gerards <metgerards@student.han.nl>
13732
13733 * genmk.rb: Handle the `Program' class in the main loop. Written
13734 by Johan Rydberg <jrydberg@gnu.org>.
13735 (Program): New class.
13736 (programs): New variable.
13737 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
13738 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
13739 instead of "grub/kernel.h". Include <grub/machine/init.h>.
13740 (help_arch): Function removed.
13741 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
13742 `powerpc/libgcc.h' and `loader.h'.
13743 (pkgdata_PROGRAMS): New variable.
13744 (sbin_UTILITIES): Variable removed.
13745 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
13746 (grubof_SOURCES): Variable re-defined so it only includes the
13747 core functionality.
13748 (grubof_CFLAGS): Remove `-DGRUBOF'.
13749 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
13750 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
13751 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
13752 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
13753 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
13754 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
13755 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
13756 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
13757 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
13758 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
13759 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13760 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
13761 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
13762 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
13763 (pc_mod_CFLAGS): New variables.
13764 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
13765 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
13766 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
13767 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
13768 Moved from here...
13769 * include/grub/i386/pc/init.h (grub_os_area_addr)
13770 (rub_os_area_size): ... to here.
13771 * include/grub/powerpc/ieee1275/ieee1275.h
13772 (grub_ieee1275_entry_fn): Export symbol.
13773 * include/grub/powerpc/ieee1275/init.h: New file.
13774 * include/grub/powerpc/libgcc.h: Likewise.
13775 * include/grub/cache.h: Likewise.
13776 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
13777 <hollis@penguinppc.org>.
13778 * kern/dl.c: Include <grub/cache.h>.
13779 (grub_dl_flush_cache): New function.
13780 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
13781 for this module.
13782 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
13783 (grub_console_init): Removed prototypes.
13784 (grub_machine_init): Don't initialize the modules anymore.
13785 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
13786 static.
13787 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
13788 Macro undef removed.
13789 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
13790 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
13791 relocation `R_PPC_REL32'. Return an error when the relocation is
13792 unknown.
13793 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
13794 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
13795 * util/misc.c (grub_arch_sync_caches): Likewise.
13796
e4b47e0c 137972004-12-19 Marco Gerards <metgerards@student.han.nl>
13798
13799 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
13800 `symlist.c', add `grubof_symlist.c'.
13801 (symlist.c): Variable removed.
13802 (grubof_HEADERS): Variable added.
13803 (grubof_symlist.c): New target.
13804 (kernel_syms.lst): Use `grubof_HEADERS' instead of
13805 `kernel_img_HEADERS'.
13806 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
13807 * kern/powerpc/dl.c: New file.
13808 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
13809 Function removed.
13810 (grub_arch_dl_relocate_symbols): Likewise.
13811 (grub_register_exported_symbols): Likewise.
13812
4ceb3636 138132004-12-13 Marco Gerards <metgerards@student.han.nl>
13814
13815 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
13816 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
13817 to fail instead. Reported by Vincent Pelletier
13818 <subdino2004@yahoo.fr>.
13819
13820 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
13821 it is not allocated. Reported by Vincent Pelletier
13822 <subdino2004@yahoo.fr>.
13823
13824 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
13825 output so the output looks better.
f19dbdb7 13826
3f1578fe 138272004-12-04 Marco Gerards <metgerards@student.han.nl>
13828
13829 Modulize the partition map support and add support for the amiga
13830 partition map.
f19dbdb7 13831
3f1578fe 13832 * commands/ls.c: Include <grub/partition.h> instead of
13833 <grub/machine/partition.h>.
13834 * kern/disk.c: Likewise.
13835 * kern/rescue.c: Likewise.
13836 * loader/i386/pc/chainloader.c: Likewise.
13837 * normal/cmdline.c: Likewise.
13838 * kern/powerpc/ieee1275/init.c: Likewise.
13839 (grub_machine_init): Call `grub_pc_partition_map_init',
13840 `grub_amiga_partition_map_init' and
13841 `grub_apple_partition_map_init'.
13842 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
13843 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
13844 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
13845 `partition.h' and `pc_partition.h'.
13846 (grub_setup_SOURCES): Remove
13847 `disk/i386/pc/partition.c'. Add `kern/partition.c',
13848 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
13849 (grub_emu_SOURCES): Likewise.
13850 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
13851 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
13852 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
13853 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
13854 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
13855 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
13856 (grubof_SOURCES): Likewise.
13857 * disk/i386/pc/partition.c: File removed.
13858 * disk/powerpc/ieee1275/partition.c: Likewise.
13859 * include/grub/powerpc/ieee1275/partition.h: Likewise.
13860 * include/grub/i386/pc/partition.h: Likewise.
13861 * kern/partition.c: New file.
13862 * partmap/amiga.c: Likewise.
13863 * partmap/apple.c: Likewise.
13864 * partmap/pc.c: Likewise.
13865 * include/grub/partition.h: Likewise..
13866 * include/grub/pc_partition.h: Likewise.
13867 * util/grub-emu.c: Include <grub/partition.h> instead of
13868 <grub/machine/partition.h>.
13869 (main): Call `grub_pc_partition_map_init',
13870 `grub_amiga_partition_map_init' and
13871 `grub_apple_partition_map_init' and deinitialize afterwards.
13872 * util/i386/pc/biosdisk.c: Include `#include
13873 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
13874 `<grub/machine/partition.h>'.
13875 * util/i386/pc/grub-setup.c: Likewise.
13876 * util/i386/pc/biosdisk.c: Likewise.
13877 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
13878 partition information in case of a PC partition.
13879 * util/i386/pc/grub-setup.c: Include `#include
13880 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
13881 `<grub/machine/partition.h>'.
13882 (setup): Only access the PC specific partition information in case
13883 of a PC partition.
13884
0ef4ced9 138852004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 13886
0ef4ced9 13887 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
13888 (grub_longjmp): Likewise.
13889 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
13890 20.
13891 * normal/powerpc/setjmp.S: New file.
13892 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
13893 `normal/powerpc/setjmp.S'.
13894 (grubof_CFLAGS): Add `-DGRUBOF'.
13895 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
13896 [GRUB_UTIL && !GRUBOF].
f19dbdb7 13897
19950e29 138982004-11-16 Marco Gerards <metgerards@student.han.nl>
13899
13900 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
13901 property named `name'. Correctly handle the error returned by
13902 `grub_ieee1275_finddevice' if a device can not be opened.
13903
a2fea427 139042004-11-02 Hollis Blanchard <hollis@penguinppc.org>
13905
13906 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
13907 `actual' for negativity.
13908 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
13909 kern/fshelp.c.
13910
41ea0ea3 139112004-11-01 Marco Gerards <metgerards@student.han.nl>
13912
13913 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
13914 (PAGE_OFFSET): New macro.
13915 (CRTC_ADDR_PORT): Likewise.
13916 (CRTC_DATA_PORT): Likewise.
13917 (START_ADDR_HIGH_REGISTER): Likewise.
13918 (START_ADDR_LOW_REGISTER): Likewise.
13919 (GRAPHICS_ADDR_PORT): Likewise.
13920 (GRAPHICS_DATA_PORT): Likewise.
13921 (READ_MAP_REGISTER): Likewise.
13922 (INPUT_STATUS1_REGISTER): Likewise.
13923 (INPUT_STATUS1_VERTR_BIT): Likewise.
13924 (page): New variable.
13925 (wait_vretrace): New function.
13926 (set_read_map): Likewise.
13927 (set_start_address): Likewise.
13928 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
13929 the right page.
13930 (check_vga_mem): Take the page into account.
13931 (write_char): Likewise.
13932 (write_cursor): Likewise.
13933 (scroll_up): Likewise. Copy the page to the page that is not
13934 shown and switch between both pages.
13935 (grub_vga_putchar): Fix off by one error.
13936 (grub_vga_cls): Wait for the vertical retrace. Take the page into
13937 account.
13938
ad0bd20b 139392004-11-01 Marco Gerards <metgerards@student.han.nl>
13940
13941 Add support for iso9660 (including rockridge).
f19dbdb7 13942
ad0bd20b 13943 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
13944 (iso9660_mod_SOURCES): New variable.
13945 (iso9660_mod_CFLAGS): Likewise.
13946 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
13947 * include/grub/fs.h (grub_iso9660_init): New prototype.
13948 * util/grub-emu.c (main): Call `grub_iso9660_init'.
13949 * fs/iso9660.c: New file.
13950
13951 * include/grub/misc.h (grub_strncat): New prototype.
13952 * kern/misc.c (grub_strncat): New function.
f19dbdb7 13953
ad0bd20b 13954 * fs/hfs.c (grub_hfs_mount): Translate the error
13955 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
13956 * fs/jfs.c (grub_jfs_mount): Likewise.
13957 * fs/ufs.c (grub_ufs_mount): Likewise.
13958
a5477a59 139592004-10-28 Hollis Blanchard <hollis@penguinppc.org>
13960
13961 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
13962 which initialized BAT registers.
13963 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
13964 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
13965 Move from here...
13966 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
13967 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
13968 ... to here.
13969 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
13970 (grub_mapclaim): Likewise.
13971 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
13972 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
13973 hand.
13974
9304c1f8 139752004-10-19 Hollis Blanchard <hollis@penguinppc.org>
13976
13977 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
13978 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
13979 -ffreestanding and -msoft-float.
13980
86f4ae25 139812004-10-15 Hollis Blanchard <hollis@penguinppc.org>
13982
13983 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
13984 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
13985 set in grub_ieee1275_flags.
13986
38912228 139872004-10-14 Hollis Blanchard <hollis@penguinppc.org>
13988
13989 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
13990 prototype.
13991 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
13992 grub_console_init first.
13993 Change the memory range used for grub_ieee1275_claim and
13994 grub_mm_init_region.
13995 Print an error message if the claim fails.
13996 Include <grub/misc.h>.
13997
d1923dc8 139982004-10-13 Hollis Blanchard <hollis@penguinppc.org>
13999
14000 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
14001 Call grub_children_iterate for device nodes of type `scsi',
14002 `ide', or `ata'.
14003 (grub_ofdisk_open): Remove manual device alias resolution.
14004 Fix memory leak when device cannot be opened.
f19dbdb7 14005 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 14006 (grub_children_iterate): New prototype.
14007 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
14008 New function.
14009 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
14010 Return -1 if args.size was -1.
14011
4512e4f3 140122004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14013
14014 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
14015 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
14016 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
14017 Open Firmware's memory for it; claim memory from _start to _end.
14018 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
14019 (_end): New extern.
14020 (_start): Zero BSS from __bss_start to _end.
14021 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
14022 New extern.
14023 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
14024
4d61feb0 140252004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14026
ad0bd20b 14027 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
14028 -1 if args.base was -1.
4d61feb0 14029
026fa2f9 140302004-10-08 Hollis Blanchard <hollis@penguinppc.org>
14031
14032 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
14033 escape sequence instead of a literal ^L. Also call
14034 grub_ofconsole_gotoxy.
14035
9f2220ef 140362004-10-03 Hollis Blanchard <hollis@penguinppc.org>
14037
14038 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
14039 void * arguments to grub_addr_t. All callers updated. Also make
14040 the `result' argument optional.
14041 (grub_ieee1275_release): change void * arguments to grub_addr_t.
14042 All callers updated.
14043
8a572cd7 140442004-09-22 Hollis Blanchard <hollis@penguinppc.org>
14045
14046 * commands/ls.c (grub_ls_list_files): Use the string following the
14047 initial ')', if present, as the filesystem path.
14048 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
14049
14050 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
14051
18aa81f2 140522004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
14053
14054 Make the source code of the menu interface more readable.
f19dbdb7 14055
18aa81f2 14056 * normal/menu.c: Include grub/mm.h.
14057 (TERM_WIDTH): New macro.
14058 (TERM_HEIGHT): Likewise.
14059 (TERM_INFO_HEIGHT): Likewise.
14060 (TERM_MARGIN): Likewise.
14061 (TERM_SCROLL_WIDTH): Likewise.
14062 (TERM_TOP_BORDER_Y): Likewise.
14063 (TERM_LEFT_BORDER_X): Likewise.
14064 (TERM_BORDER_WIDTH): Likewise.
14065 (TERM_MESSAGE_HEIGHT): Likewise.
14066 (TERM_BORDER_HEIGHT): Likewise.
14067 (TERM_NUM_ENTRIES): Likewise.
14068 (TERM_FIRST_ENTRY_Y): Likewise.
14069 (TERM_ENTRY_WIDTH): Likewise.
14070 (TERM_CURSOR_X): Likewise.
14071 (draw_border): Use macros instead of magic numbers.
14072 (print_entry): Likewise.
14073 (print_entries): Likewise.
14074 (run_menu): Likewise. Also, handle the key 'e'.
14075 (run_menu_entry): Ignore empty command lines.
14076 (print_message): Added a new argument EDIT. If EDIT is true,
14077 print a different message.
14078 (init_page): Likewise.
14079 (edit_menu_entry): New function. Not implemented yet.
14080
b47efe30 140812004-09-17 Marco Gerards <metgerards@student.han.nl>
14082
14083 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
14084 can be loaded from normal mode.
f19dbdb7 14085
b47efe30 14086 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
14087 `multiboot.mod'.
14088 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
14089 (multiboot_mod_CFLAGS): New variables.
14090 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 14091 * loader/i386/pc/multiboot_normal.c: Likewise.
14092
b47efe30 14093 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
14094 attribute `unused'.
f19dbdb7 14095
b47efe30 14096 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
14097 `fdiro' to read the mode information from instead of `diro'.
14098
14099 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
14100 looking up a symlink.
14101
14102 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
14103 macro.
14104 * normal/command.c (grub_command_execute): Don't parse the
14105 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
14106 flags of the command.
14107
14108 * normal/menu.c (grub_menu_run): Fix typo.
14109
da75ac71 141102004-09-14 Hollis Blanchard <hollis@penguinppc.org>
14111
14112 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
14113
14114 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
14115 `y + 1' instead of `y - 1'.
14116
14117 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 14118
062b24c2 141192004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
14120
14121 From Hollis Blanchard <hollis@penguinppc.org>:
14122 * kern/misc.c (memmove): New alias for grub_memmove.
14123 (memcmp): New alias for grub_memcmp.
14124 (memset): New alias for grub_memset.
f19dbdb7 14125 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 14126 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 14127 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 14128 (grub_ieee1275_get_property): Likewise.
f19dbdb7 14129
8ddad845 141302004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
14131
14132 Added normal mode command `chainloader' as module chain.mod, which
14133 depends on normal.mod and _chain.mod.
f19dbdb7 14134
8ddad845 14135 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
14136 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
14137 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
14138 Deleted prototype.
14139 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
14140 but arguments parsing moved to ...
14141 (grub_chainloader_cmd): ... here. New function.
14142 * include/grub/i386/pc/chainloader.h: New file.
14143 * loader/i386/pc/chainloader_normal.c: Likewise.
14144
2c1f4ce3 141452004-09-11 Marco Gerards <metgerards@student.han.nl>
14146
14147 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
14148 (grub_mkimage_LDFLAGS): Likewise.
14149 (grub_emu_SOURCES): Likewise.
14150 (kernel_img_HEADERS): Added fshelp.h.
14151 * fs/ext2.c: Include <grub/fshelp.h>.
14152 (FILETYPE_REG): New macro.
14153 (FILETYPE_INO_REG): Likewise.
14154 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
14155 Changed all users.
14156 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
14157 all users.
14158 (grub_fshelp_node): New struct.
14159 (grub_ext2_data): Added member `diropen'. Changed member `inode'
14160 to a pointer.
14161 (grub_ext2_get_file_block): Removed function.
14162 (grub_ext2_read_block): New function.
14163 (grub_ext2_read_file): Replaced parameter `data' by `node'.
14164 This function was written.
14165 (grub_ext2_mount): Read the root inode. Create a diropen struct.
14166 (grub_ext2_find_file): Removed function.
14167 (grub_ext2_read_symlink): New function.
14168 (grub_ext2_iterate_dir): Likewise.
14169 (grub_ext2_open): Rewritten.
14170 (grub_ext2_dir): Rewritten.
14171 * include/grub/fshelp.h: New file.
14172 * fs/fshelp.c: Likewise.
14173
3c52136a 141742004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
14175
14176 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
14177 (print_message): Add a missing newline.
14178 (run_menu): Added timeout support.
14179 (run_menu_entry): New local function.
14180 (grub_menu_run): Added support for booting.
14181
14182 * kern/loader.c (grub_loader_is_loaded): New function.
14183
14184 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
14185 (grub_get_rtc): Exported.
14186
14187 * include/grub/i386/pc/time.h: Include grub/symbol.h.
14188 (grub_get_rtc): Exported.
14189
14190 * include/grub/normal.h (struct grub_command_list): Remove
14191 constant from the member `command'.
14192
14193 * include/grub/loader.h (grub_loader_is_loaded): Declared.
14194
14195 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
14196
14197 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
14198
aa033560 141992004-08-28 Marco Gerards <metgerards@student.han.nl>
14200
14201 Add support for the JFS filesystem.
14202
14203 * fs/jfs.c: New file.
14204 * include/grub/fs.h (grub_jfs_init): New prototype.
14205 (grub_jfs_fini): New prototype.
14206 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
14207 (grub_emu_SOURCES): Likewise.
14208 (pkgdata_MODULES): Add jfs.mod.
14209 (jfs_mod_SOURCES): New variable.
14210 (jfs_mod_CFLAGS): Likewise.
14211 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
14212 (grubof_SOURCES): Likewise.
14213 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
14214
14215 * fs/fat.c (grub_fat_find_dir): Convert the filename little
14216 endian to the host endian.
14217 (grub_fat_utf16_to_utf8): Move function from there...
14218 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 14219 the endianness of the source string anymore.
aa033560 14220 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
14221
94bc45af 142222004-08-24 Marco Gerards <metgerards@student.han.nl>
14223
14224 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
14225 (grub_boot_fini) [GRUB_UTIL]: Likewise.
14226 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
14227 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 14228
94bc45af 14229 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
14230 (grub_hfs_iterate_dir): Make the function static. Add prototypes
14231 for `node_found' and `it_dir'.
14232 (grub_hfs_dir): Add prototype for `dir_hook'.
14233
14234 * fs/minix.c (grub_minix_get_file_block): Add prototype for
14235 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
14236 and `indir32' to silence a gcc warning.
14237
14238 * include/grub/fs.h (grub_hfs_init): New prototype.
14239 (grub_hfs_fini): Likewise.
f19dbdb7 14240
14241
97543f08 142422004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14243
14244 Each disk device has its own id now. This is useful to make use
14245 of multiple disk devices.
f19dbdb7 14246
97543f08 14247 * include/grub/disk.h (grub_disk_dev_id): New enum.
14248 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
14249 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
14250
14251 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
14252 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14253
14254 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
14255 GRUB_DISK_DEVICE_OFDISK_ID as an id.
14256
14257 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
14258 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14259
14260 * include/grub/disk.h (struct grub_disk_dev): Added a new member
14261 "id" which is used by the cache manager.
14262
14263 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
14264 of just "GRUB".
14265
64372eb4 142662004-08-18 Marco Gerards <metgerards@student.han.nl>
14267
14268 * fs/hfs.c: New file.
14269 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
14270 (grub_emu_SOURCES): Likewise.
14271 (pkgdata_MODULES): Add hfs.mod.
14272 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
14273 (grubof_SOURCES): Likewise.
14274 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
14275
14276 * include/grub/misc.h (grub_strncasecmp): Add prototype.
14277 * kern/misc.c (grub_strncasecmp): Add function.
14278
cc61b58f 142792004-08-14 Marco Gerards <metgerards@student.han.nl>
14280
14281 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
14282 with parentheses.
14283
14284 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
14285 (grub_ext2_dir): In case the directory entry type is unknown, read
14286 it from the inode.
14287
0ef123f6 142882004-08-02 Peter Bruin <pjbruin@dds.nl>
14289
14290 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
14291 grub_load_linux instead of grub_rescue_cmd_linux as second
14292 argument of grub_rescue_register_command.
14293
14294 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
14295
a447c5df 142962004-07-27 Marco Gerards <metgerards@student.han.nl>
14297
14298 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
14299 function.
14300 * commands/boot.c: Remove the check for `GRUB_UTIL'.
14301 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14302 `loader/powerpc/ieee1275/linux.c',
14303 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
14304 * include/grub/powerpc/ieee1275/ieee1275.h
14305 (grub_ieee1275_release): New prototype.
14306 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
14307 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
14308 normal, boot, linux and linux_normal.
14309 * loader/powerpc/ieee1275/linux.c: New file.
14310 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
14311
5a9e3546 143122004-07-12 Marco Gerards <metgerards@student.han.nl>
14313
14314 * normal/arg.c (grub_arg_parse): Correct error handling after
14315 reallocating the argumentlist (check if `argl' is not null instead
14316 of checking if `args' is not null).
14317 * kern/mm.c (grub_realloc): Return the same pointer when using the
14318 same region, instead of returning the header address.
14319
e15199cb 143202004-07-11 Marco Gerards <metgerards@student.han.nl>
14321
14322 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
14323 one block instead of two when looking for the initial partition.
14324 (grub_partition_probe): Initialize the local variable `p' with 0.
14325 Use base 10 for the grub_strtoul call.
14326 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
14327 need for one local variable.
14328 (grub_strtoul): Don't add the new value to `num', instead of that
14329 just assign it.
14330
020616c2 143312004-07-11 Marco Gerards <metgerards@student.han.nl>
14332
14333 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
14334 (pxeboot_img_SOURCES): New variable.
14335 (pxeboot_img_ASFLAGS): Likewise.
14336 (pxeboot_img_LDFLAGS): Likewise.
14337 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
14338 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
14339 <lode_leroy@hotmail.com>.
14340
6c51eb64 143412004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14342
14343 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
14344 there was no input.
14345
cfb12aff 143462004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14347
14348 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
14349 the history buffer logic.
14350
6eabba74 143512004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14352
14353 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
14354 (FILETYPE_INO_SYMLINK): New macros.
14355 (grub_ext2_find_file): Check if the node is a directory using the
14356 inode stat information instead of using the filetype in the
14357 dirent. Exclude the first character of an absolute symlink.
14358 (grub_ext2_dir): Mask out the filetype part of the mode member of
14359 the inode.
14360
66e19ef8 143612004-05-24 Marco Gerards <metgerards@student.han.nl>
14362
14363 Add support for UFS version 1 and 2. Add support for the minix
14364 filesystem version 1 and 2, both the variants with 14 and 30 long
14365 filenames.
f19dbdb7 14366
66e19ef8 14367 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
14368 fs/minix.c.
14369 (grub_emu_SOURCES): Likewise.
14370 (pkgdata_MODULES): Add ufs.mod and minix.mod.
14371 (ufs_mod_SOURCES): New variable.
14372 (ufs_mod_CFLAGS): Likewise.
14373 (minix_mod_SOURCES): Likewise.
14374 (minix_mod_CFLAGS): Likewise.
14375 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
14376 fs/minix.c.
14377 (grubof_SOURCES): Likewise.
14378 * fs/ufs.c: New file.
14379 * fs/minix.c: New file.
14380 * include/grub/fs.h (grub_ufs_init): New prototype.
14381 (grub_ufs_fini): Likewise.
14382 (grub_minix_init): Likewise.
14383 (grub_minix_fini): Likewise.
14384 * util/grub-emu.c (main): Initialize and deinitialize UFS and
14385 minix fs.
14386
cc2e748a 143872004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
14388
14389 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
14390 commands/ls.c, commands/terminal.c, commands/boot.c,
14391 commands/cmp.c and commands/cat.c.
14392 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
14393
14394 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
14395 "env.h"
14396
4b13b216 143972004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14398
14399 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
14400 and grub_, respectively. Because the conversion is trivial and
14401 mechanical, I omit the details here. Please refer to the CVS
14402 if you need more information.
14403
6a142551 144042004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14405
14406 * include/pupa: Renamed to ...
14407 * include/grub: ... this.
14408 * util/i386/pc/pupa-mkimage.c: Renamed to ...
14409 * util/i386/pc/grub-mkimage.c: ... this.
14410 * util/i386/pc/pupa-setup.c: Renamed to ...
14411 * util/i386/pc/grub-setup.c: ... this.
14412 * util/pupa-emu.c: Renamed to ...
14413 * util/grub-emu.c: ... this.
14414
e56cdf21 144152004-03-29 Marco Gerards <metgerards@student.han.nl>
14416
14417 Add support for the newworld apple macintosh (PPC). This has been
14418 tested on the powerbook 2000 only. It only adds support for
14419 generic ieee1275 functions, console and disk support. This should
14420 be easy to port to other architectures with support for Open
14421 Firmware.
f19dbdb7 14422
e56cdf21 14423 * configure.ac: Accept the powerpc as host_cpu. In the case of
14424 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
14425 specific tests are only executed while building for the i386.
14426 Inverse test for crosscompile.
14427 * genmk.rb (Utility): Allow assembler files.
14428 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
14429 * conf/powerpc-ieee1275.rmk: New file.
14430 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
14431 * disk/powerpc/ieee1275/partition.c: Likewise.
14432 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
14433 * include/pupa/powerpc/ieee1275/console.h: Likewise.
14434 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
14435 * include/pupa/powerpc/ieee1275/time.h: Likewise.
14436 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
14437 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
14438 * include/pupa/powerpc/ieee1275/loader.h
14439 * include/pupa/powerpc/setjmp.h: Likewise.
14440 * include/pupa/powerpc/types.h: Likewise.
14441 * kern/powerpc/ieee1275/init.c: Likewise.
14442 * kern/powerpc/ieee1275/openfw.c: Likewise.
14443 * term/powerpc/ieee1275/ofconsole.c: Likewise.
14444
14445 These files were written by Johan Rydberg
14446 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 14447
e56cdf21 14448 * boot/powerpc/ieee1275/cmain.c: New file.
14449 * boot/powerpc/ieee1275/crt0.S: Likewise.
14450 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
14451 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
14452
8c8cc205 144532004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
14454
14455 * Makefile.in: Update copyright.
14456 * genmodsrc.sh: Likewise.
14457 * gensymlist.sh: Likewise.
14458 * term/i386/pc/vga.c: Indent correctly.
14459
14460 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
14461 bugreporting address.
14462 * util/i386/pc/pupa-setup.c (usage): Likewise,
14463 (main): Call pupa_ext2_init and pupa_ext2_fini.
14464
f19dbdb7 14465 * fs/fat.c (log2): Renamed to ...
8c8cc205 14466 (fat_log2): ... this.
14467 All callers changed.
14468 * kern/misc.c (memcpy): Alias to pupa_memmove.
14469 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
14470 lvalue cast.
14471 * util/console.c (pupa_ncurses_fini): Return 0.
14472
14473 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
14474 Move fail label here.
14475 [__GNU__]: Don't warn when using stat.
14476 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
14477 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
14478 long int. Use strtol instead of strtoul.
f19dbdb7 14479
db1771cf 144802004-03-14 Marco Gerards <metgerards@student.han.nl>
14481
14482 * commands/boot.c: New file.
14483 * commands/cat.c: Likewise.
14484 * commands/cmp.c: Likewise.
14485 * commands/ls.c: Likewise.
14486 * commands/terminal.c: Likewise.
14487 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
14488 (pupa_register_command): Changed interface to match the new
14489 argument parser.
14490 (pupa_command_execute): Changed (almost rewritten) so it uses
14491 pupa_split_command. Added support for setting variables using the
14492 syntax `foo=bar'.
14493 (rescue_command): Changed to work with the new argument parser.
14494 (terminal_command): Moved from here to commands/terminal.c.
14495 (set_command): New function.
14496 (unset_command): New function.
14497 (insmod_command): New function.
14498 (rmmod_command): New function.
14499 (lsmod_command): New function.
14500 (pupa_command_init): Don't initialize the command terminal
14501 anymore. Initialize the commands set, unset, insmod, rmmod and
14502 lsmod.
14503 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
14504 (kernel_img_HEADERS): Add arg.h and env.h.
14505 (pupa_mkimage_LDFLAGS): Add kern/env.c.
14506 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
14507 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
14508 normal/arg.c.
14509 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
14510 terminal.mod.
14511 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
14512 (boot_mod_SOURCES): New variable.
14513 (terminal_mod_SOURCES): Likewise.
14514 (ls_mod_SOURCES): Likewise.
14515 (cmp_mod_SOURCES): Likewise.
14516 (cat_mod_SOURCES): Likewise.
14517
14518 * normal/arg.c: New file.
14519 * kern/env.c: Likewise.
14520 * include/pupa/arg.h: Likewise.
14521 * include/pupa/env.h: Likewise.
14522 * font/manager.c (font_command): Changed to match argument parsing
14523 interface changes.
14524 (PUPA_MOD_INIT): Likewise.
14525 * hello/hello.c (pupa_cmd_hello): Likewise.
14526 (PUPA_MOD_INIT): Likewise.
14527 * include/pupa/disk.h: Include <pupa/device.h>.
14528 (pupa_print_partinfo): New prototype.
14529 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
14530 (pupa_dl_get_prefix): Likewise.
14531 * include/pupa/misc.h: Include <pupa/err.h>.
14532 (pupa_isgraph): New prototype.
14533 (pupa_isdigit): Likewise.
14534 (pupa_split_cmdline): Likewise.
14535 * include/pupa/normal.h: Include <pupa/arg.h>.
14536 (pupa_command): Changed the prototype of the member `func' to
14537 match the argument parsing interface. Added member `options'.
14538 (pupa_register_command): Updated to match function.
14539 (pupa_arg_parse): New prototype.
14540 (pupa_hello_init) [PUPA_UTIL]: New prototype.
14541 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
14542 (pupa_ls_init) [PUPA_UTIL]: Likewise.
14543 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
14544 (pupa_cat_init) [PUPA_UTIL]: Likewise.
14545 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
14546 (pupa_boot_init) [PUPA_UTIL]: Likewise.
14547 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
14548 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
14549 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
14550 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
14551 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
14552 * kern/disk.c: Include <pupa/file.h>.
14553 (pupa_print_partinfo): New function.
14554 * kern/dl.c: Include <pupa/env.h>.
14555 (pupa_dl_dir): Variable removed.
14556 (pupa_dl_load): Use the environment variable `prefix' instead of
14557 the variable pupa_dl_dir.
14558 (pupa_dl_set_prefix): Function removed.
14559 (pupa_dl_get_prefix): Likewise.
14560 * kern/i386/pc/init.c: Include <pupa/env.h>.
14561 (pupa_machine_init): Use the environment variable `prefix' instead of
14562 using pupa_dl_set_prefix to set the prefix.
14563 * kern/main.c: Include <pupa/env.h>.
14564 (pupa_set_root_dev): Use the environment variable `prefix' instead of
14565 using pupa_dl_get_prefix to get the prefix.
14566 * kern/misc.c: Include <pupa/env.h>.
14567 (pupa_isdigit): New function.
14568 (pupa_isgraph): Likewise.
14569 (pupa_ftoa): Likewise.
14570 (pupa_vsprintf): Added support for printing values of the type
14571 `double'. Make it possible to format variable output when using
14572 formatting like `%1.2%f'.
14573 (pupa_split_cmdline): New function.
14574 * kern/rescue.c: Include <pupa/env.h>.
14575 (next_word): Removed function.
14576 (pupa_rescue_cmd_prefix): Likewise.
14577 (pupa_rescue_cmd_set): New function.
14578 (pupa_rescue_cmd_unset): New function.
14579 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
14580 split the command line instead of splitting it here. Added
14581 support for setting variables using the syntax `foo=bar'. Don't
14582 initialize the prefix command anymore. Initialized the set and
14583 unset commands.
14584 * normal/cmdline.c: Include <pupa/env.h>.
14585 (pupa_tab_complete): Added prototypes for print_simple_completion,
14586 print_partition_completion, add_completion, iterate_commands,
14587 iterate_dev, iterate_part and iterate_dir. Moved code to print
14588 partition information from here to kern/disk.c.
fe6b695a 14589 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 14590 * normal/main.c: Include <pupa/env.h>.
14591 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
14592 instead of using pupa_dl_get_prefix to get the prefix.
14593 * term/i386/pc/vga.c: Include <pupa/arg.h>.
14594 (check_vga_mem): Cast pointers to `void *' to silence a gcc
14595 warning.
14596 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
14597 (pupa_vga_setcolor): Declare unused variables with `__attribute__
14598 ((unused))' to silence a gcc warning.
14599 (pupa_vga_setcolor): Likewise.
14600 (debug_command): Changed to match argument parsing
14601 interface changes.
14602 * util/pupa-emu.c: Include <pupa/env.h>.
14603 (options): Added 0's for unused fields to silence a gcc warning.
14604 (argp): Likewise.
14605 (main): Use the environment variable `prefix' instead of using
14606 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
14607 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
14608 and terminal.
14609
14610 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
14611 * util/misc.c: Include <malloc.h>.
14612 (pupa_malloc): Rewritten so errors are correctly reported.
14613 (pupa_realloc): Likewise.
14614 (pupa_memalign): Likewise.
14615 (pupa_mm_init_region): Declare unused variables with
14616 `__attribute__ ((unused))' to silence a gcc warning.
14617 * normal/i386/setjmp.S: Remove tab at the end of the file to
14618 silence a gcc warning.
14619 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
14620 variables with `__attribute__ ((unused))' to silence a gcc
14621 warning.
14622 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
14623 local variable i unsigned to silence a gcc warning.
14624
14625 * kern/term.c: Include <pupa/misc.h>.
14626 (pupa_more_lines): New variable.
14627 (pupa_more): Likewise.
14628 (pupa_putcode): When the pager is active pause at the end of every
14629 screen.
14630 (pupa_set_more): New function.
14631 * include/pupa/term.h (pupa_set_more): New prototype.
14632
14633
3b1139cb 146342004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
14635
14636 Now this project is GRUB 2 rather than PUPA. The location of
14637 the CVS repository was moved to GRUB's.
f19dbdb7 14638
3b1139cb 14639 * configure.ac: Use bug-grub as the reporting address.
14640 Use GRUB instead of PUPA.
14641 Change the version number to 1.90.
14642
8367695c 146432004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
14644
14645 * genkernsyms.sh: Updated copyright information.
14646 * genmk.rb: Likewise.
14647 * genmodsrc.sh: Likewise.
14648 * gensymlist.sh: Likewise.
14649 * boot/i386/pc/boot.S: Likewise.
14650 * boot/i386/pc/diskboot.S: Likewise.
14651 * disk/i386/pc/biosdisk.c: Likewise.
14652 * disk/i386/pc/partition.c: Likewise.
14653 * font/manager.c: Likewise.
14654 * fs/ext2.c: Likewise.
14655 * fs/fat.c: Likewise.
14656 * include/pupa/boot.h: Likewise.
14657 * include/pupa/device.h: Likewise.
14658 * include/pupa/disk.h: Likewise.
14659 * include/pupa/dl.h: Likewise.
14660 * include/pupa/elf.h: Likewise.
14661 * include/pupa/err.h: Likewise.
14662 * include/pupa/file.h: Likewise.
14663 * include/pupa/font.h: Likewise.
14664 * include/pupa/fs.h: Likewise.
14665 * include/pupa/kernel.h: Likewise.
14666 * include/pupa/loader.h: Likewise.
14667 * include/pupa/misc.h: Likewise.
14668 * include/pupa/mm.h: Likewise.
14669 * include/pupa/net.h: Likewise.
14670 * include/pupa/normal.h: Likewise.
14671 * include/pupa/rescue.h: Likewise.
14672 * include/pupa/setjmp.h: Likewise.
14673 * include/pupa/symbol.h: Likewise.
14674 * include/pupa/term.h: Likewise.
14675 * include/pupa/types.h: Likewise.
14676 * include/pupa/i386/setjmp.h: Likewise.
14677 * include/pupa/i386/types.h: Likewise.
14678 * include/pupa/i386/pc/biosdisk.h: Likewise.
14679 * include/pupa/i386/pc/boot.h: Likewise.
14680 * include/pupa/i386/pc/console.h: Likewise.
14681 * include/pupa/i386/pc/init.h: Likewise.
14682 * include/pupa/i386/pc/kernel.h: Likewise.
14683 * include/pupa/i386/pc/linux.h: Likewise.
14684 * include/pupa/i386/pc/loader.h: Likewise.
14685 * include/pupa/i386/pc/memory.h: Likewise.
14686 * include/pupa/i386/pc/multiboot.h: Likewise.
14687 * include/pupa/i386/pc/partition.h: Likewise.
14688 * include/pupa/i386/pc/time.h: Likewise.
14689 * include/pupa/i386/pc/vga.h: Likewise.
14690 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
14691 * include/pupa/util/getroot.h: Likewise.
14692 * include/pupa/util/misc.h: Likewise.
14693 * include/pupa/util/resolve.h: Likewise.
14694 * kern/device.c: Likewise.
14695 * kern/disk.c: Likewise.
14696 * kern/dl.c: Likewise.
14697 * kern/err.c: Likewise.
14698 * kern/file.c: Likewise.
14699 * kern/fs.c: Likewise.
14700 * kern/loader.c: Likewise.
14701 * kern/main.c: Likewise.
14702 * kern/misc.c: Likewise.
14703 * kern/mm.c: Likewise.
14704 * kern/rescue.c: Likewise.
14705 * kern/term.c: Likewise.
14706 * kern/i386/dl.c: Likewise.
14707 * kern/i386/pc/init.c: Likewise.
14708 * kern/i386/pc/lzo1x.S: Likewise.
14709 * kern/i386/pc/startup.S: Likewise.
14710 * loader/i386/pc/chainloader.c: Likewise.
14711 * loader/i386/pc/linux.c: Likewise.
14712 * loader/i386/pc/multiboot.c: Likewise.
14713 * normal/cmdline.c: Likewise.
14714 * normal/command.c: Likewise.
14715 * normal/main.c: Likewise.
14716 * normal/menu.c: Likewise.
14717 * normal/i386/setjmp.S: Likewise.
14718 * term/i386/pc/console.c: Likewise.
14719 * term/i386/pc/vga.c: Likewise.
14720 * util/console.c: Likewise.
14721 * util/genmoddep.c: Likewise.
14722 * util/misc.c: Likewise.
14723 * util/pupa-emu.c: Likewise.
14724 * util/resolve.c: Likewise.
14725 * util/unifont2pff.rb: Likewise.
14726 * util/i386/pc/biosdisk.c: Likewise.
14727 * util/i386/pc/getroot.c: Likewise.
14728 * util/i386/pc/pupa-mkimage.c: Likewise.
14729 * util/i386/pc/pupa-setup.c: Likewise.
14730
e6eced71 147312004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
14732
14733 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
14734 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
14735 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
14736 reading and reset it after reading.
14737 (pupa_ext2_close): Return PUPA_ERR_NONE.
14738
14739 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
14740 Correct value.
14741 (struct linux_kernel_header): Add kernel_version and
14742 initrd_addr_max.
14743 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
14744 pupa_file_read succeeds.
14745 (pupa_rescue_cmd_initrd): Implement.
14746
5aded270 147472003-12-03 Marco Gerards <metgerards@student.han.nl>
14748
14749 * fs/ext2.c (pupa_ext2_label): New function.
14750 (pupa_ext2_fs): Added label.
14751 * fs/fat.c (pupa_fat_label): New function.
14752 (pupa_fat_fs): Added label.
14753 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
14754
14755 * kern/misc.c (pupa_strndup): New function.
14756 * include/pupa/misc.h (pupa_strndup): New prototype.
14757
14758 * include/pupa/normal.h: Include <pupa/err.h>.
14759 (pupa_set_history): New prototype.
14760 (pupa_iterate_commands): New prototype.
14761 * normal/cmdline.c: Include <pupa/machine/partition.h>,
14762 <pupa/disk.h>, <pupa/file.h>.
14763 (hist_size): New variable.
14764 (hist_lines): Likewise.
14765 (hist_end): Likewise.
14766 (hist_used): Likewise.
14767 (pupa_set_history): New function.
14768 (pupa_history_get): Likewise.
14769 (pupa_history_add): Likewise.
14770 (pupa_history_replace): Likewise.
14771 (pupa_tab_complete): Likewise.
14772 (pupa_cmdline_run): Added tab completion and history buffer. Tab
14773 completion shows partitionnames while completing partitions, this
14774 feature was suggested by Jeff Bailey.
14775 * normal/command.c (pupa_iterate_commands): New function.
14776 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
14777 (pupa_normal_init): Initialize history buffer.
14778 (PUPA_MOD_INIT): Likewise.
14779 (pupa_normal_fini): Free the history buffer.
14780 (PUPA_MOD_FINI): Likewise.
14781
14782 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
14783 key.
14784
14785 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
14786 * configure.ac [i386]: Check for regparam bug.
14787 (NESTED_FUNC_ATTR) [! i386]: Defined.
14788
1f7315a3 147892003-11-17 Marco Gerards <metgerards@student.han.nl>
14790
14791 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
14792 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
14793 (pupa_emu_SOURCES): New variable.
14794 (pupa_emu_LDFLAGS): Likewise.
14795 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
14796 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
14797 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
14798 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
14799 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
14800 (pupa_jmp_buf): New typedef.
14801 (pupa_setjmp) [PUPA_UTIL]: New macro.
14802 (pupa_longjmp) [PUPA_UTIL]: Likewise.
14803 * include/pupa/term.h (struct pupa_term): New member `refresh'.
14804 (pupa_refresh): New prototype.
14805 * include/pupa/util/getroot.h: New file.
14806 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
14807 it.
14808 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
14809 (pupa_rescue_cmd_cat): Likewise.
14810 (pupa_rescue_cmd_ls): Likewise.
14811 (pupa_rescue_cmd_testload): Likewise.
14812 (pupa_rescue_cmd_lsmod): Likewise.
14813 * normal/cmdline.c (pupa_cmdline_get): Likewise.
14814 * normal/menu.c (run_menu): Likewise.
14815 * kern/term.c (pupa_cls): Likewise.
14816 (pupa_refresh): New function.
14817 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
14818 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
14819 * util/console.c: New file.
f19dbdb7 14820
1f7315a3 14821 * util/i386/pc/getroot.c: New file.
14822 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
14823 (pupa_putchar): New function.
14824 (pupa_refresh): Likewise.
14825 (xgetcwd): Function moved to ...
14826 (strip_extra_slashes): Likewise.
14827 (get_prefix): Likewise.
f19dbdb7 14828 * util/i386/pc/getroot.c: ... here.
1f7315a3 14829 (find_root_device): Function moved and renamed to...
14830 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
14831 Changed all callers.
14832 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
14833 and renamed to...
14834 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
14835 Changed all callers.
14836 * util/misc.c (pupa_memalign): New function.
14837 (pupa_mm_init_region): Likewise.
14838 (pupa_register_exported_symbols): Likewise.
14839 (pupa_putchar): Function removed.
14840 * util/pupa-emu.c: New file.
14841
9a5c1ade 148422003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
14843
14844 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
14845 (_multiboot_mod_SOURCES): New variable.
14846 (_multiboot_mod_CFLAGS): Likewise.
14847 * loader/i386/pc/multiboot.c: New file.
14848 * include/pupa/i386/pc/multiboot.h: Likewise.
14849 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
14850 (pupa_multiboot_real_boot): New function.
14851 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
14852 (pupa_multiboot_real_boot): New prototype.
14853 (pupa_rescue_cmd_multiboot): Likewise
14854 (pupa_rescue_cmd_module): Likewise.
14855
14856 * kern/loader.c (pupa_loader_set): Continue when
14857 pupa_loader_unload_func() fails.
14858 (pupa_loader_unset): New function.
14859 * include/pupa/loader.h (pupa_loader_unset): New prototype.
14860
14861 * kern/misc.c (pupa_stpcpy): New function.
14862 * include/pupa/misc.h (pupa_stpcpy): New prototype.
14863
8e72a9c0 148642003-11-12 Marco Gerards <metgerards@student.han.nl>
14865
14866 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
14867 for available extensions.
14868
14869 * include/pupa/i386/pc/time.h: New file.
14870 * kern/disk.c: Include <pupa/machine/time.h>.
14871 (PUPA_CACHE_TIMEOUT): New macro.
14872 (pupa_last_time): New variable.
14873 (pupa_disk_open): Flush the cache when there was a timeout.
14874 (pupa_disk_close): Reset the timer.
14875 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
14876 pupa_currticks.
14877 * util/misc.c: Include <sys/times.h>
14878 (pupa_get_rtc): New function.
14879
c4adbd32 148802003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
14881
14882 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
14883 as blocks.
14884 (pupa_ext2_get_file_block): Use blocks member.
14885
14886 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
14887 first block. Return -1 instead of pupa_errno on error.
14888
bfd30f06 148892003-10-27 Marco Gerards <metgerards@student.han.nl>
14890
14891 * README: In the pupa-mkimage example use _chain instead of chain
14892 and ext2 instead of fat.
14893 * TODO: Replace ext2fs with jfs as an example. Add an item for
14894 adding journal playback for ext2fs.
14895 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
14896 (pkgdata_MODULES): Added ext2.mod.
14897 (ext2_mod_SOURCES): New variable.
14898 (ext2_mod_CFLAGS): Likewise.
14899 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
14900 * include/pupa/misc.h (pupa_strncpy): New prototype.
14901 (pupa_strcat): Likewise.
14902 (pupa_strncmp): Likewise.
14903 * kern/misc.c (pupa_strcat): Enable function.
14904 (pupa_strncpy): New function.
14905 (pupa_strncmp): Likewise.
14906 * fs/ext2.c: New file.
f19dbdb7 14907
bfd30f06 14908 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
14909 when the read failed before retrying.
14910 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
14911 (_FILE_OFFSET_BITS): Likewise.
14912 * configure.ac: Added AC_SYS_LARGEFILE.
14913
98d15063 149142003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
14915
14916 * genmk.rb (PModule#rule): Make sure to get only symbol names
14917 from the output of nm.
14918 Reported by Robert Millan <zeratul2@wanadoo.es>.
14919
18d9c7cd 149202003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
14921
14922 I forgot to check in these changes for a long time. This adds
14923 incomplete support for VGA console, and this is still very
14924 buggy. Also, a lot of consideration is required for I18N,
14925 UNICODE, and VGA font issues. Therefore, assume that this is
14926 such that "better than nothing".
f19dbdb7 14927
18d9c7cd 14928 * font/manager.c: New file.
14929 * include/pupa/font.h: Likewise.
14930 * include/pupa/i386/pc/vga.h: Likewise.
14931 * term/i386/pc/vga.c: Likewise.
14932 * util/unifont2pff.rb: Likewise.
14933
14934 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
14935 (pkgdata_MODULES): Added vga.mod and font.mod.
14936 (vga_mod_SOURCES): New variables.
14937 (vga_mod_CFLAGS): Likewise.
14938 (font_mod_SOURCES): Likewise.
14939 (font_mod_CFLAGS): Likewise.
14940
14941 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
14942
14943 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 14944 (struct pupa_term): Added init and fini.
18d9c7cd 14945 Changed the argument of putchar to pupa_uint32_t.
14946
14947 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
14948 (pupa_console_real_putchar): New prototype.
14949 (pupa_console_putchar): Removed.
14950 (pupa_console_checkkey): Exported.
14951 (pupa_console_getkey): Likewise.
14952
14953 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
14954 characters.
14955
14956 * kern/term.c (pupa_term_set_current): Rewritten.
14957 (pupa_putchar): Likewise.
14958 (pupa_putcode): New function.
14959
14960 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
14961 (pupa_console_real_putchar): ... this.
14962 (pupa_vga_set_mode): New function.
14963 (pupa_vga_get_font): Likewise.
14964
14965 * normal/command.c: Include pupa/term.h.
14966 (terminal_command): New function.
14967 (pupa_command_init): Register the command "terminal".
14968
14969 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
14970 (DISP_UP): Likewise.
14971 (DISP_RIGHT): Likewise.
14972 (DISP_DOWN): Likewise.
14973 (DISP_HLINE): Likewise.
14974 (DISP_VLINE): Likewise.
14975 (DISP_UL): Likewise.
14976 (DISP_UR): Likewise.
14977 (DISP_LL): Likewise.
14978 (DISP_LR): Likewise.
14979
14980 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 14981
977329f5 149822003-02-08 NIIBE Yutaka <gniibe@m17n.org>
14983
14984 * util/resolve.c (pupa_util_resolve_dependencies): BUG
14985 FIX. Reverse the path_list.
14986
14987 * include/pupa/normal.h: Export pupa_register_command and
14988 pupa_unregister_command.
14989
14990 * hello/hello.c (pupa_cmd_hello): New module.
14991 * conf/i386-pc.rmk: Added hello.mod.
14992
1f5ab428 149932003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
14994
14995 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 14996
1f5ab428 14997 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
14998 (compress_kernel): New variable.
14999 (generate_image): Heavily modified to support compressing a
15000 large part of the core image.
15001
15002 * util/misc.c (pupa_util_read_image): Fix a file descriptor
15003 leak.
15004 (pupa_util_load_image): New function.
15005
15006 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
15007 (pupa_compressed_size): New variable.
15008 (codestart): Enable Gate A20 here.
15009 Decompress the compressed part of the core image.
15010 Rearrange the code to put functions and variables which are
15011 required for initialization in the non-compressed part.
15012 Include lzo1x.S.
15013
15014 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
15015 here.
15016
15017 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
15018
f19dbdb7 15019 * include/pupa/i386/pc/kernel.h
1f5ab428 15020 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
15021 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
15022 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15023 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15024 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
15025
15026 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
15027
15028 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
15029 (Utility#rule): Likewise.
15030
15031 * configure.ac: Check if LZO is available.
15032
ce5bf700 150332003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
15034
15035 * include/pupa/normal.h: New file.
15036 * include/pupa/setjmp.h: Likewise.
15037 * include/pupa/i386/setjmp.h: Likewise.
15038 * normal/cmdline.c: Likewise.
15039 * normal/command.c: Likewise.
15040 * normal/main.c: Likewise.
15041 * normal/menu.c: Likewise.
15042 * normal/i386/setjmp.S: Likewise.
f19dbdb7 15043
ce5bf700 15044 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
15045 (pupa_rescue_cmd_initrd): Likewise.
15046
15047 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
15048 Likewise.
15049
15050 * kern/i386/pc/startup.S (translation_table): New variable.
15051 (translate_keycode): New function.
15052 (pupa_console_getkey): Call translate_keycode.
15053
15054 * kern/rescue.c (attempt_normal_mode): New function.
15055 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
15056 it failed, print a message.
15057
15058 * kern/mm.c (pupa_real_malloc): Print more information when a
15059 free magic is broken.
15060 (pupa_free): If the first free header is not free actually, set
15061 it to P.
15062
15063 * kern/main.c (pupa_load_normal_mode): Just load the module
15064 "normal".
15065 (pupa_main): Don't print the message
15066 "Entering into rescue mode..." here.
15067
15068 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
15069 Declared.
15070 (pupa_rescue_cmd_initrd): Likewise.
15071 (pupa_rescue_cmd_initrd): Likewise.
15072
15073 * include/pupa/symbol.h (FUNCTION): Specify the type.
15074 (VARIABLE): Likewise.
15075
15076 * include/pupa/err.h (pupa_err_t): Added
15077 PUPA_ERR_UNKNOWN_COMMAND.
15078
15079 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
15080 (pupa_dl_get_prefix): Likewise.
15081
15082 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
15083 Added _chain.mod and _linux.mod instead of chain.mod and
15084 linux.mod.
15085 (chain_mod_SOURCES): Renamed to ...
15086 (_chain_mod_SOURCES): ... this.
15087 (chain_mod_CFLAGS): Renamed to ...
15088 (_chain_mod_CFLAGS): ... this.
15089 (linux_mod_SOURCES): Renamed to ...
15090 (_linux_mod_SOURCES): ... this.
15091 (linux_mod_CFLAGS): Renamed to ...
15092 (_linux_mod_CFLAGS): ... this.
15093 (normal_mod_SOURCES): New variable.
15094 (normal_mod_CFLAGS): Likewise.
15095 (normal_mod_ASFLAGS): Likewise.
15096
150972003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
15098
15099 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
15100 possible.
15101
fe6b695a 15102 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 15103 recursively.
15104 (pupa_dl_unref): Unrefer depending modules recursively.
15105 Don't call pupa_dl_unload implicitly, because PUPA can crash if
15106 a module is unloaded before one depending on that module is
15107 unloaded.
15108 (pupa_dl_unload): Unload depending modules explicitly,
15109 if possible.
15110
c04da074 151112003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
15112
15113 * include/pupa/i386/pc/linux.h: New file.
15114 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 15115
c04da074 15116 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
15117 Removed.
15118 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
15119 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
15120 of PUPA_CHAINLOADER_BOOT_SECTOR.
15121
15122 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
15123 (pupa_linux_prot_size): New variable.
15124 (pupa_linux_tmp_addr): Likewise.
15125 (pupa_linux_real_addr): Likewise.
15126 (pupa_linux_boot_zimage): New function.
15127 (pupa_linux_boot_bzimage): Likewise.
15128
15129 * kern/i386/pc/init.c (struct mem_region): New structure.
15130 (MAX_REGIONS): New macro.
15131 (mem_regions): New variable.
15132 (num_regions): Likewise.
15133 (pupa_os_area_addr): Likewise.
15134 (pupa_os_area_size): Likewise.
15135 (pupa_lower_mem): Likewise.
15136 (pupa_upper_mem): Likewise.
15137 (add_mem_region): New function.
15138 (compact_mem_regions): Likewise.
15139 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
15140 the size of the conventional memory and that of so-called upper
15141 memory (before the first memory hole).
15142 Instead of adding each found region to free memory, use
15143 add_mem_region and add them after removing overlaps.
15144 Also, add only 1/4 of the upper memory to free memory. The rest
15145 is used for loading OS images. Maybe this is ad hoc, but this
15146 makes it much easier to relocate OS images when booting.
15147
15148 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
15149 (pupa_enter_rescue_mode): Don't register initrd and module.
15150
15151 * kern/mm.c: Include pupa/dl.h.
15152
15153 * kern/main.c: Include pupa/file.h and pupa/device.h.
15154
15155 * kern/loader.c (pupa_loader_load_module_func): Removed.
15156 (pupa_loader_load_module): Likewise.
15157
15158 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
15159 ``.o''.
15160
15161 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
15162 (pupa_linux_tmp_addr): Likewise.
15163 (pupa_linux_real_addr): Likewise.
15164 (pupa_linux_boot_zimage): Likewise.
15165 (pupa_linux_boot_bzimage): Likewise.
15166
15167 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
15168 (pupa_upper_mem): Likewise.
15169 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
15170 module is too dangerous.
15171
15172 * include/pupa/loader.h (pupa_os_area_addr): Declared.
15173 (pupa_os_area_size): Likewise.
15174 (pupa_loader_set): Remove the first argument. Loader doesn't
15175 manage modules or initrd any longer.
15176 (pupa_loader_load_module): Removed.
15177
15178 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
15179 (linux_mod_SOURCES): New variable.
15180 (linux_mod_CFLAGS): Likewise.
15181
a13f9237 151822003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
15183
15184 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
15185 the length of a blocklist correctly.
15186
15187 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
15188 Use ioctl only if the OS file is a block device.
15189 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
15190 not very useful for normal files.
15191
15192 * kern/main.c (pupa_set_root_dev): New function.
15193 (pupa_load_normal_mode): Likewise.
15194 (pupa_main): Call those above.
15195
15196 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
15197 pupa_uint16_t.
15198
15199 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
15200
a5ffe966 152012003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
15202
15203 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
15204 (setup): Configure the installed partition information and the
15205 dl prefix.
15206
15207 * loader/i386/pc/chainloader.c (my_mod): New variable.
15208 (pupa_chainloader_unload): New function.
15209 (pupa_rescue_cmd_chainloader): Refer itself.
15210 (PUPA_MOD_INIT): Save its own module in MY_MOD.
15211
15212 * kern/i386/pc/startup.S (install_partition): Removed.
15213 (version_string): Likewise.
15214 (config_file): Likewise.
15215 (pupa_install_dos_part): New variable.
15216 (pupa_install_bsd_part): Likewise.
15217 (pupa_prefix): Likewise.
15218 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
15219
15220 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
15221 and pupa/misc.h.
15222 (make_install_device): New function.
15223 (pupa_machine_init): Set the dl prefix.
15224
15225 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
15226 (buf): Renamed to ...
15227 (linebuf): ... this.
15228 (pupa_rescue_cmd_prefix): New function.
15229 (pupa_rescue_cmd_insmod): Likewise.
15230 (pupa_rescue_cmd_rmmod): Likewise.
15231 (pupa_rescue_cmd_lsmod): Likewise.
15232 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
15233 rmmod and lsmod.
15234
15235 * kern/mm.c (pupa_memalign): If failed even after invalidating
15236 disk caches, unload unneeded modules and retry.
15237
15238 * kern/misc.c (pupa_memmove): New function.
15239 (pupa_memcpy): Removed.
15240 (pupa_strcpy): New function.
15241 (pupa_itoa): Made static.
15242
15243 * kern/dl.c (pupa_dl_iterate): New function.
15244 (pupa_dl_ref): Likewise.
15245 (pupa_dl_unref): Likewise.
15246 (pupa_dl_unload): Return if succeeded or not.
15247 (pupa_dl_unload_unneeded): New function.
15248 (pupa_dl_unload_all): Likewise.
15249 (pupa_dl_init): Renamed to ...
15250 (pupa_dl_set_prefix): ... this.
15251 (pupa_dl_get_prefix): New function.
15252
15253 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
15254 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
15255 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15256 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15257 (pupa_install_dos_part): Declared.
15258 (pupa_install_bsd_part): Likewise.
15259 (pupa_prefix): Likewise.
15260 (pupa_boot_drive): Likewise.
15261
15262 * include/pupa/types.h: Fix a typo.
15263
15264 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
15265 pupa_memmove.
15266 (pupa_memmove): Declared.
15267 (pupa_strcpy): Likewise.
15268
15269 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
15270 pupa_mod_init takes one argument, its own module.
15271 (pupa_dl_unload_unneeded): Declared.
15272 (pupa_dl_unload_all): Likewise.
15273 (pupa_dl_ref): Likewise.
15274 (pupa_dl_unref): Likewise.
15275 (pupa_dl_iterate): Likewise.
15276 (pupa_dl_init): Renamed to ...
15277 (pupa_dl_set_prefix): ... this.
15278 (pupa_dl_get_prefix): Declared.
15279
15280 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 15281 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 15282 unloaded.
15283 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
15284 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
15285
15286 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
15287 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
15288
012d7999 152892003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15290
15291 * util/i386/pc/pupa-setup.c (setup): Define the internal
15292 function find_first_partition_start at the top level, because GCC
15293 3.0.x cannot compile internal functions in deeper scopes
15294 correctly.
15295 (find_root_device): Use lstat instead of stat.
15296 Don't follow symbolic links.
15297 Fix the path-constructing code.
15298
15299 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
15300 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
15301 by a BLKGETSIZE ioctl first, because block devices don't fill
15302 the member st_mode of the structure stat on Linux.
15303 [__linux__] (linux_find_partition): Use a temporary buffer
15304 REAL_DEV for the working space. Copy it to DEV before returning.
15305 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
15306 buffer cache consistent.
15307 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
15308 strncmp. The previous value was merely wrong.
15309 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
15310
15311 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
15312 FAT size is 12. The previous value was merely wrong.
15313
15314 * kern/main.c (pupa_main): Don't split the starting message from
15315 newlines.
15316
15317 * kern/term.c (pupa_putchar): Put CR after LF instead of before
15318 LF, because BIOS goes crazy about character attributes in this
15319 case.
15320
1cc73a62 153212003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15322
15323 * include/i386/pc/util/biosdisk.h: New file.
15324 * util/i386/pc/biosdisk.c: Likewise.
15325 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 15326
1cc73a62 15327 * Makefile.in (INCLUDE_DISTFILES): Added
15328 include/pupa/i386/pc/util/biosdisk.h.
15329 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
15330 directory util/i386/pc.
15331 (install-local): Added a rule for sbin_UTILITIES.
15332 (uninstall): Likewise.
15333
15334 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
15335
15336 * util/misc.c (xrealloc): New function.
15337 (pupa_malloc): Likewise.
15338 (pupa_free): Likewise.
15339 (pupa_realloc): Likewise.
15340 (pupa_stop): Likewise.
15341 (pupa_putchar): Likewise.
15342
15343 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
15344
15345 * include/pupa/util/misc.h (xrealloc): Declared.
15346
15347 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
15348 macro.
15349 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
15350 (PUPA_BOOT_MACHINE_BPB_END): ... this.
15351
15352 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
15353 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15354
15355 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
15356 way should be implemented.
15357 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15358
15359 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
15360 the size of NAME for safety.
15361 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
15362 0x88.
15363
15364 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
15365 (pupa_setup_SOURCES): Likewise.
15366
15367 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
15368
08b70fe8 153692002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15370
15371 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
15372 bunch of pushl's from pusha, because this destroys the return
15373 value.
15374
62ddcc8f 153752002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15376
15377 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
15378 This means that any missing prototypes could be fatal. Also, you
15379 must take care when writing assembly code. See the comments at
15380 the beginning of startup.S, for more details.
f19dbdb7 15381
62ddcc8f 15382 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
15383 compilation mechanism.
15384 (pupa_chainloader_real_boot): Likewise.
15385 (pupa_biosdisk_rw_int13_extensions): Likewise.
15386 (pupa_biosdisk_rw_standard): Likewise.
15387 (pupa_biosdisk_check_int13_extensions): Likewise.
15388 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
15389 (pupa_biosdisk_get_diskinfo_standard): Likewise.
15390 (pupa_get_memsize): Likewise.
15391 (pupa_get_mmap_entry): Likewise.
15392 (pupa_console_putchar): Likewise.
15393 (pupa_console_setcursor): Likewise.
15394 (pupa_getrtsecs): Use pushl instead of push.
15395
15396 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
15397 memory instead of the stack for a mmap entry, because some
15398 BIOSes may ignore the maximum size and overflow.
15399
15400 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
15401
15402 * genmk.rb (PModule#rule): Compile automatically generated
15403 sources with module-specific CFLAGS as well as other sources.
15404
9962ed99 154052002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15406
15407 * configure.ac: Check ld.
15408 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
15409 respectively, before checking endianness and sizes.
15410
15411 * Makefile.in (LD): New variable.
f19dbdb7 15412
abdfc3c5 154132002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15414
15415 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
15416
6a161fa9 154172002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15418
15419 * Changelog: New file.
15420