]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2009-04-13 Pavel Roskin <proski@gnu.org>
[grub2.git] / ChangeLog
CommitLineData
232a769c 12009-04-13 Pavel Roskin <proski@gnu.org>
2
3 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
4
c3012039 52009-04-13 Felix Zielcke <fzielcke@z-51.de>
6
7 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
8 partition number.
9 (grub_drive): Likewise.
10
234022fe 112009-04-13 David S. Miller <davem@davemloft.net>
12
13 * kern/sparc64/ieee1275/ieee1275.c: New file.
14 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
15 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
16 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
17 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
18 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
19 grub_ieee1275_alloc_physmem): Declare new exported functions.
20
d8e1836c 21 * include/grub/sparc64/ieee1275/loader.h: New file.
22 * include/grub/sparc64/ieee1275/memory.h: Likewise.
23 * include/grub/sparc64/kernel.h: Likewise.
24 * loader/sparc64/ieee1275/linux.c: Likewise.
25
56bc2471 262009-04-12 David S. Miller <davem@davemloft.net>
27
28 * kern/misc.c (grub_ltoa): Fix cast when handling negative
29 values. Noticed by Pavel Roskin.
30
df38d0bb 31 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
32 target compiler.
33
e382e93a 34 * genmk.rb: Add more flexible image type specification, also
35 pass --strip-unneeded to objcopy.
36 * conf/i386-pc.rmk: Use *_FORMAT.
37 * conf/i386-pc.mk: Rebuilt.
38
f5dbbca9 39 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
40 (OFDISK_HASH_SZ): Define.
41 (ofdisk_hash): New hash table.
42 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
43 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
44 instead of device phandle which is not unique.
45
91c88b12 46 * kern/sparc64/ieee1275/init.c: Delete, replace with...
47 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
48 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
49 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
50 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
51 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
52 GRUB_KERNEL_MACHINE_DATA_END): Define.
53 (grub_kernel_image_size, grub_total_module_size): Declare.
54
5b5d4aa5 552009-04-12 Pavel Roskin <proski@gnu.org>
56
57 * configure.ac: Change the logic when we check for target tools.
58 Do it when the target is specified and it's different from the
59 specified value of the host.
60
c91e1793 612009-04-11 Felix Zielcke <fzielcke@z-51.de>
62
63 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
64 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
65 GNU/kFreeBSD. Check if a device is a character device. Use
66 DIOCGMEDIASIZE to get the size.
67 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
68 support for GNU/kFreeBSD.
69 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
70 is a character device instead of a block device. Add support for
71 FreeBSD device names.
72
73 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
74 is a character device instead of a block device.
75
76 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
77 is a character device instead of a block device.
78
b1ac8644 792009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
80
81 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
82 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
83 FreeBSD. Check if a device is a character device. Use
84 DIOCGMEDIASIZE to get the size.
85 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
86 support for FreeBSD.
87 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
88 is a character device instead of a block device. Add support for
89 FreeBSD device names.
90
91 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
92 a character device instead of a block device.
93 (grub_util_check_char_device): New function.
94
95 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
96 a character device instead of a block device.
97
98 * include/grub/util/getroot.h (grub_util_check_char_device): New
99 prototype.
100
a3f7515a 1012009-04-11 David S. Miller <davem@davemloft.net>
102
103 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
104 static libgcc.
105 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
106 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
107 function, if present.
108 (__bswapdi2): Likewise.
109
0d44993d 110 * include/grub/sparc64/ieee1275/boot.h: New file.
111 * boot/sparc64/ieee1275/boot.S: Likewise.
112 * boot/sparc64/ieee1275/diskboot.S: Likewise.
113
ed3d2bc2 114 * kern/misc.c (grub_ltoa): New function.
115 (grub_vsprintf): Use it to format 'long' integers.
116
d3bfb59c 1172009-04-10 David S. Miller <davem@davemloft.net>
118
119 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
120 slots are of type grub_ieee1275_cell_t.
121 (grub_nand_read): Likewise.
122 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
123 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
124 macros are used to compare values in arg/ret block of the call.
125 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
126 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
127 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
128 grub_ieee1275_instance_to_path, grub_ieee1275_write,
129 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
130 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
131 grub_ieee1275_close, grub_ieee1275_set_property,
132 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
133 grub_ieee1275_cell_t.
134 * kern/ieee1275/openfw.c (grub_map): Likewise.
135 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
136 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
137
450e2238 138 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
139 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
140 (grub_devalias_iterate): Likewise.
141
6df8cc76 1422009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
143
144 UFS improvements
145
146 * fs/ufs.c (INODE_NBLOCKS): new definition
147 (struct grub_ufs_dirent): added fields for non-BSD dirents
148 (grub_ufs_get_file_block): fixed double indirect handling
149 (grub_ufs_lookup_symlink): use more robust way to determine whether
150 symlink is inline
151 (grub_ufs_find_file): support for non-BSD dirents
152 (grub_ufs_dir): support for non-BSD dirents
153
e7e6862a 1542009-04-10 Bean <bean123ch@gnail.com>
155
156 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
157 attribute, otherwise the size would be wrong for i386 platform.
158
159 * include/grub/pci.h (grub_pci_read_word): New inline function.
160 (grub_pci_read_byte): Likewise.
161 (grub_pci_write): Likewise.
162 (grub_pci_write_word): Likewise.
163 (grub_pci_write_byte): Likewise.
164
165 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
166
167 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
168 (find_framebuf): Scan pci to locate the frame buffer address.
169
170 * commands/efi/fixvideo.c: New file.
171
172 * commands/efi/loadbios.c: Likewise.
173
174 * commands/memrw.c: Likewise.
175
176 * util/grub-dumpbios.in: Likewise.
177
178 * conf/common.rmk (grub-dumpbios): New utility.
179 (pkglib_MODULES): New module memrw.mod.
180 (memrw_mod_SOURCE): New macro.
181 (memrw_mod_CFLAGS): Likewise.
182 (memrw_mod_LDFLAGS): Likewise.
183
184 * conf/i386-efi.rmk (pkglig_MODULES): New module loadbios.mod and
185 fixvideo.mod.
186 (loadbios_mod_SOURCE): New macro.
187 (loadbios_mod_CFLAGS): Likewise.
188 (loadbios_mod_LDFLAGS): Likewise.
189 (fixvideo_mod_SOURCE): Likewise.
190 (fixvideo_mod_CFLAGS): Likewise.
191 (fixvideo_mod_LDFLAGS): Likewise.
192
193 * conf/x86_64.rmk (pkglig_MODULES): New module loadbios.mod and
194 fixvideo.mod.
195 (loadbios_mod_SOURCE): New macro.
196 (loadbios_mod_CFLAGS): Likewise.
197 (loadbios_mod_LDFLAGS): Likewise.
198 (fixvideo_mod_SOURCE): Likewise.
199 (fixvideo_mod_CFLAGS): Likewise.
200 (fixvideo_mod_LDFLAGS): Likewise.
201
af63ada2 2022009-04-08 Felix Zielcke <fzielcke@z-51.de>
203
204 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
205
c2cdde70 2062009-04-07 David S. Miller <davem@davemloft.net>
207
208 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
209 support for R_SPARC_OLO10 relocations. Fix compile warning for
210 R_SPARC_WDISP30 case.
ea3f72cf 211 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 212
761319cf 2132009-04-06 Pavel Roskin <proski@gnu.org>
214
1007d1f5 215 * include/grub/misc.h (ARRAY_SIZE): New macro.
216 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
217 New macro.
218 * loader/i386/linux.c (allocate_pages): Use free_pages().
219 (grub_linux_unload): Don't use free_pages().
220 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
221 wrong index. Treat all other modes as text modes.
222 (grub_cmd_linux): Initialize vid_mode unconditionally to
223 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
224
761319cf 225 * commands/help.c (print_command_help): Use cmd->prio, not
226 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
227
ea761d40 2282009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
229
230 Parttool
231
232 * parttool/pcpart.c: new file
233 * commands/parttool.c: likewise
234 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
235 (parttool_mod_SOURCES): new variable
236 (parttool_mod_CFLAGS): likewise
237 (parttool_mod_LDFLAGS): likewise
238 (pcpart_mod_SOURCES): likewise
239 (pcpart_mod_CFLAGS): likewise
240 (pcpart_mod_LDFLAGS): likewise
241 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
242 and parttool/pcpart.c
243 * conf/i386-efi.rmk: likewise
244 * conf/i386-ieee1275.rmk: likewise
245 * conf/i386-pc.rmk: likewise
246 * conf/powerpc-ieee1275.rmk: likewise
247 * conf/sparc64-ieee1275.rmk: likewise
248 * conf/x86_64-ieee1275.rmk: likewise
249
05aaebfb 2502009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
251
252 Support for mtime and further expandability of dir command
253
254 * include/grub/lib/datetime.h: moved to ...
255 * include/grub/datetime.h: ... moved here and added
256 declaration of grub_unixtime2datetime. All users updated
257 * include/grub/fs.h: new syntax for dir and mtime functionin
258 struct grub_fs
259 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
260 and GRUB_FSHELP_FLAGS_MASK
261 * commands/ls.c (grub_ls_list_files): Write mtime in long format
262 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
263 (grub_ext2_mtime): new function
264 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
265 (grub_hfsplus_mtime): new function
266 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
267 (GRUB_UFS_ATTR_FILE): likewise
268 (GRUB_UFS_ATTR_LNK): likewise
269 (struct grub_ufs_sblock): new fields mtime
270 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
271 all users updated
272 (grub_ufs_dir): mtime support
273 (grub_ufs_mtime): new function
274 * fs/affs.c (grub_affs_dir): use new dir syntax
275 * fs/afs.c (grub_afs_dir): likewise
276 * fs/cpio.c (grub_cpio_dir): likewise
277 * fs/fat.c (grub_fat_find_dir): likewise
278 * fs/hfs.c (grub_hfs_dir): likewise
279 * fs/iso9660.c (grub_iso9660_dir): likewise
280 * fs/jfs.c (grub_jfs_dir): likewise
281 * fs/minix.c (grub_minix_dir): likewise
282 * fs/ntfs.c (grub_ntfs_dir): likewise
283 * fs/reiserfs.c (grub_reiserfs_dir): likewise
284 * fs/sfs.c (grub_sfs_dir): likewise
285 * fs/xfs.c (grub_xfs_dir): likewise
286 * util/hostfs.c (grub_hostfs_dir): likewise
287 * lib/datetime.c: moved to ...
288 * normal/datetime.c: ... moved here
289 (grub_unixtime2datetime): new function
290 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
291 * normal/completition.c (iterate_dir): use new dir syntax
292 * normal/misc.c (grub_normal_print_device_info): tell the
293 last modification time of a volume
294 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
295 * conf/common.rmk: added lib/datetime.c to ls.mod
296 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
297 (normal_mod_SOURCES): likewise
298 (datetime_mod_SOURCES): Removed lib/datetime.c
299 * conf/i386-efi.rmk: likewise
300 * conf/i386-ieee1275.rmk: likewise
301 * conf/i386-pc.rmk: likewise
302 * conf/powerpc-ieee1275.rmk: likewise
303 * conf/sparc64-ieee1275.rmk: likewise
304 * conf/x86_64-efi.rmk: likewise
305
8a7e1a14 3062009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
307
308 Trim trailing spaces in FAT label and support mtools-like labels
309
310 * fs/fat.c (grub_fat_iterate_dir): New function based
311 on grub_fat_find_dir
312 (grub_fat_find_dir): use grub_fat_iterate_dir
313 (grub_fat_label): likewise
314
04186a9c 3152009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
316
317 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
318 and command.h
319 remove extraneous kernel_elf_HEADERS
320
da4c0bb6 3212009-04-04 Bean <bean123ch@gnail.com>
322
323 * include/grub/util/misc.h: Add dummy function fsync for mingw.
324
325 * util/misc.c: Likewise.
326
54ad9555 3272009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
328
329 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
330 instead of grub_printf.
331
7a6bf9f2 3322009-04-03 Robert Millan <rmh@aybabtu.com>
333
334 * loader/i386/linux.c (grub_linux_setup_video): Fill
335 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
336 values from `mode info' structure instead of hardcoded
337 values.
338
3fcc2083 3392009-04-01 Pavel Roskin <proski@gnu.org>
340
341 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
342 unused now.
343 * genmk.rb: Likewise.
344 * configure.ac: Likewise.
345
5ec9740b 3462009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
347
348 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
349 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
350
5270cec8 3512009-04-01 David S. Miller <davem@davemloft.net>
352
353 * normal/sparc64/setjmp.S: Fix setjmp implementation.
354 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
355 (grub_setjmp): Mark with 'returns_twice' attribute.
356 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
357 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
358 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
359
9c3dd854 3602009-04-01 Robert Millan <rmh@aybabtu.com>
361
362 Reapply fix from 2008-07-28 which was accidentally reverted; also
363 perform the same fix to a similar check in same function.
364
365 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
366 with the same number are found, just use issue a warning with
367 grub_dprintf(), as this error has been reported to be non-fatal.
368
0d818b7e 3692009-03-31 Pavel Roskin <proski@gnu.org>
370
371 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
372 for cross-compilation.
373
95646d92 3742009-03-30 Robert Millan <rmh@aybabtu.com>
375
376 Fix i386-ieee1275 build.
377
378 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
379 Remove declaration.
380
6a003ed1 3812009-03-30 Pavel Roskin <proski@gnu.org>
382
383 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
384 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
385 zero-terminated, rely only on the strlen value. Fix comparison
386 of strings differing in length.
387
92f33540 3882009-03-30 Robert Millan <rmh@aybabtu.com>
389
390 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
391 checking for abi version. Improve error messages on BIOS to notify
392 user about `linux16' command.
393
a8c48fd5 3942009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
395
f968172e 396 Leak fixes
a8c48fd5 397
f968172e 398 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
399 in case of collision
400 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 401
9c323f09 4022009-03-29 Robert Millan <rmh@aybabtu.com>
403
404 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
405 set `vid_mode' accordingly.
406 (grub_linux_boot): Process `vid_mode' and set video mode.
407
ae68f423 4082009-03-29 Robert Millan <rmh@aybabtu.com>
409
410 * util/grub.d/10_linux.in (linux_entry): New function.
411 Factorize generation of Linux boot entries.
412
5709cfc4 4132009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
414
415 Make the format of Environment Block plain text. The boot loader
416 part is not tested well yet.
417
418 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
419 (buffer): Removed.
420 (envblk): Likewise.
421 (usage): Remove "info" and "clear". Add "unset". Update the
422 description of "set", as this does not delete variables any
423 longer.
424 (create_envblk_file): Complete rewrite.
425 (open_envblk_file): Likewise.
426 (cmd_info): Removed.
427 (cmd_list): Likewise.
428 (cmd_set): Likewise.
429 (cmd_clear): Likewise.
430 (list_variables): New function.
431 (write_envblk): Likewise.
432 (set_variables): Likewise.
433 (unset_variables): Likewise.
434 (main): Complete rewrite.
435
436 * commands/loadenv.c (buffer): Removed.
437 (envblk): Likewise.
438 (open_envblk_file): New function.
439 (read_envblk_file): Complete rewrite.
440 (grub_cmd_load_env): Likewise.
441 (grub_cmd_list_env): Likewise.
442 (struct blocklist): New struct.
443 (free_blocklists): New function.
444 (check_blocklists): Likewise.
445 (write_blocklists): Likewise.
446 (grub_cmd_save_env): Complete rewrite.
447
448 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
449 a plain text signature.
450 (GRUB_ENVBLK_MAXLEN): Removed.
451 (struct grub_envblk): Complete rewrite.
452 (grub_envblk_find): Removed.
453 (grub_envblk_insert): Likewise.
454 (grub_envblk_open): New prototype.
455 (grub_envblk_set): Likewise.
456 (grub_envblk_delete): Put const to VALUE.
457 (grub_envblk_iterate): Put const to NAME and VALUE.
458 (grub_envblk_close): New prototype.
459 (grub_envblk_buffer): New inline function.
460 (grub_envblk_size): Likewise.
461
462 * lib/envblk.c: Include grub/mm.h.
463 (grub_env_find): Removed.
464 (grub_envblk_open): New function.
465 (grub_envblk_close): Likewise.
466 (escaped_value_len): Likewise.
467 (find_next_line): Likewise.
468 (grub_envblk_insert): Removed.
469 (grub_envblk_set): New function.
470 (grub_envblk_delete): Complete rewrite.
471 (grub_envblk_iterate): Likewise.
472
a9368fd3 4732009-03-28 Robert Millan <rmh@aybabtu.com>
474
475 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
476 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
477 variables. Use 16-bit loader.
478 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
479 loader.
480 * kern/i386/loader.S (grub_linux_boot): Rename to ...
481 (grub_linux16_boot): ... this. Update all users.
482 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
483 (grub_linux_boot): ... this. Update all users.
484
485 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
486 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
487 commands to `linux16' and `initrd16'.
488 (GRUB_MOD_FINI(linux)): Rename to ...
489 (GRUB_MOD_FINI(linux16)): ... this.
490
e4dd5a7e 4912009-03-24 Pavel Roskin <proski@gnu.org>
492
493 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
494 not just for compilation.
495
c04d6e05 4962009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
497
498 Move multiboot helper out of kernel
499
500 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
501 `loader/i386/multiboot_helper.S'.
502 * conf/i386-coreboot.rmk: Likewise
503 * conf/i386-ieee1275.rmk: Likewise
504
505 * kern/i386/loader.S: Move multiboot helpers from here...
506 * loader/i386/multiboot_helper.S: ...moved here
507 * include/grub/i386/loader.h: Move declarations of multiboot
508 helpers from here...
509 * include/grub/i386/multiboot.h: ...moved here
510 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
511
42a5b3fc 5122009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
513
514 * kern/env.c (grub_env_context_open): Added an argument to specify
515 whether a new context inherits exported variables from current
516 one. This is useful when making a sandbox to interpret a config
517 file.
518 All callers updated.
519
520 * include/grub/env.h (grub_env_context_open): Updated the prototype.
521
b28bbc4e 5222009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
523
524 * kern/env.c (grub_env_context_close): Fix memory leaks.
525
f04f02e4 5262009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
527
528 * normal/main.c (grub_normal_execute): Added an argument
529 BATCH to specify if an interactive interface should be provided
530 after reading a config file.
531 All callers updated.
532 (read_command_list): Prevent being executed twice.
533 (read_fs_list): Likewise.
534
42a5b3fc 535 * include/grub/normal.h (grub_normal_execute): Updated the
536 prototype.
f04f02e4 537
41473ac2 5382009-03-22 Pavel Roskin <proski@gno.org>
539
fbc00b0c 540 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
541 _start.
542 * kern/i386/pc/startup.S: Likewise.
543 * kern/i386/efi/startup.S: Likewise.
544 * kern/i386/ieee1275/startup.S: Likewise.
545 * kern/i386/coreboot/startup.S: Likewise.
546 * kern/x86_64/efi/startup.S: Likewise.
547
41473ac2 548 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
549 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
550 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
551
2274cc8f 5522009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
553
554 Bugfixes in multiboot for bugs uncovered by solaris kernel.
555
556 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
557 limit detection.
558 Use vaddr of correct segment for entry_point.
559
b1b797cb 5602009-03-21 Bean <bean123ch@gmail.com>
561
562 * commands/blocklist.c: Add include file <grub/command.h>, remove
563 <grub/normal.h> and <grub/arg.h>.
564 (grub_cmd_blocklist): Use the new command interface.
565 (GRUB_MOD_INIT): Likewise.
566 (GRUB_MOD_FINI): Likewise.
567 * commands/boot.c: Likewise.
568 * commands/cat.c: Likewise.
569 * commands/cmp.c: Likewise.
570 * commands/configfile.c: Likewise.
571 * commands/crc.c: Likewise.
572 * commands/echo.c: Likewise.
573 * commands/halt.c: Likewise.
574 * commands/handler.c: Likewise.
575 * commands/hdparm.c: Likewise.
576 * commands/help.c: Likewise.
577 * commands/hexdump.c: Likewise.
578 * commands/loadenv.c: Likewise.
579 * commands/ls.c: Likewise.
580 * commands/lsmmap.c: Likewise.
581 * commands/lspci.c: Likewise.
582 * commands/loadenv.c: Likewise.
583 * commands/read.c: Likewise.
584 * commands/reboot.c: Likewise.
585 * commands/search.c: Likewise.
586 * commands/sleep.c: Likewise.
587 * commands/test.c: Likewise.
588 * commands/usbtest.c: Likewise.
589 * commands/videotest.c: Likewise.
590 * commands/i386/cpuid.c: Likewise.
591 * commands/i386/pc/halt.c: Likewise.
592 * commands/i386/pc/play.c: Likewise.
593 * commands/i386/pc/pxecmd.c: Likewise.
594 * commands/i386/pc/vbeinfo.c: Likewise.
595 * commands/i386/pc/vbetest.c: Likewise.
596 * commands/ieee1275/suspend.c: Likewise.
597 * disk/loopback.c: Likewise.
598 * font/font_cmd.c: Likewise.
599 * hello/hello.c: Likewise.
600 * loader/efi/appleloader.c: Likewise.
601 * loader/efi/chainloader.c: Likewise.
602 * loader/i386/bsd.c: Likewise.
603 * loader/i386/efi/linux.c: Likewise.
604 * loader/i386/ieee1275/linux.c: Likewise.
605 * loader/i386/linux.c: Likewise.
606 * loader/i386/pc/chainloader.c: Likewise.
607 * loader/i386/pc/linux.c: Likewise.
608 * loader/powerpc/ieee1275/linux.c: Likewise.
609 * loader/multiboot_loader.c: Likewise.
610 * term/gfxterm.c: Likewise.
611 * term/i386/pc/serial.c: Likewise.
612 * term/terminfo.c: Likewise.
613
614 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
615 * term/i386/pc/vga.c: Likewise.
616 * video/readers/jpeg.c: Likewise.
617 * video/readers/png.c: Likewise.
618 * video/readers/tga.c: Likewise.
619
620 * util/grub-fstest (cmd_loopback): Removed.
621 (cmd_blocklist): Likewise.
622 (cmd_ls): Likewise.
623 (grub_register_command): Likewise.
624 (grub_unregister_command): Likewise.
625 (execute_command): Use grub_command_find to locate command and execute
626 it.
627
628 * include/grub/efi/chainloader.h: Removed.
629 * loader/efi/chainloader_normal.c: Likewise.
630 * loader/i386/bsd_normal.c: Likewise.
631 * loader/i386/pc/chainloader_normal.c: Likewise.
632 * loader/i386/pc/multiboot_normal.c: Likewise.
633 * loader/linux_normal.c: Likewise.
634 * loader/multiboot_loader_normal.c: Likewise.
635 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
636
637 * gencmdlist.sh: Scan new registration command grub_register_extcmd
638 and grub_register_command_p1.
639
640 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
641 kern/command.c, lib/arg.c and commands/extcmd.c.
642 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
643 (minicmd_mod_SOURCES): New variable.
644 (minicmd_mod_CFLAGS): Likewise.
645 (minicmd_mod_LDFLAGS): Likewise.
646 (extcmd_mod_SOURCES): Likewise.
647 (extcmd_mod_CFLAGS): Likewise.
648 (extcmd_mod_LDFLAGS): Likewise.
649 (boot_mod_SOURCES): Removed.
650 (boot_mod_CFLAGS): Likewise.
651 (boot_mod_LDFLAGS): Likewise.
652
653 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
654 kern/corecmd.c.
655 (kernel_img_HEADERS): Add command.h.
656 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
657 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
658 and lib/arg.c.
659 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
660 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
661 remove the corresponding normal mode command.
662 (normal_mod_SOURCES): Remove normal/arg.c.
663 * conf/i386-coreboot.rmk: Likewise.
664 * conf/i386-efi.rmk: Likewise.
665 * conf/i386-ieee1275.rmk: Likewise.
666 * conf/powerpc-ieee1275.rmk: Likewise.
667 * conf/x86_64-efi.rmk: Likewise.
668
669 * include/grub/arg.h: Move from here ...
670 * include/grub/lib/arg.h: ... to here.
671
672 * normal/arg.c: Move from here ...
673 * lib/arg.c: ... to here.
674
675 * commands/extcmd.c: New file.
676 * commands/minicmd.c: Likewise.
677 * include/grub/command.h: Likewise.
678 * include/grub/extcmd.h: Likewise.
679 * kern/command.c: Likewise.
680 * kern/corecmd.c: Likewise.
681
682 * kern/list.c (grub_list_iterate): Return int instead of void.
683 (grub_list_insert): New function.
684 (grub_prio_list_insert): Likewise.
685
686 * kern/rescue.c (grub_rescue_command): Removed.
687 (grub_rescue_command_list): Likewise.
688 (grub_rescue_register_command): Likewise.
689 (grub_rescue_unregister_command): Likewise.
690 (grub_rescue_cmd_boot): Move to minicmd.c
691 (grub_rescue_cmd_help): Likewise.
692 (grub_rescue_cmd_info): Likewise.
693 (grub_rescue_cmd_boot): Likewise.
694 (grub_rescue_cmd_testload): Likewise.
695 (grub_rescue_cmd_dump): Likewise.
696 (grub_rescue_cmd_rmmod): Likewise.
697 (grub_rescue_cmd_lsmod): Likewise.
698 (grub_rescue_cmd_exit): Likewise.
699 (grub_rescue_print_devices): Moved to corecmd.c.
700 (grub_rescue_print_files): Likewise.
701 (grub_rescue_cmd_ls): Likewise.
702 (grub_rescue_cmd_insmod): Likewise.
703 (grub_rescue_cmd_set): Likewise.
704 (grub_rescue_cmd_unset): Likewise.
7d074e3c 705 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 706 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 707 commands, remove grub_rescue_register_command calls.
b1b797cb 708
7d074e3c 709 * normal/command.c (grub_register_command): Removed.
b1b797cb 710 (grub_unregister_command): Likewise.
711 (grub_command_find): Likewise.
712 (grub_iterate_commands): Likewise.
713 (rescue_command): Likewise.
714 (export_command): Moved to corecmd.c.
715 (set_command): Removed.
716 (unset_command): Likewise.
717 (insmod_command): Likewise.
718 (rmmod_command): Likewise.
719 (lsmod_command): Likewise.
720 (grub_command_init): Likewise.
721
722 * normal/completion.c (iterate_command): Use cmd->prio to check for
723 active command.
724 (complete_arguments): Use grub_extcmd_t structure to find options.
725 (grub_normal_do_completion): Change function grub_iterate_commands to
726 grub_command_iterate.
727
728 * normal/execute.c (grub_script_execute_cmd): No need to parse
729 argument here.
730
731 * normal/main.c (grub_dyncmd_dispatcher): New function.
732 (read_command_list): Register unload commands as dyncmd.
733 (grub_cmd_normal): Use new command interface, register rescue,
734 unregister normal at entry, register normal, unregister rescue at exit.
735
736 * include/grub/list.h (grub_list_test_t): New type.
737 (grub_list_iterate): Return int instead of void.
738 (grub_list_insert): New function.
739 (GRUB_AS_NAMED_LIST_P): New macro.
740 (GRUB_AS_PRIO_LIST): Likewise.
741 (GRUB_AS_PRIO_LIST_P): Likewise.
742 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
743 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
744 (grub_prio_list): New structure.
745 (grub_prio_list_insert): New function.
746 (grub_prio_list_remove): New inline function.
747
748 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
749 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
750 (GRUB_COMMAND_FLAG_MENU): Likewise.
751 (GRUB_COMMAND_FLAG_BOTH): Likewise.
752 (GRUB_COMMAND_FLAG_TITLE): Likewise.
753 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
754 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
755 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
756 (grub_command): Likewise.
757 (grub_register_command): Likewise.
758 (grub_command_find): Likewise.
759 (grub_iterate_commands): Likewise.
760 (grub_command_init): Likewise.
761 (grub_arg_parse): Likewise.
762 (grub_arg_show_help): Likewise.
763
764 * include/grub/rescue.h (grub_rescue_register_command): Removed.
765 (grub_rescue_unregister_command): Likewise.
766
767 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
768 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
769 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
770
771 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
772 grub_rescue_cmd_initrd.
773 * include/grub/i386/loader.h: Likewise.
774 * include/grub/x86_64/loader.h: Likewise.
775
776 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
777
1f4147aa 7782009-03-21 Bean <bean123ch@gmail.com>
779
780 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
781 instead of stat in mingw environment.
782
783 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
784
785 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
786
787 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
788 AC_CONFIG_LINKS.
789
2156d5ba 7902009-03-21 Bean <bean123ch@gmail.com>
791
792 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
793 out of range error.
794
177b82ca 7952009-03-18 Michel Dänzer <michel@daenzer.net>
796
797 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
798 checking inode flags for EXT4_EXTENTS_FLAG.
799
14aad807 8002009-03-18 Robert Millan <rmh@aybabtu.com>
801
802 * loader/i386/linux.c: Include `<grub/video.h>' and
803 `<grub/i386/pc/vbe.h>'..
804 (grub_linux_setup_video): New function. Loosely based on the EFI one.
805 (grub_linux32_boot): Attempt to configure video settings with
806 grub_linux_setup_video().
807 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
808 to avoid grub_console_fini() which would step out of graphical mode
809 unconditionally.
810
8cf83a27 8112009-03-14 Robert Millan <rmh@aybabtu.com>
812
813 Fix build on powerpc.
814 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
815
40164e75 8162009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
817
818 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
819 background image command.
820
c58bc32a 8212009-03-12 Colin D Bennett <colin@gibibit.com>
822
823 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
824 (grub_gfxterm_putchar): Extract pairs of identical calls to
825 draw_cursor out of conditional blocks.
826
5415144a 8272009-03-11 Pavel Roskin <proski@gnu.org>
828
829 * fs/hfs.c (grub_hfs_strncasecmp): New function.
830 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
831
6394042e 8322009-03-11 Robert Millan <rmh@aybabtu.com>
833
834 * loader/i386/multiboot_elfxx.c
835 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
836
b7b50e5f 8372009-03-11 Felix Zielcke <fzielcke@z-51.de>
838
839 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
840 `kern/handler.c'.
841
1ca7fc96 8422009-03-11 Robert Millan <rmh@aybabtu.com>
843
844 * loader/i386/multiboot.c (code_size): New variable.
845 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 846 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 847 4-byte alignment to MBI and others by increasing
7d074e3c 848 `boot_loader_name_length' appropriately.
1ca7fc96 849
850 * loader/i386/multiboot_elfxx.c
851 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
852
a83ea1d2 8532009-03-09 Felix Zielcke <fzielcke@z-51.de>
854
855 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
856 `fs/ext2.c'.
857
aa9f3bff 8582009-03-08 Robert Millan <rmh@aybabtu.com>
859
860 Make loader/i386/linux.c usable on i386-pc again.
861
862 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
863 memory to heap.
864 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
865 `#error' stanza.
866
d8b3b60e 8672009-03-07 Bean <bean123ch@gmail.com>
868
869 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
870 allocation.
871
b362c9e9 8722009-03-06 Robert Millan <rmh@aybabtu.com>
873
874 Fix display issue on terminals with screen size other than 80x25
875 (e.g. gfxterm with resolution higher than 640x480).
876
877 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 878 position relative to the center of the terminal instead of relying
b362c9e9 879 on a hardcoded offset.
880
9304eef1 8812009-03-04 Robert Millan <rmh@aybabtu.com>
882
883 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
884 installed.
885
886 * Makefile.in (host_kernel): New variable.
887 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
888 scripts instead of just the windows one.
889 * configure.ac: Initialize and AC_SUBST `host_kernel'.
890
eabc95fb 8912009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 892
893 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
894 `kern/handler.c'.
895 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
896 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
897 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
898 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
899 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
900 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
901
ceb1223c 9022009-03-04 Felix Zielcke <fzielcke@z-51.de>
903
904 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
905 or if there's no space for the disk label and print the partition number on a
906 invalid magic.
907
4910684a 9082009-03-04 Felix Zielcke <fzielcke@z-51.de>
909
910 * util/misc.c: Include <time.h>.
911 (grub_millisleep): New function.
912
7e9ca17a 9132009-03-04 Bean <bean123ch@gmail.com>
914
915 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
916 another option -mno-red-zone.
917
918 * commands/handler.c: Change module description.
919
920 * kern/handler.c: Add missing space at the end of description line.
921
922 * kern/list.c: Likewise.
923
f501677c 9242009-03-03 Robert Millan <rmh@aybabtu.com>
925
926 Move more components to the relocation area, and fix mbi pointer
927 handling to use the destination rather than the origin (thanks to
928 Vladimir Serbinenko for spotting).
929
930 * loader/i386/multiboot.c (mbi_dest): New variable.
931 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
932 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
933 relocation area.
934
9902d047 9352009-03-01 Bean <bean123ch@gmail.com>
936
50fb7002 937 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 938 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
939 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
940 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
941
942 * loader/i386/efi/linux.c (acpi_guid): New variable.
943 (acpi_guid): Likewise.
944 (EBDA_SEG_ADDR): New constant.
945 (LOW_MEM_ADDR): Likewise.
946 (FAKE_EBDA_SEG): Likewise.
947 (fake_bios_data): New function.
948 (grub_linux_boot): Call fake_bios_data.
949
71b9f361 9502009-03-01 Bean <bean123ch@gmail.com>
951
952 * commands/terminal.c: Removed.
953
954 * commands/handler.c: New file.
955
956 * include/grub/list.h: Likewise.
957
958 * include/grub/handler.h: Likewise.
959
960 * kern/list.c: Likewise.
961
962 * kern/handler.c: Likewise.
963
964 * kern/term.h: Include header file <grub/handler.h>.
965 (grub_term_input): Move next field to the beginning.
966 (grub_term_output): Likewise.
967 (grub_term_input_class): New variable.
968 (grub_term_output_class): Likewise.
969 (grub_term_register_input): Changed to inline function.
970 (grub_term_register_output): Likewise.
971 (grub_term_unregister_input): Likewise.
972 (grub_term_unregister_output): Likewise.
973 (grub_term_set_current_input): Likewise.
974 (grub_term_set_current_output): Likewise.
975 (grub_term_get_current_input): Likewise.
976 (grub_term_get_current_output): Likewise.
977 (grub_term_iterate_input): Removed.
978 (grub_term_iterate_output): Likewise.
979
980 * kern/term.c (grub_term_list_input): Removed.
981 (grub_term_list_output): Likewise.
982 (grub_term_input_class): New variable.
983 (grub_term_output_class): Likewise.
50fb7002 984 (grub_cur_term_input): Change variable as macro.
71b9f361 985 (grub_cur_term_output): Likewise.
986 (grub_term_register_input): Removed.
987 (grub_term_register_output): Likewise.
988 (grub_term_unregister_input): Likewise.
989 (grub_term_unregister_output): Likewise.
990 (grub_term_set_current_input): Likewise.
991 (grub_term_set_current_output): Likewise.
992 (grub_term_iterate_input): Likewise.
993 (grub_term_iterate_output): Likewise.
994 (grub_term_get_current_input): Likewise.
995 (grub_term_get_current_output): Likewise.
996
997 * util/grub-editenv.c: Include header file <grub/handler.h>.
998 (grub_term_get_current_input): Removed.
999 (grub_term_get_current_output): Likewise.
1000 (grub_term_input_class): New variable.
50fb7002 1001 (grub_term_output_class): Likewise.
71b9f361 1002
1003 * util/grub-fstest.c (grub_term_get_current_input): Removed.
1004 (grub_term_get_current_output): Likewise.
1005 (grub_term_input_class): New variable.
50fb7002 1006 (grub_term_output_class): Likewise.
71b9f361 1007
1008 * util/grub-probe.c (grub_term_get_current_input): Removed.
1009 (grub_term_get_current_output): Likewise.
1010 (grub_term_input_class): New variable.
50fb7002 1011 (grub_term_output_class): Likewise.
71b9f361 1012
1013 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
1014 (grub_term_get_current_output): Likewise.
1015 (grub_term_input_class): New variable.
50fb7002 1016 (grub_term_output_class): Likewise.
71b9f361 1017
1018 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
1019 (terminal_mod_SOURCES): Likewise.
1020 (terminal_mod_CFLAGS): Likewise.
1021 (terminal_mod_LDFLAGS): Likewise.
1022
1023 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
1024 handler.c.
1025 (kernel_img_SOURCES): Add list.c and handler.c.
1026 (kernel_img_HEADERS): Add list.h and handler.h.
1027
1028 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1029 handler.c.
1030 (kernel_mod_SOURCES): Add list.c and handler.c.
1031 (kernel_mod_HEADERS): Add list.h and handler.h.
1032
1033 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
1034 handler.c.
1035 (kernel_elf_SOURCES): Add list.c and handler.c.
1036 (kernel_elf_HEADERS): Add list.h and handler.h.
1037
1038 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1039 handler.c.
1040 (kernel_elf_SOURCES): Add list.c and handler.c.
1041 (kernel_elf_HEADERS): Add list.h and handler.h.
1042
1043 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1044 handler.c.
1045 (kernel_mod_SOURCES): Add list.c and handler.c.
1046 (kernel_mod_HEADERS): Add list.h and handler.h.
1047
1048 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1049 handler.c.
1050 (kernel_elf_SOURCES): Add list.c and handler.c.
1051 (kernel_elf_HEADERS): Add list.h and handler.h.
1052
8a31787f 10532009-02-27 Robert Millan <rmh@aybabtu.com>
1054
1055 Factorize elf32 / elf64 code in Multiboot loader. This will
1056 prevent it from getting out of sync again.
1057
1058 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
1059 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
1060 grub_multiboot_load_elf64): Move from here ...
1061 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
1062 grub_multiboot_load_elf): ... to here (new file).
1063
51cd3dfc 10642009-02-27 Robert Millan <rmh@aybabtu.com>
1065
1066 * util/grub.d/10_linux.in: Rename "single-user mode" to
1067 "recovery mode".
1068
6e8c9c3a 10692009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
1070
1071 Don't leak in SCSI code.
1072 * disk/scsi.c (grub_scsi_close): free `scsi'.
1073
4b6bf4f9 10742009-02-27 Robert Millan <rmh@aybabtu.com>
1075
1076 * loader/i386/pc/multiboot.c: Move from here ...
1077 * loader/i386/multiboot.c: ... to here. Update all users.
1078
b9413424 10792009-02-27 Robert Millan <rmh@aybabtu.com>
1080
1081 Patch from Alexandre Bique <bique.alexandre@gmail.com>
1082 * util/i386/pc/grub-setup.c (setup): Fix directory path.
1083
50fb7002 10842009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 1085
1086 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
1087 b-tree.
1088
8cc50345 10892009-02-27 Robert Millan <rmh@aybabtu.com>
1090
1091 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
1092 `0x' qualifier as 0 when base is specified as parameter).
1093
6e09b8b7 10942009-02-24 Bean <bean123ch@gmail.com>
1095
1096 * configure.ac: Check for -mcmodel=large in x86_64 target.
1097
1098 * include/grub/efi/api.h (efi_call_10): New macro.
1099 (efi_wrap_10): New function.
1100
1101 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
1102 (GRUB_PE32_REL_BASED_HIGH): Likewise.
1103 (GRUB_PE32_REL_BASED_LOW): Likewise.
1104 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
1105 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
1106 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
1107 (GRUB_PE32_REL_BASED_SECTION): Likewise.
1108 (GRUB_PE32_REL_BASED_REL): Likewise.
1109 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
1110 (GRUB_PE32_REL_BASED_DIR64): Likewise.
1111 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
1112
1113 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
1114 issue.
1115
1116 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
1117 (efi_wrap_10): New function.
1118
1119 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
1120
1121 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
1122 MB/MBP model (NV chipset).
1123 (devdata_devs): Add devpath_5 to the list.
1124
1125 * load/i386/efi/linux.c (video_base): Remove variable.
1126 (RGB_MASK): New macro.
1127 (RGB_MAGIC): Likewise.
1128 (LINE_MIN): Likewise.
1129 (LINE_MAX): Likewise.
1130 (FBTEST_STEP): Likewise.
1131 (FBTEST_COUNT): Likewise.
1132 (fb_list): New variable.
1133 (grub_find_video_card): Remove function.
1134 (find_framebuf): New function.
1135 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
1136 line length.
1137
1138 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
1139 problem for x86_64.
1140
74b21bee 11412009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
1142
1143 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
1144
1145 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
1146 coding tool name.
1147
a455f472 11482009-02-22 Robert Millan <rmh@aybabtu.com>
1149
1150 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
1151 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
1152 in our relocation, instead of using it directly from heap. Also
1153 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
1154
6374daf3 11552009-02-21 Robert Millan <rmh@aybabtu.com>
1156
1157 Implement USB keyboard support (based on patch by Marco Gerards)
1158
1159 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
1160 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
1161 (usb_keyboard_mod_LDFLAGS): New variables.
1162
1163 * term/usb_keyboard.c: New file.
1164
8fa4ea70 11652009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
1166
1167 Corrected wrong declaration
1168
1169 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
1170
353976ac 11712009-02-14 Christian Franke <franke@computer.org>
1172
1173 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
1174 (grub_lspci_iter): Print class code and programming interface byte.
1175
6aa1169b 11762009-02-14 Christian Franke <franke@computer.org>
1177
1178 * gendistlist.sh: Ignore `.svn' directories.
1179
265372ca 11802009-02-14 Felix Zielcke <fzielcke@z-51.de>
1181
1182 * fs/fat.c: Add 2009 to Copyright line.
1183
9ff516f3 11842009-02-14 Christian Franke <franke@computer.org>
1185
1186 * commands/hdparm.c: New file. Provides `hdparm' command
1187 which sends ATA commands via grub_disk_ata_pass_through ().
1188
1189 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
1190
1191 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
1192 and <grub/cpu/io.h> to include/grub/ata.h.
1193 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
1194 (GRUB_CDROM_SECTOR_SIZE): Remove.
1195 (GRUB_ATA_*): Move to include/grub/ata.h.
1196 (GRUB_ATAPI_*): Likewise.
1197 (enum grub_ata_commands): Likewise.
1198 (enum grub_ata_timeout_milliseconds): Likewise.
1199 (struct grub_ata_device): Likewise.
1200 (grub_ata_regset): Likewise.
1201 (grub_ata_regget): Likewise.
1202 (grub_ata_regset2): Likewise.
1203 (grub_ata_regget2): Likewise.
1204 (grub_ata_check_ready): Likewise.
1205 (grub_ata_wait_not_busy): Remove static, exported in
1206 include/grub/ata.h.
1207 (grub_ata_wait_drq): Likewise.
1208 (grub_ata_pio_read): Likewise.
1209
1210 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
1211 function for hdparm.mod.
1212
1213 * include/grub/ata.h: New file, contains declarations from
1214 disk/ata.c.
1215 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
1216
1217 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
1218 (grub_disk_ata_pass_through): New exported variable.
1219
1220 * kern/disk.c (grub_disk_ata_pass_through): New variable.
1221
772e23da 12222009-02-13 Colin D Bennett <colin@gibibit.com>
1223
1224 Support multiple fallback entries, and provide an API to support
1225 executing default+fallback menu entries. Renamed the `terminal' menu
1226 viewer to `text'.
1227
1228 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
1229 variable declaration.
1230 (grub_menu_execute_callback): New structure declaration.
1231 (grub_menu_execute_callback_t): New typedef.
1232 (grub_menu_execute_with_fallback): New function declaration.
1233 (grub_menu_get_entry): Likewise.
1234 (grub_menu_get_timeout): Likewise.
1235 (grub_menu_set_timeout): Likewise.
1236
1237 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
1238
1239 * normal/menu.c (grub_wait_after_message): Moved to
1240 `normal/menu_text.c'.
1241 (draw_border): Likewise.
1242 (print_message): Likewise.
1243 (print_entry): Likewise.
1244 (print_entries): Likewise.
1245 (grub_menu_init_page): Likewise.
1246 (get_entry_number): Likewise.
1247 (print_timeout): Likewise.
1248 (run_menu): Likewise.
1249 (grub_menu_execute_entry): Likewise.
1250 (show_text_menu): Likewise.
1251 (get_and_remove_first_entry_number): New function.
1252 (grub_menu_execute_with_fallback): Likewise.
1253 (get_entry): Renamed to ...
1254 (grub_menu_get_entry): .. this and made it global.
1255 (get_timeout): Renamed to ...
1256 (grub_menu_get_timeout): ... this and made it global.
1257 (set_timeout): Renamed to ...
1258 (grub_menu_set_timeout): ... this and made it global.
1259 (grub_normal_terminal_menu_viewer): Renamed to ...
1260 (grub_normal_text_menu_viewer): ... this.
1261
1262 * normal/menu_text.c: New file. Extracted text-menu-specific code
1263 from normal/menu.c.
1264
1265 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
1266 (normal_mod_SOURCES): Likewise.
1267
1268 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1269 (normal_mod_SOURCES): Likewise.
1270
1271 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1272 (normal_mod_SOURCES): Likewise.
1273
1274 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
1275 (normal_mod_SOURCES): Likewise.
1276
1277 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1278 (normal_mod_SOURCES): Likewise.
1279
1280 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1281 (normal_mod_SOURCES): Likewise.
1282
1283 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1284 (normal_mod_SOURCES): Likewise.
1285
16ac430e 12862009-02-11 Robert Millan <rmh@aybabtu.com>
1287
1288 * util/grub.d/00_header.in: Update old reference to `font' command.
1289
06ff20fc 12902009-02-10 Felix Zielcke <fzielcke@z-51.de>
1291
1292 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
1293
1294 Based on patch from Javier Martín.
1295
96da9407 12962009-02-09 Felix Zielcke <fzielcke@z-51.de>
1297
1298 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 1299 to avoid false positives with FAT.
96da9407 1300 (grub_fstest_SOURCES): Likewise.
1301 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1302 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1303 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1304 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1305 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1306 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1307
6dca6fe4 13082009-02-09 Felix Zielcke <fzielcke@z-51.de>
1309
06ff20fc 1310 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 1311 bpb.version_specific.fat12_or_fat16.fstype and
1312 bpb.version_specific.fat32.fstype.
1313
2550c62f 13142009-02-08 Robert Millan <rmh@aybabtu.com>
1315
be110b30 1316 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 1317
56978920 13182009-02-08 Robert Millan <rmh@aybabtu.com>
1319
1320 * Makefile.in (host_os, host_cpu): New variables.
1321 (target_os): Remove. Update all users.
1322
d64399b5 13232009-02-08 Marco Gerards <marco@gnu.org>
1324
1325 * Makefile.in (enable_grub_emu_usb): New variable.
1326 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
1327 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
1328 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
1329 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
1330 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
1331 `usbtest.mod' and `usbms.mod'.
1332 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
1333 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
1334 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
1335 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
1336 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
1337 variables.
1338
1339 * disk/usbms.c: New file.
1340
1341 * include/grub/usb.h: Likewise.
1342
1343 * include/grub/usbtrans.h: Likewise.
1344
1345 * include/grub/usbdesc.h: Likewise.
1346
1347 * bus/usb/usbtrans.c: Likewise.
1348
1349 * bus/usb/ohci.c: Likewise.
1350
1351 * bus/usb/uhci.c: Likewise.
1352
1353 * bus/usb/usbhub.c: Likewise.
1354
1355 * bus/usb/usb.c: Likewise.
1356
1357 * commands/usbtest.c: Likewise.
1358
1359 * util/usb.c: Likewise.
50fb7002 1360
d64399b5 1361 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
1362
1363 * configure.ac: Test for libusb presence.
50fb7002 1364
d64399b5 1365 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
1366
2b40d6bb 13672009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
1368
1369 * kern/mm.c: Add more comments.
1370
73a4ce81 13712009-02-08 Robert Millan <rmh@aybabtu.com>
1372
1373 Patch from Javier Martín.
1374 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
1375 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
1376
f821ce59 13772009-02-08 Robert Millan <rmh@aybabtu.com>
1378
1379 * fs/cpio.c: Split tar functionality to ...
1380 * fs/tar.c: ... here (new file). Update all users.
1381
aebfc4b0 13822009-02-07 Robert Millan <rmh@aybabtu.com>
1383
1384 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
1385 backward-incompatible features.
1386
1387 Based on patch from Javier Martín, with some adjustments.
1388
50fb7002 13892009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 1390
1391 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
1392
0bb5115e 13932009-02-07 Robert Millan <rmh@aybabtu.com>
1394
1395 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
1396 position of `disk/lvm.c' to ensure grub_init_all() always picks it
1397 after the RAID stuff.
1398
38a0f8e7 13992009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
1400
50fb7002 1401 Fixes problem when running vbetest command as reported by
38a0f8e7 1402 Vladimir Serbinenko <phcoder@gmail.com>.
1403
1404 * (grub_vbe_set_video_mode): Fixed problem with text modes.
1405
3143cc1c 14062009-02-04 Felix Zielcke <fzielcke@z-51.de>
1407
1408 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
1409 /dev/md/NpN style mdraid devices.
1410
9cba6fce 14112009-02-03 Felix Zielcke <fzielcke@z-51.de>
1412
1413 * util/unifont2pff.rb: Remove.
1414
e507a2c1 14152009-02-03 Felix Zielcke <fzielcke@z-51.de>
1416
1417 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
1418 `#'.
1419
d2c2b4cd 14202009-02-03 Felix Zielcke <fzielcke@z-51.de>
1421
1422 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
1423 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1424 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1425 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1426 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1427 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1428 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1429
b4315fb0 14302009-02-02 Christian Franke <franke@computer.org>
1431
1432 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
1433
de3aa260 14342009-02-01 Felix Zielcke <fzielcke@z-51.de>
1435
7c3ff286 1436 * INSTALL: Note that we now require at least autoconf 2.59 and
1437 that LZO is optional.
de3aa260 1438
825a182b 14392009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1440
1441 Base on patch on bug #24154 created by Tomas Tintera
1442 <trosos@seznam.cz>.
1443
1444 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
1445
a69ef770 14462009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1447
7c3ff286 1448 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 1449 <bero@arklinux.org>.
1450
1451 * normal/parser.y (script_init): Add missing semicolon.
1452
6fa42fa6 14532009-01-31 Colin D Bennett <colin@gibibit.com>
1454
7c3ff286 1455 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 1456 (free_menu_entry_classes): Added.
1457 (grub_normal_menu_addentry): Added class property handling.
1458 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
1459 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
1460
1461 * normal/menu_viewer.c: New file.
1462
1463 * normal/menu.c (run_menu_entry): Renamed to ...
1464 (grub_menu_execute_entry): ... this and made it as global.
1465 (grub_menu_run): Renamed to ...
1466 (show_text_menu): ... this and made it local.
1467 (show_text_menu): Adapt to new function names.
1468 (grub_normal_terminal_menu_viewer): New global variable.
1469
1470 * include/grub/menu.h: New file.
1471
1472 * include/grub/menu_viewer.h: New file.
1473
1474 * include/grub/normal.h: Added include to grub/menu.h.
1475 (grub_menu_entry): Moved to include/grub/menu.h.
1476 (grub_menu_entry_t): Likewise.
1477 (grub_menu): Likewise.
1478 (grub_menu_t): Likewise.
1479 (grub_normal_terminal_menu_viewer): Added.
1480 (grub_menu_execute_entry): Likewise.
1481 (grub_menu_run): Removed.
1482
1483 * DISTLIST: Added include/grub/menu.h.
1484 Added include/grub/menu_viewer.h.
1485 Added normal/menu_viewer.c.
1486
14872009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
1488
1489 * normal/execute.c (grub_script_execute_menuentry): Changed to use
1490 arglist for menutitle arguments.
1491
1492 * normal/main.c (grub_normal_menu_addentry): Likewise.
1493
1494 * normal/parser.y (menuentry): Likewise.
1495
1496 * normal/script.c (grub_script_create_cmdmenu): Likewise.
1497
1498 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
1499 (grub_script_create_cmdmenu): Likewise.
1500
1501 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
1502
1503 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
1504 changes.
1505
1506 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
1507
1508 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
1509
1510 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
1511
1512 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1513
1514 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1515
1516 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1517
56192c23 15182009-01-30 Christian Franke <franke@computer.org>
1519
1520 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
1521 in option help text.
1522
d72521b3 15232009-01-27 Pavel Roskin <proski@gnu.org>
1524
1525 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
1526
994b5e84 15272009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1528
1529 * commands/lsmmap.c: Add include to grub/machine/memory.h.
1530
1531 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
1532
1533 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
1534 unregister function.
1535
6a7eab2c 15362009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1537
1538 * disk/scsi.c (grub_scsi_read): Fix sign problem.
1539
1540 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
1541
1542 * util/grub-mkfont.c (usage): Fix typo.
1543
1544 * util/elf/grub-mkimage.c (load_modules): Fix warning.
1545
1806b56e 15462009-01-26 Daniel Mierswa <impulze@impulze.org>
1547
3fb18f09 1548 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
1549
336e1fb9 1550 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
1551
1806b56e 1552 * kern/misc.c (grub_strcasecmp): New function.
1553 (grub_strcasecmp): Use grub_size_t instead of int for length.
1554 Fix return value.
1555 * include/grub/misc.h: Update function prototypes.
1556
580b2a0f 15572009-01-26 Robert Millan <rmh@aybabtu.com>
1558
1559 * configure.ac: Fix cross-compilation check.
ef257b36 1560
d31c24f1 15612009-01-22 Christian Franke <franke@computer.org>
1562
1563 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
1564 (precision) digit string. Allow `.format2' without `format1' (width).
1565 Limit input chars for `%s' output to `format2' if specified. This is
1566 compatible with standard printf ().
1567
3138b44c 15682009-01-22 Christian Franke <franke@computer.org>
1569
1570 * disk/ata.c (grub_ata_wait_status): Replace by ...
1571 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
1572 other status bits may be invalid while BSY is asserted.
1573 (grub_ata_check_ready): New function.
1574 (grub_ata_cmd): Removed.
1575 (grub_ata_wait_drq): New function.
1576 (grub_ata_strncpy): Remove inline.
1577 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
1578 and error check now done by grub_ata_wait_drq ().
1579 (grub_ata_pio_write): Likewise.
1580 (grub_atapi_identify): Set DEV before check for !BSY. Use
1581 grub_ata_wait_drq () to wait for data.
1582 (grub_ata_device_initialize): Add status register check to
1583 detect missing SATA slave devices. Add debug messages.
1584 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
1585 (grub_atapi_packet): Set DEV before check for !BSY. Replace
1586 transfer loop by grub_ata_pio_write ().
1587 (grub_ata_identify): Set DEV before check for !BSY. Use
1588 grub_ata_wait_drq () to wait for data.
ef257b36 1589 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 1590 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
1591 read/write in one loop. Fix invalid command on write. Fix incomplete
1592 command on (size % batch) == 0. Add missing error check after write of
1593 last block. Add debug messages.
1594 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
1595
59a64ef6 15962009-01-19 Christian Franke <franke@computer.org>
1597
1598 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
1599 (GRUB_ATAPI_IREASON_*): Likewise.
1600 (grub_ata_pio_write): Fix timeout error return.
1601 (grub_atapi_identify): Add grub_ata_wait () after cmd.
1602 (grub_atapi_wait_drq): New function.
1603 (grub_atapi_packet): New parameter `size'.
1604 Use grub_atapi_wait_drq () and direct write instead of
1605 grub_ata_pio_write ().
1606 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
1607 reads the number of bytes requested by the device for each DRQ
1608 assertion.
1609 (grub_atapi_write): Remove old implementation, return not
1610 implemented instead.
1611
1cfe20b3 16122009-01-19 Christian Franke <franke@computer.org>
1613
1614 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
1615 of 512 to calculate data size.
1616 (grub_scsi_read12): Likewise.
1617 (grub_scsi_write10): Likewise.
1618 (grub_scsi_write12): Likewise.
1619 (grub_scsi_read): Adjust size according to blocksize.
1620 Add checks for invalid blocksize and unaligned transfer.
1621
bee5fe5d 16222009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
1623
1624 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
1625
ef257b36 1626 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 1627 width glyphs.
1628
3e643f8c 16292009-01-19 Robert Millan <rmh@aybabtu.com>
1630
1631 * config.guess: Update to latest version from config git.
1632 * config.sub: Likewise.
1633
4fa80998 16342009-01-17 Felix Zielcke <fzielcke@z-51.de>
1635
1636 * Makefile.in: Change font compilation to use new grub-mkfont instead
1637 of java version.
1638
1639 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
1640 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
1641 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1642 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1643 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
1644 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
1645 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
1646 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
1647 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1648
7086085b 16492009-01-16 Christian Franke <franke@computer.org>
1650
1651 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
1652 (enum grub_ata_timeout_milliseconds): New enum.
1653 (grub_ata_wait_status): Add parameter milliseconds.
1654 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
1655 recovery from timed-out commands.
1656 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
1657 return grub_errno instead of REG_ERROR.
1658 (grub_ata_pio_write): Add parameter milliseconds.
1659 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
1660 Pass milliseconds to grub_ata_wait_status () and
1661 grub_ata_pio_read ().
1662 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
1663 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
1664 grub_ata_wait_status (). Fix IDENTIFY timeout check.
1665 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
1666 It is not suitable for device detection, because DEV bit is ignored,
1667 the command may run too long, and not all devices set the signature
1668 properly.
1669 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
1670 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
1671 Fix device selection, DEV bit must be set first to address the registers
1672 of the correct device.
1673 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
1674 grub_ata_pio_read/write ().
1675 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
1676 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
1677
4a412913 16782009-01-13 Carles Pina i Estany <carles@pina.cat>
1679
1680 * util/grub-editenv.c (main): Use fseeko(), not fseek().
1681
7795c55e 16822009-01-13 Bean <bean123ch@gmail.com>
d913988c 1683
1684 * util/grub-mkfont.c (write_font): forget to remove some debug code.
1685
7795c55e 16862009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 1687
1688 * Makefile.in: (enable_grub_mkfont): New variable.
1689 (freetype_cflags): Likewise.
1690 (freetype_libs): Likewise.
1691
1692 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
1693 (grub_mkfont_SOURCES): New variable.
1694 (grub_mkfont_CFLAGS): Likewise.
1695 (grub_mkfont_LDFLAGS): Likewise.
1696
1697 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
1698 library if `--enable-grub-mkfont' is requested.
1699 (enable_grub_mkfont): New variable.
1700 (freetype_cflags): Likewise.
1701 (freetype_libs): Likewise.
1702
1703 * util/grub-mkfont.c: New file.
1704
093af1fe 17052009-01-12 Christian Franke <franke@computer.org>
1706
1707 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
1708 mode check. Fix setting of compat_use[].
1709
f36cc108 17102009-01-10 Robert Millan <rmh@aybabtu.com>
1711
1712 Update a few copyright years which we forgot to do in 2008 (only for
1713 files whose changes made in 2008 were copyright-significant)
1714
1715 * Makefile.in: Add 2008 to Copyright line.
1716 * disk/ieee1275/ofdisk.c: Likewise.
1717 * disk/efi/efidisk.c: Likewise.
1718 * kern/dl.c: Likewise.
1719 * kern/sparc64/ieee1275/init.c: Likewise.
1720 * kern/mm.c: Likewise.
1721 * kern/efi/mm.c: Likewise.
1722 * boot/i386/pc/boot.S: Likewise.
1723 * genfslist.sh: Likewise.
1724 * fs/iso9660.c: Likewise.
1725 * fs/hfs.c: Likewise.
1726 * fs/jfs.c: Likewise.
1727 * fs/minix.c: Likewise.
1728 * fs/ufs.c: Likewise.
1729 * gensymlist.sh.in: Likewise.
1730 * genkernsyms.sh.in: Likewise.
1731 * include/grub/misc.h: Likewise.
1732 * include/grub/types.h: Likewise.
1733 * include/grub/symbol.h: Likewise.
1734 * include/grub/elf.h: Likewise.
1735 * include/grub/kernel.h: Likewise.
1736 * include/grub/disk.h: Likewise.
1737 * include/grub/dl.h: Likewise.
1738 * include/grub/i386/linux.h: Likewise.
1739 * include/grub/i386/pc/biosdisk.h: Likewise.
1740 * include/grub/efi/api.h: Likewise.
1741 * include/grub/efi/pe32.h: Likewise.
1742 * include/grub/util/misc.h: Likewise.
1743 * normal/execute.c: Likewise.
1744 * normal/arg.c: Likewise.
1745 * normal/completion.c: Likewise.
1746 * normal/lexer.c: Likewise.
1747 * normal/parser.y: Likewise.
1748 * normal/misc.c: Likewise.
1749 * commands/i386/pc/vbeinfo.c: Likewise.
1750 * commands/hexdump.c: Likewise.
1751 * commands/terminal.c: Likewise.
1752 * commands/ls.c: Likewise.
1753 * commands/help.c: Likewise.
1754 * partmap/pc.c: Likewise.
1755 * loader/efi/chainloader.c: Likewise.
1756 * loader/multiboot_loader.c: Likewise.
1757 * loader/i386/pc/multiboot2.c: Likewise.
1758 * term/efi/console.c: Likewise.
1759 * term/i386/pc/serial.c: Likewise.
1760 * util/lvm.c: Likewise.
1761 * util/console.c: Likewise.
1762 * util/i386/efi/grub-mkimage.c: Likewise.
1763 * util/raid.c: Likewise.
1764
7f02114b 17652009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
1766
1767 * commands/videotest.c: Removed include to grub/machine/memory.h.
1768
1769 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
1770 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
1771 (video_mod_SOURCES): Removed.
1772 (video_mod_CFLAGS): Likewise.
1773 (video_mod_LDFLAGS): Likewise.
1774 (gfxterm_mod_SOURCES): Likewise.
1775 (gfxterm_mod_CFLAGS): Likewise.
1776 (gfxterm_mod_LDFLAGS): Likewise.
1777 (videotest_mod_SOURCES): Likewise.
1778 (videotest_mod_CFLAGS): Likewise.
1779 (videotest_mod_LDFLAGS): Likewise.
1780 (bitmap_mod_SOURCES): Likewise.
1781 (bitmap_mod_CFLAGS): Likewise.
1782 (bitmap_mod_LDFLAGS): Likewise.
1783 (tga_mod_SOURCES): Likewise.
1784 (tga_mod_CFLAGS): Likewise.
1785 (tga_mod_LDFLAGS): Likewise.
1786 (jpeg_mod_SOURCES): Likewise.
1787 (jpeg_mod_CFLAGS): Likewise.
1788 (jpeg_mod_LDFLAGS): Likewise.
1789 (png_mod_SOURCES): Likewise.
1790 (png_mod_CFLAGS): Likewise.
1791 (png_mod_LDFLAGS): Likewise.
1792
1793 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
1794 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
1795 (video_mod_SOURCES): Added.
1796 (video_mod_CFLAGS): Likewise.
1797 (video_mod_LDFLAGS): Likewise.
1798 (videotest_mod_SOURCES): Likewise.
1799 (videotest_mod_CFLAGS): Likewise.
1800 (videotest_mod_LDFLAGS): Likewise.
1801 (bitmap_mod_SOURCES): Likewise.
1802 (bitmap_mod_CFLAGS): Likewise.
1803 (bitmap_mod_LDFLAGS): Likewise.
1804 (tga_mod_SOURCES): Likewise.
1805 (tga_mod_CFLAGS): Likewise.
1806 (tga_mod_LDFLAGS): Likewise.
1807 (jpeg_mod_SOURCES): Likewise.
1808 (jpeg_mod_CFLAGS): Likewise.
1809 (jpeg_mod_LDFLAGS): Likewise.
1810 (png_mod_SOURCES): Likewise.
1811 (png_mod_CFLAGS): Likewise.
1812 (png_mod_LDFLAGS): Likewise.
1813 (gfxterm_mod_SOURCES): Likewise.
1814 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 1815 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 1816
1817 * term/gfxterm.c: Removed include to grub/machine/memory.h,
1818 grub/machine/console.h.
1819
644fff97 18202009-01-04 Jerone Young <jerone@gmail.com>
1821
1822 Make on screen instructions clearer
1823
1824 Based on patch created by Jidanni <jidanni@jidanni.org>
1825
1826 * normal/menu.c: print clearer instructions on the screen
1827
1e901a75 18282009-01-02 Colin D Bennett <colin@gibibit.com>
1829
1830 New font engine.
34c44600 1831
1e901a75 1832 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
1833 build system and fixed gfxterm.c to work with different sized fonts.
1834
1835 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 1836
1e901a75 1837 * configure: Re-generated.
34c44600 1838
1e901a75 1839 * DISTLIST: Removed font/manager.c.
1840 Added font/font.c.
1841 Added font/font_cmd.c.
34c44600 1842
1e901a75 1843 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
1844 compilation.
34c44600 1845
1e901a75 1846 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 1847
1848 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 1849
1850 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 1851
1e901a75 1852 * normal/menu.c: Likewise.
34c44600 1853
1e901a75 1854 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
1855 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 1856
1e901a75 1857 * include/grub/font.h: Replaced with new file.
34c44600 1858
1e901a75 1859 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
1860 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
1861 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
1862 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
1863 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 1864 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 1865 fg_red, fg_green, fg_blue, fg_alpha.
1866 (grub_video_adapter): Removed blit_glyph.
34c44600 1867 (grub_video_blit_glyph): Removed.
1868
1e901a75 1869 * font/manager.c: Removed file.
34c44600 1870
1871 * font/font.c: New file.
1872
1e901a75 1873 * font/font_cmd.c: Likewise.
34c44600 1874
1e901a75 1875 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 1876
1e901a75 1877 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
1878 (grub_video_vbe_map_rgba): Likewise.
1879 (grub_video_vbe_unmap_color_int): Likewise.
1880 (grub_video_vbe_blit_glyph): Removed.
1881 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 1882
1e901a75 1883 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
1884 (get_pixel): Likewise.
34c44600 1885 (set_pixel): Likewise.
1886
1e901a75 1887 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 1888
1e901a75 1889 * term/gfxterm.c: Adapted to new font engine.
34c44600 1890
1e901a75 1891 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 1892
1e901a75 1893 * term/i386/pc/vga.c: Likewise.
34c44600 1894
1e901a75 1895 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 1896
1e901a75 1897 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 1898
1e901a75 1899 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1900
1e901a75 1901 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1902
1e901a75 1903 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 1904
1e901a75 1905 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 1906
1e901a75 1907 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 1908
1e901a75 1909 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 1910
1e901a75 1911 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1912
1913 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 1914
1e901a75 1915 * util/grub-mkconfig_lib.in: Changed font extension.
1916
278922e8 19172008-12-28 Felix Zielcke <fzielcke@z-51.de>
1918
1919 * util/getroot.c (grub_util_get_grub_dev): Add support for
1920 /dev/md/dNNpNN style partitionable mdraid devices.
1921
3ced05cf 19222008-12-12 Alex Smith <alex@alex-smith.me.uk>
1923
1924 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
1925 at a time limit of the PXE TFTP API correctly.
1926 (grub_pxefs_close): Likewise.
1927
7fd0ee30 19282008-11-29 Robert Millan <rmh@aybabtu.com>
1929
34c44600 1930 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 1931 grub_ata_device_initialize() calls.
1932
34c44600 19332008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 1934
1935 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
1936 iteration failed.
1937 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
1938
89313780 19392008-11-28 Robert Millan <rmh@aybabtu.com>
1940
1941 Fix build on powerpc-ieee1275. Based on patch created by
1942 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
1943 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
1944 `kern/ieee1275/mmap.c'.
1945 * include/grub/powerpc/ieee1275/memory.h: New file.
1946
15257703 1947 Provide grub-install on coreboot.
1948 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
1949 (grub_install_SOURCES): New variable.
1950 * util/i386/pc/grub-install.in: Add a few condition checks to make it
1951 usable on coreboot.
1952
9fc5388a 19532008-11-25 Felix Zielcke <fzielcke@z-51.de>
1954
1955 * util/grub-fstest.c (grub_term_get_current_input): Change return type
1956 to `grub_term_input_t'.
1957 (grub_term_get_current_output): Change return type to
1958 `grub_term_output_t'.
1959
bc3a2f31 19602008-11-22 Robert Millan <rmh@aybabtu.com>
1961
34c44600 1962 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 1963 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
1964 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
1965 grub_vga_text_cls().
1966
80fc88f2 1967 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 1968 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 1969
cbf36fd3 1970 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
1971 to 0x200000 (avoids trouble with some OFW implementations, and matches
1972 with the one in Yaboot).
1973 Reported by Manoel Abranches
1974
73e8e268 19752008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 1976
1977 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
1978 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
1979
73e8e268 1980 * util/grub-mkconfig_lib.in (grub_warn): New function.
1981 (convert_system_path_to_grub_path): Use grub_warn() when issuing
1982 warnings, to obtain consistent formatting.
1983 * util/grub.d/00_header.in: Likewise.
1984 * util/update-grub_lib.in: Likewise.
1985
e94045a1 1986 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 1987 Move comment text to `#error' stanza.
e94045a1 1988
79d29fd7 1989 Harmonize ieee1275's grub_available_iterate() with the generic
1990 grub_machine_mmap_iterate() interface (fixes a recently-introduced
1991 build problem on i386-ieee1275):
1992 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
1993 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
1994 parameter `type'. Update all users of this function.
1995 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
1996 `kern/ieee1275/mmap.c'.
1997 * kern/ieee1275/init.c
1998 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
1999 with ...
2000 (grub_machine_mmap_iterate): ... this.
2001 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
2002 return type to `grub_err_t'. Update all implementations of this
2003 function prototype.
2004 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
2005 Likewise.
2006
60d6b16e 2007 Add `lsmmap' command (lists firmware-provided memory map):
2008 * commands/lsmmap.c: New file.
2009 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
2010 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
2011 variables.
2012 * conf/powerpc-ieee1275.rmk: Likewise.
2013 * conf/i386-coreboot.rmk: Likewise.
2014 * conf/i386-ieee1275.rmk: Likewise.
2015
ebaaf49b 20162008-11-19 Robert Millan <rmh@aybabtu.com>
2017
2018 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 2019 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
2020 constraints to initrd allocation (based on code from
2021 loader/i386/pc/linux.c). Without them, initrd was allocated too high
2022 for Linux to find it.
ebaaf49b 2023
dfab719f 20242008-11-14 Robert Millan <rmh@aybabtu.com>
2025
2026 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
2027 order to cope with duplicate slashes.
2028
10fc3eb9 20292008-11-14 Robert Millan <rmh@aybabtu.com>
2030
2031 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
2032 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
2033 don't want to mess with lower memory, because it is used in the Linux
2034 loader.
2035
2036 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 2037 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 2038 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
2039 is in our heap (probably as a result of it being corrupted during
2f2a3442 2040 decompression). Add #error instance with comment to explain why this
2041 loader isn't currently usable on PC/BIOS.
10fc3eb9 2042
e2e07847 20432008-11-14 Robert Millan <rmh@aybabtu.com>
2044
2045 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 2046 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 2047
fe8e8d69 20482008-11-12 Robert Millan <rmh@aybabtu.com>
2049
2050 Make loader/i386/linux.c buildable on i386-pc (although disabled).
2051
2052 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
2053 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
2054 from here ...
2055 * include/grub/i386/pc/memory.h: ... to here.
2056
976b07d0 20572008-11-12 Robert Millan <rmh@aybabtu.com>
2058
2059 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
2060 split).
2061
2062 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
2063 (grub_console_cur_color, grub_console_real_putchar)
2064 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2065 (grub_console_setcolorstate, grub_console_setcolor)
2066 (grub_console_getcolor): Move from here ...
2067 * include/grub/i386/vga_common.h: ... to here (new file).
2068
2069 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
2070 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
2071 `<grub/i386/io.h>'.
2072 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
2073 `<grub/i386/vga_common.h>'.
2074
76679cd3 20752008-11-12 Robert Millan <rmh@aybabtu.com>
2076
2077 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
2078 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
2079 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
2080 variables.
2081 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2082 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
2083
2084 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
2085 grub_console_init() with call to grub_vga_text_init().
2086 (grub_machine_fini): Replace call to
2087 grub_console_fini() with call to grub_vga_text_fini() and
2088 grub_at_keyboard_fini().
2089
2090 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
2091 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2092 (grub_console_setcolorstate, grub_console_setcolor)
2093 (grub_console_getcolor): New function prototypes.
2094
2095 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
2096 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
2097 (grub_vga_text_setcursor): Static-ize.
2098 (grub_vga_text_term): New structure.
2099 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
2100
2101 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
2102 (grub_console_cur_color, grub_console_standard_color)
2103 (grub_console_normal_color, grub_console_highlight_color)
2104 (map_char, grub_console_putchar, grub_console_getcharwidth)
2105 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
2106 (grub_console_getcolor): Move from here ...
2107 * term/i386/vga_common.c: ... to here (same function names).
2108
95b841d3 21092008-11-12 Robert Millan <rmh@aybabtu.com>
2110
2111 Use newly-added Multiboot support in coreboot.
2112
2113 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2114 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
2115
2116 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
2117 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
2118 (codestart): Store the MBI in `startup_multiboot_info' when we're
2119 being loaded using Multiboot.
2120
2121 * kern/i386/coreboot/init.c (grub_machine_init): Move
2122 grub_at_keyboard_init() call to beginning of function (useful for
2123 debugging). Call grub_machine_mmap_init() before attempting to use
2124 grub_machine_mmap_iterate().
2125 (grub_lower_mem, grub_upper_mem): Move from here ...
2126 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
2127 here (new file).
2128
2129 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
2130 function prototype.
2131
761ca975 21322008-11-12 Robert Millan <rmh@aybabtu.com>
2133
2134 Fix a regression introduced by the at_keyboard.mod split. Because
2135 some terminals are default on some platforms and non-default on
2136 others, the first terminal being registered determines which is
2137 going to be default.
2138
2139 * kern/term.c (grub_term_register_input): If this is the first
2140 terminal being registered, set it as the current one.
2141 (grub_term_register_output): Likewise.
2142
2143 * term/efi/console.c (grub_console_init): Do not call
2144 grub_term_set_current_output() or grub_term_set_current_input().
2145 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
2146 * term/i386/pc/console.c (grub_console_init): Likewise.
2147 (grub_console_fini): Do not call grub_term_set_current_input()
2148 (but leave grub_term_set_current_output() to restore text mode).
2149
6c529df7 21502008-11-10 Robert Millan <rmh@aybabtu.com>
2151
2152 * util/grub.d/00_header.in: Add backward compatibility check for
2153 versions of terminal.mod that don't understand `terminal_input' or
2154 `terminal_output'.
2155
132e4113 21562008-11-09 Robert Millan <rmh@aybabtu.com>
2157
2158 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
2159 `terminal_input' / `terminal_output', not `terminal'.
2160
ac293d50 21612008-11-08 Robert Millan <rmh@aybabtu.com>
2162
2163 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 2164 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 2165
0025933a 21662008-11-08 Robert Millan <rmh@aybabtu.com>
2167
2168 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 2169 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 2170 members. Update all users.
2171 * util/console.c (grub_ncurses_term): Split in ...
2172 (grub_ncurses_term_input): ... this, and ...
2173 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 2174 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 2175
37c86336 21762008-11-08 Robert Millan <rmh@aybabtu.com>
2177
2178 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
2179 (PKGDATA): Add $(pkgdata_SRCDIR).
2180 (pkglib_BUILDDIR): New variable.
2181 (pkgdata_SRCDIR): New variable.
2182 (build_env.mk): New target.
2183 (include_DATA): New variable.
2184 (install-local): Install $(include_DATA) files in $(includedir).
2185
b6c15a2d 21862008-11-07 Pavel Roskin <proski@gnu.org>
2187
d99d46f1 2188 * gendistlist.sh: Use C locale for sorting to ensure consistent
2189 output on all systems.
2190
b6c15a2d 2191 * util/grub.d/00_header.in: Remove incorrect space before
2192 "serial".
2193
c32ee8c9 21942008-11-07 Robert Millan <rmh@aybabtu.com>
2195
2196 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
2197 per specification.
2198 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
2199 * loader/multiboot_loader.c (find_multi_boot2_header): New function
2200 (based on find_multi_boot1_header).
2201 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
2202 using find_multi_boot2_header(), and abort if neither Multiboot or
2203 Multiboot headers were found.
2204
651c29b7 22052008-11-07 Robert Millan <rmh@aybabtu.com>
2206
2207 Modularize at_keyboard.mod:
2208
2209 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
2210 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
2211 (at_keyboard_mod_LDFLAGS): New variables.
2212
2213 Actual terminal split:
2214
2215 * include/grub/term.h (struct grub_term): Split in ...
2216 (struct grub_term_input): ... this, and ...
2217 (struct grub_term_output): ... this. Update all users.
2218 (grub_term_set_current): Split in ...
2219 (grub_term_set_current_input): ... this, and ...
2220 (grub_term_set_current_output): ... this.
2221 (grub_term_get_current): Split in ...
2222 (grub_term_get_current_input): ... this, and ...
2223 (grub_term_get_current_output): ... this.
2224 (grub_term_register): Split in ...
2225 (grub_term_register_input): ... this, and ...
2226 (grub_term_register_output): ... this.
2227 (grub_term_unregister): Split in ...
2228 (grub_term_unregister_input): ... this, and ...
2229 (grub_term_unregister_output): ... this.
2230 (grub_term_iterate): Split in ...
2231 (grub_term_iterate_input): ... this, and ...
2232 (grub_term_iterate_output): ... this.
2233
2234 * kern/term.c (grub_term_list): Split in ...
2235 (grub_term_list_input): ... this, and ...
2236 (grub_term_list_output): ... this. Update all users.
2237 (grub_cur_term): Split in ...
2238 (grub_cur_term_input): ... this, and ...
2239 (grub_cur_term_output): ... this. Update all users.
2240 (grub_term_set_current): Split in ...
2241 (grub_term_set_current_input): ... this, and ...
2242 (grub_term_set_current_output): ... this.
2243 (grub_term_get_current): Split in ...
2244 (grub_term_get_current_input): ... this, and ...
2245 (grub_term_get_current_output): ... this.
2246 (grub_term_register): Split in ...
2247 (grub_term_register_input): ... this, and ...
2248 (grub_term_register_output): ... this.
2249 (grub_term_unregister): Split in ...
2250 (grub_term_unregister_input): ... this, and ...
2251 (grub_term_unregister_output): ... this.
2252 (grub_term_iterate): Split in ...
2253 (grub_term_iterate_input): ... this, and ...
2254 (grub_term_iterate_output): ... this.
2255
2256 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
2257 a check for input and one for output (and only attempt to get keys
2258 from user when input works).
2259
2260 * util/grub-probe.c (grub_term_get_current): Split in ...
2261 (grub_term_get_current_input): ... this, and ...
2262 (grub_term_get_current_output): ... this.
2263 * util/grub-fstest.c: Likewise.
2264 * util/i386/pc/grub-setup.c: Likewise.
2265 * util/grub-editenv.c: Likewise.
2266
2267 Portability adjustments:
2268
2269 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
2270 `term/i386/pc/at_keyboard.c'.
2271 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
2272 grub_keyboard_controller_init() (now handled by terminal .init).
2273 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
2274 grub_at_keyboard_init().
2275 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
2276 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
2277 at_keyboard.mod via input terminal interface).
2278 * include/grub/i386/coreboot/console.h: Convert into a stub for
2279 `<grub/i386/pc/console.h>'.
2280
2281 Migrate full terminals to new API:
2282
2283 * term/efi/console.c (grub_console_term): Split into ...
2284 (grub_console_term_input): ... this, and ...
2285 (grub_console_term_output): ... this. Update all users.
2286 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
2287 (grub_ofconsole_init): Split into ...
2288 (grub_ofconsole_init_input): ... this, and ...
2289 (grub_ofconsole_init_output): ... this.
2290 (grub_ofconsole_term): Split into ...
2291 (grub_ofconsole_term_input): ... this, and ...
2292 (grub_ofconsole_term_output): ... this. Update all users.
2293 * term/i386/pc/serial.c (grub_serial_term): Split into ...
2294 (grub_serial_term_input): ... this, and ...
2295 (grub_serial_term_output): ... this. Update all users.
2296 * term/i386/pc/console.c (grub_console_term): Split into ...
2297 (grub_console_term_input): ... this, and ...
2298 (grub_console_term_output): ... this. Update all users.
2299 (grub_console_term_input): Only enable it on PC/BIOS platform.
2300 (grub_console_init): Remove grub_keyboard_controller_init() call.
2301
2302 Migrate input terminals to new API:
2303
2304 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
2305 `i386' and `i386/pc' to enable build on x86_64 (this driver is
2306 i386-specific anyway).
2307 (grub_console_checkkey): Rename to ...
2308 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
2309 users.
2310 (grub_keyboard_controller_orig): New variable.
2311 (grub_console_getkey): Rename to ...
2312 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
2313 users.
2314 (grub_keyboard_controller_init): Static-ize. Save original
2315 controller value so that it can be restored ...
2316 (grub_keyboard_controller_fini): ... here (new function).
2317 (grub_at_keyboard_term): New structure.
2318 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
2319 functions.
2320
2321 Migrate output terminals to new API:
2322
2323 * term/i386/pc/vga.c (grub_vga_term): Change type to
2324 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2325 members. Update all users.
2326 * term/gfxterm.c (grub_video_term): Change type to
2327 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2328 members. Update all users.
2329 * include/grub/i386/pc/console.h (grub_console_checkkey)
2330 (grub_console_getkey): Do not export (no longer needed by gfxterm,
2331 etc).
2332
2333 Migrate `terminal' command and userland tools to new API:
2334
2335 * commands/terminal.c (grub_cmd_terminal): Split into ...
2336 (grub_cmd_terminal_input): ... this, and ...
2337 (grub_cmd_terminal_output): ... this.
2338 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
2339 `terminal_input' and `terminal_output'.
2340 * util/grub.d/00_header.in: Adjust `terminal' calls to new
2341 `terminal_input' / `terminal_output' API.
2342 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
2343 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
2344 provided ${GRUB_TERMINAL}, convert it).
2345
96e5d876 23462008-11-04 Robert Millan <rmh@aybabtu.com>
2347
2348 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
2349 for FreeBSD.
2350 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
2351
556f3775 23522008-11-03 Bean <bean123ch@gmail.com>
2353
2354 * kern/elf.c (grub_elf32_load): Revert to previous code.
2355 (grub_elf64_load): Likewise.
2356
2357 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
2358
926b9823 23592008-11-01 Robert Millan <rmh@aybabtu.com>
2360
2361 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
2362 (TARGET_CPPFLAGS): Likewise.
2363 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
2364
1432e958 23652008-11-01 Carles Pina i Estany <carles@pina.cat>
2366
2367 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
2368
dba3f844 23692008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 2370
2371 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
2372 addition of objects until the code is not going to be able to fail.
2373
dba3f844 23742008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 2375
2376 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
2377 (add a missing NULL check, and correct them by moving the pointer
2378 operations after the actual check).
2379
7ab28c21 23802008-10-29 Robert Millan <rmh@aybabtu.com>
2381
2382 * util/i386/pc/grub-install.in: Handle empty string as output from
2383 make_system_path_relative_to_its_root().
2384
1b7748eb 23852008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
2386
2387 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
2388 circular metadata worst case scenario. If the metadata is circular
2389 then copy the wrap in place.
2390 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
2391 project lib/format_text/layout.h
2392 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
2393
c9618ab2 23942008-10-03 Felix Zielcke <fzielcke@z-51.de>
2395
7a36edca 2396 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 2397
bf981c62 23982008-10-03 Felix Zielcke <fzielcke@z-51.de>
2399
2400 * util/update-grub_lib.in: Mention filename in warning message.
2401
6d994591 24022008-09-29 Felix Zielcke <fzielcke@z-51.de>
2403
2404 * NEWS: Update for rename of update-grub to grub-mkconfig.
2405
18ade780 24062008-09-29 Felix Zielcke <fzielcke@z-51.de>
2407
2408 * util/update-grub_lib.in: Copy to ...
2409 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 2410 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 2411 * util/update-grub.in: Rename to ...
2412 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
2413 option. Add `--output' option to allow users to specify the generated
2414 configuration file. Default to stdout.
2415 (update_grub_dir): Rename to ...
2416 (grub_mkconfig_dir): ... this.
2417 (grub_cfg): Default to an empty string.
2418 * conf/common.rmk (update-grub): Rename to ...
2419 (grub-mkconfig): ... this.
2420 (update-grub_lib): Copy to ...
2421 (grub-mkconfig_lib): ... this.
2422 (update-grub_SCRIPTS): Copy to ...
2423 (grub-mkconfig_SCRIPTS): ... this. Update all users.
2424 (update-grub_DATA): Rename to ...
2425 (grub-mkconfig_DATA): ... this.
2426
556ce6ac 24272008-09-28 Robert Millan <rmh@aybabtu.com>
2428
2429 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
2430 to `modified'. Add the real `created' field.
2431 (grub_iso9660_uuid): Use `modified' rather than `created' for
2432 constructing the UUID.
2433
24342008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 2435
2436 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
2437 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
2438
92274e85 24392008-09-28 Bean <bean123ch@gmail.com>
2440
2441 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
2442 Thanks to Christian Franke for finding this bug.
2443
add6f17a 24442008-09-25 Robert Millan <rmh@aybabtu.com>
2445
2446 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
2447 instances of grub_util_get_disk_name() (see previous commit).
2448
d2a367b8 24492008-09-25 Robert Millan <rmh@aybabtu.com>
2450
2451 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
2452 `util/i386/get_disk_name.c'.
2453 * conf/i386-efi.rmk: Likewise.
2454 * conf/x86_64-efi.rmk: Likewise.
2455 * conf/i386-coreboot.rmk: Likewise.
2456 * conf/i386-ieee1275.rmk: Likewise.
2457 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
2458 `util/ieee1275/get_disk_name.c'.
2459 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
2460 * util/ieee1275/get_disk_name.c: Remove file.
2461 * util/i386/get_disk_name.c: Remove file.
2462 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
2463 "hd%d" for device.map entries, rather than using
2464 grub_util_get_disk_name().
2465
81a06771 24662008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 2467
2468 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
2469 warning.
2470 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
2471
5a004279 24722008-09-24 Carles Pina i Estany <carles@pina.cat>
2473
2474 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
2475 Changed to 0x5100.
2476 (GRUB_TERM_PPAGE): Changed to 0x4900.
2477
397093d3 24782008-09-24 Robert Millan <rmh@aybabtu.com>
2479
2480 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
2481 macros (they were i386-pc specific).
2482 * include/grub/sparc64/ieee1275/console.h: Likewise.
2483 * include/grub/efi/console.h: Likewise.
2484
a91b6c7c 24852008-09-22 Bean <bean123ch@gmail.com>
2486
2487 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
2488 resident and in attribute list.
2489
2490 * include/grub/ntfs.h (BMP_LEN): Removed.
2491
c40fd116 24922008-09-22 Bean <bean123ch@gmail.com>
2493
81a06771 2494 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 2495 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
2496
2497 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
2498 error occurs, as grub_disk_open will call grub_disk_close, which will
2499 call p->close (scsi).
2500
81a06771 25012008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 2502
2503 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
2504 (AC_PREREQ): Bumped to 2.59.
2505 (AC_TRY_COMPILE): Replace obsolete macro with ...
2506 (AC_COMPILE_IFELSE): ... this.
2507 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
2508 (AC_LINK_IFELSE): ... this.
2509
5dc43410 25102008-09-21 Felix Zielcke <fzielcke@z-51.de>
2511
2512 * autogen.sh: Add a call to `gendistlist.sh'.
2513
9035dce4 25142008-09-19 Christian Franke <franke@computer.org>
2515
2516 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
2517 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
2518 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
2519 Export __enable_execute_stack() to modules.
2520 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
2521 New function.
2522
7fd75377 25232008-09-09 Felix Zielcke <fzielcke@z-51.de>
2524
040030b3 2525 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
2526 Sort the list.
2527
25282008-09-09 Felix Zielcke <fzielcke@z-51.de>
2529
2530 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 2531 #include <grub/util/hostdisk.h>.
2532
89d5ffcf 25332008-09-08 Robert Millan <rmh@aybabtu.com>
2534
2535 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
2536 segments when their filesz is zero (grub_file_read() interprets
81a06771 2537 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 2538 Use `lowest_segment' rather than 0 for calculating the current
2539 segment load address.
2540
40da438f 25412008-09-08 Robert Millan <rmh@aybabtu.com>
2542
2543 * util/hostdisk.c (open_device): Replace a grub_util_info() call
2544 with grub_dprintf("hostdisk", ...), as it was so verbose that it
2545 clobbered useful information.
2546
ddbf5556 25472008-09-08 Robert Millan <rmh@aybabtu.com>
2548
2549 * include/grub/util/biosdisk.h: Move to ...
2550 * include/grub/util/hostdisk.h: ... here. Update all users.
2551 * util/biosdisk.c: Move to ...
2552 * util/hostdisk.c: ... here. Update all users.
2553
783d0f48 25542008-09-07 Robert Millan <rmh@aybabtu.com>
2555
2556 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
2557 variables.
2558 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
2559 and length can be stored directly in the `mbi->mmap_addr' and
2560 `mbi->mmap_length' struct fields.
2561
548e2ea5 25622008-09-07 Robert Millan <rmh@aybabtu.com>
2563
2564 * conf/i386.rmk: New file. Provides declaration for building
2565 `cpuid.mod'.
2566 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
2567 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
2568 variables.
2569 Include `conf/i386.mk'.
2570 * conf/i386-efi.rmk: Likewise.
2571 * conf/x86_64-efi.rmk: Likewise.
2572 * conf/i386-coreboot.rmk: Likewise.
2573 * conf/i386-ieee1275.rmk: Likewise.
2574
0ea85a37 25752008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
2576
2577 Based on patch created by Colin D Bennett <colin@gibibit.com>.
2578 Adds optimization support for BGR based modes.
2579
2580 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
2581 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2582 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2583 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2584 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2585 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2586 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2587 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2588 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2589 (grub_video_i386_vbeblit_index_index): Likewise.
2590 (grub_video_i386_vbeblit_replace_directN): Added.
2591 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2592 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2593 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2594 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2595 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2596 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 2597 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 2598 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2599 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2600 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2601 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2602 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2603 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
2604
2605 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
2606 (grub_video_i386_vbefill_R8G8B8): Likewise.
2607 (grub_video_i386_vbefill_index): Likewise.
2608 (grub_video_i386_vbefill_direct32): Added.
2609 (grub_video_i386_vbefill_direct24): Likewise.
2610 (grub_video_i386_vbefill_direct16): Likewise.
2611 (grub_video_i386_vbefill_direct8): Likewise.
2612
81a06771 2613 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 2614 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
2615 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
2616 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
2617 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
2618 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 2619
0ea85a37 2620 * video/video.c (grub_video_get_blit_format): Updated to use new
2621 blit formats. Added handling for 16 bit color modes.
81a06771 2622
2623 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 2624 fillers.
2625 (common_blitter): Updated to use new blitters.
2626
2627 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
2628 Removed.
2629 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2630 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2631 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2632 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2633 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2634 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2635 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2636 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2637 (grub_video_i386_vbeblit_index_index): Likewise.
2638 (grub_video_i386_vbeblit_replace_directN): Added.
2639 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2640 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2641 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2642 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2643 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2644 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
2645 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
2646 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2647 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2648 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2649 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2650 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2651 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 2652
0ea85a37 2653 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
2654 (grub_video_i386_vbefill_R8G8B8): Likewise.
2655 (grub_video_i386_vbefill_index): Likewise.
2656 (grub_video_i386_vbefill_direct32): Added.
2657 (grub_video_i386_vbefill_direct24): Likewise.
2658 (grub_video_i386_vbefill_direct16): Likewise.
2659 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 2660
0ea85a37 2661 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
2662 types.
81a06771 2663
0ea85a37 2664 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
2665 types.
81a06771 2666
0ea85a37 2667 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
2668 blitter types.
81a06771 2669
0ea85a37 2670 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
2671 types.
2672
e8a83df6 26732008-09-06 Felix Zielcke <fzielcke@z-51.de>
2674
2675 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
2676 RAID level 1.
2677
6bcd8ee5 26782008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 2679
6bcd8ee5 2680 * fs/iso9660.c (grub_iso9660_date): New structure.
2681 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
2682 (grub_iso9660_uuid): New function.
c375ae58 2683
59261157 26842008-09-05 Bean <bean123ch@gmail.com>
2685
2686 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
2687
2688 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
2689 insensitive bit for names in Win32 and Win32 & DOS namespace.
2690
2691 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
2692
2693 * include/grub/types.h (LONG_MAX): Likewise.
2694
58b6645a 26952008-09-04 Felix Zielcke <fzielcke@z-51.de>
2696
4ee55921 2697 * util/getroot.c: Include <config.h>.
2698 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
2699 add support for /dev/md/N devices and handle LVM double dash escaping.
2700
27012008-09-04 Felix Zielcke <fzielcke@z-51.de>
2702
2703 * config.guess: Update to latest version from config git.
2704 * config.sub: Likewise.
58b6645a 2705
9124f65d 27062008-09-03 Robert Millan <rmh@aybabtu.com>
2707
2708 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
2709 `disk->total_sectors'.
2710
81a06771 27112008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 2712
2713 * include/grub/normal.h: Fixed incorrect comment for
2714 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
2715
81a06771 27162008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 2717
2718 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
2719 values with defines.
2720
2721 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
2722 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
2723 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
2724 (GRUB_VBE_MODEATTR_COLOR): Likewise.
2725 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
2726 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
2727 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
2728 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
2729 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
2730 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
2731 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
2732 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
2733 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
2734 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
2735 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
2736 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
2737 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
2738 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
2739 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
2740
93d5cbf8 27412008-08-31 Robert Millan <rmh@aybabtu.com>
2742
2743 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
2744 declaration.
2745 (grub_multiboot): Fix a few warnings.
2746
21751d50 27472008-08-31 Robert Millan <rmh@aybabtu.com>
2748
2749 * loader/i386/pc/multiboot.c: Update comment not to say that
2750 boot_device support is unimplemented.
2751
e27a75c5 27522008-08-31 Robert Millan <rmh@aybabtu.com>
2753
2754 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
2755 or memory map support are unimplemented.
2756
81a06771 27572008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 2758
2759 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
2760
81a06771 27612008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 2762
2763 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
2764 total video memory in 'vbeinfo' output; show color format details for
2765 each video mode.
2766
7c5d8d95 27672008-08-30 Pavel Roskin <proski@gnu.org>
2768
2769 * util/genmoddep.c: Remove for real this time.
2770 * DISTLIST: Remove util/genmoddep.c.
2771
4cebd25a 27722008-08-30 Robert Millan <rmh@aybabtu.com>
2773
2774 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
2775 as required by Multiboot spec (it was already 4-byte aligned, but
2776 only by chance).
2777
b497a269 27782008-08-29 Pavel Roskin <proski@gnu.org>
2779
e3925185 2780 * kern/powerpc/ieee1275/crt0.S: Rename to ...
2781 * kern/powerpc/ieee1275/startup.S: ... this.
2782 * conf/powerpc-ieee1275.rmk: Adjust for the above.
2783 * DISTLIST: Likewise.
2784
b497a269 2785 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
2786 grub/cpu/kernel.h. Add start label for consistency with other
2787 platforms. Add grub_prefix immediately after start. Add jump
2788 to the code after grub_prefix.
2789 * include/grub/powerpc/kernel.h: Provide valid values for
2790 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
2791
6e5a42fe 27922008-08-29 Bean <bean123ch@gmail.com>
2793
2794 * configure.ac: Change host_os to cygwin for mingw.
2795 (asprintf): New check for function.
2796
2797 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
2798 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
2799
2800 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 2801 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 2802 sync, sleep and grub_util_get_disk_size for mingw.
2803
2804 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
2805 to get size in mingw.
2806 (open_device): Use flag O_BINARY if it's defined.
2807 (find_root_device): Add dummy code for mingw.
2808
2809 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
2810 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
2811 (get_scsi_disk_name): Return 0 for mingw.
2812
2813 * util/hostfs.c: #include <grub/util/misc.h>.
2814 (grub_hostfs_open): Use "rb" flag to open file, use
2815 grub_util_get_disk_size to get disk size for mingw.
2816
2817 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
2818 (asprintf): New function if HAVE_ASPRINTF is not set.
2819 (sync): New function for mingw.
2820 (sleep): Likewise.
2821 (grub_util_get_disk_size): Likewise.
2822
ab3f2673 28232008-08-28 Pavel Roskin <proski@gnu.org>
2824
2825 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
2826 kern/time.c.
2827
1c282483 28282008-08-28 Robert Millan <rmh@aybabtu.com>
2829
2830 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
2831
678e849c 28322008-08-28 Robert Millan <rmh@aybabtu.com>
2833
2834 Change find_grub_drive() syntax so it doesn't prevent it from
2835 detecting NULL names as errors.
2836
2837 * util/biosdisk.c (find_grub_drive): Move free slot search code
2838 from here ...
2839 (find_free_slot): ... to here.
2840 (read_device_map): Use find_free_slot() to search for free slots.
2841
965c75ca 28422008-08-27 Marco Gerards <marco@gnu.org>
2843
2844 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
2845 (scsi_mod_SOURCES): New variable.
2846 (scsi_mod_CFLAGS): Likewise
2847 (scsi_mod_LDFLAGS): Likewise.
2848
2849 * disk/scsi.c: New file.
2850
2851 * include/grub/scsi.h: Likewise.
2852
2853 * include/grub/scsicmd.h: Likewise.
2854
2855 * disk/ata.c: Include <grub/scsi.h>.
2856 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
2857 instead.
2858 (grub_ata_iterate): Skip ATAPI devices.
2859 (grub_ata_open): Only handle ATAPI devices.
2860 (struct grub_atapi_read): Removed.
2861 (grub_atapi_readsector): Likewise.
2862 (grub_ata_read): No longer handle ATAPI devices.
2863 (grub_ata_write): Likewise.
2864 (grub_atapi_iterate): New function.
2865 (grub_atapi_read): Likewise.
2866 (grub_atapi_write): Likewise.
2867 (grub_atapi_open): Likewise.
2868 (grub_atapi_close): Likewise.
2869 (grub_atapi_dev): New variable.
2870 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
2871 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
2872
2873 * include/grub/disk.h (enum grub_disk_dev_id): Add
2874 `GRUB_DISK_DEVICE_SCSI_ID'.
2875
c07ae501 28762008-08-26 Robert Millan <rmh@aybabtu.com>
2877
2878 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
2879 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
2880 descriptive.
2881
5ed20adc 28822008-08-23 Bean <bean123ch@gmail.com>
2883
2884 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
2885 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2886 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
2887 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
2888 dm_nv.mod.
2889 (raid5rec_mod_SOURCES): New macro.
2890 (raid5rec_mod_CFLAGS): Likewise.
2891 (raid5rec_mod_LDFLAGS): Likewise.
2892 (raid6rec_mod_SOURCES): Likewise.
2893 (raid6rec_mod_CFLAGS): Likewise.
2894 (raid6rec_mod_LDFLAGS): Likewise.
2895 (mdraid_mod_SOURCES): Likewise.
2896 (mdraid_mod_CFLAGS): Likewise.
2897 (mdraid_mod_LDFLAGS): Likewise.
2898 (dm_nv_mod_SOURCES): Likewise.
2899 (dm_nv_mod_CFLAGS): Likewise.
2900 (dm_nv_mod_LDFLAGS): Likewise.
2901
2902 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
2903 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2904 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2905
2906 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
2907 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2908
2909 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2910
2911 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2912
2913 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2914
2915 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2916
2917 * disk/raid5_recover.c: New file.
2918
2919 * disk/raid6_recover.c: Likewise.
2920
2921 * disk/mdraid_linux.c: Likewise.
2922
2923 * disk/dmraid_nvidia.c: Likewise.
2924
2925 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
2926 ULONG_MAX.
2927
2928 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
2929 calculate the size of raid device.
2930 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
2931 different layout of raid5.
2932 (grub_raid_scan_device): Remove code specific to mdraid.
2933 (grub_raid_list): New variable.
2934 (free_array): New function.
2935 (grub_raid_register): Likewise.
2936 (grub_raid_unregister): Likewise.
2937 (grub_raid_rescan): Likewise.
2938 (GRUB_MOD_INIT): Don't iterate device here.
2939 (GRUB_MOD_FINI): Use free_array to release resource.
2940
2941 * include/grub/raid.h: Remove macro and structure specific to mdraid.
2942 (grub_raid5_recover_func_t): New function variable type.
2943 (grub_raid6_recover_func_t): Likewise.
2944 (grub_raid5_recover_func): New variable.
2945 (grub_raid6_recover_func): Likewise.
2946 (grub_raid_register): New function.
2947 (grub_raid_unregister): Likewise.
2948 (grub_raid_rescan): Likewise.
2949 (grub_raid_block_xor): Likewise.
2950
2951 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
2952 (CMD_CRC): New macro.
2953 (part): Removed.
2954 (read_file): Handle device as well as file.
2955 (cmd_crc): New function.
2956 (fstest): Handle multiple disks.
2957 (options): Remove part, raw and long, add root and diskcount.
2958 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 2959 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 2960 add handling for the new options, support multiple disks.
2961
2962 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
2963
29c18915 29642008-08-23 Bean <bean123ch@gmail.com>
2965
2966 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
2967
2968 * genfslist.sh: Ignore kernel.mod.
2969
2970 * genpartmaplist.sh: Likewise.
2971
8415f261 29722008-08-23 Robert Millan <rmh@aybabtu.com>
2973
2974 * util/getroot.c (find_root_device): Skip anything that starts with
2975 a dot, not just directories. This avoids things like /dev/.tmp.md0.
2976
d5a7dc5b 29772008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 2978
d5a7dc5b 2979 * util/update-grub.in (GRUB_GFXMODE): Export variable.
2980 * util/grub.d/00_header.in: Allow the administrator to change default
2981 gfxmode via ${GRUB_GFXMODE}.
2982
380cfbb4 29832008-08-21 Felix Zielcke <fzielcke@z-51.de>
2984
2985 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
2986
c9baafe7 29872008-08-21 Robert Millan <rmh@aybabtu.com>
2988
2989 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
2990 loader.
2991 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
2992 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
2993
e290bef2 29942008-08-20 Carles Pina i Estany <carles@pina.cat>
2995
2996 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
2997 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
2998
f9dbfc96 29992008-08-19 Robert Millan <rmh@aybabtu.com>
3000
3001 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
3002 (struct grub_virtual_screen): Remove `cursor_color'.
3003 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
3004 initialization.
3005 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
3006
dd6bd6ab 30072008-08-18 Robert Millan <rmh@aybabtu.com>
3008
3009 Unify (identical) linux_normal.c files.
3010 * loader/i386/efi/linux_normal.c: Move from here ...
3011 * loader/linux_normal.c: ... to here. Update all users.
3012 * loader/i386/pc/linux_normal.c: Delete. Update all users.
3013 * loader/i386/ieee1275/linux_normal.c: Likewise.
3014
7f42f83e 30152008-08-18 Robert Millan <rmh@aybabtu.com>
3016
3017 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
3018 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
3019 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
3020 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
3021 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
3022 New macros.
3023 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
3024 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
3025 (GRUB_LINUX_CL_END_OFFSET): ... to here.
3026 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
3027 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
3028 (GRUB_EFI_CL_END_OFFSET): Rename to ...
3029 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
3030 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
3031 Initialize `params->video_cursor_x' and `params->video_cursor_y'
3032 portably using grub_getxy().
3033 Replace `-EFI' with `-bzImage' in boot message.
3034
38487ddb 30352008-08-17 Robert Millan <rmh@aybabtu.com>
3036
3037 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
3038
deceb3ec 30392008-08-17 Robert Millan <rmh@aybabtu.com>
3040
3041 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
3042
3043 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
3044 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
3045 (grub_machine_mmap_iterate): New function declaration.
3046 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
3047 structure.
3048 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
3049 macros.
3050
3051 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
3052 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
3053 Move e820 parsing from here ...
3054 * kern/i386/pc/mmap.c: New file.
3055 (grub_machine_mmap_iterate): ... to here.
3056
3057 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
3058 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
3059 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
3060 (grub_available_iterate): Redeclare to return `void', and redeclare
3061 its hook to use grub_uint64_t as addr and size parameters, and rename
3062 to ...
3063 (grub_machine_mmap_iterate): ... this. Update all users.
3064
3065 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
3066 to make it more readable. Rename to ...
3067 (grub_machine_mmap_iterate): ... this.
3068
3069 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
3070 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
3071 (grub_multiboot): Allocate an extra region after the payload, and fill
3072 it with a Multiboot memory map. Adjust a.out loader to calculate size
3073 with the extra space.
3074 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
3075 with the extra space.
3076
f8aa0f43 30772008-08-17 Carles Pina i Estany <carles@pina.cat>
3078
9807deb9 3079 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 3080
605f5bb6 30812008-08-17 Felix Zielcke <fzielcke@z-51.de>
3082
3083 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
3084 mdate-sh to the list `find' searches for.
3085 * DISTLIST: Regenerated.
3086
210db6c6 30872008-08-16 Felix Zielcke <fzielcke@z-51.de>
3088
3089 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
3090 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 3091 genmoddep.awk, gensymlist.sh.in.
3092 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 3093 * DISTLIST: Regenerated.
48cdbfd4 3094 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 3095
1082b929 30962008-08-16 Robert Millan <rmh@aybabtu.com>
3097
3098 * disk/raid.c (grub_raid_init): Handle/report errors set by
3099 grub_device_iterate().
3100 * disk/lvm.c (grub_lvm_init): Likewise.
3101
42ce5170 31022008-08-15 Bean <bean123ch@gmail.com>
3103
3104 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3105 and datehook.mod.
3106 (datetime_mod_SOURCES): New macro.
3107 (datetime_mod_CFLAGS): Likewise.
3108 (datetime_mod_LDFLAGS): Likewise.
3109 (date_mod_SOURCES): Likewise.
3110 (date_mod_CFLAGS): Likewise.
3111 (date_mod_LDFLAGS): Likewise.
3112 (datehook_mod_SOURCES): Likewise.
3113 (datehook_mod_CFLAGS): Likewise.
3114 (datehook_mod_LDFLAGS): Likewise.
3115
3116 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3117 and datehook.mod.
3118 (datetime_mod_SOURCES): New macro.
3119 (datetime_mod_CFLAGS): Likewise.
3120 (datetime_mod_LDFLAGS): Likewise.
3121 (date_mod_SOURCES): Likewise.
3122 (date_mod_CFLAGS): Likewise.
3123 (date_mod_LDFLAGS): Likewise.
3124 (datehook_mod_SOURCES): Likewise.
3125 (datehook_mod_CFLAGS): Likewise.
3126 (datehook_mod_LDFLAGS): Likewise.
3127
3128 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3129 and datehook.mod.
3130 (datetime_mod_SOURCES): New macro.
3131 (datetime_mod_CFLAGS): Likewise.
3132 (datetime_mod_LDFLAGS): Likewise.
3133 (date_mod_SOURCES): Likewise.
3134 (date_mod_CFLAGS): Likewise.
3135 (date_mod_LDFLAGS): Likewise.
3136 (datehook_mod_SOURCES): Likewise.
3137 (datehook_mod_CFLAGS): Likewise.
3138 (datehook_mod_LDFLAGS): Likewise.
3139
3140 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3141 and datehook.mod.
3142 (datetime_mod_SOURCES): New macro.
3143 (datetime_mod_CFLAGS): Likewise.
3144 (datetime_mod_LDFLAGS): Likewise.
3145 (date_mod_SOURCES): Likewise.
3146 (date_mod_CFLAGS): Likewise.
3147 (date_mod_LDFLAGS): Likewise.
3148 (datehook_mod_SOURCES): Likewise.
3149 (datehook_mod_CFLAGS): Likewise.
3150 (datehook_mod_LDFLAGS): Likewise.
3151
3152 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3153 and datehook.mod.
3154 (datetime_mod_SOURCES): New macro.
3155 (datetime_mod_CFLAGS): Likewise.
3156 (datetime_mod_LDFLAGS): Likewise.
3157 (date_mod_SOURCES): Likewise.
3158 (date_mod_CFLAGS): Likewise.
3159 (date_mod_LDFLAGS): Likewise.
3160 (datehook_mod_SOURCES): Likewise.
3161 (datehook_mod_CFLAGS): Likewise.
3162 (datehook_mod_LDFLAGS): Likewise.
3163
3164 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
3165
3166 * commands/date.c: New file.
3167
3168 * hook/datehook.c: Likewise.
3169
3170 * include/grub/lib/datetime.h: Likewise.
3171
3172 * include/grub/i386/cmos.h: Likewise.
3173
3174 * lib/datetime.c: Likewise.
3175
3176 * lib/i386/datetime.c: Likewise.
3177
3178 * lib/efi/datetime.c: Likewise.
3179
0e9242da 31802008-08-14 Robert Millan <rmh@aybabtu.com>
3181
3182 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
3183 (grub_mkelfimage_SOURCES): New variable.
3184 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
3185
3186 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
3187 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
3188 * conf/powerpc-ieee1275.rmk: Likewise.
3189 * conf/i386-ieee1275.rmk: Likewise.
3190
3191 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
3192 * kern/i386/coreboot/init.c: Likewise.
3193
3194 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
3195 with `<grub/cpu/kernel.h>'.
3196 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
3197 to ...
3198 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
3199 * kern/i386/coreboot/startup.S: Likewise.
3200
3201 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
3202 (GRUB_MOD_GAP): Remove.
3203 * include/grub/powerpc/kernel.h: New file.
3204 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
3205 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3206 * include/grub/i386/kernel.h: New file.
3207 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
3208 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
3209 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3210
3211 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
3212 `grub-mkelfimage'.
3213 Use --directory when invoking grub_mkimage.
3214
3215 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
3216 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
3217 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
3218 and GRUB_KERNEL_CPU_PREFIX.
3219
b86408f8 32202008-08-14 Felix Zielcke <fzielcke@z-51.de>
3221
d5e619ca 3222 * include/grub/err.h (grub_err_printf): New function prototype.
3223 * util/misc.c (grub_err_printf): New function.
3224 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
3225 grub_printf.
3226 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 3227
7161f0e0 32282008-08-13 Robert Millan <rmh@aybabtu.com>
3229
3230 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
3231
a1967522 32322008-08-13 Robert Millan <rmh@aybabtu.com>
3233
3234 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
3235 boot entry.
3236
371458b5 32372008-08-12 Robert Millan <rmh@aybabtu.com>
3238
3239 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
3240 of the relocation code from here ...
3241 (grub_multiboot): ... to here.
3242 (forward_relocator, backward_relocator): Move from here ...
3243 * kern/i386/loader.S (grub_multiboot_forward_relocator)
3244 (grub_multiboot_backward_relocator): ... to here.
3245 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
3246 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
3247 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
3248 (grub_multiboot_forward_relocator_end)
3249 (grub_multiboot_backward_relocator)
3250 (grub_multiboot_backward_relocator_end): New variables.
3251
05f9452b 32522008-08-12 Bean <bean123ch@gmail.com>
3253
3254 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
3255
20024ab0 32562008-08-11 Robert Millan <rmh@aybabtu.com>
3257
3258 * kern/i386/linuxbios/startup.S: Move from here ...
3259 * kern/i386/coreboot/startup.S: ... to here.
3260
3261 * kern/i386/linuxbios/init.c: Move from here ...
3262 * kern/i386/coreboot/init.c: ... to here.
3263
3264 * kern/i386/linuxbios/table.c: Move from here ...
3265 * kern/i386/coreboot/mmap.c: ... to here.
3266
3267 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
3268
e352e9cd 32692008-08-11 Robert Millan <rmh@aybabtu.com>
3270
3271 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
3272 errors. Leave it to the upper layer to handle them.
3273
2d05bc6a 32742008-08-09 Christian Franke <franke@computer.org>
3275
3276 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
3277 * conf/common.rmk: Install `grub-pe2elf' only if requested.
3278 Install `grub.d/10_windows' only on Cygwin.
3279 * configure.ac: Add subst of `target_os'.
3280 Check `target_os' also before setting TARGET_OBJ2ELF.
3281 Add `--enable-grub-pe2elf'.
3282
042bd419 32832008-08-08 Robert Millan <rmh@aybabtu.com>
3284
3285 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3286 (grub_last_time): Change type to grub_uint64_t.
3287 (grub_disk_open): Migrate code from to using grub_get_time_ms().
3288 (grub_disk_close): Likewise.
3289
3290 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3291 (run_menu): Migrate code from to using grub_get_time_ms().
3292
3293 * util/misc.c (grub_get_time_ms): New function.
3294
7f280db5 32952008-08-08 Marco Gerards <marco@gnu.org>
3296
3297 * disk/ata.c (grub_ata_regget): Change return type to
3298 `grub_uint8_t'.
3299 (grub_ata_regget2): Likewise.
3300 (grub_ata_wait_status): New function.
3301 (grub_ata_wait_busy): Removed function, updated all users to use
3302 `grub_ata_wait_status'.
3303 (grub_ata_wait_drq): Likewise.
3304 (grub_ata_cmd): New function.
3305 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
3306 error handling.
3307 (grub_ata_pio_write): Add error handling.
3308 (grub_atapi_identify): Likewise.
3309 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
3310 handling.
3311 (grub_ata_identify): Use `grub_ata_cmd' and improve error
3312 handling. Actually use the detected registers. Reorder the
3313 detection logic such that it is easier to read.
3314 (grub_ata_pciinit): Do not assign the same ID to each controller.
3315 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
3316 handling.
3317 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
3318
3319 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
3320
1fbc5e66 33212008-08-08 Marco Gerards <marco@gnu.org>
3322
3323 * NEWS: Update.
3324
819ce6c0 33252008-08-07 Bean <bean123ch@gmail.com>
3326
3327 * include/grub/x86_64/pci.h: New file.
3328
5c41d44d 33292008-08-07 Christian Franke <franke@computer.org>
3330
3331 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
3332 (TIMER2_GATE): Likewise.
3333 (grub_pit_wait): Add enable/disable of the timer2 gate
3334 bit of port 0x61. This fixes a possible infinite loop.
3335
5ebc275d 33362008-08-07 Bean <bean123ch@gmail.com>
3337
3338 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
3339 kern/i386/tsc.c and kern/i386/pit.c.
3340
3341 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
3342 x86_64 platform.
3343
3344 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
3345 <grub/i386/tsc.h>.
3346
3347 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
3348
e383b3d0 33492008-08-07 Bean <bean123ch@gmail.com>
3350
3351 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
3352
3353 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
3354
3355 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
3356 multiple inclusion. Add #include <grub/types.h>.
3357
1cbb58ac 33582008-08-06 Christian Franke <franke@computer.org>
3359
3360 * conf/common.rmk: Build and install `10_windows'.
3361 * util/grub.d/10_windows.in: New script.
3362
337f5a1e 33632008-08-06 Pavel Roskin <proski@gnu.org>
3364
3365 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
3366
057bc4ac 33672008-08-06 Robert Millan <rmh@aybabtu.com>
3368
3369 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
3370 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
3371
2b99f123 33722008-08-06 Bean <bean123ch@gmail.com>
3373
3374 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
3375 (grub_pxefs_fs_int): Remove dummy definition.
3376 (grub_pxefs_open): Use data->block_size to store the current block
3377 size setting.
3378 (grub_pxefs_read): Use block size stored in data->block_size. As the
3379 value of grub_pxe_blksize can be changed after the file is opened.
3380
9f0234cb 33812008-08-06 Bean <bean123ch@gmail.com>
3382
3383 * fs/i386/pc/pxe.c (curr_file): new variable.
3384 (grub_pxefs_open): Simply the handling of pxe file system. Don't
3385 require the dummy internal file system anymore.
3386 (grub_pxefs_read): Removed.
3387 (grub_pxefs_close): Likewise.
3388 (grub_pxefs_fs_int): Likewise.
3389 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
3390 connection when we switch file.
3391 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
3392
a55d42e0 33932008-08-06 Robert Millan <rmh@aybabtu.com>
3394
3395 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
3396 `halt.mod'.
3397 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
3398 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
3399
3400 * kern/i386/halt.c: New file.
3401 * kern/i386/reboot.c: Likewise.
3402 * include/grub/i386/reboot.h: Likewise.
3403 * include/grub/i386/halt.h: Likewise.
3404
3405 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
3406 Include `<grub/cpu/halt.h>'.
3407 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
3408 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
3409
3410 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
3411 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
3412 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
3413 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
3414 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
3415 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
3416 from here ...
3417 * include/grub/i386/at_keyboard.h: ... to here.
3418
24371d26 34192008-08-05 Robert Millan <rmh@aybabtu.com>
3420
3421 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
3422 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
3423 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
3424 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3425 `kern/generic/millisleep.c'.
3426
3427 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
3428 instead of grub_get_rtc().
3429 (grub_tsc_init): Initialize `tsc_boot_time'.
3430
3431 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
3432 (grub_machine_init): Use grub_tsc_init() rather than
3433 installing an RTC-based handler via grub_install_get_time_ms().
3434
3435 * kern/i386/pit.c: New file.
3436 * include/grub/i386/pit.h: Likewise.
3437
9e7007b3 34382008-08-05 Bean <bean123ch@gmail.com>
3439
3440 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
3441
3442 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
3443 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
3444 (pxe_mod_SOURCES): New macro.
3445 (pxe_mod_CFLAGS): Likewise.
3446 (pxe_mod_LDFLAGS): Likewise.
3447 (pxecmd_mod_SOURCES): Likewise.
3448 (pxecmd_mod_CFLAGS): Likewise.
3449 (pxecmd_mod_LDFLAGS): Likewise.
3450
3451 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
3452 (grub_pxe_call): Likewise.
3453
3454 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
3455
3456 * commands/i386/pc/pxecmd.c: New file.
3457
9f0234cb 3458 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 3459
3460 * include/grub/i386/pc/pxe.h: Likewise.
3461
6977d49f 34622008-08-05 Bean <bean123ch@gmail.com>
3463
3464 * util/console.c (grub_console_cur_color): New variable.
3465 (grub_console_standard_color): Likewise.
3466 (grub_console_normal_color): Likewise.
3467 (grub_console_highlight_color): Likewise.
3468 (color_map): Likewise.
3469 (use_color): Likewise.
3470 (NUM_COLORS): New macro.
3471 (grub_ncurses_setcolorstate): Handle color properly.
3472 (grub_ncurses_setcolor): Don't change color here, just remember the
3473 settings, color will be set in grub_ncurses_setcolorstate.
3474 (grub_ncurses_getcolor): New function.
3475 (grub_ncurses_init): Initialize color pairs.
3476 (grub_ncurses_term): New member grub_ncurses_getcolor.
3477
9c2ff3ee 34782008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 3479
9c2ff3ee 3480 High resolution timer support. Implemented for x86 CPUs using TSC.
3481 Extracted generic grub_millisleep() so it's linked in only as needed.
3482 This requires a Pentium compatible CPU; if the RDTSC instruction is
3483 not supported, then it falls back on the generic grub_get_time_ms()
3484 implementation that uses the machine's RTC.
3485
3486 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
3487 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3488 `kern/generic/millisleep.c'.
3489
3490 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
3491 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
3492
3493 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
3494 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
3495
3496 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3497
3498 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3499 `kern/generic/millisleep.c'.
3500
3501 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3502
3503 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
3504
3505 * kern/generic/rtc_get_time_ms.c: New file.
3506
3507 * kern/generic/millisleep.c: New file.
337f5a1e 3508
9c2ff3ee 3509 * kern/misc.c: Don't include
3510 <kern/time.h> anymore.
3511 (grub_millisleep_generic): Removed.
3512
3513 * commands/sleep.c (grub_interruptible_millisleep): Uses
3514 grub_get_time_ms() instead of grub_get_rtc().
3515
3516 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
3517 function.
3518 (grub_cpu_is_cpuid_supported): New inline function.
3519 (grub_cpu_is_tsc_supported): New inline function.
3520 (grub_tsc_init): New function prototype.
3521 (grub_tsc_get_time_ms): New function prototype.
3522
3523 * kern/i386/tsc.c (grub_get_time_ms): New file.
3524
3525 * include/grub/time.h: Include <grub/types.h.
3526 (grub_millisleep_generic): Removed.
3527 (grub_get_time_ms): New prototype.
3528 (grub_install_get_time_ms): New prototype.
3529 (grub_rtc_get_time_ms): New prototype.
3530
3531 * kern/time.c (grub_get_time_ms): New function.
3532 (grub_install_get_time_ms): New function.
3533
3534 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
3535 <grub/time.h> anymore.
3536 (grub_millisleep): Removed.
3537 (grub_machine_init): Call grub_tsc_init.
3538
3539 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
3540 get_time_ms() implementation.
3541
3542 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
3543 (ieee1275_get_time_ms): New function.
3544 (grub_machine_init): Install get_time_ms() implementation.
3545
3546 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
3547 (grub_machine_init): Call grub_tsc_init().
3548 (grub_millisleep): Removed.
bf06a93f 3549
9c2ff3ee 3550 * kern/ieee1275/init.c (grub_millisleep): Removed.
3551 (grub_machine_init): Install ieee1275_get_time_ms()
3552 implementation.
3553 (ieee1275_get_time_ms): New function.
3554 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
3555 real work.
3556
9ec92aaf 35572008-08-05 Marco Gerards <marco@gnu.org>
3558
3559 * disk/ata.c: Include <grub/pci.h>.
3560 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
3561 (grub_ata_initialize): Rewritten.
3562 (grub_ata_device_initialize): New function.
3563
8d23f507 35642008-08-04 Pavel Roskin <proski@gnu.org>
3565
3566 * kern/main.c: Include grub/mm.h.
3567
5e15ee3d 35682008-08-04 Robert Millan <rmh@aybabtu.com>
3569
3570 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
3571 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
3572 corruption problem).
3573
a9053f8f 35742008-08-04 Robert Millan <rmh@aybabtu.com>
3575
3576 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
3577 warnings introduced in my last commit.
3578
dd19c7d7 35792008-08-03 Robert Millan <rmh@aybabtu.com>
3580
3581 Make PCI available on all i386 architectures.
3582
3583 * include/grub/i386/pc/pci.h: Move from here ...
3584 * include/grub/i386/pci.h: ... to here.
3585
3586 * include/grub/i386/pc/pci.h: Remove.
3587 * include/grub/i386/efi/pci.h: Remove.
3588 * include/grub/x86_64/efi/pci.h: Remove.
3589
3590 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
3591 `<grub/cpu/pci.h>'.
3592
3593 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
3594 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
3595 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
3596
3597 * conf/i386-ieee1275.rmk: Likewise.
3598
e14a6184 35992008-08-03 Robert Millan <rmh@aybabtu.com>
3600
3601 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
3602 (grub_console_setcursor): Make it possible to set cursor off.
3603
52768e37 36042008-08-03 Robert Millan <rmh@aybabtu.com>
3605
3606 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
3607 of modules instead of assuming which platform provides what.
3608 * util/update-grub.in: Likewise.
3609
2d52f57f 36102008-08-03 Robert Millan <rmh@aybabtu.com>
3611
3612 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
3613 instead of `grub_install_dos_part' to determine whether a drive needs
3614 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 3615 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 3616
2a5cd121 36172008-08-02 Robert Millan <rmh@aybabtu.com>
3618
3619 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
3620
93808428 36212008-08-02 Robert Millan <rmh@aybabtu.com>
3622
3623 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
3624 of informational grub_dprintf() calls.
3625
3bd0a12a 36262008-08-02 Robert Millan <rmh@aybabtu.com>
3627
3628 * disk/memdisk.c (memdisk_size): Don't initialize.
3629 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
3630
3631 * include/grub/i386/pc/kernel.h
3632 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
3633 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
3634 (grub_memdisk_image_size, grub_arch_memdisk_addr)
3635 (grub_arch_memdisk_size): Remove.
3636
3637 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
3638 field (was only used to transfer a constant). Add `type' field to
3639 support multiple module types.
3640 (grub_module_iterate): New function.
3641
3642 * kern/device.c (grub_device_open): Do not hide error messages
3643 when grub_disk_open() fails. Use grub_print_error() instead.
3644
3645 * kern/i386/pc/init.c (grub_arch_modules_addr)
3646 (grub_arch_memdisk_size): Remove functions.
3647 (grub_arch_modules_addr): Return the module address in high memory
3648 (now that it isn't copied anymore).
3649
3650 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
3651 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
3652 decompression routine (grub_total_module_size already includes that
3653 now). Don't copy modules back to low memory.
3654
3655 * kern/main.c: Include `<grub/mm.h>'.
3656 (grub_load_modules): Split out (and use) ...
3657 (grub_module_iterate): ... this function, which iterates through
3658 module objects and runs a hook.
3659 Comment out grub_mm_init_region() call, as it would cause non-ELF
3660 modules to be overwritten.
3661
3662 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
3663 the memdisk image in its own region, make it part of the module list.
3664 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
3665 (main): Parse --memdisk|-m option, and pass user-provided path as
3666 parameter to generate_image().
3667 (add_segments): Pass `memdisk_path' down to load_modules().
3668 (load_modules): Embed memdisk image in module section when requested.
3669 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
3670 `header.type' instead of `header.offset'.
3671
3672 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
3673 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
3674 (memdisk_mod_LDFLAGS): New variables.
3675 * conf/i386-coreboot.rmk: Likewise.
3676 * conf/i386-ieee1275.rmk: Likewise.
3677
a927cc73 36782008-08-02 Robert Millan <rmh@aybabtu.com>
3679
3680 * loader/i386/pc/multiboot.c (playground, forward_relocator)
3681 (backward_relocator): New variables. Used to allocate and relocate
3682 the payload, respectively.
3683 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 3684 address, install the appropriate relocator code in each bound of
a927cc73 3685 the payload, and set the entry point such that
3686 grub_multiboot_real_boot() will jump to one of them.
3687
3688 * kern/i386/loader.S (grub_multiboot_payload_size)
3689 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3690 (grub_multiboot_payload_entry_offset): New variables.
3691 (grub_multiboot_real_boot): Set cpu context to what the relocator
3692 expects, and jump to the relocator instead of the payload.
3693
3694 * include/grub/i386/loader.h (grub_multiboot_payload_size)
3695 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3696 (grub_multiboot_payload_entry_offset): Export.
3697
b15d8a0c 36982008-08-01 Bean <bean123ch@gmail.com>
3699
3700 * normal/menu_entry.c (editor_getline): Don't return the original
3701 string as result, as it will be released by lexer once it has done
3702 using it.
3703
cdfb3d22 37042008-08-01 Robert Millan <rmh@aybabtu.com>
3705
3706 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
3707 within menuentries, not before them.
3708 util/grub.d/10_hurd.in: Likewise.
3709
9175e93d 37102008-08-01 Bean <bean123ch@gmail.com>
3711
3712 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
3713 (bufio_mod_SOURCES): New macro.
3714 (bufio_mod_CFLAGS): Likewise.
3715 (bufio_mod_LDFLAGS): Likewise.
3716
3717 * include/grub/bufio.h: New file.
3718
3719 * io/bufio.c: Likewise.
3720
3721 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
3722 (grub_video_reader_png): Use grub_buffile_open to open file.
3723
3724 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
3725 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
3726
3727 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
3728 (grub_video_reader_tga): Use grub_buffile_open to open file.
3729
3730 * font/manager.c: Include <grub/bufio.h>.
3731 (add_font): Use grub_buffile_open to open file.
3732
3d8383e7 37332008-07-31 Robert Millan <rmh@aybabtu.com>
3734
3735 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
3736 ELF segments, use a macro for arbitrarily accessing any of them instead
3737 of preparing a pointer that allows access to one at a time.
3738 (grub_multiboot_load_elf64): Likewise.
3739
16e641b6 37402008-07-31 Bean <bean123ch@gmail.com>
3741
3742 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
3743 GRUB_KERNEL_MACHINE_DATA_END.
3744
59198b72 37452008-07-30 Robert Millan <rmh@aybabtu.com>
3746
3747 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
3748 Increase from 0x50 to 0x60.
3749 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
3750 use UUIDs to identify the root drive for them. If that's not
3751 possible, abort.
3752 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
3753 check, for cross-disk installs.
3754
ae88bca3 37552008-07-30 Robert Millan <rmh@aybabtu.com>
3756
3757 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
3758 is non-empty, use it to set the `prefix' environment variable instead
3759 of the usual approach.
3760 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
3761 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
3762 environment variable instead of dummy make_install_device().
3763
3764 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
3765 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 3766 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 3767
3768 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
3769 New variable reference.
3770 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
3771 New macro. Defines offset of `grub_prefix' within startup.S (relative
3772 to `start').
3773 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
3774 section within startup.S (relative to `start').
3775 * include/grub/i386/coreboot/kernel.h: Likewise.
3776
3777 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
3778 Overwrite grub_prefix with its contents, at the beginning of the
3779 first segment.
3780 (main): Understand -p|--prefix.
3781
14f41dd1 37822008-07-30 Robert Millan <rmh@aybabtu.com>
3783
3784 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
3785
4ca049a3 37862008-07-30 Robert Millan <rmh@aybabtu.com>
3787
3788 * term/i386/pc/vga_text.c (grub_console_cls): Use
3789 grub_console_gotoxy() to go back to beginning of the screen.
3790 Found by Patrick Georgi <patrick.georgi@coresystems.de>
3791
2921d337 37922008-07-29 Christian Franke <franke@computer.org>
3793
3794 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3795 Add conversion of emulated mount points on Cygwin.
3796
b609876d 37972008-07-29 Christian Franke <franke@computer.org>
3798
3799 * util/update-grub.in: Add a check for admin
3800 group on Cygwin.
3801 Remove old `grub.cfg.new' before creation.
3802 Add `-f' to `mv' to handle the different filesystem
3803 semantics of Windows.
3804
e93e4679 38052008-07-29 Bean <bean123ch@gmail.com>
3806
3807 * normal/main.c (get_line): Fix buffer overflow bug.
3808
41694fd0 38092008-07-28 Robert Millan <rmh@aybabtu.com>
3810
3811 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
3812 (struct grub_apple_header): New struct. Describes the layout of
3813 the partmap header.
3814 (apple_partition_map_iterate): Check the header magic as well as the
3815 partition magic (which was already being checked).
3816
cfd0b4e6 38172008-07-28 Pavel Roskin <proski@gnu.org>
3818
3819 * genmk.rb: Add a warning to the beginning of the output that
3820 it's a generated file and should not be edited.
3821
93cce016 38222008-07-28 Robert Millan <rmh@aybabtu.com>
3823
3824 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
3825 with the same number are found, just use issue a warning with
3826 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 3827
cd1df915 38282008-07-27 Robert Millan <rmh@aybabtu.com>
3829
3830 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
3831 information.
3832
b70a8427 38332008-07-27 Bean <bean123ch@gmail.com>
3834
3835 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
3836 (grub_fat_find_dir): Ignore case when comparing filename.
3837
8f5e379f 38382008-07-27 Bean <bean123ch@gmail.com>
3839
3840 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
3841 smallino, as it's more descriptive, and i8count can be confused with
3842 the other field count.
3843 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
3844 inode type.
3845
a85cd5a0 38462008-07-27 Bean <bean123ch@gmail.com>
3847
3848 * commands/crc.c: New file.
3849
3850 * lib/crc.c: Likewise.
3851
3852 * include/grub/lib/crc.h: Likewise.
3853
3854 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
3855
3856 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
3857 (hexdump): Move this function to ...
3858
3859 * lib/hexdump.c: ... here.
3860
3861 * include/grub/hexdump.h: Renamed to ...
3862
3863 * include/grub/lib/hexdump.h: ... this.
3864
3865 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
3866
3867 * util/grub-editenv.c: Likewise.
3868
3869 * include/envblk.h: Renamed to ...
3870
3871 * include/lib/envblk.h: ... this.
3872
3873 * util/envblk.c: Renamed to ...
3874
3875 * lib/envblk.c: ... this.
3876
3877 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
3878 lib/hexdump.c.
3879 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
3880 (pkglib_MODULES): Add crc.mod.
3881 (hexdump_mod_SOURCES): Add lib/hexdump.c.
3882 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
3883 (crc_mod_SOURCES): New macro.
3884 (crc_mod_CFLAGS): Likewise.
3885 (crc_mod_LDFLAGS): Likewise.
3886
3887 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
3888
3889 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3890
3891 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3892
3893 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3894
3895 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3896
c298def0 38972008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 3898
3899 * commands/help.c: Include <grub/term.h>.
3900 (TERM_WIDTH): Removed. Updated all users.
3901
cc349fb3 39022008-07-27 Pavel Roskin <proski@gnu.org>
3903
3904 * util/getroot.c (find_root_device): Rephrase a comment to avoid
3905 spurious warnings about a comment within a comment.
3906
9051607e 39072008-07-25 Robert Millan <rmh@aybabtu.com>
3908
3909 * util/getroot.c (find_root_device): Skip devices that match
3910 /dev/dm-[0-9]. This lets the real device be found for any type of
3911 abstraction (LVM, EVMS, RAID..).
3912 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
3913 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
3914 device is found first, find_root_device() will now skip it.
3915
01453bfc 39162008-07-24 Pavel Roskin <proski@gnu.org>
3917
3918 * include/grub/types.h: Use __builtin_bswap32() and
3919 __builtin_bswap64() with gcc 4.3 and newer.
3920
6af9849f 39212008-07-24 Christian Franke <franke@computer.org>
3922
3a0fa256 3923 * util/i386/pc/grub-install.in: If `--debug' is specified,
3924 pass `--verbose' to grub-setup.
3925 Abort script if make_system_path_relative_to_its_root() fails.
3926
7810e747 39272008-07-24 Bean <bean123ch@gmail.com>
3928
3929 * configure.ac: Fixed a bug caused by the previous cygwin patch,
3930 variable `target_platform' should be `platform'.
3931
42290e17 39322008-07-24 Bean <bean123ch@gmail.com>
3933
51cc5193 3934 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 3935 (grub_png_init_fixed_block): New function.
3936 (grub_png_decode_image_data): Handle fixed huffman code compression.
3937
2a8a80e4 39382008-07-24 Bean <bean123ch@gmail.com>
3939
3940 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
3941 (grub_pe2elf_SOURCES): New macro.
3942 (CLEANFILES): Add grub-pe2elf.
3943
3944 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
3945 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
3946 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
3947 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
3948 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
3949 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
3950 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
3951 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
3952 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
3953 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
3954 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
3955 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
3956 (GRUB_PE32_DT_FUNCTION): Likewise.
3957 (GRUB_PE32_REL_I386_DIR32): Likewise.
3958 (GRUB_PE32_REL_I386_REL32): Likewise.
3959 (grub_pe32_symbol): New structure.
3960 (grub_pe32_reloc): Likewise.
3961
3962 * util/grub-pe2elf.c: New file.
3963
3964 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
3965 start symbol in non pc platform.
3966
3967 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
3968
3969 The following patches are from Christian Franke.
3970
3971 * include/grub/dl.h: Remove .previous, gas supports this only
3972 for ELF format.
3973
3974 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
3975 Remove .type, gas supports this only for ELF format.
3976
3977 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
3978 nullbytes in symbol table. This fixes an infinite loop if table is
3979 zero filled.
3980
3981 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
3982 TARGET_IMG_LDFLAGS and EXEEXT.
3983
3984 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
3985 TARGET_IMG_LDFLAGS_AC.
3986 (grub_CHECK_STACK_ARG_PROBE): New function.
3987
3988 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
3989
3990 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
3991
3992 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
3993 to set TARGET_IMG_LD* accordingly.
3994 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
3995 Add call to grub_CHECK_STACK_ARG_PROBE.
3996 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
3997
3998 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
3999
4000 * genmk.rb: Add EXEEXT to CLEANFILES.
4001
12ccdb75 40022008-07-23 Robert Millan <rmh@aybabtu.com>
4003
4004 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
4005 define the codes for arrows and lines used for the menu).
4006 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
4007 as well.
4008
4009 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
4010 fonts, because the latter are too slow.
4011
18eeaf04 40122008-07-21 Bean <bean123ch@gmail.com>
4013
4014 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
4015 a20. Run keyboard test last, as it will cause macbook to halt.
4016
b095e2ad 40172008-07-18 Pavel Roskin <proski@gnu.org>
4018
4019 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
4020 load foreign architecture modules correctly anyway. Keep
4021 support for loading host architecture modules, whether we
4022 compile them or not.
4023
737feb35 40242008-07-17 Pavel Roskin <proski@gnu.org>
4025
3f4ce737 4026 * configure.ac: Use -m32 or -m64 regardless of whether we had to
4027 change target_cpu. The compiler default can mismatch target_cpu
4028 in any case.
4029
4ad2d049 4030 * disk/efi/efidisk.c: Fix format warnings on x86_64.
4031 * kern/efi/efi.c: Likewise.
4032
f6130a12 4033 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
4034 target compiler is functional.
4035 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
4036 are set up.
4037
58393a2d 4038 * configure.ac: Default to efi platform for x86_64-apple. Allow
4039 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
4040 adjustments from the rest, only do them if target is not
4041 explicitly given. Merge other adjustments with the final sanity
4042 check. Remove an extraneous check for supported CPU. Be
4043 specific which CPU and which platform is not supported.
4044
737feb35 4045 * configure.ac: Default to pc platform for x86_64.
4046
546f966a 40472008-07-17 Robert Millan <rmh@aybabtu.com>
4048
4049 Partial LinuxBIOS -> Coreboot rename.
4050
4051 * conf/i386-linuxbios.rmk: Renamed to ...
4052 * conf/i386-coreboot.rmk: ... this.
4053 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
4054 * configure.ac: Accept "coreboot" as input platform (but maintain
4055 compatibility with "linuxbios").
4056 * include/grub/i386/linuxbios: Renamed to ...
4057 * include/grub/i386/coreboot: ... this.
4058
20011694 40592008-07-17 Bean <bean123ch@gmail.com>
4060
4061 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 4062 (appleldr_mod_SOURCE): New variable.
20011694 4063 (appleldr_mod_CFLAGS): Likewise.
4064 (appleldr_mod_LDFLAGS): Likewise.
4065 (pci_mod_SOURCES): Likewise.
4066 (pci_mod_CFLAGS): Likewise.
4067 (pci_mod_LDFLAGS): Likewise.
4068 (lspci_mod_SOURCES): Likewise.
4069 (lspci_mod_CFLAGS): Likewise.
4070 (lspci_mod_LDFLAGS): Likewise.
4071
4072 * conf/x86_64-efi.rmk: New file.
4073
4074 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
4075 macro.
4076 (grub_efidisk_write): Likewise.
4077
4078 * include/efi/api.h (efi_call_0): New macro.
4079 (efi_call_1): Likewise.
4080 (efi_call_2): Likewise.
4081 (efi_call_3): Likewise.
4082 (efi_call_4): Likewise.
4083 (efi_call_5): Likewise.
4084 (efi_call_6): Likewise.
4085
4086 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
4087 grub_rescue_cmd_chainloader.
4088
4089 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
4090 (grub_pe32_optional_header): Change some fields based on i386 or
4091 x86_64 platform.
4092 (GRUB_PE32_PE32_MAGIC): Likewise.
4093
4094 * include/grub/efi/uga_draw.h: New file.
4095
4096 * include/grub/elf.h (STN_ABS): New constant.
4097 (R_X86_64_NONE): Relocation constant for x86_64.
4098 (R_X86_64_64): Likewise.
4099 (R_X86_64_PC32): Likewise.
4100 (R_X86_64_GOT32): Likewise.
4101 (R_X86_64_PLT32): Likewise.
4102 (R_X86_64_COPY): Likewise.
4103 (R_X86_64_GLOB_DAT): Likewise.
4104 (R_X86_64_JUMP_SLOT): Likewise.
4105 (R_X86_64_RELATIVE): Likewise.
4106 (R_X86_64_GOTPCREL): Likewise.
4107 (R_X86_64_32): Likewise.
4108 (R_X86_64_32S): Likewise.
4109 (R_X86_64_16): Likewise.
4110 (R_X86_64_PC16): Likewise.
4111 (R_X86_64_8): Likewise.
4112 (R_X86_64_PC8): Likewise.
4113
4114 * include/grub/i386/efi/pci.h: New file.
4115
4116 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
4117 Change it value based on platform.
4118 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
4119 (GRUB_E820_RAM): Likewise.
4120 (GRUB_E820_RESERVED): Likewise.
4121 (GRUB_E820_ACPI): Likewise.
4122 (GRUB_E820_NVS): Likewise.
4123 (GRUB_E820_EXEC_CODE): Likewise.
4124 (GRUB_E820_MAX_ENTRY): Likewise.
4125 (grub_e820_mmap): New structure.
4126 (linux_kernel_header): Change the efi field according to different
4127 kernel version, also field from linux_kernel_header.
4128
4129 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
4130
4131 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
4132 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
4133 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
4134 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
4135 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
4136 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
4137 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
4138 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
4139 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
4140 (GRUB_PCI_ADDR_IO_MASK): Likewise.
4141
4142 * include/grub/x86_64/efi/kernel.h: New file.
4143
4144 * include/grub/x86_64/efi/loader.h: Likewise.
4145
4146 * include/grub/x86_64/efi/machine.h: Likewise.
4147
4148 * include/grub/x86_64/efi/pci.h: Likewise.
4149
4150 * include/grub/x86_64/efi/time.h: Likewise.
4151
4152 * include/grub/x86_64/linux.h: Likewise.
4153
4154 * include/grub/x86_64/setjmp.h: Likewise.
4155
4156 * include/grub/x86_64/time.h: Likewise.
4157
4158 * include/grub/x86_64/types.h: Likewise.
4159
4160 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
4161 GRUB_TARGET_SIZEOF_VOID_P.
4162
4163 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
4164 (grub_efi_locate_handle): Likewise.
4165 (grub_efi_open_protocol): Likewise.
4166 (grub_efi_set_text_mode): Likewise.
4167 (grub_efi_stall): Likewise.
4168 (grub_exit): Likewise.
4169 (grub_reboot): Likewise.
4170 (grub_halt): Likewise.
4171 (grub_efi_exit_boot_services): Likewise.
4172 (grub_get_rtc): Likewise.
4173
4174 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
4175 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
4176 (grub_efi_allocate_pages): Wrap efi calls.
4177 (grub_efi_free_pages): Wrap efi calls.
4178 (grub_efi_get_memory_map): Wrap efi calls.
4179
4180 * kern/x86_64/dl.c: New file.
4181
4182 * kern/x86_64/efi/callwrap.S: Likewise.
4183
4184 * kern/x86_64/efi/startup.S: Likewise.
4185
4186 * loader/efi/appleloader.c: Likewise.
4187
4188 * loader/efi/chainloader.c (cmdline): New variable.
4189 (grub_chainloader_unload): Wrap efi calls.
4190 (grub_chainloader_boot): Likewise.
4191 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
4192 command line.
4193
4194 * loader/efi/chainloader_normal.c (chainloader_command):
4195 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
4196 command line.
4197
4198 * loader/i386/efi/linux.c (allocate_pages): Change allocation
4199 method.
4200 (grub_e820_add_region): New function.
4201 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
4202 booting.
4203 (grub_find_video_card): New function.
4204 (grub_linux_setup_video): New function.
4205 (grub_rescue_cmd_linux): Probe for video information.
4206
4207 * normal/x86_64/setjmp.S: New file.
4208
4209 * term/efi/console.c (map_char): New function.
4210 (grub_console_putchar): Map unicode char.
4211 (grub_console_checkkey): Wrap efi calls.
4212 (grub_console_getkey): Likewise.
4213 (grub_console_getwh): Likewise.
4214 (grub_console_gotoxy): Likewise.
4215 (grub_console_cls): Likewise.
4216 (grub_console_setcolorstate): Likewise.
4217 (grub_console_setcursor): Likewise.
4218
4219 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
4220
59652a20 42212008-07-16 Pavel Roskin <proski@gnu.org>
4222
ef294055 4223 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
4224 format strings.
4225
59652a20 4226 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
4227 pointer, not an integer. This fixes a warning and prevents
4228 precision loss on 64-bit systems.
4229 (relocate_addresses): Remove unneeded cast.
4230
afc3b5d7 42312008-07-15 Pavel Roskin <proski@gnu.org>
4232
506b2b3e 4233 * kern/i386/ieee1275/init.c: Include grub/cache.h.
4234
62ead89c 4235 * term/ieee1275/ofconsole.c: Disable code unused on i386.
4236
c4cd51d7 4237 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
4238 Fix comparison between signed and unsigned.
4239
0d3d8f28 4240 * include/grub/i386/ieee1275/console.h: Declare
4241 grub_console_init() and grub_console_fini().
4242
8804b286 4243 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
4244 It's empty and unused.
4245
ee01cf35 4246 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
4247 beginning to avoid warnings with some compilers.
4248
afc3b5d7 4249 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
4250 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
4251
e4e8eaa5 42522008-07-14 Pavel Roskin <proski@gnu.org>
4253
407aceb4 4254 * kern/env.c (grub_register_variable_hook): Don't copy empty
4255 string, it leaks memory. Pass "" to grub_env_set(), it should
4256 handle constant strings.
4257
e4e8eaa5 4258 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
4259 * commands/cmp.c (grub_cmd_cmp): Likewise.
4260 * kern/dl.c (grub_dl_flush_cache): Likewise.
4261 (grub_dl_load_core): Likewise.
4262 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
4263 (grub_elf64_load_phdrs): Likewise.
4264
d4e2dad3 42652008-07-13 Pavel Roskin <proski@gnu.org>
4266
4267 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
4268 between signed and unsigned.
4269 (LzmaEnc_Finish): Fix warning about an unused parameter.
4270
aa24b516 42712008-07-13 Bean <bean123ch@gmail.com>
4272
4273 * Makefile.in (enable_lzo): New rule.
4274
4275 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
4276
4277 * configure.ac (ENABLE_LZO): New option --enable-lzo.
4278
4279 * boot/i386/pc/lnxboot.S: #include <config.h>.
4280
4281 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 4282 its value according to the compression algorithm used, lzo or lzma.
aa24b516 4283
4284 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
4285 compression algorithm according to configure macro.
4286
4287 * kern/i386/pc/startup.S (codestart): Likewise.
4288
4289 * kern/i386/pc/lzma_decode.S: New file.
4290
4291 * include/grub/lib/LzFind.h: Likewise.
4292
4293 * include/grub/lib/LzHash.h: Likewise.
4294
4295 * include/grub/lib/LzmaDec.h: Likewise.
4296
4297 * include/grub/lib/LzmaEnc.h: Likewise.
4298
4299 * include/grub/lib/LzmaTypes.h: Likewise.
4300
4301 * lib/LzFind.c: Likewise.
4302
4303 * lib/LzmaDec.c: Likewise.
4304
4305 * lib/LzmaEnc.c: Likewise.
4306
4ae821ac 43072008-07-13 Bean <bean123ch@gmail.com>
4308
4309 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
4310 (grub_ext4_extent_header): New structure.
4311 (grub_ext4_extent): Likewise.
4312 (grub_ext4_extent_idx): Likewise.
4313 (grub_ext4_find_leaf): New function.
4314 (grub_ext2_read_block): Handle extents.
4315
9a745147 43162008-07-12 Robert Millan <rmh@aybabtu.com>
4317
4318 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
4319
d49a4cf6 43202008-07-11 Robert Millan <rmh@aybabtu.com>
4321
4322 * util/grub.d/40_custom.in: New file. Example on how to add custom
4323 entries to /etc/grub.d.
4324 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
4325 40_custom (implicitly, by merging all the grub.d rules).
4326
947414b4 43272008-07-11 Pavel Roskin <proski@gnu.org>
4328
0059cf6f 4329 * commands/read.c (grub_getline): Fix invalid memory access.
4330 Don't add newline to the variable value.
4331
947414b4 4332 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
4333 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
4334 (serial_hw_get_port): Check validity of the port number.
4335 (grub_cmd_serial): Check return value of serial_hw_get_port().
4336
62a02d00 43372008-07-07 Pavel Roskin <proski@gnu.org>
4338
4339 * boot/i386/pc/diskboot.S (notification_string): Replace
4340 "Loading kernel" with just "loading". This is shorter, less
4341 confusing and saves a few bytes for possible future changes.
4342
3e5581b0 43432008-07-05 Pavel Roskin <proski@gnu.org>
4344
ea387a48 4345 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
4346 size for ATAPI devices, they are undefined. Output sector
4347 number in decimal form.
4348
3e5581b0 4349 * disk/ata.c: Use named constants for status bits.
4350
fdecb8fd 43512008-07-04 Pavel Roskin <proski@gnu.org>
4352
bcd35b90 4353 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
4354 grub_addr_t before casting it to the void pointer to fix a
4355 warning. Non-addressable regions are discarded earlier.
4356 (grub_arch_modules_addr): Cast _end to grub_addr_t.
4357 * kern/i386/linuxbios/table.c: Include grub/misc.h.
4358 (check_signature): Don't shadow table_header.
4359 (grub_linuxbios_table_iterate): Cast numeric constants to
4360 grub_linuxbios_table_header_t.
4361 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
4362 grub_stop().
4363
af58ab3d 4364 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
4365 prevent warnings.
4366
1759aa57 4367 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
4368 pointer, which can cause warnings. Support 64-bit addresses.
4369
fdecb8fd 4370 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
4371 of sizeof(long). This fixes PowerPC image generation on x86_64.
4372
8516d2a8 43732008-07-04 Robert Millan <rmh@aybabtu.com>
4374
4375 This fixes a performance issue when pc & gpt partmap iterators
4376 didn't abort iteration even after our hook found what it was
fe987087 4377 looking for (often causing expensive probes of non-existent drives).
8516d2a8 4378
4379 Some callers relied on previous buggy behaviour, since they would
34c44600 4380 raise an error when their own hooks caused early abortion of its
8516d2a8 4381 iteration.
4382
4383 * kern/device.c (grub_device_open): Improve error message.
4384 * disk/lvm.c (grub_lvm_open): Likewise.
4385 * disk/raid.c (grub_raid_open): Likewise.
4386
4387 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
4388 when hook requests it, independently of grub_errno.
4389 (pc_partition_map_probe): Do not fail when find_func() caused
4390 early abortion of pc_partition_map_iterate().
4391
4392 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
4393 when hook requests it, independently of grub_errno.
4394 (gpt_partition_map_probe): Do not fail when find_func() caused
4395 early abortion of gpt_partition_map_iterate().
4396
4397 * kern/partition.c (grub_partition_iterate): Abort parent iteration
4398 when hook requests it, independently of grub_errno. Do not fail when
4399 part_map_iterate_hook() caused early abortion of p->iterate().
4400
4401 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
4402 when grub_partition_iterate() returned with non-zero.
4403
277d0de9 44042008-07-03 Pavel Roskin <proski@gnu.org>
4405
4406 * disk/ata.c (grub_ata_pio_write): Check status before writing,
4407 like we do in grub_ata_pio_read().
4408 (grub_ata_readwrite): Always write individual sectors. Fix the
4409 sector count for the remainder.
4410 (grub_ata_write): Enable writing to ATA devices. Correctly
4411 report error for ATAPI devices.
4412
d4c9b428 44132008-07-02 Pavel Roskin <proski@gnu.org>
4414
e43fc690 4415 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
4416 warning.
4417
f707af42 4418 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
4419 for every read sector, we already increment it for the whole
4420 batch. This fixes reading more than 256 sectors at once.
4421
11e16b15 4422 * util/grub-editenv.c (cmd_info): Cast argument to long
4423 explicitly. ptrdiff_t reduces to int on i386.
4424
cbabfdd4 4425 * util/grub-editenv.c (main): Be specific which parameter is
4426 missing.
4427
b8fbce0a 4428 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
4429 (memdisk): Make memdisk_orig_addr a pointer.
4430
c9c8e606 4431 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
4432 for file offsets, use grub_off_t instead. Fix printf format
4433 warnings.
4434
ca62e598 4435 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
4436 there. Real unexpected warnings should not drown in the noise
4437 about known problems.
4438
ce8d1766 4439 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
4440 grub_disk_addr_t for memory addresses.
4441
00c7a56a 4442 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
4443 explicitly to fix a warning.
4444
08d3ef09 4445 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
4446
cb71ba20 4447 * Makefile.in (MODULE_LDFLAGS): New variable.
4448 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
4449 the linker accepts --build-id=none.
4450 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
4451 MODULE_LDFLAGS.
4452 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
4453
d4c9b428 4454 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
4455 those in Linux XFS code. Provide a way to access 64-bit parent
4456 inode.
4457 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
4458 the end of struct grub_xfs_dir_header.
4459
d4156eee 44602008-07-02 Bean <bean123ch@gmail.com>
4461
4462 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
4463 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4464 and GRUB_IEEE1275_FLAG_NO_ANSI.
4465
4466 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
4467 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4468 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
4469
4470 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
4471 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
4472
4473 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
4474 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
4475
4476 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
4477 esc sequence on non ANSI terminal.
4478 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
4479
4480 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
4481 beginning of file.
4482
2270f77b 44832008-07-02 Bean <bean123ch@gmail.com>
4484
4485 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
4486 (grub_editenv_SOURCES): New variable.
4487 (pkglib_MODULES): Add loadenv.mod.
4488 (loadenv_mod_SOURCES): New variable.
4489 (loadenv_mod_CFLAGS): Likewise.
4490 (loadenv_mod_LDFLAGS): Likewise.
4491
4492 * include/grub/envblk.h: New file.
4493
4494 * util/envblk.c: New file.
4495
4496 * util/grub-editenv.c: New file.
4497
4498 * commands/loadenv.c: New file.
4499
0e9e51ec 45002008-07-01 Pavel Roskin <proski@gnu.org>
4501
d89b7634 4502 * include/multiboot2.h (struct multiboot_tag_module): Use char,
4503 not unsigned char. This fixes warnings and is consistent with
4504 other tags.
4505
bf1835b1 4506 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
4507
8222a04b 4508 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
4509
6a42d99d 4510 * term/tparm.c (analyze): Always set *popcount.
4511
10b159d1 4512 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
4513 cast to fix a warning.
4514
b8789f6c 4515 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
4516 cast to suppress a warning.
4517
29d7e38a 4518 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
4519 grub_fshelp_read_file() expects.
4520
f341f669 4521 * fs/fat.c: Fix UUID calculation on big-endian systems. We
4522 write uuid as a 32-bit value in CPU byte order, so declare and
4523 use it as such.
4524
0e9e51ec 4525 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
4526 long if the format specifier expects it.
4527 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
4528 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4529 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
4530 long to fix a warning.
4531 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
4532 grub_dprintf() arguments to fix warnings.
4533
3aefa857 45342008-06-30 Pavel Roskin <proski@gnu.org>
4535
56c7668b 4536 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
4537 install_bsd_part immediately before core.img is embedded or
4538 modified on disk. This fixes core.img verification if core.img
4539 cannot be embedded.
4540
3aefa857 4541 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
4542 core_path to calculate the blocklist.
4543 Patch from Javier Martín <lordhabbit@gmail.com>
4544
5444088d 45452008-06-29 Robert Millan <rmh@aybabtu.com>
4546
4547 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
4548 block to disk block.
4549 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
4550 Patch from Niels Böhm <bitbucket@arcor.de>
4551
674835c8 45522008-06-29 Robert Millan <rmh@aybabtu.com>
4553
4554 * util/update-grub_lib.in (font_path): Search for fonts in
4555 /boot/grub first, which is more likely to be readable (we aren't
4556 deciding where fonts live, just looking for them).
4557
f527dbc8 45582008-06-26 Pavel Roskin <proski@gnu.org>
4559
6c2d8df6 4560 * util/biosdisk.c (read_device_map): Don't leave dead map
4561 entries for devices failing stat() check.
4562
f527dbc8 4563 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
4564 core_path_dev for the core.img path on the target device.
4565
aebe3d13 45662008-06-26 Robert Millan <rmh@aybabtu.com>
4567
4568 * disk/fs_uuid.c: New file.
4569 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
4570 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
4571 (fs_uuid_mod_LDFLAGS): New variables.
4572 * include/grub/disk.h (grub_disk_dev_id): Add
4573 `GRUB_DISK_DEVICE_UUID_ID'.
4574 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
4575 implement iterate().
4576
37aaf354 45772008-06-26 Robert Millan <rmh@aybabtu.com>
4578
4579 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
4580 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
4581 Linux image includes no initrd.
4582
25ff262a 45832008-06-21 Javier Martín <lordhabbit@gmail.com>
4584
4585 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
4586 call to resolve the core image location that effectively appended the
4587 name twice.
4588
76a2bd44 45892008-06-21 Robert Millan <rmh@aybabtu.com>
4590
4591 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
4592 call from here ...
4593
4594 * util/grub.d/10_hurd.in: ... to here ...
4595 * util/grub.d/10_linux.in: ... and here.
4596
650e1c79 45972008-06-19 Robert Millan <rmh@aybabtu.com>
4598
fe987087 4599 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 4600 after it has been set by grub_machine_set_prefix().
4601
6ce63911 46022008-06-19 Robert Millan <rmh@aybabtu.com>
4603
4604 * commands/search.c (search_label, search_fs_uuid, search_file): Print
4605 search result when not saving to variable, not the other way around.
4606 When saving to variable, abort iteration as soon as a match is found.
4607
73940cec 46082008-06-19 Robert Millan <rmh@aybabtu.com>
4609
4610 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
4611 check for partition that provides /boot/grub. Its logic is flawed,
4612 as it prevents prepare_grub_to_access_device() from being called
4613 multiple times.
4614
3c62a39d 46152008-06-19 Robert Millan <rmh@aybabtu.com>
4616
4617 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
4618 "insmod" command directly when abstraction modules are needed,
fe987087 4619 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 4620 since it had already been processed).
4621
47395a42 46222008-06-19 Pavel Roskin <proski@gnu.org>
4623
4624 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
4625 changed. This is needed in case GRUB_LIBDIR changes.
4626 * conf/i386-ieee1275.rmk: Likewise.
4627 * conf/i386-linuxbios.rmk: Likewise.
4628 * conf/i386-pc.rmk: Likewise.
4629 * conf/powerpc-ieee1275.rmk: Likewise.
4630
a145ac2d 46312008-06-18 Pavel Roskin <proski@gnu.org>
4632
4633 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
4634 kernel_elf_symlist.c to symlist.c for consistency with other
4635 architectures. Update all users.
4636 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
4637
7847c51e 46382008-06-18 Robert Millan <rmh@aybabtu.com>
4639
4640 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
4641 it in prefix.
4642
4643 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
4644 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
4645 a RAID device, run setup() for all members independently on whether
4646 LVM abstraction is being used.
4647 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
4648 If grub-mkimage has set `*install_dos_part == -2', don't override this
4649 value.
4650 Perform *install_dos_part adjustments independently on whether
4651 we're embedding or not.
4652 Clarify error message when image is too big for embedding.
4653 Remove duplicate *install_dos_part stanza.
4654
b23e5644 46552008-06-17 Robert Millan <rmh@aybabtu.com>
4656
4657 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
4658 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
4659 variables.
4660 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
4661 values in grub_ofconsole_normal_color and
4662 grub_ofconsole_highlight_color (they're not directly related to
4663 background and foreground).
4664 (grub_ofconsole_setcolorstate): Extract background and foreground
4665 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
4666
0aac2f79 46672008-06-17 Robert Millan <rmh@aybabtu.com>
4668
4669 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
4670 /boot/grub for the check in last commit, not /boot (they could be
4671 different partitions).
4672
3cca7ef3 46732008-06-16 Robert Millan <rmh@aybabtu.com>
4674
4675 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
4676 asked to setup access for the same partition that provides /boot,
4677 don't bother using UUIDs since our root already has the value we
4678 want.
4679
347396d8 46802008-06-16 Robert Millan <rmh@aybabtu.com>
4681
4682 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
4683 I2O devices.
4684 Patch from Sven Mueller <sven@debian.org>.
4685
991477f8 46862008-06-16 Robert Millan <rmh@aybabtu.com>
4687
4688 * util/update-grub.in: Check for $EUID instead of $UID.
4689 Reported by Vincent Zweije.
4690
d31a32a1 46912008-06-16 Bean <bean123ch@gmail.com>
4692
fe987087 4693 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 4694 (grub_ext2_read_block): Likewise.
4695 (grub_ext2_read_inode): Likewise.
4696 (grub_ext2_mount): Likewise.
4697 (grub_ext2_close): Likewise.
4698 (grub_ext3_get_journal): Removed.
4699
fe987087 4700 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 4701 (grub_reiserfs_read_symlink): Likewise.
4702 (grub_reiserfs_mount): Likewise.
4703 (grub_reiserfs_open): Likewise.
4704 (grub_reiserfs_read): Likewise.
4705 (grub_reiserfs_close): Likewise.
4706 (grub_reiserfs_get_journal): Removed.
4707
4708 * fs/fshelp.c (grub_fshelp_read): Removed.
4709 (grub_fshelp_map_block): Likewise.
4710
4711 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
4712 (grub_fshelp_journal): Likewise.
4713 (grub_fshelp_read): Likewise.
4714 (grub_fshelp_map_block): Likewise.
4715
3540a760 47162008-06-16 Pavel Roskin <proski@gnu.org>
4717
4718 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
4719 floating point anymore.
4720 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
4721
95614c84 47222008-06-15 Pavel Roskin <proski@gnu.org>
4723
4724 * commands/ls.c (grub_ls_list_files): Use integer calculations
4725 for human readable format, avoid floating point use.
4726 * kern/misc.c (grub_ftoa): Remove.
4727 (grub_vsprintf): Remove floating point support.
4728
50465dd6 47292008-06-15 Robert Millan <rmh@aybabtu.com>
4730
fe6b695a 4731 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 4732 devices.
4733 Reported by Max Vozeler.
4734
a9207284 47352008-06-15 Robert Millan <rmh@aybabtu.com>
4736
4737 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
4738 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
4739 skipped later.
4740 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
4741 the beginning of the prefix.
4742
4743 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
4744 It is assumed that if we have a memdisk, grub-mkimage has set
4745 grub_prefix to include the "(memdisk)" drive in it.
4746
a7cbd45a 47472008-06-15 Robert Millan <rmh@aybabtu.com>
4748
4749 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
4750 Initialize keyboard controller after registering the terminal, so that
4751 grub_printf() can be called from grub_keyboard_controller_init().
4752
21cf716a 47532008-06-15 Robert Millan <rmh@aybabtu.com>
4754
4755 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
4756 extent-btree which is written as big endian on disk.
4757 Reported by Alain Greppin <al@chilibi.org>.
4758
23a64d8e 47592008-06-14 Robert Millan <rmh@aybabtu.com>
4760
4761 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
4762 * util/i386/pc/grub-install.in (modules): Likewise.
4763
d687651c 47642008-06-13 Pavel Roskin <proski@gnu.org>
4765
4766 * commands/ls.c (grub_ls_list_files): Fix format warnings.
4767
dfe9ddd4 47682008-06-13 Bean <bean123ch@gmail.com>
4769
4770 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
4771
4772 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
4773
4774 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
4775 to indicate sparse block.
4776
16ae7781 47772008-06-12 Pavel Roskin <proski@gnu.org>
4778
e6d1a308 4779 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
4780 number, grub_fshelp_read() does it for us.
4781
16ae7781 4782 * fs/fshelp.c (grub_fshelp_read): New function. Implement
4783 linear disk read with journal translation.
4784 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
4785 * include/grub/fshelp.h: Declare grub_fshelp_read().
4786
40fd3a2b 47872008-06-09 Pavel Roskin <proski@gnu.org>
4788
4789 * fs/minix.c (grub_minix_mount): Handle error reading
4790 superblock.
4791
f5679726 47922008-06-08 Robert Millan <rmh@aybabtu.com>
4793
4794 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
4795 don't append the RAID prefix afterwards.
4796 Reported by Clint Adams.
4797
ce525529 47982008-06-08 Robert Millan <rmh@aybabtu.com>
4799
4800 Based on description from Pavel:
4801 * kern/disk.c (grub_disk_check_range): Rename to ...
4802 (grub_disk_adjust_range): ... this. Add a comment explaining the
4803 tasks performed by this function.
4804
ad4936a0 48052008-06-08 Robert Millan <rmh@aybabtu.com>
4806
4807 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
4808 `num_serial' (for consistency with other variables).
4809 (struct grub_ntfs_data): Add `uuid' member.
4810 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
4811 (grub_ntfs_uuid): New function.
4812 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
4813
dc20b0f9 48142008-06-07 Pavel Roskin <proski@gnu.org>
4815
4816 * util/biosdisk.c (open_device): Revert last change to the
4817 function, it broke installation. The sector needs to be
4818 different dependent on which device is opened.
4819
c5e3cfba 48202008-06-06 Robert Millan <rmh@aybabtu.com>
4821
4822 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
4823 rest of GRUB, and breakage doesn't happen if its value were modified.
4824
4825 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
4826 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
4827 a constant (same value).
4828 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
4829 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
4830
26a1f8c4 48312008-06-06 Robert Millan <rmh@aybabtu.com>
4832
4833 * util/biosdisk.c (open_device): Do not modify sector offset when
4834 accessing a partition. kern/disk.c already handles this for us.
4835
25d6b327 48362008-06-06 Robert Millan <rmh@aybabtu.com>
4837
4838 * util/grub-emu.c (grub_machine_init): Move code in this function from
4839 here ...
4840 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
4841 segfault in case grub_printf() is called).
4842
4843 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
4844 grub_probe. Update all users not to explicitly add it again.
4845 (grub_device): New variable; contains corresponding device for grubdir.
4846 (fs_module, partmap_module, devabstraction_module): Pass
4847 `--device ${grub_device}' to grub_probe to avoid traversing /dev
4848 every time.
4849
9ece62fb 48502008-06-05 Robert Millan <rmh@aybabtu.com>
4851
4852 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
4853 is found, print it (same layout as with labels).
4854
1ad36d37 48552008-06-04 Robert Millan <rmh@aybabtu.com>
4856
4857 * util/biosdisk.c (get_drive): Rename to ...
4858 (find_grub_drive): ... this. Update all users.
4859
4860 (get_os_disk): Rename to ...
4861 (convert_system_partition_to_system_disk): ... this. Update all users.
4862
4863 (find_drive): Rename to ...
4864 (find_system_device): ... this. Update all users.
4865
e6a30859 48662008-06-04 Robert Millan <rmh@aybabtu.com>
4867
4868 * util/biosdisk.c (get_os_disk): Handle IDA devices.
4869 * util/grub-mkdevicemap.c (get_mmc_disk_name)
4870 (make_device_map): Likewise.
4871
00c108a4 48722008-06-01 Robert Millan <rmh@aybabtu.com>
4873
4874 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
4875 before dereferencing it.
4876
4877 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
4878 union with fat12/fat16-specific ones. Add some new fields, including
4879 `num_serial' for both versions.
4880 (struct grub_fat_data): Add `uuid' member.
4881 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
4882 names. Initialize `data->uuid' using `num_serial'.
4883 (grub_fat_uuid): New function.
4884 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
4885
4886 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
4887 (grub_reiserfs_uuid): New function.
4888 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
4889 member.
4890
4891 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
4892 (grub_xfs_uuid): New function.
4893 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
4894
1385c5bb 48952008-06-01 Robert Millan <rmh@aybabtu.com>
4896
4897 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
4898 code that is backward compatible with pre-uuid search command.
4899
c682dfd7 49002008-05-31 Robert Millan <rmh@aybabtu.com>
4901
4902 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
4903 floppies after everything else, to ensure floppy drive isn't accessed
4904 unnecessarily (patch from Bean).
4905
b7db5d47 49062008-05-31 Robert Millan <rmh@aybabtu.com>
4907
4908 * commands/search.c (search_label, search_fs_uuid, search_file): Do
4909 not print device names when we were asked to set a variable.
4910
6e037aa9 49112008-05-31 Robert Millan <rmh@aybabtu.com>
4912
4913 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
4914 using "cursor-on" and "cursor-off" commands (understood at least by
4915 the Open Firmware flavour on OLPC).
4916
41305bc8 49172008-05-31 Michael Gorven <michael@gorven.za.net>
4918
4919 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
4920 on and off sequences.
4921
69ba137e 49222008-05-31 Robert Millan <rmh@aybabtu.com>
4923
4924 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
4925 * util/update-grub.in: Likewise.
4926
520ae21b 49272008-05-30 Pavel Roskin <proski@gnu.org>
4928
4929 * util/biosdisk.c (linux_find_partition): Simplify logic and
4930 make the code more universal. Keep special processing for
4931 devfs, but use a simple rule for all other devices. If the
4932 device ends with a number, append 'p' and the partition number.
4933 Otherwise, append only the partition number.
4934
5786569b 49352008-05-30 Robert Millan <rmh@aybabtu.com>
4936
4937 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
4938 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
4939 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
4940 the `root' parameter to Linux.
4941
51500452 49422008-05-30 Robert Millan <rmh@aybabtu.com>
4943
4944 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
4945 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
4946 --fs_uuid with --fs-uuid.
4947 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
4948 all filesystems support them).
4949
811d3878 49502008-05-30 Robert Millan <rmh@aybabtu.com>
4951
4952 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 4953 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 4954
cab63c95 49552008-05-30 Robert Millan <rmh@aybabtu.com>
4956
4957 * util/grub.d/00_header.in: Remove obsolete comment referencing
4958 convert_system_path_to_grub_path().
4959 * util/update-grub.in: Likewise.
4960 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
4961 (convert_system_path_to_grub_path): Add a warning message explaining
4962 that this function is deprecated. Rely on is_path_readable_by_grub()
4963 for the readability checks.
4964 (font_path): Use is_path_readable_by_grub() for the readability
4965 check rather than convert_system_path_to_grub_path().
4966
972e2f7a 49672008-05-30 Robert Millan <rmh@aybabtu.com>
4968
4969 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
4970 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
4971 converting it first.
4972 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
4973 grub.cfg for access to font file, and afterwards call it again to set
4974 the root device.
4975
62191274 49762008-05-30 Robert Millan <rmh@aybabtu.com>
4977
4978 * commands/search.c (options): Add --fs_uuid option.
4979 (search_fs_uuid): New function.
4980 (grub_cmd_search): Fix --set argument passing.
4981 Use search_fs_uuid() when requested via --fs_uuid.
4982 (grub_search_init): Update help message.
4983 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
4984 and redeclare it as an array of 16-bit words.
4985 (grub_ext2_uuid): New function.
4986 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
4987 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
4988 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
4989 (GRUB_DEVICE_BOOT_UUID): New variables.
4990 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
4991 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
4992 whenever possible.
4993 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
4994 just assume `root' variable has the right value.
4995 * util/grub.d/10_linux.in: Likewise.
4996 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
4997 via PRINT_FS_UUID.
4998 (main): Recognise `-t fs_uuid' argument.
4999
01b73ec8 50002008-05-30 Robert Millan <rmh@aybabtu.com>
5001
5002 * util/biosdisk.c (map): Redefine structure to hold information
5003 about GRUB drive name.
fe6b695a 5004 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 5005 drive names.
5006 (call_hook): Remove.
5007 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
5008 member. Assume drive has partitions.
5009 (grub_util_biosdisk_open): Access device names via `.device' struct
5010 member.
5011 (open_device): Likewise.
5012 (find_drive): Likewise.
5013 (read_device_map): Adjust map[] usage to match the new struct
5014 definition. Don't check for duplicates (still possible, but not cheap
5015 anymore).
5016 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
5017 (make_device_name): Remove assumption of BIOS-like drive names.
5018
22f16596 50192008-05-30 Pavel Roskin <proski@gnu.org>
5020
5021 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
5022 compiling execute.c doesn't need grub_script.tab.h anymore.
5023 (normal/command.c_DEPENDENCIES): Likewise.
5024 (normal/function.c_DEPENDENCIES): Likewise.
5025 * conf/i386-ieee1275.rmk: Likewise.
5026 * conf/i386-linuxbios.rmk: Likewise.
5027 * conf/i386-pc.rmk: Likewise.
5028 * conf/powerpc-ieee1275.rmk: Likewise.
5029 * conf/sparc64-ieee1275.rmk: Likewise.
5030
528ad8f2 50312008-05-29 Pavel Roskin <proski@gnu.org>
5032
d1dff95d 5033 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
5034 when scanning metadata for volume group name.
5035
528ad8f2 5036 * include/grub/script.h: Don't include grub_script.tab.h. It's
5037 a generated file, which may only be included from the files with
5038 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
5039 use union YYSTYPE, as the later allows forward declaration.
5040 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
5041
47248e08 50422008-05-29 Robert Millan <rmh@aybabtu.com>
5043
5044 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
5045 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
5046 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
5047 (grub_console_checkkey): Add grub_dprintf() call to report unknown
5048 scan codes.
5049
ee632529 50502008-05-29 Robert Millan <rmh@aybabtu.com>
5051
5052 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
5053 control key combinations.
5054
eee96e08 50552008-05-29 Robert Millan <rmh@aybabtu.com>
5056
5057 * util/powerpc/ieee1275/grub-install.in: Move from here ...
5058 * util/ieee1275/grub-install.in: ... to here.
5059 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
5060 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
5061 (grub_install_SOURCES): Likewise.
5062
da9a6a94 50632008-05-29 Robert Millan <rmh@aybabtu.com>
5064
5065 * fs/affs.c: Update copyright year.
5066 * fs/ext2.c: Likewise.
5067 * fs/fshelp.c: Likewise.
5068 * fs/hfsplus.c: Likewise.
5069 * fs/ntfs.c: Likewise.
5070 * fs/xfs.c: Likewise.
5071 * include/grub/fshelp.h: Likewise.
5072 * util/grub-mkdevicemap.c: Likewise.
5073
12e65f3a 50742008-05-28 Robert Millan <rmh@aybabtu.com>
5075
5076 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
5077 might need to be fatfs to support some firmware implementations
5078 (e.g. OFW or EFI).
5079
23023641 50802008-05-28 Robert Millan <rmh@aybabtu.com>
5081
5082 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
5083 devices.
5084 * util/grub-mkdevicemap.c (get_mmc_disk_name)
5085 (make_device_map): Likewise.
5086
887d2619 50872008-05-20 Bean <bean123ch@gmail.com>
5088
5089 * fs/fshelp.c (grub_fshelp_map_block): New function.
5090 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
5091 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
5092
5093 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
5094 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
5095 (grub_fshelp_journal): New structure.
5096 (grub_fshelp_map_block): New function prototype.
5097 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
5098 (grub_fshelp_map_block): Likewise.
5099
5100 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
5101 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
5102 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
5103 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
5104 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
5105 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
5106 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
5107 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
5108 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
5109 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
5110 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
5111 (grub_ext2_sblock): New members for journal support.
5112 (grub_ext3_journal_header): New structure.
5113 (grub_ext3_journal_revoke_header): Likewise.
5114 (grub_ext3_journal_block_tag): Likewise.
5115 (grub_ext3_journal_sblock): Likewise.
5116 (grub_fshelp_node): New members logfile and journal.
5117 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
5118 grub_fshelp_map_block to get real block number.
5119 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
5120 number.
5121 (grub_ext2_read_inode): Likewise.
5122 (grub_ext3_get_journal): New function.
5123 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
5124 (grub_ext2_close): Release memory used by journal.
5125
5126 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
5127 (REISERFS_MAGIC_DESC_BLOCK): New macro.
5128 (grub_reiserfs_transaction_header): Renamed to
5129 grub_reiserfs_description_block, replace field data with real_blocks.
5130 (grub_reiserfs_commit_block): New structure.
5131 (grub_reiserfs_data): New member journal.
5132 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
5133 number.
5134 (grub_reiserfs_read_symlink): Likewise.
5135 (grub_reiserfs_iterate_dir): Likewise.
5136 (grub_reiserfs_open): Likewise.
5137 (grub_reiserfs_read): Likewise.
5138 (grub_reiserfs_get_journal): New function.
5139 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
5140 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
5141 using grub_reiserfs_get_journal.
5142 (grub_reiserfs_close): Release memory used by journal.
5143
5144 * fs/affs.c (grub_affs_read_block): Change block type to
5145 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
5146
5147 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
5148
5149 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
5150
5151 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
5152
5153 * fs/udf.c (grub_udf_read_block): Change block type to
5154 grub_disk_addr_t. Use type cast to avoid warning.
5155
5156 * fs/xfs.c (grub_xfs_read_block): Likewise.
5157
b7c6bed5 51582008-05-16 Christian Franke <franke@computer.org>
5159
5160 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
5161 to ensure that break with ESC will always work.
5162 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
5163 Remove ESC from keyboard queue.
5164
eedf167f 51652008-05-16 Christian Franke <franke@computer.org>
5166
5167 * util/biosdisk.c: [__CYGWIN__] Add includes.
5168 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
5169 (get_os_disk): Move variable declarations to OS specific
5170 parts to avoid warning.
5171 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
5172 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
5173 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
5174 Cygwin.
5175 * util/getroot.c: [__CYGWIN__] Add includes.
5176 (strip_extra_slashes): Fix "/" case.
5177 [__CYGWIN__] (get_win32_path): New function.
5178 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
5179 [__CYGWIN__] (find_root_device): Disable.
5180 [__CYGWIN__] (get_bootsec_serial): New function.
5181 [__CYGWIN__] (find_cygwin_root_device): Likewise.
5182 [__linux__] (grub_guess_root_device): Add early returns to simplify
5183 structure.
5184 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
5185 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
5186 check for Linux only.
5187
a079699e 51882008-05-15 Bean <bean123ch@gmail.com>
5189
5190 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
5191 keyboard hang problem in apple's intel mac.
5192
1cf4059a 51932008-05-09 Robert Millan <rmh@aybabtu.com>
5194
5195 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
5196 devices.
5197 * util/grub-mkdevicemap.c (get_virtio_disk_name)
5198 (make_device_map): Likewise.
5199 Reported by Aurelien Jarno <aurel32@debian.org>
5200
ed759390 52012008-05-07 Ian Campbell <ijc@hellion.org.uk>
5202
5203 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
5204 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
5205 (make_device_map): Output entries for xvd type disks.
5206
b56c4eaa 52072008-05-07 Robert Millan <rmh@aybabtu.com>
5208
5209 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
5210 devices.
5211 * util/grub-mkdevicemap.c (get_cciss_disk_name)
5212 (make_device_map): Likewise.
5213 Reported by Roland Dreier <rdreier@cisco.com>
5214
7f8866ed 52152008-05-07 Robert Millan <rmh@aybabtu.com>
5216
5217 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
5218 grub_strstr() call. Correct a few mistakes in failure path handling.
5219
b0346e0f 52202008-05-06 Robert Millan <rmh@aybabtu.com>
5221
5222 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5223 Do not print a trailing slash (therefore, the root directory is an
5224 empty string).
5225 (convert_system_path_to_grub_path): Do not remove trailing slash
5226 from make_system_path_relative_to_its_root() output.
5227
5228 * util/i386/pc/grub-install.in: Add trailing slash to output from
5229 make_system_path_relative_to_its_root().
5230
6cf12cbd 52312008-05-06 Robert Millan <rmh@aybabtu.com>
5232
5233 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
5234 ensures that output lines aren't intermangled with those sent to
5235 stderr (via grub_util_info()).
5236 * util/grub-probe.c (grub_refresh): Likewise.
5237 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
5238
0fbb3117 52392008-05-05 Christian Franke <franke@computer.org>
5240
5241 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
5242 Add Cygwin device names.
5243 (get_ide_disk_name) [__CYGWIN__]: Likewise.
5244 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
5245 (check_device): Return error instead of success on empty name.
5246 (make_device_map): Move label inside linux specific code to
5247 prevent compiler warning.
5248
8124cdb7 52492008-04-30 Robert Millan <rmh@aybabtu.com>
5250
5251 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
5252 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
5253 first boot option.
5254 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
5255
094c01d0 52562008-04-29 Robert Millan <rmh@aybabtu.com>
5257
5258 * docs/grub.cfg: New file (example GRUB configuration).
5259
f4b1fc02 52602008-04-26 Robert Millan <rmh@aybabtu.com>
5261
329ce2a5 5262 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
5263 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
5264 and `disk/ieee1275/nand.c'.
f4b1fc02 5265
25f16ec1 52662008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 5267
25f16ec1 5268 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
5269 i386-linuxbios.
5270
5271 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
5272 change the buffer size to 4096 for cdrom device.
5273
5274 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
5275 and nand.mod.
5276 (_linux_mod_SOURCES): New variable.
5277 (_linux_mod_CFLAGS): Likewise.
5278 (_linux_mod_LDFLAGS): Likewise.
5279 (linux_mod_SOURCES): Likewise.
5280 (linux_mod_CFLAGS): Likewise.
5281 (linux_mod_LDFLAGS): Likewise.
5282 (nand_mod_SOURCES): Likewise.
5283 (nand_mod_CFLAGS): Likewise.
5284 (nand_mod_LDFLAGS): Likewise.
5285
5286 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
5287 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
5288 type property. (nand device in olpc don't have this property)
5289
5290 * include/grub/disk.h (grub_disk_dev_id): New macro
5291 GRUB_DISK_DEVICE_NAND_ID.
5292
5293 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
5294 function prototype.
5295 (grub_rescue_cmd_initrd): Likewise.
5296
5297 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
5298 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
5299 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 5300
25f16ec1 5301 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
5302 GRUB_MACHINE_IEEE1275 is defined.
5303
5304 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
5305 Use NESTED_FUNC_ATTR attribute on the hook parameter.
5306
5307 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
5308 on nested function heap_init.
5309 (grub_upper_mem): New variable for i386-ieee1275.
5310 (grub_get_extended_memory): New function for i386-ieee1275.
5311 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
5312
5313 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
5314 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
5315 property.
f19dbdb7 5316
25f16ec1 5317 * loader/i386/ieee1275/linux.c: New file.
5318
5319 * loader/i386/ieee1275/linux_normal.c: New file.
5320
5321 * disk/ieee1275/nand.c: New file.
5322
e89d61e9 53232008-04-18 Thomas Schwinge <tschwinge@gnu.org>
5324
5325 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
5326 value.
5327 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
5328
602566f6 53292008-04-18 Robert Millan <rmh@aybabtu.com>
5330
5331 Restructures early code path on ieee1275 to unify grub_main() as
5332 the first C function that is executed in every platform.
5333
5334 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
5335 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
5336 cmain().
5337 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
5338 * kern/ieee1275/cmain.c (cmain): Rename to ...
5339 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
5340 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
5341 at the beginning.
5342
57490c2b 53432008-04-18 Robert Millan <rmh@aybabtu.com>
5344
5345 * util/update-grub.in: Fix syntax error when setting
5346 `GRUB_PRELOAD_MODULES'.
5347 Reported by Stephane Chazelas <stephane@artesyncp.com>
5348
1977517d 53492008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
5350
5351 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
5352 section into account, newer toolchains generate unique build ids
5353 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 5354 we want build ids to be preserved
1977517d 5355 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
5356 far from other sections don't cause the raw binary images grow
5357 size
5358
bfb1f1a2 53592008-04-15 Robert Millan <rmh@aybabtu.com>
5360
5361 * disk/lvm.c: Update copyright year.
5362 * kern/misc.c: Likewise.
5363
01979850 53642008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5365
5366 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 5367 there is no memory left for physical volume name.
01979850 5368
0a1150e2 53692008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5370
5371 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
5372 volume name mapping to support bigger than 9 character names properly.
5373
82ead3fe 53742008-04-13 Robert Millan <rmh@aybabtu.com>
5375
5376 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
5377 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
5378
e54a72f5 53792008-04-13 Christian Franke <franke@computer.org>
5380
5381 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
5382 to create a floppy emulation boot CD when non emulation mode
5383 does not work.
5384 Enable Joliet CD filesystem extension.
5385
9fe86034 53862008-04-13 Robert Millan <rmh@aybabtu.com>
5387
5388 * kern/misc.c (grub_strncat): Fix off-by-one error.
5389 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
5390
5391 * kern/env.c (grub_env_context_close): Clear current context, not
5392 previous one.
5393 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
5394
5395 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
5396
7ceeee39 53972008-04-13 Robert Millan <rmh@aybabtu.com>
5398
5399 Improve robustness when handling LVM.
5400
5401 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 5402 (and leave `*p' unmodified).
7ceeee39 5403 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
5404 through it.
5405 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
5406 iterating through it.
5407 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
5408 through it.
fe6b695a 5409 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 5410 when due) on each grub_lvm_getvalue() or grub_strstr() call.
5411 Don't assume `vg->pvs != NULL' when iterating through it.
5412
58cd3d85 54132008-04-13 Robert Millan <rmh@aybabtu.com>
5414
5415 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
5416 * genmk.rb (partmap): New variable.
5417 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
5418 (#{partmap}): New target rule.
5419 * genpartmaplist.sh: New file.
5420 * Makefile.in (pkglib_DATA): Add partmap.lst.
5421 (partmap.lst): New target rule.
5422 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
5423 modules (including all partition maps), instead of preloading them.
5424
78b51059 54252007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
5426
5427 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
5428 `linux-boot-prober' (if installed) to detect other operating
5429 systems which are installed on the computer and add them to
5430 the boot menu.
5431 * conf/common.rmk: Build and install 30_os-prober.
5432
a91627b4 54332008-04-12 Robert Millan <rmh@aybabtu.com>
5434
5435 * kern/powerpc/ieee1275/init.c: Move from here ...
5436 * kern/ieee1275/init.c: ... to here. Update all users.
5437
5438 * kern/powerpc/ieee1275/cmain.c: Move from here ...
5439 * kern/ieee1275/cmain.c: ... to here. Update all users.
5440
5441 * kern/powerpc/ieee1275/openfw.c: Move from here ...
5442 * kern/ieee1275/openfw.c: ... to here. Update all users.
5443
5444 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
5445 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
5446
322562ea 54472008-04-10 Pavel Roskin <proski@gnu.org>
5448
5449 * configure.ac: Always use "_cv_" in cache variables for
5450 compatibility with Autoconf 2.62.
5451
a02a73c5 54522008-04-07 Robert Millan <rmh@aybabtu.com>
5453
5454 Revert grub/machine/init.h addition by Pavel (since it breaks on
5455 i386-ieee1275 and others):
5456 * util/i386/pc/misc.c: Remove grub/machine/init.h.
5457 * util/powerpc/ieee1275/misc.c: Likewise.
5458
25c024b1 54592008-04-07 Robert Millan <rmh@aybabtu.com>
5460
5461 * util/grub-probe.c (probe): Improve error message.
5462
3cbd2f98 54632008-04-07 Robert Millan <rmh@aybabtu.com>
5464
5465 * util/biosdisk.c (read_device_map): Skip devices that don't exist
5466 (this prevents the presence of a bogus entry from ruining the whole
5467 thing).
5468
87a297bf 54692008-04-06 Pavel Roskin <proski@gnu.org>
5470
36747a62 5471 * util/biosdisk.c: Include grub/util/biosdisk.h.
5472 * util/grub-fstest.c (execute_command): Make static.
5473 * util/grub-mkdevicemap.c (check_device): Likewise.
5474 * util/i386/pc/misc.c: Include grub/machine/init.h.
5475 * util/powerpc/ieee1275/misc.c: Likewise.
5476 * util/lvm.c: Include grub/util/lvm.h.
5477 * util/misc.c: Include grub/kernel.h, grub/misc.h and
5478 grub/cache.h.
5479 * util/raid.c: Include grub/util/raid.h.
5480 (grub_util_getdiskname): Make static.
5481
87a297bf 5482 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
5483 grub_hostfs_fini(), as they are called from grub_init_all() and
5484 grub_fini_all() respectively. This fixes an infinite loop in
5485 grub-fstest due to double registration of hostfs.
5486 Reported by Christian Franke <Christian.Franke@t-online.de>
5487
f6ce7629 54882008-04-05 Pavel Roskin <proski@gnu.org>
5489
5490 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
5491 all 8 functions. Otherwise, probe function 0 only.
5492
070e49e4 54932008-04-04 Pavel Roskin <proski@gnu.org>
5494
8b088a4c 5495 * commands/lspci.c (grub_lspci_iter): Print the bus number
5496 correctly.
5497
4f657021 5498 * commands/lspci.c (grub_pci_classes): Fix typos.
5499 (grub_lspci_iter): Don't print func twice. Print vendor ID
5500 before device ID, as it's normally done.
5501
070e49e4 5502 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
5503 Fix signedness warnings.
5504 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
5505 Likewise.
5506 * util/ieee1275/get_disk_name.c: Include config.h so that
5507 _GNU_SOURCE is defined and getline() is declared. Mark an
5508 unused argument as such. Fix a signedness warning.
5509
ba7328dc 55102008-04-02 Pavel Roskin <proski@gnu.org>
5511
26887f22 5512 * genkernsyms.sh.in: Use more robust assignments for CC and
5513 srcdir. Quote srcdir.
5514 * gensymlist.sh.in: Likewise. Assert at the compile time that
5515 the symbol table is not empty.
5516
ba7328dc 5517 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
5518 * fs/cpio.c (grub_cpio_read): Likewise.
5519
0f582c6b 55202008-04-01 Pavel Roskin <proski@gnu.org>
5521
4b6e1995 5522 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
5523 * disk/host.c (grub_host_open): Likewise.
5524 * disk/loopback.c (grub_loopback_open): Likewise.
5525 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
5526 disk->id as in disk/host.c, not a multi-character constant.
5527
828a2768 5528 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
5529 later is obsolete, potentially dangerous and sets a bad example.
5530 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
5531 * util/misc.c (grub_util_get_image_size): Likewise.
5532
2bb4fb47 5533 * disk/loopback.c (options): Improve help for "--partitions".
5534
0f582c6b 5535 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
5536 options to align them with the short options, e.g. "echo -e".
5537
a33224e0 55382008-03-31 Bean <bean123ch@gmail.com>
5539
5540 * video/reader/png.c (grub_png_data): New member is_16bit and
5541 image_data.
5542 (grub_png_decode_image_header): Detect 16 bit png image.
5543 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
5544 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
5545 (grub_video_reader_png): Release memory occupied by image_data.
5546
5547 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
5548 4096 bytes.
5549 (grub_nfs_mount): Skip the test for sector per cluster.
5550
5551 * include/grub/ntfs.h (MAX_SPC): Removed.
5552
86cb4f54 55532008-03-31 Bean <bean123ch@gmail.com>
5554
5555 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
5556 (grub_probe_SOURCES): Add fs/afs.c.
5557 (grub_fstest_SOURCES): Likewise.
5558 (afs_mod_SOURCES): New variable.
5559 (afs_mod_CFLAGS): Likewise.
5560 (afs_mod_LDFLAGS): Likewise.
5561
5562 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
5563 (grub_emu_SOURCES): Likewise.
5564
5565 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5566
5567 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5568
5569 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5570
5571 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5572
5573 * fs/afs.c: New file.
5574
17c74c21 55752008-03-30 Pavel Roskin <proski@gnu.org>
5576
4cb68e89 5577 * disk/host.c: Include grub/misc.h to fix a warning.
5578 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
5579 warnings about implicit declarations.
5580
8790bb04 5581 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
5582 variable.
5583 * include/grub/i386/loader.h: Change declaration of
5584 grub_linux_boot() to match what grub_loader_set() expects.
5585 * util/getroot.c (grub_guess_root_device): Return const char* to
5586 fix a warning.
5587 * util/grub-probe.c (probe): Fix a warning about uninitialized
5588 abstraction_name variable.
5589 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
5590 second argument as unused to fix a warning.
5591
9a3f3296 5592 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
5593 missing grub_error() call.
5594
0ecef90d 5595 * util/update-grub_lib.in: Define datarootdir, since Autoconf
5596 2.60 and newer uses it to define datadir.
5597
0bf6d401 5598 * commands/sleep.c: Fix warning about implicit declaration.
5599 * disk/memdisk.c: Likewise.
5600 * loader/aout.c: Likewise.
5601 * loader/i386/bsd_normal.c: Likewise.
5602 * util/grub-probe.c: Likewise.
5603
7cdacf97 5604 * commands/i386/cpuid.c (has_longmode): Make static.
5605 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
5606 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
5607
17c74c21 5608 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
5609 GDT. This is more robust, as %ds can change.
5610 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
5611 calling real_to_prot().
5612 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
5613
80a3e68b 56142008-03-28 Pavel Roskin <proski@gnu.org>
5615
5616 * kern/i386/pc/startup.S: Assert that uncompressed functions
5617 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
5618 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
5619 code, as they push parts of the code (error handlers) beyond
5620 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
5621 code as correctness and size.
5622
77bcd272 56232008-03-28 Pavel Roskin <proski@gnu.org>
5624
5625 * kern/i386/pc/startup.S
5626 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
5627 data block address to the real mode, keep offset minimal. This
5628 works around a bug in AWARD BIOS on old Athlon systems, which
5629 makes CD detection hang.
5630
c5dfd43b 56312008-03-26 Pavel Roskin <proski@gnu.org>
5632
5633 * normal/color.c (grub_parse_color_name_pair): Make `name' a
5634 const.
5635 * include/grub/normal.h: Add grub_parse_color_name_pair()
5636 declaration.
5637
bf962df2 56382008-03-24 Bean <bean123ch@gmail.com>
5639
5640 * disk/i386/pc/biosdisk.c (cd_start): Removed.
5641 (cd_count): Removed.
5642 (cd_drive): New variable.
5643 (grub_biosdisk_get_drive): Don't check for (cdN) device.
5644 (grub_biosdisk_call_hook): Likewise.
5645 (grub_biosdisk_iterate): Change cdrom detection method.
5646 (grub_biosdisk_open): Replace cd_start with cd_drive.
5647 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
5648 detect cdrom device.
5649
5650 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
5651 Removed.
5652 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
5653 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
5654 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
5655 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
5656 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
5657 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
5658 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
5659 (grub_biosdisk_cdrp): New structure.
5660 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
5661
5662 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
5663
5664 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
5665 device.
5666
5667 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
5668 New function.
5669
68e7fc7a 56702008-03-20 Robert Millan <rmh@aybabtu.com>
5671
5672 Remove 2 TiB limit in ata.mod.
5673 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
5674 (grub_ata_dumpinfo): Print sector count with 0x%llx.
5675 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
5676 grub_uint64_t instead of grub_uint32_t.
5677
38ad2cf5 56782008-03-05 Bean <bean123ch@gmail.com>
5679
5680 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
5681 (grub_multiboot): Set boot device.
5682
5683 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
5684
2b89344e 56852008-03-02 Bean <bean123ch@gmail.com>
5686
5687 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
5688 symlink_buffer.
5689
87a95d1f 56902008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
5691
5692 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
5693 texinfo.tex.
5694
5695 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
5696 modified.
5697
5698 * docs/fdl.texi: New file.
f19dbdb7 5699
87a95d1f 5700 * docs/mdate-sh: New file. Copied from gnulib.
5701 * docs/texinfo.tex: Likewise.
5702
5703 * config.guess: Updated from gnulib.
5704 * install-sh: Likewise.
5705
7dc15d8e 57062008-02-28 Robert Millan <rmh@aybabtu.com>
5707
5708 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
5709 (aout_mod_SOURCES): New variable.
5710 (aout_mod_CFLAGS): Likewise.
5711 (aout_mod_LDFLAGS): Likewise.
5712
5713 * conf/i386-ieee1275.rmk: Likewise.
5714
b00ab696 57152008-02-28 Robert Millan <rmh@aybabtu.com>
5716
5717 * util/update-grub.in: Reorganise terminal validity check. Accept
5718 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
5719 Based on suggestion by Franklin PIAT.
5720
79ca2d78 57212008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
5722
5723 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
5724 function.
5725 * util/getroot.c (grub_util_check_block_device): New function that
5726 returns the given argument if it is a block device and returns NULL else.
5727 * util/grub-probe.c (argument_is_device): New variable.
5728 (probe): Promote device_name from a variable to an argument. Receive
5729 device_name from grub_util_check_block_device() if path is NULL and from
5730 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 5731 (options): Introduce new parameter '-d, --device'.
79ca2d78 5732 (main): Add description of the new parameter to the help screen.
5733 Rename path variable to argument. Set argument_is_device if the '-d'
5734 option is given. Pass argument to probe() depending on
5735 argument_is_device.
5736
0d16e571 57372008-02-24 Bean <bean123ch@gmail.com>
5738
5739 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
5740 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
5741 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
5742 (GRUB_ISO9660_VOLDESC_PART): Likewise.
5743 (GRUB_ISO9660_VOLDESC_END): Likewise.
5744 (grub_iso9660_primary_voldesc): New member escape.
5745 (grub_iso9660_data): New member joliet.
5746 (grub_iso9660_convert_string): New function.
5747 (grub_iso9660_mount): Detect joliet extension.
5748 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
5749 (grub_iso9660_iso9660_label): Likewise.
5750
5751 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
5752 (grub_setup_SOURCES): Add fs/udf.c.
5753 (grub_fstest_SOURCES): Likewise.
5754 (udf_mod_SOURCES): New variable.
5755 (udf_mod_CFLAGS): Likewise.
5756 (udf_mod_LDFLAGS): Likewise.
5757
5758 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
5759 (grub_emu_SOURCES): Likewise.
5760
5761 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5762
5763 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5764
5765 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5766
5767 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5768
5769 * fs/udf.c: New file.
5770
8a594a17 57712008-02-24 Robert Millan <rmh@aybabtu.com>
5772
5773 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
5774 (normal/lexer.c_DEPENDENCIES): New variables.
5775 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5776 (normal/lexer.c_DEPENDENCIES): Likewise.
5777 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
5778 (normal/lexer.c_DEPENDENCIES): Likewise.
5779 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
5780 (normal/lexer.c_DEPENDENCIES): Likewise.
5781 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5782 (normal/lexer.c_DEPENDENCIES): Likewise.
5783 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5784 (normal/lexer.c_DEPENDENCIES): Likewise.
5785
2dc33c03 57862008-02-23 Robert Millan <rmh@aybabtu.com>
5787
5788 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
5789 since they were intended to be in hex. This didn't break previously
5790 because of a bug in gpt_partition_map_iterate() (see below).
5791
5792 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
5793 when checking the validity of GPT header.
5794 Remove `partno', since it always provides the same information as `i'.
5795
f6f4cfb0 57962008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
5797
5798 * include/grub/efi/time.h: Fix a wrong comment.
5799
79ff665f 58002008-02-19 Pavel Roskin <proski@gnu.org>
5801
5802 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
5803 message.
5804
d38e24c2 58052008-02-19 Bean <bean123ch@gmail.com>
5806
5807 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
5808 (aout_mod_SOURCES): New variable.
5809 (aout_mod_CFLAGS): Likewise.
5810 (aout_mod_LDFLAGS): Likewise.
5811 (_bsd_mod_SOURCES): New variable.
5812 (_bsd_mod_CFLAGS): Likewise.
5813 (_bsd_mod_LDFLAGS): Likewise.
5814 (bsd_mod_SOURCES): New variable.
5815 (bsd_mod_CFLAGS): Likewise.
5816 (bsd_mod_LDFLAGS): Likewise.
5817
5818 * include/grub/aout.h: New file.
5819
5820 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
5821
5822 * include/grub/i386/bsd.h: New file.
5823
5824 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
5825 to make it public.
5826
5827 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
5828 function is called, so that it's possible to change it inside the hook.
5829 (grub_elf64_load): Likewise.
5830 (grub_elf_file): Don't close the file if elf header is not found.
5831 (grub_elf_close): Close the file if grub_elf_file fails (The new
5832 grub_elf_file won't close it).
5833 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
5834 (grub_elf64_size): Likewise.
5835
5836 * kern/i386/loader.S (grub_unix_real_boot): New function.
5837
5838 * loader/aout.c: New file.
5839
5840 * loader/i386/bsd.c: New file.
5841
5842 * loader/i386/bsd_normal.c: New file.
5843
5844 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
5845
5846 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 5847 can test other formats.
d38e24c2 5848
b93bdb0f 58492008-02-19 Robert Millan <rmh@aybabtu.com>
5850
5851 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
5852 (grub_gpt_partition_type_empty): Redefine with macro from
5853 `<grub/gpt_partition.h>'.
5854 (gpt_partition_map_iterate): Adjust partition type comparison.
5855
5856 Export `entry' as partmap-specific `part.data' struct.
5857 (grub_gpt_header, grub_gpt_partentry): Move from here ...
5858
5859 * include/grub/gpt_partition.h (grub_gpt_header)
5860 (grub_gpt_partentry): ... to here (new file).
5861
5862 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
5863
5864 (grub_gpt_partition_type_bios_boot): New const variable, defined
5865 with macro from `<grub/gpt_partition.h>'.
5866
5867 (setup): Replace `first_start' with `embed_region', which keeps
5868 track of the embed region (and is partmap-agnostic).
5869
5870 Replace find_first_partition_start() with find_usable_region(),
5871 which finds a usable region for embedding using partmap-specific
5872 knowledge (supports PC/MSDOS and GPT).
5873
5874 Fix all assumptions that the embed region start at sector 1, using
5875 `embed_region.start' from now on. Similarly, use `embed_region.end'
5876 rather than `first_start' to calculate available size.
5877
5878 In grub_util_info() message, replace "into after the MBR" with an
5879 indication of the specific sector our embed region starts at.
5880
66cb40f6 58812008-02-19 Robert Millan <rmh@aybabtu.com>
5882
5883 * DISTLIST: Replace `commands/ieee1275/halt.c' and
5884 `commands/ieee1275/reboot.c' with `commands/halt.c' and
5885 `commands/reboot.c'.
5886 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5887 (halt_mod_SOURCES): Likewise.
5888 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5889 (halt_mod_SOURCES): Likewise.
5890
b7202015 58912008-02-17 Christian Franke <franke@computer.org>
5892
5893 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
5894
32b0fc49 58952008-02-17 Robert Millan <rmh@aybabtu.com>
5896
5897 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5898 set `first_start' to 0 for non-PC/MSDOS partition maps.
5899
aca63502 59002008-02-16 Robert Millan <rmh@aybabtu.com>
5901
5902 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5903 do not assume partition map is PC/MSDOS before performing checks that
5904 are specific to that layout.
5905
0de8be86 59062008-02-13 Robert Millan <rmh@aybabtu.com>
5907
5908 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
5909 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
5910 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
5911
c3db8364 59122008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
5913
5914 * configure.ac: Only a cosmetic change on the handling of
5915 -fno-stack-protector.
5916
f714229e 59172008-02-12 Alexandre Boeglin <alex@boeglin.org>
5918
c3db8364 5919 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
5920 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
5921 reboot.c.
f714229e 5922 (grub_install_SOURCES): Add halt.mod and reboot.mod.
5923 (halt_mod_SOURCES): New variable.
5924 (halt_mod_CFLAGS): Likewise.
5925 (halt_mod_LDFLAGS): Likewise.
5926 (reboot_mod_SOURCES): Likewise.
5927 (reboot_mod_CFLAGS): Likewise.
5928 (reboot_mod_LDFLAGS): Likewise.
5929
c3db8364 5930 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
5931 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
5932 reboot.c.
f714229e 5933 (halt_mod_SOURCES): Likewise.
5934 (reboot_mod_SOURCES): Likewise.
5935
c3db8364 5936 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
5937 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 5938 (reboot_mod_SOURCES): Likewise.
5939
5940 * commands/i386/pc/reboot.c: merge this file ...
5941
5942 * commands/ieee1275/reboot.c: ... and this file ...
5943
5944 * commands/reboot.c: ... to this file.
c3db8364 5945 Add some precompiler directive to include the correct header for
5946 each machine.
f714229e 5947
5948 * commands/ieee1275/halt.c: move this file ...
5949
5950 * commands/halt.c: ... to here.
c3db8364 5951 Add some precompiler directive to include the correct header for
5952 each machine.
f714229e 5953
5954 * include/grub/efi/efi.h (grub_reboot): New function declaration.
5955 (grub_halt): Likewise.
5956
5957 * kern/efi/efi.c (grub_reboot): New function.
5958 (grub_halt): Likewise.
5959
c74493e0 59602008-02-12 Robert Millan <rmh@aybabtu.com>
5961
5962 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
5963 /dev (like it is done for /dev/mapper). This doesn't provide support
5964 for EVMS, but at least it is now easy to identify the problem when it
5965 arises.
5966
d0db4b04 59672008-02-11 Robert Millan <rmh@aybabtu.com>
5968
5969 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
5970 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
5971 comparing it with -1, not 0.
5972
bf748642 59732008-02-10 Robert Millan <rmh@aybabtu.com>
5974
5975 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
5976 `disk/lvm.c'.
5977 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5978 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
5979
5980 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
5981 `disk/lvm.c' to the end of the list.
5982 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5983 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5984
b5db202a 59852008-02-10 Robert Millan <rmh@aybabtu.com>
5986
5987 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
5988 grub_print_error() instead. This will let user know why we're entering
5989 rescue mode.
5990 Based on suggestions from Sam Morris.
5991
83abee31 59922008-02-10 Alexandre Boeglin <alex@boeglin.org>
5993
5994 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
5995 on remaining N args, instead of "--" arg N times.
5996
78d5a08b 59972008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
5998
5999 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
6000 (fill_with_default_glyph): Changed to use unknown_glyph for fill
6001 pattern for unknown glyphs.
6002
68807e5f 60032008-02-09 Robert Millan <rmh@aybabtu.com>
6004
6005 * configure.ac: Probe for `help2man'.
6006 * Makefile.in (builddir): New variable.
6007 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
6008 or otherwise add a few flags/options to it.
6009 (install-local): For every executable utility or script that is
6010 installed, invoke $(HELP2MAN) to install a manpage based on --help
6011 output.
6012
6013 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
6014 that it doesn't prevent --help from working in build tree.
6015
6016 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
6017 with `bug-grub@gnu.org'.
6018 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
6019 * util/update-grub.in (usage): New function.
6020 Implement proper argument check, with support for --help and --version
6021 (as well as existing -y).
6022
60232008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 6024
6025 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
6026 avoid overwriting previous output.
6027 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
6028
c1962162 60292008-02-09 Robert Millan <rmh@aybabtu.com>
6030
6031 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
6032 drawing the menu.
6033
3dac2e3f 60342008-02-09 Robert Millan <rmh@aybabtu.com>
6035
6036 * commands/sleep.c: New file.
6037 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
6038 (sleep_mod_SOURCES): New variable.
6039 (sleep_mod_CFLAGS): Likewise.
6040 (sleep_mod_LDFLAGS): Likewise.
6041
7a634e08 60422008-02-09 Robert Millan <rmh@aybabtu.com>
6043
6044 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
6045 situations in which we can deduce the RAID size and the superblock
6046 doesn't match it.
6047
b92f0c18 60482008-02-09 Robert Millan <rmh@aybabtu.com>
6049
6050 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
6051 and return a grub_diskmemberlist_t composed of LVM physical volumes.
6052 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
6053
6054 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
6055 and return a grub_diskmemberlist_t composed of physical array members.
6056 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
6057
6058 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
6059 prototype.
6060 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
6061 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
6062 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
6063
6064 * util/grub-probe.c (probe): Move partmap probing code from here ...
6065 (probe_partmap): ... to here.
6066 (probe): Use probe_partmap() once for the disk we're probing, and
6067 additionally, when such disk contains a memberlist() struct member,
6068 once for each disk that is contained in the structure returned by
6069 memberlist().
6070
91a4bf68 60712008-02-09 Robert Millan <rmh@aybabtu.com>
6072
6073 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
6074 environment variable to 'all' in order to obtain debug output from
6075 non-util/ code.
6076 * util/i386/pc/grub-setup.c (main): Likewise.
6077
a96f9caa 60782008-02-08 Robert Millan <rmh@aybabtu.com>
6079
6080 * disk/raid.c (grub_raid_scan_device): Check for
6081 `array->device[sb.this_disk.number]' rather than for
6082 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 6083 guaranteed to be accessible.
a96f9caa 6084
b37a9222 60852008-02-08 Robert Millan <rmh@aybabtu.com>
6086
6087 * disk/raid.c: Update copyright.
6088 * fs/cpio.c: Likewise.
6089 * include/grub/raid.h: Likewise.
6090 * loader/i386/pc/multiboot.c: Likewise.
6091 * util/hostfs.c: Likewise.
6092
5626aee1 60932008-02-08 Robert Millan <rmh@aybabtu.com>
6094
6095 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
6096 to a grub_disk_t array.
6097 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
6098 `device[x]'.
6099 (grub_raid_scan_device): Replace `device[x].name' accesses with
6100 `device[x]->name'. Simplify initialization of `array->device[x]'.
6101
554f0187 61022008-02-08 Robert Millan <rmh@aybabtu.com>
6103
6104 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
6105 grub_dprintf() calls.
6106 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
6107 error message.
6108
1ec8425d 61092008-02-07 Christian Franke <franke@computer.org>
6110
6111 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
6112 instead of fseek and ftell to support large files.
6113 (grub_hostfs_read): Likewise.
6114
f2156fda 61152008-02-07 Robert Millan <rmh@aybabtu.com>
6116
6117 Patch from Jeroen Dekkers.
6118 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 6119 failure, since successfully reading all array members might not be
f2156fda 6120 required.
6121
9216e0e7 61222008-02-06 Robert Millan <rmh@aybabtu.com>
6123
6124 * util/grub-probe.c (probe): Simplify partmap probing (with the
6125 assumption that the first word up to the underscore equals to
6126 the module name).
6127
b0dfd29a 61282008-02-06 Christian Franke <franke@computer.org>
6129
6130 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
6131 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
6132 last block of a cpio or tar stream.
6133 Check for "TRAILER!!!" instead of any empty data
6134 block to detect last block of a cpio stream.
6135 (grub_cpio_dir): Fix constness of variable np.
6136 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
6137 cpio or tar trailer is detected. This fixes a crash
6138 on open of a non existing file.
6139
c32865bf 61402008-02-05 Bean <bean123ch@gmail.com>
6141
6142 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
6143 address of entry.
6144 (grub_multiboot_load_elf64): Likewise.
6145 (grub_multiboot): Initialize mbi structure.
6146
6147 * util/grub-fstest.c: Don't include unused header file script.h.
6148
fe6b695a 6149 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 6150 of file.
6151 (grub_fstest_SOURCES): Likewise.
6152
409480b7 61532008-02-05 Robert Millan <rmh@aybabtu.com>
6154
6155 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
6156 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
6157 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
6158 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
6159
6160 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
6161 (translation_table): Replace hardcoded values with macros
6162 provided by `<grub/term.h>'.
6163
6164 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
6165 (keyboard_map): Correct/add a few values, with macros provided
6166 by `<grub/term.h>'.
6167 (keyboard_map_shift): Zero values that don't differ from their
6168 `keyboard_map' equivalents.
6169 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
6170 Discard the second scan code that is always sent by Caps lock.
6171 Only use `keyboard_map_shift' when it provides a non-zero value,
6172 otherwise fallback to `keyboard_map'.
6173
99fadbaa 61742008-02-04 Bean <bean123ch@gmail.com>
6175
6176 * Makefile.in (enable_grub_fstest): New variable.
6177
6178 * conf/common.rmk (grub_fstest_init.lst): New rule.
6179 (grub_fstest_init.h): Likewise.
6180 (grub_fstest_init.c): Likewise.
6181 (util/grub-fstest.c_DEPENDENCIES): New variable.
6182 (grub_fstest_SOURCES): Likewise.
6183
6184 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
6185
6186 * util/grub-fstest.c: New file.
6187
bf567c50 61882008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6189
6190 Make grub-setup handle a separate root device.
f19dbdb7 6191
bf567c50 6192 * util/i386/pc/grub-setup.c (setup): Always open the root device,
6193 so that the root device can be compared with the destination
6194 device.
6195 When embedding the core image, if the root and destination devices
6196 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
6197 0xFF.
6198 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 6199
9be6b98b 62002008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6201
6202 Add support for having a grub directory in a different drive. This
6203 is still only the data handling part.
f19dbdb7 6204
9be6b98b 6205 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
6206 (codestart): Save %dh in GRUB_ROOT_DRIVE.
6207 (grub_root_drive): New variable.
6208
6209 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
6210 instead of GRUB_BOOT_DRIVE to construct a device name. Set
6211 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
6212 as it was.
6213
6214 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
6215
6216 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
6217 macro.
6218 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
6219
6220 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
6221 is bogus, because PXE booting does not specify any drive
6222 correctly.
6223
6224 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
6225 am not sure if this is really correct.
6226
6227 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
6228 is always identical to the boot drive when booting from a CD.
6229
6230 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
6231 longer.
6232 (root_drive): New variable.
6233 (real_start): Unconditionally set %dh to ROOT_DRIVE.
6234 (setup_sectors): Push %dx right after popping it, because %dh will
6235 be modified later.
6236 (copy_buffer): Restore %dx.
6237
e0ca0677 62382008-02-03 Robert Millan <rmh@aybabtu.com>
6239
6240 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
6241 use `cdboot.img' for cdrom images.
6242
3b3f6629 62432008-02-03 Robert Millan <rmh@aybabtu.com>
6244
6245 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
6246 only setup gfxterm when `font' command has succeeded.
6247
d42b3672 62482008-02-03 Robert Millan <rmh@aybabtu.com>
6249
6250 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
6251 (grub_rescue_cmd_multiboot_loader)
6252 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
6253
fa370ea6 62542008-02-03 Pavel Roskin <proski@gnu.org>
6255
e0c5dacb 6256 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 6257 %edx and %esi from stack only after grub_gate_a20() is called.
6258 grub_gate_a20() clobbers %edx.
6259
f2a76e1d 62602008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6261
6262 * configure.ac (AC_INIT): Bumped to 1.96.
6263
6264 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
6265 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
6266 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
6267 video/readers/png.c.
6268
90fd32d1 62692008-02-03 Bean <bean123ch@gmail.com>
9be665dd 6270
6271 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
6272 (cdboot_img_SOURCES): New variable.
6273 (cdboot_img_ASFLAGS): New variable.
6274 (cdboot_img_LDFLAGS): New variable.
6275
6276 * boot/i386/pc/cdboot.S: New file.
6277
6278 * disk/i386/pc/biosdisk.c (cd_start): New variable.
6279 (cd_count): Likewise.
6280 (grub_biosdisk_get_drive): Add support for cd device.
6281 (grub_biosdisk_call_hook): Likewise.
6282 (grub_biosdisk_iterate): Likewise.
6283 (grub_biosdisk_open): Likewise.
6284 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
6285 (grub_biosdisk_rw): Support reading from cd device.
6286 (GRUB_MOD_INIT): Iterate cd devices.
6287
6288 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
6289 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
6290 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
6291
6292 * kern/i386/pc/init.c (make_install_device): Check for cd device.
6293
4020aa53 62942008-02-02 Robert Millan <rmh@aybabtu.com>
6295
6296 * commands/read.c: New file.
6297 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
6298 (read_mod_SOURCES): New variable.
6299 (read_mod_CFLAGS): Likewise.
6300 (read_mod_LDFLAGS): Likewise.
6301
e03a1132 63022008-02-02 Robert Millan <rmh@aybabtu.com>
6303
6304 * normal/main.c (grub_normal_execute): Check for `menu->size' when
6305 determining whether menu has to be displayed.
6306
58c69220 63072008-02-02 Marco Gerards <marco@gnu.org>
6308
6309 * bus/pci.c: New file.
6310
6311 * include/grub/pci.h: Likewise.
6312
6313 * include/grub/i386/pc/pci.h: Likewise.
6314
6315 * commands/lspci.c: Likewise.
6316
6317 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
6318 `lspci.mod'.
6319 (pci_mod_SOURCES): New variable.
6320 (pci_mod_CFLAGS): Likewise.
6321 (pci_mod_LDFLAGS): Likewise.
6322 (lspci_mod_SOURCES): Likewise.
6323 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 6324 (lspci_mod_LDFLAGS): Likewise.
58c69220 6325
c004e1b4 63262008-02-02 Bean <bean123ch@gmail.com>
6327
6328 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
6329 (grub_ufs_get_file_block): Fix indirect block calculation problem.
6330
6331 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
6332 (grub_xfs_btree_node): New structure.
6333 (grub_xfs_btree_root): New structure.
6334 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
6335 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
6336 (GRUB_XFS_EXTENT_BLOCK): Likewise.
6337 (GRUB_XFS_EXTENT_SIZE): Likewise.
6338 (grub_xfs_read_block): Support btree format type.
6339 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
6340 Use directory block as basic unit.
6341
6342 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
6343
6344 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
6345 __attribute__ ((__regparm__ (1))).
6346
f95562bf 63472008-02-01 Robert Millan <rmh@aybabtu.com>
6348
6349 Correct a mistake in previous commit.
6350
6351 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
6352 top.
6353 (normal/command.c_DEPENDENCIES): New variable.
6354
7d31f41f 63552008-02-01 Robert Millan <rmh@aybabtu.com>
6356
6357 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
6358 top.
6359 (normal/command.c_DEPENDENCIES): New variable.
6360 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
6361 * conf/i386-ieee1275.rmk: Likewise.
6362 * conf/i386-linuxbios.rmk: Likewise.
6363 * conf/i386-pc.rmk: Likewise.
6364 * conf/sparc64-ieee1275.rmk: Likewise.
6365 * conf/powerpc-ieee1275.rmk: Likewise.
6366 (grub_emu_SOURCES): Add `fs/fshelp.c'.
6367
6368 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
6369
60b6be74 63702008-02-01 Robert Millan <rmh@aybabtu.com>
6371
6372 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
6373 call at beginning of function.
6374
078522ab 63752008-01-31 Pavel Roskin <proski@gnu.org>
6376
6377 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 6378 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
6379 (grub_mkrescue_SOURCES): Likewise.
078522ab 6380 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
6381
ccaa8a5f 63822008-01-30 Robert Millan <rmh@aybabtu.com>
6383
6384 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
6385 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
6386 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
6387 (grub_probe_SOURCES): ... to here.
6388
6389 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
6390 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
6391 * conf/i386-ieee1275.rmk: Likewise.
6392 * conf/i386-linuxbios.rmk: Likewise.
6393 * conf/powerpc-ieee1275.rmk: Likewise.
6394
ae5a9cd7 63952008-01-30 Tristan Gingold <gingold@free.fr>
6396
6397 * kern/rescue.c: Silently accept empty lines.
6398
70bc2ef2 63992008-01-29 Bean <bean123ch@gmail.com>
6400
6401 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
6402 (real_code_2): Code cleanup and change comment style.
6403 (move_memory): Avoid using 32-bit address mode.
6404
6a4d50ea 64052008-01-29 Bean <bean123ch@gmail.com>
6406
6407 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
6408 (png_mod_SOURCES): New variable.
6409 (png_mod_CFLAGS): Likewise.
6410 (png_mod_LDFLAGS): Likewise.
6411
6412 * video/readers/png.c: New file.
6413
11cc30ac 64142008-01-28 Robert Millan <rmh@aybabtu.com>
6415
6416 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
6417 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
6418 `ifndef GRUB_MOD_GAP' hack.
6419 * util/elf/grub-mkimage.c (add_segments): Likewise.
6420
3abc589f 64212008-01-27 Robert Millan <rmh@aybabtu.com>
6422
6423 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
6424 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 6425 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 6426
e1907778 64272008-01-27 Robert Millan <rmh@aybabtu.com>
6428
6429 Get grub-emu to build again (including parallel builds).
6430
6431 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
6432 Split into ...
6433 (util/grub-emu.c_DEPENDENCIES): ... this, ...
6434 (normal/execute.c_DEPENDENCIES): ... this, ...
6435 (grub-emu_DEPENDENCIES): ... and this.
6436
6437 * conf/i386-efi.rmk: Likewise.
6438 * conf/i386-linuxbios.rmk: Likewise.
6439 * conf/i386-ieee1275.rmk: Likewise.
6440 * conf/powerpc-ieee1275.rmk: Likewise.
6441 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
6442
2216b101 64432008-01-27 Robert Millan <rmh@aybabtu.com>
6444
6445 * NEWS: Add a few items.
6446
f75172d9 64472008-01-27 Robert Millan <rmh@aybabtu.com>
6448
6449 Fix parallel builds with grub-emu. Based on earlier commit for
6450 grub-probe and grub-setup.
6451
6452 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6453 (util/grub-emu.c_DEPENDENCIES): ... this.
6454 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6455 (util/grub-emu.c_DEPENDENCIES): ... this.
6456 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6457 (util/grub-emu.c_DEPENDENCIES): ... this.
6458 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6459 (util/grub-emu.c_DEPENDENCIES): ... this.
6460 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6461 (util/grub-emu.c_DEPENDENCIES): ... this.
6462
3f51de77 64632008-01-27 Pavel Roskin <proski@gnu.org>
6464
6465 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
6466 to create a gap between _end and the modules added to the image
6467 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
6468 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
6469 * util/elf/grub-mkimage.c (add_segments): Likewise.
6470
2033f53e 64712008-01-26 Pavel Roskin <proski@gnu.org>
6472
6473 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
6474 just return an error.
6475
22da1f6f 64762008-01-26 Bean <bean123ch@gmail.com>
6477
6478 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
6479 (grub_reiserfs_get_item): Save offset of the next item.
6480 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
6481
2a9525e6 64822008-01-25 Robert Millan <rmh@aybabtu.com>
6483
6484 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
6485 make all filesystem sources appear together (possibly fixing omissions
6486 while at it).
6487 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6488 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6489 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6490 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6491
6492 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
6493 add `kern/file.c'.
6494 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
6495 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6496 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
6497 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6498
6499 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
6500 (probe): Add a sanity check to make sure of our ability to read
6501 requested files when probing for filesystem type.
6502
6503 * genmk.rb: Update copyright year (2007).
6504
6505 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
6506 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
6507 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
6508 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
6509 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
6510 : Remove function prototypes.
6511
b95f71b5 65122008-01-25 Robert Millan <rmh@aybabtu.com>
6513
6514 Revert my previous commits (based on wrong assumption of how grub_errno
6515 works).
6516
fe6b695a 6517 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 6518 * kern/file.c (grub_file_open): Likewise.
6519
d08bbb49 65202008-01-24 Pavel Roskin <proski@gnu.org>
6521
6522 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
6523 that hang if GRUB tries to setup colors.
6524 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
6525 colors for firmwares that don't support it.
6526 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
6527 Recognize Open Hack'Ware, set flags to work around its
6528 limitations.
6529
605e36ed 65302008-01-24 Robert Millan <rmh@aybabtu.com>
6531
6532 * kern/file.c (grub_file_open): Do not account previous failures of
6533 unrelated functions when grub_errno is checked for.
6534 Reported by Oleg Strikov.
6535
bac332a1 65362008-01-24 Bean <bean123ch@gmail.com>
6537
6538 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
6539 (grub_ufs_sblock): New member volume name.
6540 (grub_ufs_find_file): Fix string copy bug.
6541 (grub_ufs_label): Implement this function properly.
6542
6543 * fs/hfs.c (grub_hfs_cnid_type): New enum.
6544 (grub_hfs_iterate_records): Use the correct file number for extents
6545 and catalog file. Fix problem in next index calculation.
6546 (grub_hfs_find_node): Replace recursive function call with loop.
6547 (grub_hfs_iterate_dir): Replace recursive function call with loop.
6548
15c80c09 65492008-01-23 Robert Millan <rmh@aybabtu.com>
6550
6551 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
6552 `<grub/symbol.h>' and `<grub/multiboot.h>'.
6553 (grub_multiboot2_real_boot): New function prototype.
6554
6555 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
6556 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
6557
6558 * kern/i386/ieee1275/init.c (grub_os_area_addr)
6559 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
6560
305338fd 65612008-01-23 Robert Millan <rmh@aybabtu.com>
6562
6563 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
6564 #ifdef'ed out grub_printf().
6565
3ea52685 65662008-01-23 Robert Millan <rmh@aybabtu.com>
6567
6568 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
6569 grub_dprintf calls, since they make "debug=all" mode unusable.
6570 (grub_console_checkkey): Likewise.
6571
5882ae4b 65722008-01-23 Robert Millan <rmh@aybabtu.com>
6573
6574 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
6575 `term/i386/pc/at_keyboard.c'.
6576 (pkglib_MODULES): Add `serial.mod'.
6577 (serial_mod_SOURCES): New variable.
6578 (serial_mod_CFLAGS): Likewise.
6579 (serial_mod_LDFLAGS): Likewise.
6580
6581 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
6582 `<grub/powerpc/ieee1275/console.h>'.
6583 (grub_keyboard_controller_init): New function prototype.
6584 (grub_console_checkkey): Likewise.
6585 (grub_console_getkey): Likewise.
6586
6587 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
6588 keyboard on i386.
6589
6590 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
6591 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
6592
06ab5303 65932008-01-23 Robert Millan <rmh@aybabtu.com>
6594
6595 * kern/i386/pc/init.c (make_install_device): When memdisk image is
6596 present, "(memdisk)/boot/grub" becomes the default prefix.
6597
6598 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
6599 a memdisk tarball with all the modules. Add --overlay=DIR option that
6600 allows users to overlay additional files into the image.
6601
dbb475a4 66022008-01-23 Robert Millan <rmh@aybabtu.com>
6603
6604 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
6605 and `machine/memory.h'.
6606 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
6607 (_multiboot_mod_SOURCES): New variable.
6608 (_multiboot_mod_CFLAGS): Likewise.
6609 (_multiboot_mod_LDFLAGS): Likewise.
6610 (multiboot_mod_SOURCES): Likewise.
6611 (multiboot_mod_CFLAGS): Likewise.
6612 (multiboot_mod_LDFLAGS): Likewise.
6613
6614 * include/grub/i386/ieee1275/loader.h: New file.
6615
6616 * include/grub/i386/ieee1275/machine.h: Likewise.
6617
6618 * include/grub/i386/ieee1275/memory.h: Likewise.
6619
6620 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
6621 variable declaration.
6622 (grub_os_area_size): Likewise.
6623
6624 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
6625 (grub_lower_mem, grub_upper_mem): New variables.
6626 (grub_stop_floppy): New function (just to make
6627 grub_multiboot2_real_boot() happy).
6628
6629 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
6630 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
6631 (grub_stop): New function.
6632 Include `"../realmode.S"' and `"../loader.S"'.
6633
6634 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
6635 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
6636
6637 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
6638 rely on grub_multiboot2_real_boot() for final boot.
6639
25638629 66402008-01-22 Robert Millan <rmh@aybabtu.com>
6641
6642 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
6643 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
6644 device that doesn't look like an SD card.
6645 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6646 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
6647 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
6648 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
6649 found.
6650
9dad816d 66512008-01-22 Robert Millan <rmh@aybabtu.com>
6652
6653 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
6654 avoid claiming over our own code.
6655
34842f2d 66562008-01-22 Bean <bean123ch@gmail.com>
6657
6658 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
6659 (jpeg_mod_SOURCES): New variable.
6660 (jpeg_mod_CFLAGS): Likewise.
6661 (jpeg_mod_LDFLAGS): Likewise.
6662
6663 * video/readers/jpeg.c : New file.
6664
44023a28 66652008-01-22 Bean <bean123ch@gmail.com>
6666
6667 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
6668 there are no more items.
6669
bc2d8ac6 66702008-01-21 Robert Millan <rmh@aybabtu.com>
6671
6672 * kern/mm.c (grub_mm_init_region): Improve debug message.
6673
261bd4bc 66742008-01-21 Robert Millan <rmh@aybabtu.com>
6675
6676 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
6677 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
6678 address.
6679 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
6680 a C macro.
6681 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
6682 Indicates start of upper memory.
6683 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
6684 (generate_image): Abort when image size is big enough to corrupt
6685 upper memory.
6686
6687 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
6688 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
6689 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6690 instead of hardcoding 0xA0000.
6691 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
6692 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6693 instead of hardcoding 0xA0000.
6694
f970b55e 66952008-01-21 Robert Millan <rmh@aybabtu.com>
6696
6697 * disk/memdisk.c (memdisk_size): New variable.
6698 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
6699 `memdisk_size'.
6700 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
6701 image to dynamic memory.
6702 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
6703 `memdisk_size'. Free memdisk block.
6704
1a8b0526 67052008-01-21 Robert Millan <rmh@aybabtu.com>
6706
6707 Fix detection of very small filesystems (like tar).
6708
6709 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
6710 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
6711 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
6712 a problem with this disk).
6713
6e9b4aab 67142008-01-21 Robert Millan <rmh@aybabtu.com>
6715
6716 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
6717 on grub_biosdisk_rw_standard() error.
6718
0d8837b2 67192008-01-21 Robert Millan <rmh@aybabtu.com>
6720
6721 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
6722 recent changes.
6723 * kern/elf.c: Likewise.
6724 * kern/ieee1275/ieee1275.c: Likewise.
6725 * kern/powerpc/ieee1275/openfw.c: Likewise.
6726 * term/ieee1275/ofconsole.c: Likewise.
6727
ffd36e34 67282008-01-21 Robert Millan <rmh@aybabtu.com>
6729
6730 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
6731
3f0093d0 6732 * include/grub/kernel.h (grub_arch_memdisk_addr)
6733 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 6734
3f0093d0 6735 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
6736 (grub_arch_memdisk_size): ... to here.
ffd36e34 6737
6c391b21 67382008-01-21 Robert Millan <rmh@aybabtu.com>
6739
6740 Mostly based on bugfix from Bean.
6741
6742 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
6743 attribute with hook() parameter.
6744 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
6745 declaration.
6746 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
6747 attribute with hook() parameter.
6748 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
6749 declaration.
6750
55a581dc 67512008-01-21 Robert Millan <rmh@aybabtu.com>
6752
6753 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
6754 (pkglib_MODULES): Add `memdisk.mod'.
6755 (memdisk_mod_SOURCES): New variable.
6756 (memdisk_mod_CFLAGS): Likewise.
6757 (memdisk_mod_LDFLAGS): Likewise.
6758
6759 * disk/memdisk.c: New file.
6760
6761 * include/grub/disk.h (grub_disk_dev_id): Add
6762 `GRUB_DISK_DEVICE_MEMDISK_ID'.
6763
6764 * include/grub/i386/pc/kernel.h
6765 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
6766 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
6767 (grub_kernel_image_size): New variable declaration.
6768 (grub_total_module_size): Likewise.
6769 (grub_memdisk_image_size): Likewise.
6770
6771 * include/grub/i386/pc/memory.h
6772 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
6773
6774 * include/grub/kernel.h: Include `<grub/symbol.h>'.
6775 (grub_arch_memdisk_addr): New variable declaration.
6776 (grub_arch_memdisk_size): Likewise.
6777
6778 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
6779 (grub_arch_memdisk_size): Likewise.
6780
6781 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
6782 (codestart): Replace hardcoded `0x100000' with
6783 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
6784
6785 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
6786 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
6787 not NULL, append the contents of the file it refers to, at the end of
6788 the compressed kernel image. Initialize `grub_memdisk_image_size'
6789 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
6790 (options): Add "memdisk"|'m' option.
6791 (main): Parse --memdisk|-m option, and pass user-provided path as
6792 parameter to generate_image().
6793
3d7f54c9 67942008-01-20 Robert Millan <rmh@aybabtu.com>
6795
6796 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
6797 grub_dprintf() calls from here ...
6798 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
6799
0bf74728 68002008-01-20 Robert Millan <rmh@aybabtu.com>
6801
6802 Fix detection of "real mode" when /options/real-mode? doesn't exist.
6803
6804 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
6805 declaration.
6806 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
6807 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
6808 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 6809 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 6810 property).
6811 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
6812 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
6813
33bf70a7 68142008-01-19 Robert Millan <rmh@aybabtu.com>
6815
fe6b695a 6816 Get rid of confusing function (superseded by
33bf70a7 6817 `grub_ieee1275_get_integer_property')
6818 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
6819 prototype.
6820 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
6821 function.
6822 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
6823 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 6824 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 6825
e2da7d26 68262008-01-19 Robert Millan <rmh@aybabtu.com>
6827
6828 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
6829 command after "shut-down", since implementations differ on which
6830 the command for halt is.
6831
59f1fd8d 68322008-01-19 Robert Millan <rmh@aybabtu.com>
6833
6834 * include/grub/i386/linuxbios/console.h: Add header protection.
6835 (grub_keyboard_controller_init): New function prototype.
6836 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
6837 (KEYBOARD_COMMAND_READ): Likewise.
6838 (KEYBOARD_COMMAND_WRITE): Likewise.
6839 (KEYBOARD_SCANCODE_SET1): Likewise.
6840 (grub_keyboard_controller_write): New function.
6841 (grub_keyboard_controller_read): Likewise.
6842 (grub_keyboard_controller_init): Likewise.
6843
6844 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
6845 (grub_console_init): On coreboot/LinuxBIOS, call
6846 grub_keyboard_controller_init().
6847
5f5a7c15 68482008-01-19 Robert Millan <rmh@aybabtu.com>
6849
6850 PowerPC changes provided by Pavel Roskin.
6851
6852 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
6853 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
6854 don't rely on cmain() doing it.
6855 * kern/i386/ieee1275/startup.S (_start): Store %eax in
6856 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
6857
1210e168 68582008-01-16 Robert Millan <rmh@aybabtu.com>
6859
6860 * include/grub/i386/linuxbios/memory.h
6861 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
6862 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
6863 receive `table_header' as argument. Instead, probe for it in the
6864 known memory ranges where it can be present.
6865 (grub_available_iterate): Do not pass a fixed `table_header' address
6866 to grub_linuxbios_table_iterate().
6867
3d04eab8 68682008-01-15 Robert Millan <rmh@aybabtu.com>
6869
6870 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
6871 * conf/i386-ieee1275.rmk: New file.
6872 * include/grub/i386/ieee1275/console.h: Likewise.
6873 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
6874 * include/grub/i386/ieee1275/kernel.h: Likewise.
6875 * include/grub/i386/ieee1275/time.h: Likewise.
6876 * kern/i386/ieee1275/init.c: Likewise.
6877 * kern/i386/ieee1275/startup.S: Likewise.
6878
d1bc1b73 68792008-01-15 Robert Millan <rmh@aybabtu.com>
6880
6881 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
6882 when pointers are 32-bit (but still do set it to one when they are
6883 64-bit).
6884
66a65807 68852008-01-15 Robert Millan <rmh@aybabtu.com>
6886
6887 * include/grub/ieee1275/ieee1275.h
6888 (grub_ieee1275_get_integer_property): New function prototype.
6889
6890 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
6891 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 6892 grub_ieee1275_get_property() to handle endianness.
66a65807 6893
6894 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
6895 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 6896 where appropriate.
66a65807 6897 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
6898 (grub_map): Likewise.
6899 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
6900
a83ccafd 69012008-01-15 Bean <bean123ch@gmail.com>
6902
6903 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
6904 (grub_script_execute_cmdline): Reset grub_errno.
6905
6906 * normal/main.c (read_config_file): Reset grub_errno.
6907
6908 * normal/parse.y (script_init): New.
6909 (script): Move function and menuentry here.
6910 (delimiter): New.
6911 (command): Add delimiter at the end of command.
6912 (commands): Adjust to match the new command.
6913 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 6914 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 6915 (if): Use the new commands.
6916
6917 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
6918
df6ecfc6 69192008-01-15 Robert Millan <rmh@aybabtu.com>
6920
6921 * normal/menu.c (run_menu): Move timeout message from here ...
6922 (print_timeout): ... to here.
6923 (run_menu): Use print_timeout() once during initial draw to print
6924 the whole message, and again in every clock tick to update only
6925 the number of seconds.
6926
87ae25eb 69272008-01-15 Robert Millan <rmh@aybabtu.com>
6928
6929 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
6930 actual size of `available' from grub_ieee1275_get_property(), and
6931 restrict parsing to that bound.
6932
47bf09a4 69332008-01-15 Christian Franke <franke@computer.org>
6934
6935 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
6936 (argp_program_version): Remove variable.
6937 (argp_program_bug_address): Likewise.
6938 (options): Convert from struct argp_option to struct option.
6939 (struct arguments): Remove.
6940 (parse_opt): Remove.
6941 (usage): New function.
6942 (main): Replace struct args members by simple variables.
6943 Replace argp_parse() by getopt_long().
6944 Add switch to evaluate options.
6945 Add missing "(...)" around root_dev in prefix string.
6946
c86f1469 69472008-01-14 Robert Millan <rmh@aybabtu.com>
6948
6949 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
6950 for grub_ieee1275_exit(), in order to improve portability.
6951
e622c559 69522008-01-14 Robert Millan <rmh@aybabtu.com>
6953
6954 * util/grub.d/10_linux.in (prefix): Define.
6955 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
6956
44cb1ec8 69572008-01-13 Pavel Roskin <proski@gnu.org>
6958
6959 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
6960 grub_errno if no errors have been detected.
6961
1eb8c802 69622008-01-12 Robert Millan <rmh@aybabtu.com>
6963
6964 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
6965 (grub_util_get_dev_abstraction): New function prototype.
6966
6967 * util/getroot.c: Include `<grub/util/getroot.h>'
6968 (grub_util_get_grub_dev): Move detection of abstraction type to ...
6969 (grub_util_get_dev_abstraction): ... here (new function).
6970
6971 * util/grub-probe.c: Convert PRINT_* to an enum. Add
6972 `PRINT_ABSTRACTION'.
6973 (probe): Probe for abstraction type when requested.
6974 (main): Understand `--target=abstraction'.
6975
6976 * util/i386/efi/grub-install.in: Add abstraction module to core
6977 image when it is found to be necessary.
6978 * util/i386/pc/grub-install.in: Likewise.
6979 * util/powerpc/ieee1275/grub-install.in: Likewise.
6980
6981 * util/update-grub_lib.in (font_path): Return system path without
6982 converting to GRUB path.
6983 * util/update-grub.in: Convert system path returned by font_path()
6984 to a GRUB path. Use `grub-probe -t abstraction' to determine what
6985 abstraction module is needed for loading fonts (if any). Export
6986 that as `GRUB_PRELOAD_MODULES'.
6987 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
6988 insmod commands).
6989
52bd3de9 69902008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
6991
6992 Remove some unused code from reiserfs.
f19dbdb7 6993
52bd3de9 6994 * fs/reiserfs.c (struct grub_reiserfs_key)
6995 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
6996 (struct grub_reiserfs_node_body): Removed.
6997 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
6998 Likewise.
6999 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7000 Likewise.
7001 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7002 Likewise.
7003 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7004 Likewise.
7005 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
7006 Likewise.
7007 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
7008 Likewise.
7009 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7010 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7011 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7012
2f80039d 70132008-01-10 Robert Millan <rmh@aybabtu.com>
7014
7015 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
7016 Determines if a file is garbage left by packaging systems, etc.
7017 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
7018 for processing /etc/grub.d scripts.
7019 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
7020 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
7021 as a condition for processing Linux images.
7022
87888032 70232008-01-10 Pavel Roskin <proski@gnu.org>
7024
7025 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
7026 to compile reiserfs.c on PowerPC.
7027
7e54fced 70282008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 7029
7030 * kern/device.c (grub_device_iterate): Do not abort device iteration
7031 when one of the devices cannot be opened.
7032 * kern/disk.c (grub_disk_open): Do not account previous failures of
7033 unrelated functions when grub_errno is checked for.
7034
5aa541e6 70352008-01-08 Robert Millan <rmh@aybabtu.com>
7036
7037 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
7038 `! grub_linux_is_bzimage', change order of address comparison to make
7039 it more intuitive, and improve "too big zImage" error message.
7040
7076340d 70412008-01-08 Robert Millan <rmh@aybabtu.com>
7042
7043 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
7044 `$(update-grub_DATA)'.
7045 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
7046 targets.
7047
9ca70333 70482008-01-07 Robert Millan <rmh@aybabtu.com>
7049
7050 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
7051 which instruction is modified by grub-setup during installation
7052 (since it wasn't obvious by only looking at this file).
7053
38ccf575 70542008-01-07 Robert Millan <rmh@aybabtu.com>
7055
7056 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
7057 listing actual TODO items.
7058
f5db4291 70592008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7060
868967cf 7061 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
7062 correctly.
7063 (grub_reiserfs_get_key_offset): Likewise.
7064 (grub_reiserfs_set_key_offset): Likewise.
7065 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 7066 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 7067
7068 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
7069 better to remove the bitfield version completely.
f19dbdb7 7070
868967cf 70712008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7072
f5db4291 7073 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
7074 allocated from the heap, due to the fshelp implementation.
7075 (grub_reiserfs_dir): Free NODE, due to the same reason.
7076
492e6d9d 70772008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7078
7079 Mostly from Vincent Pelletier:
f19dbdb7 7080
492e6d9d 7081 * fs/reiserfs.c: New file.
f19dbdb7 7082
492e6d9d 7083 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
7084 (reiserfs_mod_SOURCES): New variable.
7085 (reiserfs_mod_CFLAGS): Likewise.
7086 (reiserfs_mod_LDFLAGS): Likewise.
7087
7088 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
7089 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
7090 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
7091 normal/color.c.
7092
9ce3e7c1 70932008-01-06 Robert Millan <rmh@aybabtu.com>
7094
7095 * normal/color.c: Remove `<grub/env.h>'.
7096
f3b58148 70972008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
7098
7099 * include/grub/normal.h: Include <grub/env.h>.
7100
7ac3bcfa 71012008-01-05 Robert Millan <rmh@aybabtu.com>
7102
7103 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
7104 usage example with `(hd0,1)'.
fb358190 7105 Reported by Samuel Thibault.
7ac3bcfa 7106
c8ee99d7 71072008-01-05 Robert Millan <rmh@aybabtu.com>
7108
7109 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
7110 (grub_linux_boot_zimage): Rename to ...
7111 (grub_linux_boot): ... this.
7112 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
7113 (grub_linux_boot_zimage): Conditionalize zImage copy.
7114
7115 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
7116 (grub_linux_boot_bzimage): Remove prototype.
7117 (grub_linux_boot_zimage): Rename to ...
7118 (grub_linux_boot): ... this.
7119
7120 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
7121 (grub_linux_boot): Remove function.
7122
0ece25b1 71232008-01-05 Robert Millan <rmh@aybabtu.com>
7124
7125 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
7126 (grub_env_write_color_highlight): Likewise.
7127 (grub_wait_after_message): Likewise.
7128
7129 * normal/color.c: New file.
7130
7131 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7132 (normal_mod_DEPENDENCIES): Likewise.
7133
7134 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7135 (normal_mod_DEPENDENCIES): Likewise.
7136
7137 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7138 (normal_mod_DEPENDENCIES): Likewise.
7139
7140 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7141 (normal_mod_DEPENDENCIES): Likewise.
7142
7143 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
7144 for waiting after a message is printed.
7145 * normal/main.c (read_config_file): Likewise.
7146 (grub_normal_init): Register grub_env_write_color_normal() and
7147 grub_env_write_color_highlight() hooks. Mark `color_normal' and
7148 `color_highlight' variables as global.
7149
7150 * normal/menu.c (grub_wait_after_message): New function.
7151 (grub_color_menu_normal): New variable. Replaces ...
7152 (GRUB_COLOR_MENU_NORMAL): ... this macro.
7153 (grub_color_menu_highlight): New variable. Replaces ...
7154 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
7155 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
7156 `GRUB_TERM_COLOR_STANDARD'.
7157 (print_message): Use `grub_setcolorstate' to reload colors. Rename
7158 `normal_code' and `highlight_code' to `old_color_normal' and
7159 `old_color_highlight', respectively.
7160 (grub_menu_init_page): Update colors when drawing the menu, based on
7161 `menu_color_normal' and `menu_color_highlight' variables.
7162 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
7163 a message is printed.
7164
182dd4e5 71652008-01-05 Robert Millan <rmh@aybabtu.com>
7166
7167 * kern/env.c (grub_env_context_open): Propagate hooks for global
7168 variables to new context.
7169
7170 * kern/main.c (grub_set_root_dev): Export `root' variable.
7171
ddf8f6ad 71722008-01-05 Robert Millan <rmh@aybabtu.com>
7173
7174 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 7175 discs unconditionally, since udev and others have options to provide
ddf8f6ad 7176 them.
7177
d8b43d9b 71782008-01-05 Robert Millan <rmh@aybabtu.com>
7179
7180 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
7181
2bff2de3 71822008-01-04 Christian Franke <franke@computer.org>
7183
7184 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
7185 of eisa_mmap.
7186
97eab917 71872008-01-03 Pavel Roskin <proski@gnu.org>
7188
7189 * kern/i386/linuxbios/init.c: Put "void" to all function
7190 declarations with no arguments.
7191 * kern/powerpc/ieee1275/init.c: Likewise.
7192 * term/i386/pc/at_keyboard.c: Likewise.
7193 * term/i386/pc/vga_text.c: Likewise.
7194 * util/grub-mkdevicemap.c: Likewise.
7195
b9416d00 71962008-01-02 Robert Millan <rmh@aybabtu.com>
7197
7198 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
7199 message when loaded image is out of bounds.
7200 (grub_multiboot_load_elf64): Likewise.
7201
92695df9 72022008-01-02 Pavel Roskin <proski@gnu.org>
7203
7204 * util/grub.d/10_linux.in: Try version without ".old" when
7205 looking for initrd. It's better to use initrd from the newer
7206 kernel of the same version than no initrd at all.
7207
d98d9cad 72082008-01-01 Robert Millan <rmh@aybabtu.com>
7209
7210 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
7211
dbfdce36 72122008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
7213
f19dbdb7 7214 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 7215 grub_video_get_active_render_target.
7216 (grub_video_adapter): Added unmap_color and get_active_render_target.
7217
f19dbdb7 7218 * video/video.c: Added grub_video_unmap_color and
dbfdce36 7219 grub_video_get_active_render_target.
7220 (grub_video_get_info): Changed method to accept NULL pointer as an
7221 argument to allow detection of active video adapter.
7222
7223 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
7224 grub_video_vbe_unmap_color_int.
7225 Added grub_video_vbe_unmap_color and
7226 grub_video_vbe_get_active_render_target.
7227 (grub_video_vbe_adapter): Added unmap_color and
7228 get_active_render_target.
7229
f19dbdb7 7230 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 7231 with grub_video_vbe_unmap_color_int.
7232
7233 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
7234 (DEFAULT_NORMAL_COLOR): Likewise.
7235 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
7236 (DEFAULT_FG_COLOR): Removed.
7237 (DEFAULT_BG_COLOR): Likewise.
7238 (DEFAULT_CURSOR_COLOR): Changed value.
7239 (grub_virtual_screen): Added standard_color_setting,
7240 normal_color_setting, highlight_color_setting and term_color.
7241 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
7242 (bitmap_width): Added.
7243 (bitmap_height): Likewise.
7244 (bitmap): Likewise.
7245 (set_term_color): Likewise.
7246 (grub_virtual_screen_setup): Changed to use new terminal coloring
7247 settings.
7248 (grub_gfxterm_init): Added init for bitmap.
7249 (grub_gfxterm_fini): Added destroy for bitmap.
7250 (redraw_screen_rect): Updated to use background bitmap and new
7251 terminal coloring.
7252 (scroll_up): Added optimization for case when there is no bitmap.
7253 (grub_gfxterm_cls): Fixed to use correct background color.
7254 (grub_virtual_screen_setcolorstate): Changed to use new terminal
7255 coloring.
7256 (grub_virtual_screen_setcolor): Likewise.
7257 (grub_virtual_screen_getcolor): Added.
7258 (grub_gfxterm_background_image_cmd): Likewise.
7259 (grub_video_term): Added setcolor and getcolor.
7260 (MOD_INIT): Added registration of background_image command.
7261 (MOD_TERM): Added unregistration for background_image command.
7262
c3c20931 72632007-12-30 Pavel Roskin <proski@gnu.org>
7264
7265 * loader/multiboot_loader.c: Fix multiboot command
7266 unregistration. Fix all typos in the word "multiboot".
7267
df266716 72682007-12-29 Pavel Roskin <proski@gnu.org>
94239199 7269
7270 * util/grub.d/10_linux.in: Refactor search for initrd. Add
7271 support for initrd names used in Fedora.
7272
fc6e896c 72732007-12-26 Bean <bean123ch@gmail.com>
7274
7275 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
7276 (cpio_mod_SOURCES): New variable.
7277 (cpio_mod_CFLAGS): Likewise.
7278 (cpio_mod_LDFLAGS): Likewise.
7279
7280 * fs/cpio.c: New file.
7281
7282 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
7283
7284 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7285
7286 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7287
7288 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7289
533110ad 72902007-12-25 Robert Millan <rmh@aybabtu.com>
7291
7292 * include/grub/term.h (struct grub_term): Add `getcolor' function.
7293 (grub_getcolor): New function.
7294
7295 * kern/term.c (grub_getcolor): New function.
7296 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
7297 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
7298 (print_entry): Set normal and highlight colors to
7299 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
7300 respectively, before printing and restore them to old
7301 values afterwards.
7302 (grub_menu_init_page): Likewise. Fill an additional colored space
7303 that would otherwise be left blank.
7304
7305 * term/efi/console.c (grub_console_getcolor): New function.
7306 (struct grub_console_term.getcolor): New variable.
7307 * term/i386/pc/console.c (grub_console_getcolor): New function.
7308 (struct grub_console_term.getcolor): New variable.
7309 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
7310 (struct grub_console_term.getcolor): New variable.
7311
7312 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
7313 (struct grub_console_term.setcolor): Remove variable.
7314 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
7315 (struct grub_console_term.setcolor): Remove variable.
7316 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
7317 (struct grub_console_term.setcolor): Remove variable.
7318 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
7319 (struct grub_console_term.setcolor): Remove variable.
7320
4931827f 73212007-12-25 Robert Millan <rmh@aybabtu.com>
7322
7323 * configure.ac: Search for possible unifont.hex locations, and
7324 define UNIFONT_HEX if found.
7325
7326 * Makefile.in (UNIFONT_HEX): Define variable.
7327 (DATA): Rename to ...
7328 (PKGLIB): ... this. Update all users.
7329 (PKGDATA): New variable.
7330 (pkgdata_IMAGES): Rename to ...
7331 (pkglib_IMAGES): ... this. Update all users.
7332 (pkgdata_MODULES): Rename to ...
7333 (pkglib_MODULES): ... this. Update all users.
7334 (pkgdata_PROGRAMS): Rename to ...
7335 (pkglib_PROGRAMS): ... this. Update all users.
7336 (pkgdata_DATA): Rename to ...
7337 (pkglib_DATA): ... this. Update all users.
7338 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
7339 (unicode.pff, ascii.pff): New rules.
7340 (all-local): Add `$(PKGDATA)' dependency.
7341 (install-local): Process `$(PKGDATA)'.
7342
7343 * util/update-grub_lib.in (font_path): Search for *.pff files in
7344 a few more locations, including `${pkgdata}'.
7345
57e57e31 73462007-12-23 Robert Millan <rmh@aybabtu.com>
7347
7348 Patch from Bean <bean123ch@gmail.com>:
7349 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
7350 `size'.
7351
4bc72aa9 73522007-12-21 Bean <bean123ch@gmail.com>
7353
7354 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
7355 (ntfscomp_mod_SOURCES): New variable.
7356 (ntfscomp_mod_CFLAGS): Likewise.
7357 (ntfscomp_mod_LDFLAGS): Likewise.
7358
7359 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
7360 (grub_probe_SOURCES): Likewise.
7361 (grub_emu_SOURCES): Likewise.
7362
7363 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7364 (grub_emu_SOURCES): Likewise.
7365
7366 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7367 (grub_emu_SOURCES): Likewise.
7368
7369 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7370 (grub_emu_SOURCES): Likewise.
7371
7372 * fs/ntfs.c (grub_ntfscomp_func): New variable.
7373 (read_run_list): Renamed to grub_ntfs_read_run_list.
7374 (decomp_nextvcn): Moved to ntfscomp.c.
7375 (decomp_getch): Likewise.
7376 (decomp_get16): Likewise.
7377 (decomp_block): Likewise.
7378 (read_block): Likewise.
7379 (read_data): Partially moved to ntfscomp.c.
7380 (fixup): Change unsigned to grub_uint16_t.
7381 (read_mft): Change unsigned long to grub_uint32_t.
7382 (read_attr): Likewise.
7383 (read_data): Likewise.
7384 (read_run_data): Likewise.
7385 (read_run_list): Likewise.
7386 (read_mft): Likewise.
7387
7388 * fs/ntfscomp.c: New file.
7389
7390 * include/grub/ntfs.h: New file.
7391
af680a87 73922007-12-16 Robert Millan <rmh@aybabtu.com>
7393
7394 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
7395 IDE disk check, since Linux is known to support 20 IDE disks.
7396 Reported by Colin Watson.
7397
84be7599 73982007-12-15 Bean <bean123ch@gmail.com>
7399
7400 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
7401 (lnxboot_img_SOURCES): New variable.
7402 (lnxboot_img_ASFLAGS): Likewise.
7403 (lnxboot_img_LDFLAGS): Likewise.
7404
7405 * boot/i386/pc/lnxboot.S: New file.
7406
6af9db01 74072007-11-24 Pavel Roskin <proski@gnu.org>
7408
7409 * configure.ac: Test if '--build-id=none' is supported by the
7410 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
7411 objcopy to generate incorrect binary files (binutils
7412 2.17.50.0.18-1 as shipped by Fedora 8).
7413 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
7414 linking, so that build ID doesn't break the test.
7415
7361cfe6 74162007-11-24 Pavel Roskin <proski@gnu.org>
7417
7418 * include/grub/i386/time.h: use "void" in the argument list
7419 of grub_cpu_idle().
7420 * include/grub/powerpc/time.h: Likewise.
7421 * include/grub/sparc64/time.h: Likewise.
7422
1593e10c 74232007-11-18 Christian Franke <franke@computer.org>
7424
7425 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
7426 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
7427 This fixes the problem that function keys did not work in grub-emu.
7428
3b8db1a8 74292007-11-18 Christian Franke <franke@computer.org>
7430
7431 * disk/host.c (grub_host_open): Remove attribute unused from
7432 name parameter. Add check for "host". This fixes the problem
7433 that grub-emu does not find partitions.
7434
2e29408d 74352007-11-18 Christian Franke <franke@computer.org>
7436
7437 * util/hostfs.c (is_dir): New function.
7438 (grub_hostfs_dir): Handle missing dirent.d_type case.
7439 (grub_hostfs_read): Add missing fseek().
7440 (grub_hostfs_label): Clear label pointer. This fixes a crash
7441 of grub-emu on "ls (host)".
7442
398cd047 74432007-11-18 Christian Franke <franke@computer.org>
7444
7445 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
7446 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
7447 to 64 bit boundary by default.
7448
c405c391 74492007-11-18 Bean <bean123ch@gmail.com>
7450
7451 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
7452 (hexdump_mod_SOURCES): New variable.
7453 (hexdump_mod_CFLAGS): Likewise.
7454 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 7455
c405c391 7456 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7457
7458 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7459
7460 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7461
7462 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7463
7464 * include/grub/hexdump.h: New file.
7465
7466 * commands/hexdump.c: New file.
7467
5cced7fd 74682007-11-10 Robert Millan <rmh@aybabtu.com>
7469
7470 * commands/i386/pc/play.c (beep_off): Switch order of arguments
7471 in grub_outb() calls.
7472 (beep_on): Likewise.
7473
8b714eb0 74742007-11-10 Christian Franke <franke@computer.org>
7475
7476 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
7477 (grub_menu_run): Likewise.
7478
ce0f1839 74792007-11-10 Robert Millan <rmh@aybabtu.com>
7480
7481 * include/grub/i386/efi/machine.h: New file.
7482 * include/grub/i386/linuxbios/machine.h: Likewise.
7483 * include/grub/i386/pc/machine.h: Likewise.
7484 * include/grub/powerpc/ieee1275/machine.h: Likewise.
7485 * include/grub/sparc64/ieee1275/machine.h: Likewise.
7486
7487 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
7488 (serial_hw_io_addr): New variable.
7489 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
7490 instead of `(unsigned short *) 0x400'.
7491
270c237d 74922007-11-10 Bean <bean123ch@gmail.com>
7493
7494 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
7495
a87783bf 74962007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7497
7498 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
7499 (vga_mod_SOURCES): Added.
7500 (vga_mod_CFLAGS): Likewise.
7501 (vga_mod_LDFLAGS): Likewise.
7502
7503 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
7504 grub_outb() calls.
7505 (set_map_mask): Likewise.
7506 (set_read_map): Likewise.
7507 (set_read_address): Likewise.
7508 (vga_font): Removed variable.
7509 (get_vga_glyph): Removed function.
7510 (invalidate_char): Likewise.
7511 (write_char): Changed to use grub_font_get_glyph() for font
7512 information.
7513 (grub_vga_putchar): Likewise.
7514 (grub_vga_getcharwidth): Likewise.
7515
6433b448 75162007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7517
7518 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
7519 flags.
7520 (pxeboot_img_LDFLAGS): Likewise.
7521 (diskboot_img_LDFLAGS): Likewise.
7522 (kernel_img_LDFLAGS): Likewise.
7523
49178511 75242007-11-06 Robert Millan <rmh@aybabtu.com>
7525
7526 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
7527 in grub_outb() calls.
7528 (serial_hw_init): Likewise.
7529
53b052de 75302007-11-05 Robert Millan <rmh@aybabtu.com>
7531
7532 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
7533 spaces. Skip non-regular files.
7534
5ab33bba 75352007-11-05 Robert Millan <rmh@aybabtu.com>
7536
7537 * kern/disk.c (grub_disk_firmware_fini)
7538 (grub_disk_firmware_is_tainted): New variables.
7539
7540 * include/grub/disk.h (grub_disk_firmware_fini)
7541 (grub_disk_firmware_is_tainted): Likewise.
7542
7543 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
7544 (grub_disk_biosdisk_fini): ... to here.
7545 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
7546 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
7547 is set. Register grub_disk_biosdisk_fini() in
7548 `grub_disk_firmware_fini'.
7549
7550 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
7551 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
7552 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
7553 to finish existing firmware disk interface.
7554
7555 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
7556 (ata_mod_SOURCES): New variable.
7557 (ata_mod_CFLAGS): Likewise.
7558 (ata_mod_LDFLAGS): Likewise.
7559
0149ab7c 75602007-11-05 Robert Millan <rmh@aybabtu.com>
7561
7562 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
7563 (grub_ata_wait): Reimplement using grub_millisleep().
7564
7565 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
7566 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
7567
be7ac41e 75682007-11-03 Marco Gerards <marco@gnu.org>
7569
7570 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
7571 (CRTC_ADDR_PORT): New macro.
7572 (CRTC_DATA_PORT): Likewise.
7573 (CRTC_CURSOR): Likewise.
7574 (CRTC_CURSOR_ADDR_HIGH): Likewise.
7575 (CRTC_CURSOR_ADDR_LOW): Likewise.
7576 (update_cursor): New function.
7577 (grub_console_real_putchar): Call `update_cursor'.
7578 (grub_console_gotoxy): Likewise.
7579 (grub_console_cls): Set the default color when clearing the
7580 screen.
7581 (grub_console_setcursor): Implemented.
7582
bb06ab2e 75832007-11-03 Marco Gerards <marco@gnu.org>
7584
7585 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
7586 become activate.
7587 (grub_ata_pio_write): Likewise.
7588
7589 (grub_atapi_identify): Wait after issuing an ATA command.
7590 (grub_atapi_packet): Likewise.
7591 (grub_ata_identify): Likewise.
7592 (grub_ata_readwrite): Likewise.
7593
cf8f780b 75942007-11-03 Marco Gerards <marco@gnu.org>
7595
7596 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
7597 (grub_ata_pio_write): Likewise.
7598 (grub_ata_readwrite): Use `grub_error', instead of
7599 returning `grub_errno'.
7600
ed649e54 76012007-11-03 Marco Gerards <marco@gnu.org>
7602
7603 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
7604 grub_ata_pio_write once for every single sector, instead of for
7605 multiple sectors.
7606
ca25d8f0 76072007-10-31 Robert Millan <rmh@aybabtu.com>
7608
7609 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
7610
7611 * conf/i386-linuxbios.rmk: New file.
7612
7613 * kern/i386/pc/hardware.c: Likewise.
7614 * term/i386/pc/at_keyboard.c: Likewise.
7615 * term/i386/pc/vga_text.c: Likewise.
7616
7617 * include/grub/i386/linuxbios/boot.h: Likewise.
7618 * include/grub/i386/linuxbios/console.h: Likewise.
7619 * include/grub/i386/linuxbios/init.h: Likewise.
7620 * include/grub/i386/linuxbios/kernel.h: Likewise.
7621 * include/grub/i386/linuxbios/loader.h: Likewise.
7622 * include/grub/i386/linuxbios/memory.h: Likewise.
7623 * include/grub/i386/linuxbios/serial.h: Likewise.
7624 * include/grub/i386/linuxbios/time.h: Likewise.
7625
7626 * kern/i386/linuxbios/init.c: Likewise.
7627 * kern/i386/linuxbios/startup.S: Likewise.
7628 * kern/i386/linuxbios/table.c: Likewise.
7629
e911ecc1 76302007-10-31 Marco Gerards <marco@gnu.org>
7631
7632 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
7633 (ata_mod_SOURCES): New variable.
7634 (ata_mod_CFLAGS): Likewise.
7635 (ata_mod_LDFLAGS): Likewise.
7636
7637 * disk/ata.c: New file.
7638
7639 * include/grub/disk.h (grub_disk_dev_id): Add
7640 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 7641
7f66d0e0 76422007-10-31 Robert Millan <rmh@aybabtu.com>
7643
7644 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
7645 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
7646
7647 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
7648 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
7649
7650 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
7651 `<grub/types.h>'.
7652
7653 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
7654
5cd7dd46 76552007-10-27 Robert Millan <rmh@aybabtu.com>
7656
3236ca65 7657 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 7658
2ebfc90f 76592007-10-22 Robert Millan <rmh@aybabtu.com>
7660
7661 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
7662 `"../realmode.S"'.
7663 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
7664
73fcb0f3 76652007-10-22 Robert Millan <rmh@aybabtu.com>
7666
7667 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
7668 (pkgdata_MODULES): Add `biosdisk.mod'.
7669 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
7670 variables.
7671
7672 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
7673 (grub_biosdisk_init): Replace with ...
7674 (GRUB_MOD_INIT(biosdisk)): ... this.
7675 (grub_biosdisk_fini): Replace with ...
7676 (GRUB_MOD_FINI(biosdisk)): ... this.
7677
7678 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
7679 (grub_machine_init): Remove call to grub_biosdisk_init().
7680 (grub_machine_fini): Remove call to grub_machine_fini().
7681
7682 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
7683
3381d274 76842007-10-22 Robert Millan <rmh@aybabtu.com>
7685
7686 * include/grub/time.h: New file.
7687 * include/grub/i386/time.h: Likewise.
7688 * include/grub/powerpc/time.h: Likewise.
7689 * include/grub/sparc64/time.h: Likewise.
7690
7691 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
7692 instances to ...
7693 (KERNEL_MACHINE_TIME_HEADER): ... this.
7694 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7695 instances to ...
7696 (KERNEL_MACHINE_TIME_HEADER): ... this.
7697 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7698 instances to ...
7699 (KERNEL_MACHINE_TIME_HEADER): ... this.
7700
7701 * kern/i386/efi/init.c: Include `<grub/time.h>'.
7702 (grub_millisleep): New function.
7703 * kern/i386/pc/init.c: Include `<grub/time.h>'.
7704 (grub_millisleep): New function.
7705 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
7706 Remove `grub/machine/time.h' include.
7707 (grub_millisleep): New function.
7708 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
7709 Remove `grub/machine/time.h' include.
7710 (grub_millisleep): New function.
7711
7712 * include/grub/misc.h (grub_div_roundup): New function.
7713
7714 * kern/misc.c: Include `<grub/time.h>'.
7715 (grub_millisleep_generic): New function.
7716
7717 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
7718 Add `time.h'.
7719 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
7720 Add `time.h'.
7721 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
7722 `machine/time.h'. Add `time.h'.
7723 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
7724
a39a0312 77252007-10-21 Robert Millan <rmh@aybabtu.com>
7726
7727 * include/grub/misc.h (grub_max): New function.
7728
2aad70e2 77292007-10-21 Robert Millan <rmh@aybabtu.com>
7730
7731 * util/misc.c (grub_util_info): Call fflush() before returning.
7732
54b71c4b 77332007-10-20 Robert Millan <rmh@aybabtu.com>
7734
7735 * genmk.rb (Image): Copy `extra_flags' from here ...
7736 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
7737
7738 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
7739 to `argc' and `args' arguments.
7740
a979f513 77412007-10-17 Robert Millan <rmh@aybabtu.com>
7742
7743 * kern/i386/loader.S: New file.
7744
7745 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
7746 * kern/i386/loader.S (grub_linux_prot_size)... to here.
7747 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
7748 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
7749 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
7750 * kern/i386/loader.S (grub_linux_real_addr)... to here.
7751 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
7752 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
7753 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
7754 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
7755 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
7756 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
7757 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
7758 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
7759
7760 * kern/i386/realmode.S: New file.
7761
7762 * kern/i386/pc/startup.S (protstack): Moved from here ...
7763 * kern/i386/realmode.S (protstack)... to here.
7764 * kern/i386/pc/startup.S (gdt): Moved from here ...
7765 * kern/i386/realmode.S (gdt)... to here.
7766 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
7767 * kern/i386/realmode.S (prot_to_real)... to here.
7768
7769 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
7770 `kern/i386/realmode.S'.
7771
825fc8fd 77722007-10-17 Robert Millan <rmh@aybabtu.com>
7773
7774 * include/grub/i386/loader.h: New file.
7775
7776 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
7777 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7778 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7779 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7780 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
7781 * include/grub/i386/loader.h (grub_linux_prot_size)
7782 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7783 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7784 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7785 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
7786
7787 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
7788
e179b2f4 77892007-10-15 Robert Millan <rmh@aybabtu.com>
7790
7791 * normal/misc.c (grub_normal_print_device_info): Do not probe for
7792 filesystem when dev->disk is unset.
7793 Do probe for filesystem even when dev->disk->has_partitions is set.
7794 In case a filesystem is found, always report it.
7795 In case it isn't, if dev->disk->has_partitions is set, report that
7796 a partition table was found instead of reporting that no filesystem
7797 could be identified.
7798
5db82af6 77992007-10-12 Robert Millan <rmh@aybabtu.com>
7800
7801 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
7802 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
7803
68f6ac74 7804 * include/grub/types.h (grub_host_to_target16): New macro.
7805 (grub_host_to_target32): Likewise.
7806 (grub_host_to_target64): Likewise.
7807 (grub_target_to_host16): Likewise.
7808 (grub_target_to_host32): Likewise.
7809 (grub_target_to_host64): Likewise.
5db82af6 7810
7811 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
7812 Renamed from to ...
7813 (GRUB_MOD_ALIGN): ...this. Update all users.
7814
68f6ac74 7815 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
7816 grub_host_to_target32.
7817 Replace grub_be_to_cpu32 with grub_target_to_host32.
7818 (load_modules): Likewise.
7819 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
7820 Replace grub_be_to_cpu32 with grub_target_to_host32.
7821 Replace grub_cpu_to_be16 with grub_host_to_target16.
7822 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 7823
3cf497cc 78242007-10-12 Robert Millan <rmh@aybabtu.com>
7825
7826 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
7827 * util/elf/grub-mkimage.c: ... here.
7828
7829 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
7830 `util/powerpc/ieee1275/grub-mkimage.c'.
7831
c8cc3692 78322007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 7833
c8cc3692 7834 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
7835 and make it easier to figure out.
7836 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
7837 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
7838 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
7839 leave us with less than HEAP_MIN_SIZE total heap.
7840 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 7841
5c58b791 78422007-10-03 Robert Millan <rmh@aybabtu.com>
7843
7844 * include/grub/i386/io.h: New file.
7845 * commands/i386/pc/play.c (inb): Removed.
7846 (outb): Removed.
7847 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7848 with grub_outb().
afcd2ef8 7849 * term/i386/pc/serial.c (inb): Removed.
7850 (outb): Removed.
7851 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7852 with grub_outb().
7853 * term/i386/pc/vga.c (inb): Removed.
7854 (outb): Removed.
7855 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7856 with grub_outb().
5c58b791 7857
1a477ed6 78582007-10-02 Robert Millan <rmh@aybabtu.com>
7859
7860 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
7861 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7862 Reported by Marcin Kurek.
7863
6b5d80fa 78642007-09-07 Robert Millan <rmh@aybabtu.com>
7865
7866 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
7867 SmartFirmware version updates (as released by Sven Luther), and avoid
7868 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
7869 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
7870 known broken.
7871
5618afbf 78722007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7873
7874 From Hitoshi Ozeki:
7875 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
7876 when merging two regions.
7877
6139dcd9 78782007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7879
508e39ee 7880 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
7881 * normal/completion.c (grub_normal_do_completion): Likewise.
7882 Reported by Hitoshi Ozeki.
7883
78842007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7885
6139dcd9 7886 Do not use devices at boot in chainloading.
f19dbdb7 7887
6139dcd9 7888 * loader/i386/pc/chainloader.c (boot_drive): New variable.
7889 (boot_part_addr): Likewise.
7890 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
7891 with BOOT_DRIVE and BOOT_PART_ADDR.
7892 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
7893 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
7894
38da6516 78952007-08-29 Robert Millan <rmh@aybabtu.com>
7896
7897 Patch from Simon Peter <dn.tlp@gmx.net>:
7898 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
7899 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
7900 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
7901 util/i386/pc/grub-setup.c_DEPENDENCIES.
7902 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
7903 util/grub-probe.c_DEPENDENCIES.
7904 * conf/powerpc-ieee1275.rmk: Likewise.
7905
29d0928c 79062007-08-28 Robert Millan <rmh@aybabtu.com>
7907
7908 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
7909 to tell grub-mkdevicemap how to name devices.
7910 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
7911 feature).
7912
7913 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
7914 util/i386/get_disk_name.c.
7915 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
7916 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
7917 util/ieee1275/get_disk_name.c.
7918
7919 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
7920
7921 * DISTLIST: Add util/i386/get_disk_name.c and
7922 util/ieee1275/get_disk_name.c.
7923
7924 * util/grub-mkdevicemap.c: Replace device naming logic with
7925 grub_util_get_disk_name() calls.
7926
5a0d3cca 79272007-08-20 Robert Millan <rmh@aybabtu.com>
7928
7929 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
7930 (so that it works for both plural and singular quantities).
7931
8b72db2f 79322007-08-05 Robert Millan <rmh@aybabtu.com>
7933
7934 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
7935 so that [xz] isn't taken into account when determining order.
7936
352466bf 79372007-08-02 Marco Gerards <marco@gnu.org>
7938
7939 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
7940 `include/multiboot2.h', `include/grub/elfload.h',
7941 `include/multiboot.h', `include/grub/multiboot.h',
7942 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
7943 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
7944 `kern/elf.c', `loader/multiboot_loader.c',
7945 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
7946 `loader/i386/pc/multiboot2.c',
7947 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
7948 `util/i386/pc/grub-mkrescue.in'. Remove
7949 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
7950 `include/grub/i386/pc/util/biosdisk.h' and
7951 `include/grub/powerpc/ieee1275/multiboot.h'.
7952
8f096014 79532007-08-02 Bean <bean123ch@gmail.com>
7954
7955 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
7956 (ntfs_mod_SOURCES): New variable.
7957 (ntfs_mod_CFLAGS): Likewise.
7958 (ntfs_mod_LDFLAGS): Likewise.
7959
7960 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
7961 (grub_probe_SOURCES): Likewise.
7962 (grub_emu_SOURCES): Likewise.
7963
7964 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
7965 (grub_emu_SOURCES): Likewise.
7966
7967 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
7968 (grub_emu_SOURCES): Likewise.
f19dbdb7 7969
8f096014 7970 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
7971
7972 * fs/ntfs.c: New file.
7973
9959f7db 79742007-08-02 Bean <bean123ch@gmail.com>
7975
7976 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
7977
7978 * file.h (grub_file): Likewise.
7979
7980 * fshelp.h (grub_fshelp_read_file): Likewise.
7981
7982 * util/i386/pc/grub-setup.c (setup): Likewise.
7983 (save_first_sector): Likewise.
7984 (save_blocklists): Likewise.
f19dbdb7 7985
9959f7db 7986 * fs/affs.c (grub_affs_read_file): Likewise.
7987
7988 * fs/ext2.c (grub_ext2_read_file): Likewise.
7989
7990 * fs/fat.c (grub_fat_read_data): Likewise.
7991
7992 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
7993
7994 * fs/hfs.c (grub_hfs_read_file): Likewise.
7995
7996 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
7997
7998 * fs/jfs.c (grub_jfs_read_file): Likewise.
7999
8000 * fs/minix.c (grub_minix_read_file): Likewise.
8001
8002 * fs/sfs.c (grub_sfs_read_file): Likewise.
8003
8004 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 8005
9959f7db 8006 * fs/xfs.c (grub_xfs_read_file): Likewise.
8007
8008 * command/blocklist.c (read_blocklist): Likewise.
8009 (print_blocklist): Likewise.
8010
0a203f83 80112007-08-02 Marco Gerards <marco@gnu.org>
8012
8013 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
8014 `util/hostfs.c'.
8015
8016 * disk/host.c: New file.
8017
8018 * util/hostfs.c: Likewise.
8019
8020 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
8021 return `GRUB_ERR_BAD_FS'.
8022 * fs/sfs.c (grub_sfs_mount): Likewise.
8023 * fs/xfs.c (grub_xfs_mount): Likewise.
8024
8025 * include/grub/disk.h (enum grub_disk_dev_id): Add
8026 `GRUB_DISK_DEVICE_HOST_ID'.
8027
8028 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
8029
e5dfe777 80302007-07-24 Jerone Young <jerone@gmail.com>
8031
f19dbdb7 8032 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 8033 modules for compilation.
8034 * conf/powerpc-ieee1275.rmk: Likewise.
8035
8036 * include/multiboot.h: Move multiboot definitions to one file. Rename
8037 many definitions to not get grub specific.
8038 * include/multiboot2.h: Create header with multiboot 2 definitions.
8039 * include/grub/multiboot.h: Header for grub specific function
8040 prototypes and definitions.
8041 * include/grub/multiboot2.h: Likewise.
8042 * include/grub/multiboot_loader.h: Likewise.
8043 * include/grub/i386/pc/multiboot.h: Removed.
8044 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
8045
8046 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
8047 and 2 to allow for one multiboot and module commands.
8048 * loader/multiboot2.c: Add multiboot2 functionality.
8049 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
8050 and definition names.
8051 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
8052 2 functions.
8053 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
8054 ieee1275 specific multiboot2 code.
8055
8056 * kern/i386/pc/startup.S: Change headers and definition names for
8057 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
8058
daf0f0ba 80592007-07-22 Robert Millan <rmh@aybabtu.com>
8060
8061 * geninitheader.sh: Process file specified in first parameter rather
8062 than hardcoding grub_modules_init.lst.
fe6b695a 8063 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 8064 than hardcoding grub_modules_init.h.
8065
8066 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
8067 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
8068 grub_probe_init.[ch] and grub_setup_init.[ch].
8069
8070 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
8071 grub_modules_init.h with grub_emu_init.h.
8072 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
8073 grub_probe_init.[ch] files.
8074 * conf/i386-efi.rmk: Likewise.
8075 * conf/i386-pc.rmk: Likewise.
8076 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
8077 grub_setup_init.[ch] files.
8078
8079 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
8080 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
8081 to initialize modules rather than a list of hardcoded functions.
8082 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
8083 grub_init_all() to initialize modules rather than a list of hardcoded
8084 functions.
8085
54cdc1cc 80862007-07-22 Robert Millan <rmh@aybabtu.com>
8087
8088 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
8089 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
8090
ad0686cc 80912007-07-22 Robert Millan <rmh@aybabtu.com>
8092
8093 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
8094 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
8095 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
8096 flag when running on SmartFirmware.
8097 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
8098 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
8099 was set.
8100
8101 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
8102 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
8103 rather than decreasing it.
8104
8105 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
8106 there's not enough space to do it, fail in the same way as when it
8107 can't be done because there are no partitions.
8108
8109 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
8110 when nvsetenv failed.
8111
969c02ec 81122007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8113
8114 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
8115 because this rule is automatically generated.
8116 (grub-mkrescue): Removed for the same reason as above.
8117
5a79f472 81182007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8119
8120 Migrate to GNU General Public License Version 3.
f19dbdb7 8121
5a79f472 8122 * COPYING: Replaced with the plain text version of GPLv3.
8123
8124 * config.guess: Updated from gnulib.
8125 * config.sub: Likewise.
8126
8127 * geninit.sh: Output a GPLv3 copyright notice.
8128 * geninitheader.sh: Likewise.
8129 * genmodsrc.sh: Likewise.
8130 * gensymlist.sh.in: Likewise.
8131
8132 * boot/i386/pc/boot.S: Upgraded to GPLv3.
8133 * boot/i386/pc/diskboot.S: Likewise.
8134 * boot/i386/pc/pxeboot.S: Likewise.
8135 * commands/blocklist.c: Likewise.
8136 * commands/boot.c: Likewise.
8137 * commands/cat.c: Likewise.
8138 * commands/cmp.c: Likewise.
8139 * commands/configfile.c: Likewise.
8140 * commands/echo.c: Likewise.
8141 * commands/help.c: Likewise.
8142 * commands/ls.c: Likewise.
8143 * commands/search.c: Likewise.
8144 * commands/terminal.c: Likewise.
8145 * commands/test.c: Likewise.
8146 * commands/videotest.c: Likewise.
8147 * commands/i386/cpuid.c: Likewise.
8148 * commands/i386/pc/halt.c: Likewise.
8149 * commands/i386/pc/play.c: Likewise.
8150 * commands/i386/pc/reboot.c: Likewise.
8151 * commands/i386/pc/vbeinfo.c: Likewise.
8152 * commands/i386/pc/vbetest.c: Likewise.
8153 * commands/ieee1275/halt.c: Likewise.
8154 * commands/ieee1275/reboot.c: Likewise.
8155 * commands/ieee1275/suspend.c: Likewise.
8156 * disk/loopback.c: Likewise.
8157 * disk/lvm.c: Likewise.
8158 * disk/raid.c: Likewise.
8159 * disk/efi/efidisk.c: Likewise.
8160 * disk/i386/pc/biosdisk.c: Likewise.
8161 * disk/ieee1275/ofdisk.c: Likewise.
8162 * font/manager.c: Likewise.
8163 * fs/affs.c: Likewise.
8164 * fs/ext2.c: Likewise.
8165 * fs/fat.c: Likewise.
8166 * fs/fshelp.c: Likewise.
8167 * fs/hfs.c: Likewise.
8168 * fs/hfsplus.c: Likewise.
8169 * fs/iso9660.c: Likewise.
8170 * fs/jfs.c: Likewise.
8171 * fs/minix.c: Likewise.
8172 * fs/sfs.c: Likewise.
8173 * fs/ufs.c: Likewise.
8174 * fs/xfs.c: Likewise.
8175 * hello/hello.c: Likewise.
8176 * include/grub/acorn_filecore.h: Likewise.
8177 * include/grub/arg.h: Likewise.
8178 * include/grub/bitmap.h: Likewise.
8179 * include/grub/boot.h: Likewise.
8180 * include/grub/cache.h: Likewise.
8181 * include/grub/device.h: Likewise.
8182 * include/grub/disk.h: Likewise.
8183 * include/grub/dl.h: Likewise.
8184 * include/grub/elfload.h: Likewise.
8185 * include/grub/env.h: Likewise.
8186 * include/grub/err.h: Likewise.
8187 * include/grub/file.h: Likewise.
8188 * include/grub/font.h: Likewise.
8189 * include/grub/fs.h: Likewise.
8190 * include/grub/fshelp.h: Likewise.
8191 * include/grub/gzio.h: Likewise.
8192 * include/grub/hfs.h: Likewise.
8193 * include/grub/kernel.h: Likewise.
8194 * include/grub/loader.h: Likewise.
8195 * include/grub/lvm.h: Likewise.
8196 * include/grub/misc.h: Likewise.
8197 * include/grub/mm.h: Likewise.
8198 * include/grub/net.h: Likewise.
8199 * include/grub/normal.h: Likewise.
8200 * include/grub/parser.h: Likewise.
8201 * include/grub/partition.h: Likewise.
8202 * include/grub/pc_partition.h: Likewise.
8203 * include/grub/raid.h: Likewise.
8204 * include/grub/rescue.h: Likewise.
8205 * include/grub/script.h: Likewise.
8206 * include/grub/setjmp.h: Likewise.
8207 * include/grub/symbol.h: Likewise.
8208 * include/grub/term.h: Likewise.
8209 * include/grub/terminfo.h: Likewise.
8210 * include/grub/tparm.h: Likewise.
8211 * include/grub/types.h: Likewise.
8212 * include/grub/video.h: Likewise.
8213 * include/grub/efi/api.h: Likewise.
8214 * include/grub/efi/chainloader.h: Likewise.
8215 * include/grub/efi/console.h: Likewise.
8216 * include/grub/efi/console_control.h: Likewise.
8217 * include/grub/efi/disk.h: Likewise.
8218 * include/grub/efi/efi.h: Likewise.
8219 * include/grub/efi/pe32.h: Likewise.
8220 * include/grub/efi/time.h: Likewise.
8221 * include/grub/i386/linux.h: Likewise.
8222 * include/grub/i386/setjmp.h: Likewise.
8223 * include/grub/i386/types.h: Likewise.
8224 * include/grub/i386/efi/kernel.h: Likewise.
8225 * include/grub/i386/efi/loader.h: Likewise.
8226 * include/grub/i386/efi/time.h: Likewise.
8227 * include/grub/i386/pc/biosdisk.h: Likewise.
8228 * include/grub/i386/pc/boot.h: Likewise.
8229 * include/grub/i386/pc/chainloader.h: Likewise.
8230 * include/grub/i386/pc/console.h: Likewise.
8231 * include/grub/i386/pc/init.h: Likewise.
8232 * include/grub/i386/pc/kernel.h: Likewise.
8233 * include/grub/i386/pc/loader.h: Likewise.
8234 * include/grub/i386/pc/memory.h: Likewise.
8235 * include/grub/i386/pc/multiboot.h: Likewise.
8236 * include/grub/i386/pc/serial.h: Likewise.
8237 * include/grub/i386/pc/time.h: Likewise.
8238 * include/grub/i386/pc/vbe.h: Likewise.
8239 * include/grub/i386/pc/vbeblit.h: Likewise.
8240 * include/grub/i386/pc/vbefill.h: Likewise.
8241 * include/grub/i386/pc/vbeutil.h: Likewise.
8242 * include/grub/i386/pc/vga.h: Likewise.
8243 * include/grub/ieee1275/ieee1275.h: Likewise.
8244 * include/grub/ieee1275/ofdisk.h: Likewise.
8245 * include/grub/powerpc/libgcc.h: Likewise.
8246 * include/grub/powerpc/setjmp.h: Likewise.
8247 * include/grub/powerpc/types.h: Likewise.
8248 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
8249 * include/grub/powerpc/ieee1275/console.h: Likewise.
8250 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
8251 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
8252 * include/grub/powerpc/ieee1275/loader.h: Likewise.
8253 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
8254 * include/grub/powerpc/ieee1275/time.h: Likewise.
8255 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
8256 * include/grub/sparc64/libgcc.h: Likewise.
8257 * include/grub/sparc64/setjmp.h: Likewise.
8258 * include/grub/sparc64/types.h: Likewise.
8259 * include/grub/sparc64/ieee1275/console.h: Likewise.
8260 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
8261 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
8262 * include/grub/sparc64/ieee1275/time.h: Likewise.
8263 * include/grub/util/biosdisk.h: Likewise.
8264 * include/grub/util/getroot.h: Likewise.
8265 * include/grub/util/lvm.h: Likewise.
8266 * include/grub/util/misc.h: Likewise.
8267 * include/grub/util/raid.h: Likewise.
8268 * include/grub/util/resolve.h: Likewise.
8269 * io/gzio.c: Likewise.
8270 * kern/device.c: Likewise.
8271 * kern/disk.c: Likewise.
8272 * kern/dl.c: Likewise.
8273 * kern/elf.c: Likewise.
8274 * kern/env.c: Likewise.
8275 * kern/err.c: Likewise.
8276 * kern/file.c: Likewise.
8277 * kern/fs.c: Likewise.
8278 * kern/loader.c: Likewise.
8279 * kern/main.c: Likewise.
8280 * kern/misc.c: Likewise.
8281 * kern/mm.c: Likewise.
8282 * kern/parser.c: Likewise.
8283 * kern/partition.c: Likewise.
8284 * kern/rescue.c: Likewise.
8285 * kern/term.c: Likewise.
8286 * kern/efi/efi.c: Likewise.
8287 * kern/efi/init.c: Likewise.
8288 * kern/efi/mm.c: Likewise.
8289 * kern/i386/dl.c: Likewise.
8290 * kern/i386/efi/init.c: Likewise.
8291 * kern/i386/efi/startup.S: Likewise.
8292 * kern/i386/pc/init.c: Likewise.
8293 * kern/i386/pc/lzo1x.S: Likewise.
8294 * kern/i386/pc/startup.S: Likewise.
8295 * kern/ieee1275/ieee1275.c: Likewise.
8296 * kern/powerpc/cache.S: Likewise.
8297 * kern/powerpc/dl.c: Likewise.
8298 * kern/powerpc/ieee1275/cmain.c: Likewise.
8299 * kern/powerpc/ieee1275/crt0.S: Likewise.
8300 * kern/powerpc/ieee1275/init.c: Likewise.
8301 * kern/powerpc/ieee1275/openfw.c: Likewise.
8302 * kern/sparc64/cache.S: Likewise.
8303 * kern/sparc64/dl.c: Likewise.
8304 * kern/sparc64/ieee1275/init.c: Likewise.
8305 * kern/sparc64/ieee1275/openfw.c: Likewise.
8306 * loader/efi/chainloader.c: Likewise.
8307 * loader/efi/chainloader_normal.c: Likewise.
8308 * loader/i386/efi/linux.c: Likewise.
8309 * loader/i386/efi/linux_normal.c: Likewise.
8310 * loader/i386/pc/chainloader.c: Likewise.
8311 * loader/i386/pc/chainloader_normal.c: Likewise.
8312 * loader/i386/pc/linux.c: Likewise.
8313 * loader/i386/pc/linux_normal.c: Likewise.
8314 * loader/i386/pc/multiboot.c: Likewise.
8315 * loader/i386/pc/multiboot_normal.c: Likewise.
8316 * loader/powerpc/ieee1275/linux.c: Likewise.
8317 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
8318 * normal/arg.c: Likewise.
8319 * normal/cmdline.c: Likewise.
8320 * normal/command.c: Likewise.
8321 * normal/completion.c: Likewise.
8322 * normal/execute.c: Likewise.
8323 * normal/function.c: Likewise.
8324 * normal/lexer.c: Likewise.
8325 * normal/main.c: Likewise.
8326 * normal/menu.c: Likewise.
8327 * normal/menu_entry.c: Likewise.
8328 * normal/misc.c: Likewise.
8329 * normal/parser.y: Likewise.
8330 * normal/script.c: Likewise.
8331 * normal/i386/setjmp.S: Likewise.
8332 * normal/powerpc/setjmp.S: Likewise.
8333 * normal/sparc64/setjmp.S: Likewise.
8334 * partmap/acorn.c: Likewise.
8335 * partmap/amiga.c: Likewise.
8336 * partmap/apple.c: Likewise.
8337 * partmap/gpt.c: Likewise.
8338 * partmap/pc.c: Likewise.
8339 * partmap/sun.c: Likewise.
8340 * term/gfxterm.c: Likewise.
8341 * term/terminfo.c: Likewise.
8342 * term/efi/console.c: Likewise.
8343 * term/i386/pc/console.c: Likewise.
8344 * term/i386/pc/serial.c: Likewise.
8345 * term/i386/pc/vesafb.c: Likewise.
8346 * term/i386/pc/vga.c: Likewise.
8347 * term/ieee1275/ofconsole.c: Likewise.
8348 * util/biosdisk.c: Likewise.
8349 * util/console.c: Likewise.
8350 * util/genmoddep.c: Likewise.
8351 * util/getroot.c: Likewise.
8352 * util/grub-emu.c: Likewise.
8353 * util/grub-mkdevicemap.c: Likewise.
8354 * util/grub-probe.c: Likewise.
8355 * util/lvm.c: Likewise.
8356 * util/misc.c: Likewise.
8357 * util/raid.c: Likewise.
8358 * util/resolve.c: Likewise.
8359 * util/update-grub.in: Likewise.
8360 * util/update-grub_lib.in: Likewise.
8361 * util/grub.d/00_header.in: Likewise.
8362 * util/grub.d/10_hurd.in: Likewise.
8363 * util/grub.d/10_linux.in: Likewise.
8364 * util/i386/efi/grub-install.in: Likewise.
8365 * util/i386/efi/grub-mkimage.c: Likewise.
8366 * util/i386/pc/grub-install.in: Likewise.
8367 * util/i386/pc/grub-mkimage.c: Likewise.
8368 * util/i386/pc/grub-mkrescue.in: Likewise.
8369 * util/i386/pc/grub-setup.c: Likewise.
8370 * util/i386/pc/misc.c: Likewise.
8371 * util/powerpc/ieee1275/grub-install.in: Likewise.
8372 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
8373 * util/powerpc/ieee1275/misc.c: Likewise.
8374 * video/bitmap.c: Likewise.
8375 * video/video.c: Likewise.
8376 * video/i386/pc/vbe.c: Likewise.
8377 * video/i386/pc/vbeblit.c: Likewise.
8378 * video/i386/pc/vbefill.c: Likewise.
8379 * video/i386/pc/vbeutil.c: Likewise.
8380 * video/readers/tga.c: Likewise.
8381
3572d015 83822007-07-02 Robert Millan <rmh@aybabtu.com>
8383
8384 * conf/i386-efi.rmk: Replace obsolete reference to
8385 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
8386 with util/getroot.c.
8387 * conf/powerpc-ieee1275.rmk: Likewise.
8388 * conf/sparc64-ieee1275.rmk: Likewise.
8389
8390 * util/grub-emu.c (main): Fix unchecked pointer handling.
8391
2c2a681b 83922007-07-02 Robert Millan <rmh@aybabtu.com>
8393
8394 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
8395 invocation to fail, in order to support partition-less media.
8396
8397 * util/i386/pc/grub-install.in: Likewise.
8398
8399 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
8400 which fs or partmap modules are needed (akin to its sister scripts).
8401
8402 Also use grub-probe to get rid of unportable /proc/mounts check.
8403
8404 Print the same informational message that the other scripts do, before
fe6b695a 8405 exiting.
2c2a681b 8406
6193defe 84072007-06-23 Robert Millan <rmh@aybabtu.com>
8408
fe6b695a 8409 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 8410 a font file can be found and, if so, echo the GRUB path to it.
8411
8412 * util/update-grub.in: Handle multiple terminals depending on user
8413 input, platform availability and font file presence. Propagate
8414 variables of our findings to /etc/grub.d/ children.
8415
8416 * util/grub.d/00_header.in: Handle multiple terminals, based on
8417 environment setup by update-grub.
8418
eface1dc 84192007-06-23 Robert Millan <rmh@aybabtu.com>
8420
ba50d28f 8421 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 8422
bf697e28 84232007-06-21 Robert Millan <rmh@aybabtu.com>
8424
8425 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
8426 indicate end of data section in kernel image.
8427 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
8428 GRUB_KERNEL_MACHINE_DATA_END.
8429
8430 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
8431 space for it.
8432 * kern/i386/efi/startup.S: Likewise.
8433
8434 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
8435 during image generation. Implement --prefix option to override this
8436 patch.
8437 * util/i386/efi/grub-mkimage.c: Likewise.
8438
8439 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
8440 code to make path relative to its root into a separate function.
8441
8442 * util/i386/pc/grub-install.in: Use newly provided
8443 make_system_path_relative_to_its_root() to convert ${grubdir}, then
8444 pass the result to grub-install --prefix.
8445
baa574b4 84462007-06-13 Robert Millan <rmh@aybabtu.com>
8447
8448 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
8449 DEFAULT_DEVICE_MAP.
8450 * util/grub-emu.c: Use above definitions from misc.h instead of
8451 defining them.
8452 * util/grub-mkdevicemap.c: Likewise.
8453 * util/i386/pc/grub-setup.c: Likewise.
8454 * util/grub-probe.c: Likewise.
8455 (probe): Abort with grub_util_error() when either
8456 grub_guess_root_device or grub_util_get_grub_dev fails.
8457
0215dcbf 84582007-06-12 Robert Millan <rmh@aybabtu.com>
8459
8460 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
8461 "pager" assignment.
8462 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
8463 "pcdata".
8464 * util/grub-probe.c (probe): Likewise for "drive_name".
8465
8af2ab7b 84662007-06-11 Robert Millan <rmh@aybabtu.com>
8467
8468 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
8469 not just the cdrom one.
8470
59d31694 84712007-06-11 Robert Millan <rmh@aybabtu.com>
8472
8473 * util/i386/pc/grub-mkrescue.in: Add "set -e".
8474 Add --pkglibdir=DIR option to override pkglibdir.
8475 Mention --image-type=TYPE in help output.
8476 Fix --grub-mkimage (it was a no-op).
fe6b695a 8477 Abort gracefully when no parameter is given.
59d31694 8478
7ee367e4 84792007-06-11 Robert Millan <rmh@aybabtu.com>
8480
8481 * util/i386/pc/grub-mkrescue.in: New file.
8482 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
8483 * Makefile.in: Handle bin_SCRIPTS.
8484
29b0ed46 84852007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
8486
8487 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
8488 list of video modes.
8489
c0f90770 84902007-06-06 Robert Millan <rmh@aybabtu.com>
8491
8492 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
8493 file doesn't exist, or if it is in a filesystem grub can't read.
8494
8495 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
8496 not abort if GRUB_DRIVE could not be defined. Rearrange generated
8497 header comment to fit in 80 columns when the variables are resolved.
8498
8499 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
8500 could be identified by update-grub. Remove redundant check for
fe6b695a 8501 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 8502 handles that).
8503
fb36dc26 85042007-06-04 Robert Millan <rmh@aybabtu.com>
8505
8506 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
8507
8508 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
8509
8510 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
8511
0c68c93e 85122007-06-04 Robert Millan <rmh@aybabtu.com>
8513
8514 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
8515
8516 * include/grub/partition.h: Declare grub_apple_partition_map_init and
8517 grub_apple_partition_map_fini.
8518
8519 * util/biosdisk.c
8520 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
8521 to access >2 TiB disks).
8522
8523 Print disk->total_sectors with %llu instead of %lu, since this
8524 variable is always 64-bit (prevents wrong disk size from being displayed
8525 on either >2 TiB disk or big-endian CPU).
8526
8527 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
8528 into a generic case that supports all (sane) partition maps.
8529
8530 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
8531 breaks big-endian.
8532
8533 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
8534 and grub_apple_partition_map_fini() after that.
8535
0f23eb74 85362007-06-01 Robert Millan <rmh@aybabtu.com>
8537
8538 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
8539
8540 * util/grub.d/00_header.in: Only enable gfxterm when
8541 convert_system_path_to_grub_path() succeeds.
8542
42c71976 85432007-05-20 Robert Millan <rmh@aybabtu.com>
8544
8545 * util/update-grub_lib.in: New file.
8546 * DISTLIST: Add update-grub_lib.in.
8547 * conf/common.rmk: Generate update-grub_lib and install it in
8548 $(lib_DATA).
8549 * Makefile.in: Add install routine for $(lib_DATA).
8550
8551 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
8552 function provided by update-grub_lib to support arbitrary paths of
8553 unifont.pff.
8554 * util/update-grub.in: Use convert_system_path_to_grub_path() to
8555 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
8556
5beb2291 85572007-05-19 Robert Millan <rmh@aybabtu.com>
8558
8559 * commands/i386/cpuid.c: New module.
8560 * DISTLIST: Add it.
8561 * conf/i386-efi.rmk: Enable cpuid.mod.
8562 * conf/i386-pc.rmk: Likewise.
8563
7262eca1 85642007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8565
8566 * kern/disk.c (grub_disk_read): Check return value of
8567 grub_realloc().
8568
260ba823 85692007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8570
8571 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
8572 arrays.
8573 * disk/raid.c (grub_raid_open): Likewise.
8574
1ecb6cf2 85752007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8576
8577 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
8578 stack instead of on the heap.
8579
8580 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
8581 before doing a read on it.
8582
8583 * configure.ac: Only use -fno-stack-protector for the target
8584 environment.
f19dbdb7 8585
21c8cbb1 85862007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8587
8588 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
8589 __attribute_ ((unused)) to mode_type argument.
8590
8591 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 8592
21c8cbb1 8593 * kern/misc.c (memcmp): Fix prototype.
8594
8595 * include/grub/partition.h [GRUB_UTIL]
8596 (grub_gpt_partition_map_init): Add prototype.
8597 (grub_gpt_partition_map_fini): Likewise.
8598
8599 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
8600 at the right place.
8601
8602 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
8603 (grub_fat_read_data): Likewise.
8604 (grub_fat_find_dir): Likewise.
8605
8606 * font/manager.c (find_glyph): Make table a const.
8607 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 8608
849d55d3 86092007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
8610
8611 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
8612 code, first search for device in /dev/mapper, then in /dev.
8613 (grub_util_get_grub_dev): New function.
8614 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
8615 prototype.
8616 * util/grub-probe.c (probe): Remove check for RAID, call
8617 grub_util_get_grub_dev() instead of
8618 grub_util_biosdisk_get_grub_dev().
8619 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
8620 grub_util_biosdisk_get_grub_dev().
8621 * util/i386/pc/grub-setup.c (main): Likewise.
8622
8fff7c2f 86232007-05-16 Robert Millan <rmh@aybabtu.com>
8624
8625 * DISTLIST: Update for the latest changes.
8626 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
8627 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
8628 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
8629 grub/util/biosdisk.h.
8630 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
8631 grub/util/biosdisk.h.
8632
48e12b52 86332007-05-16 Robert Millan <rmh@aybabtu.com>
8634
8635 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
8636
46b9d128 86372007-05-16 Robert Millan <rmh@aybabtu.com>
8638
8639 * util/i386/efi/grub-install.in: New.
8640 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
8641 newly added grub-install.
8642 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
8643 include.
8644 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
8645 grub/util/biosdisk.h.
8646 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
8647 grub/util/biosdisk.h.
8648
2d1a40a9 86492007-05-16 Robert Millan <rmh@aybabtu.com>
8650
8651 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
8652 * include/grub/util/biosdisk.h: ... here.
8653 * util/i386/pc/biosdisk.c: Moved to ...
8654 * util/biosdisk.c: ... here.
8655 * util/i386/pc/getroot.c: Moved to ...
8656 * util/getroot.c: ... here.
8657 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
8658 * util/grub-mkdevicemap.c: ... here.
8659 * util/i386/pc/grub-probe.c: Moved to ...
8660 * util/grub-probe.c: ... here.
8661
9e26e3bc 86622007-05-15 Robert Millan <rmh@aybabtu.com>
8663
8664 * util/update-grub.in: Remove duplicated line in grub.cfg header
8665 message.
8666
57f96397 86672007-05-13 Robert Millan <rmh@aybabtu.com>
8668
8669 * util/update-grub.in: Fix a few assumptions about the devices holding
8670 /, /boot and /boot/grub being the same.
8671 * util/grub.d/00_header.in: Likewise.
8672 * util/grub.d/10_hurd.in: Likewise.
8673 * util/grub.d/10_linux.in: Likewise.
8674
8675 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
8676 patterns. Use that to define the `.old' suffix as older than `'.
8677
8678 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
8679
8680 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
8681 the grub.cfg header message.
8682
2e610d62 86832007-05-11 Robert Millan <rmh@aybabtu.com>
8684
8685 * util/update-grub.in: Create device.map if it doesn't already exist,
8686 before attempting to run grub-probe.
8687 Check for grub-probe and grub-mkdevicemap with the same code
8688 grub-install is using.
8689 Remove test mode.
8690
3f6a10ef 86912007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
8692
8693 * Makefile.in: Add the datarootdir autoconf variable.
8694
02e7b75e 86952007-05-09 Robert Millan <rmh@aybabtu.com>
8696
8697 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 8698 fail gracefully if dev->disk->partition == NULL.
02e7b75e 8699
75f396cc 87002007-05-07 Robert Millan <rmh@aybabtu.com>
8701
8702 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
8703 determine partition map module.
8704 * util/i386/pc/grub-install.in: Use this feature to decide which
8705 partition module to load, instead of hardcoding pc and gpt.
8706
da65cb36 87072007-05-07 Robert Millan <rmh@aybabtu.com>
8708
8709 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
8710 source directory differs from build directory.
8711
b57d6a91 87122007-05-05 Robert Millan <rmh@aybabtu.com>
8713
8714 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
8715 initialisation.
8716
509d00f1 87172007-05-05 Robert Millan <rmh@aybabtu.com>
8718
8719 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
8720
c48f23ef 87212007-05-05 Robert Millan <rmh@aybabtu.com>
8722
8723 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
8724 command-line arguments via ${GRUB_CMDLINE_LINUX}.
8725
20b97658 87262007-05-05 Robert Millan <rmh@aybabtu.com>
8727
8728 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
8729 (grub_probe_SOURCES): Likewise.
8730 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
8731 GPT and initialize dos_part and bsd_part accordingly.
8732 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
8733 install_bsd_part.
8734 (main): Activate gpt module for use during partition identification,
8735 and deactivate it afterwards.
8736 * util/i386/pc/grub-install.in: Add gpt module to core.img.
8737 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
8738 partition identification, and deactivate it afterwards.
8739
99123174 87402007-05-05 Robert Millan <rmh@aybabtu.com>
8741
8742 * term/i386/pc/console.c (grub_console_fini): Call
8743 grub_term_set_current() before grub_term_unregister().
8744
ebd97f6e 87452007-05-04 Robert Millan <rmh@aybabtu.com>
8746
8747 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
8748 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
8749 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
8750 and update-grub_DATA.
8751 * conf/common.rmk: Build and install update-grub components.
8752 * conf/common.mk: Regenerate.
8753 * util/update-grub.in: New. Core of update-grub.
8754 * util/grub.d/00_header.in: New. Generates grub.cfg header.
8755 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
8756 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
8757 * util/grub.d/README: New. Document grub.d directory layout.
8758
b06a264d 87592007-05-01 Robert Millan <rmh@aybabtu.com>
8760
8761 * util/grub-emu.c: Move initialization functions
8762 grub_util_biosdisk_init() and grub_init_all() before
8763 grub_util_biosdisk_get_grub_dev(), which relies on them.
8764
41f0050e 87652007-04-19 Robert Millan <rmh@aybabtu.com>
8766
8767 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
8768 it is used later.
8769
04582bb3 87702007-04-18 Jerone Young <jerone@gmail.com>
8771
f19dbdb7 8772 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 8773 stanza.
8774
08db4632 87752007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 8776
08db4632 8777 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
8778 continue on and look for device node with real device name.
8779
801b76be 87802007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 8781
fe6b695a 8782 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 8783 ability.
8784 * Makefile.in: Add autoconf package transformation code.
8785 * util/i386/pc/grub-install.in: Likewise.
8786 * util/powerpc/ieee1275/grub-install.in: Likewise.
8787
6795c4e1 87882007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
8789
8790 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
8791 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
8792 (EXT2_REVISION): Likewise.
8793 (EXT2_INODE_SIZE): Likewise.
8794 (struct grub_ext2_block_group): Added a missing member
8795 "used_dirs".
8796 (grub_ext2_read_inode): Divide by the inode size in a superblock
8797 instead of 128 to obtain INODES_PER_BLOCK.
8798 Use the macro EXT2_INODE_SIZE instead of directly using
8799 SBLOCK->INODE_SIZE.
8800
d70af616 88012007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
8802
8803 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
8804 superblock instead of the structure size to compute an
8805 offset. This fixes the problem that GRUB could not read a
8806 filesystem when inode size is different from 128-byte.
8807
3b801603 88082007-03-05 Marco Gerards <marco@gnu.org>
8809
8810 * normal/main.c (read_config_file): When "menu" is not set, create
8811 an initial context.
8812
4785bfe4 88132007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8814
8815 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
8816 (HEAP_LIMIT): New macro.
8817 (grub_claim_heap): Claim memory up to `heaplimit'.
8818
a0cbb023 88192007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8820
8821 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
8822 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
8823 (_start): Likewise.
8824 (grub_arch_modules_addr): Return address after `_end'.
8825 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
8826 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
8827 (add_segments): Calculate `_end' from phdr size and location.
8828 (ALIGN_UP): Moved to ...
8829 * include/grub/misc.h: here.
8830 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
8831 New macro.
8832 (GRUB_IEEE1275_MODULE_BASE): Removed.
8833
fd7d8eba 88342007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8835
8836 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
8837 loop boundary.
8838
9b09e6fc 88392007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8840
8841 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
8842 All users updated.
8843 (grub_elf64_load_hook_t): Likewise.
8844 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
8845 debug output.
8846
3ce27299 88472007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8848
8849 * kern/mm.c: Update copyright.
8850 (grub_mm_debug): Correct syntax error.
8851 (grub_mm_dump_free): New function.
8852 (grub_debug_free): Call `grub_free'.
8853 * include/grub/mm.h: Update copyright.
8854 (grub_mm_dump_free): Add declaration.
8855
077d5fee 88562007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8857
8858 * include/grub/ieee1275/ieee1275.h: Update copyright.
8859 * kern/powerpc/ieee1275/init.c: Likewise.
8860 * kern/powerpc/ieee1275/openfw.c: Likewise.
8861
8862 * loader/powerpc/ieee1275/linux.c: Likewise.
8863 * include/grub/elfload.h: Likewise.
8864 * kern/elf.c: Likewise.
8865 (grub_elf32_load): Pass `base' and `size' parameters. Update all
8866 callers.
8867 (grub_elf64_load): Likewise.
8868 (grub_elf32_load_segment): Move to a nested function.
8869 (grub_elf64_load_segment): Likewise.
8870
dc946850 88712007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8872
8873 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
8874 prototype.
8875 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
8876 (grub_heap_len): Likewise.
8877 (HEAP_SIZE): New macro.
8878 (grub_claim_heap): New function.
8879 (grub_machine_init): Don't claim heap directly. Call
8880 `grub_claim_heap'.
8881 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
8882 (grub_available_iterate): New function.
8883
baa2a121 88842007-02-03 Thomas Schwinge <tschwinge@gnu.org>
8885
8886 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
8887 * configure.ac: Use it for testing the HOST and TARGET compilers.
8888
4fe9862e 88892006-12-13 Thomas Schwinge <tschwinge@gnu.org>
8890
8891 * Makefile.in (enable_grub_emu): New variable.
8892 * configure.ac (--enable-grub-emu): New option.
8893 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
8894 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
8895 * conf/i386-pc.rmk: Likewise.
8896 * conf/powerpc-ieee1275.rmk: Likewise.
8897 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
8898
a8aa5762 88992006-12-12 Marco Gerards <marco@gnu.org>
8900
8901 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
8902
8903 * kern/env.c (grub_env_unset): Don't free the member `value' when
8904 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
8905 pointer.
8906
8907 * normal/main.c (current_menu): Removed.
8908 (free_menu): Unset the `menu' environment variable.
8909 (grub_normal_menu_addentry): Make use of the environment variable
8910 `menu', instead of using the global `current_menu'. Allocate
8911 memory for the sourcecode of this entry.
8912 (read_config_file): New argument `nested', changed all callers.
8913 Only in the case of a new context, initialize a new menu. Set the
8914 `menu' environment variable.
8915 (grub_normal_execute): Don't set and unset the environment
8916 variable `menu' here anymore. Only free the menu when leaving the
8917 context.
8918
8919 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
8920 leak.
8921
957b3a3e 89222006-12-11 Marco Gerards <marco@gnu.org>
8923
8924 * normal/menu_entry.c (run): Fix off by one bug so the last line
8925 is executed. Move the loader check to outside the loop.
8926
ef875714 89272006-12-08 Hollis Blanchard <hollis@penguinppc.org>
8928
8929 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
8930
4e739985 89312006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
8932
8933 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
8934 the number of sectors. Reported by Andrey Shuvikov
8935 <mr_hyro@yahoo.com>.
f19dbdb7 8936
790707f2 89372006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
8938
8939 * kern/disk.c (grub_disk_read): When there is a read error, always
8940 try to read only the necessary data.
f19dbdb7 8941
790707f2 8942 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
8943 disk/raid.c.
8944 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
8945 prototype.
8946 [GRUB_UTIL] (grub_raid_fini): Likewise.
8947 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 8948 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 8949 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
8950 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
8951 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
8952 and grub_raid_fini().
f19dbdb7 8953
03e58196 89542006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
8955
8956 * include/grub/types.h (__unused): Rename to UNUSED.
8957 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
8958 (grub_elf64_size): Likewise.
f19dbdb7 8959
ae4f23bf 89602006-11-03 Hollis Blanchard <hollis@penguinppc.org>
8961
8962 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
8963 grub_error_push and grub_error_pop in the error-handling path.
8964 (grub_elf32_load_segment): Only call grub_file_read with non-zero
8965 length.
8966
2166cc83 89672006-11-03 Hollis Blanchard <hollis@penguinppc.org>
8968
8969 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
8970 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8971 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8972 (kernel_elf_SOURCES): Likewise.
8973 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
8974 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
8975 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
8976 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
8977 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
8978 (elf_mod_SOURCES): New variable.
8979 (elf_mod_CFLAGS): Likewise.
8980 (elf_mod_LDFLAGS): Likewise.
8981 * include/grub/types.h (__unused): New macro.
8982 * include/grub/elfload.h: New file.
8983 * kern/elf.c: Likewise.
8984 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
8985 (ELF32_LOADMASK): New macro.
8986 (ELF64_LOADMASK): Likewise.
8987 (vmlinux): Removed.
8988 (grub_linux_load32): New function.
8989 (grub_linux_load64): Likewise.
8990 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
8991 Use grub_elf_t instead of grub_file_t.
8992
a09d5aa5 89932006-11-02 Hollis Blanchard <hollis@penguinppc.org>
8994
8995 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
8996 `catch_result' to struct set_color_args.
8997
d976fc51 89982006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
8999
9000 * normal/menu.c: Include grub/script.h.
9001 * normal/menu_entry.c: Likewise.
9002 * include/grub/normal.h: Do not include grub/script.h.
9003
67507549 90042006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9005
9006 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
9007
69203a99 90082006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9009
9010 * kern/disk.c (grub_disk_open): Print debug messages when opening a
9011 disk.
9012 (grub_disk_close): Print debug messages when closing a disk.
9013 (grub_disk_read): Print debug messages when disk read fails.
9014 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
9015 filesystem type.
9016 * kern/partition.c: Include misc.h.
9017 (grub_partition_iterate): Print debug messages when detecting
9018 partition type.
9019
e2b8278c 90202006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9021
9022 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
9023 is negative.
9024 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
9025
97b2f2ff 90262006-10-26 Hollis Blanchard <hollis@penguinppc.org>
9027
9028 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
9029 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
9030
6555d655 90312006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
9032
9033 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
9034 instead of sizeof(lv). Patch by Michael Guntsche.
9035
4d42b77f 90362006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
9037
9038 * disk/lvm.c: Rename VGS to VG_LIST.
9039 (grub_lvm_iterate): Change VGS->LV to VG-LV.
9040 (grub_lvm_open): Likewise.
9041 Thanks to Michael Guntsche for finding this bug.
9042
5d74d927 90432006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9044
9045 * configure.ac (AC_INIT): Bumped to 1.95.
9046
a1bb27e4 90472006-10-14 Robert Millan <rmh@aybabtu.com>
9048
9049 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
9050 with "/dev/.static/dev/md".
9051
e0994b8b 90522006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9053
9054 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
9055 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
9056 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
9057 DRIVE_NAME are always freed.
9058
9059 * util/i386/pc/biosdisk.c (make_device_name): Add one into
9060 DOS_PART, as a DOS partition is counted from one instead of zero
9061 now. Reported by Robert Millan.
9062
ddd5cee9 90632006-10-14 Robert Millan <rmh@aybabtu.com>
9064
9065 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
9066 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
9067 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
9068 string returned by grub_guess_root_device.
9069 * util/i386/pc/grub-setup.c: Likewise.
9070 * util/i386/pc/grub-probefs.c: Likewise.
9071
9072 * util/i386/pc/grub-probefs.c: Rename to ...
9073 * util/i386/pc/grub-probe.c: ... this.
9074 * DISTLIST: Remove grub-probefs, add grub-probe.
9075 * conf/i386-efi.rmk: Likewise.
9076 * conf/i386-pc.rmk: Likewise.
9077 * util/i386/pc/grub-install.in: Likewise.
9078
9079 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
9080 choose which information we want to print.
9081
2b002173 90822006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9083
9084 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
9085 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
9086 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
9087 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
9088 video/readers/tga.c and video/i386/pc/vbeutil.c.
9089
90902006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
9091
9092 Added support for RAID and LVM.
f19dbdb7 9093
2b002173 9094 * disk/lvm.c: New file.
9095 * disk/raid.c: Likewise.
9096 * include/grub/lvm.h: Likewise.
f19dbdb7 9097 * include/grub/raid.h: Likewise.
2b002173 9098 * include/grub/util/lvm.h: Likewise.
9099 * include/grub/util/raid.h: Likewise.
9100 * util/lvm.c: Likewise.
9101 * util/raid.c: Likewise.
9102
9103 * include/grub/disk.h (grub_disk_dev_id): Add
9104 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
9105 (grub_disk_get_size): New prototype.
9106 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
9107 returns a partition.
9108 (grub_disk_get_size): New function.
f19dbdb7 9109
2b002173 9110 * kern/i386/pc/init.c (make_install_device): Copy the prefix
9111 verbatim if grub_install_dos_part is -2.
9112
9113 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
9114 and LVM devices.
9115
9116 * util/i386/pc/grub-setup.c (setup): New argument
9117 MUST_EMBED. Force embedding of GRUB when the argument is
9118 true. Close FILE before returning.
9119 (main): Add support for RAID and LVM.
f19dbdb7 9120
2b002173 9121 * conf/common.rmk: Add RAID and LVM modules.
9122 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
9123 util/lvm.c.
9124 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
9125
9126 * kern/misc.c (grub_strstr): New function.
9127 * include/grub/misc.h (grub_strstr): New prototype.
9128
050548d0 91292006-10-10 Tristan Gingold <tristan.gingold@bull.net>
9130
9131 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
9132
da849d2d 91332006-10-05 Tristan Gingold <tristan.gingold@bull.net>
9134
9135 * kern/misc.c (grub_strtoull): Guess the base only if not
9136 specified.
9137
97b2f2ff 91382006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 9139
9140 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
9141 PowerMac support.
9142
97b2f2ff 91432006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 9144
9145 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
9146
9147 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
9148 Remove `flags' argument. All callers changed.
9149 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
9150 (IEEE1275_IHANDLE_INVALID): New variable.
9151 (IEEE1275_CELL_INVALID): New variable.
9152 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
9153 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
9154 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
9155 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
9156 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
9157 codes from Open Firmware. All callers updated.
9158 (grub_ieee1275_next_property): Directly return Open Firmware return
9159 code.
9160 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
9161 Standardize error checking from `grub_ieee1275_get_property'.
9162 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
9163 `devalias' to `aliases'. Correct comments. Consolidate error paths.
9164
97b2f2ff 91652006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 9166
9167 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
9168 `instance_to_package_args' to `instance_to_path_args'.
9169
9170 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
9171 `grub_ieee1275_chosen'.
9172
9173 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
9174 `grub_ieee1275_interpret'.
9175
97b2f2ff 91762006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 9177
9178 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
9179
97b2f2ff 91802006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 9181
9182 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
9183 (__cmpdi): Likewise.
9184
9185 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
9186 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
9187 `grub_ssize_t'.
9188
02bb8acc 9189 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 9190
9191 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
9192 to type `grub_ssize_t'.
9193 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
9194
7f9a8531 91952006-09-22 Marco Gerards <marco@gnu.org>
9196
9197 * normal/script.c (grub_script_create_cmdmenu): Skip leading
9198 newlines.
9199
b5ef1102 92002006-09-22 Marco Gerards <marco@gnu.org>
9201
9202 * commands/echo.c: New file.
9203
9204 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
9205
9206 * conf/common.rmk (echo_mod_SOURCES): New variable.
9207 (echo_mod_CFLAGS): Likewise.
9208 (echo_mod_LDFLAGS): Likewise.
9209
2cff3677 92102006-09-22 Marco Gerards <marco@gnu.org>
9211
9212 * normal/main.c (get_line): Malloc memory instead of using
9213 preallocated memory. Removed the arguments `cmdline' and
9214 `max_len'. Updated all callers.
9215
6ba4688b 92162006-09-22 Marco Gerards <marco@gnu.org>
9217
9218 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
9219 (normal_mod_DEPENDENCIES): Likewise.
9220
9221 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
9222 (normal_mod_DEPENDENCIES): Likewise.
9223
9224 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
9225
e02ac02c 92262006-09-22 Johan Rydberg <jrydberg@gnu.org>
9227
9228 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
9229 programs.
9230 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
9231 (normal_mod_DEPENDENCIES): Likewise.
9232 * conf/i386-pc.mk: Regenerate.
9233 * conf/i386-efi.mk: Likewise
9234 * conf/common.mk: Likewise.
9235 * conf/powerpc-ieee1275.mk: Likewise.
9236 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9237
8d252e44 92382006-09-22 Robert Millan <rmh@aybabtu.com>
9239
9240 Sync with i386 version.
9241 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
9242 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
9243
209bf7ac 92442006-09-21 Robert Millan <rmh@aybabtu.com>
9245
9246 Import from GRUB Legacy (lib/device.c):
9247 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
9248 (init_device_map) [__linux__]: Add support for I2O devices.
9249
6b146090 92502006-09-14 Marco Gerards <marco@gnu.org>
9251
9252 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
9253 `-melf_i386'.
9254
e38600a8 92552006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 9256
9257 * util/i386/pc/grub-install.in: Skip menu.lst when removing
9258 /boot/grub/*.lst.
78fa1790 9259
2952da5d 9260 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 9261
2952da5d 9262 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
9263 before adding it to device.map.
9264
01b82a64 92652006-08-15 Johan Rydberg <jrydberg@gnu.org>
9266
fe6b695a 9267 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 9268 compiles a file; using the -MD option.
9269 * conf/common.mk: Regenerate.
9270 * conf/i386-pc.mk: Likewise.
9271 * conf/i386-efi.mk: Likewise.
9272 * conf/powerpc-ieee1275.mk: Likewise.
9273 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9274
1064790d 92752006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
9276
9277 Move the prototypes of grub_setjmp and grub_longjmp to
9278 cpu/setjmp.h, so that each architecture may specify different
9279 attributes.
f19dbdb7 9280
1064790d 9281 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
9282 (grub_longjmp): Likewise.
9283 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
9284 (grub_longjmp): Likewise.
9285 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
9286 (grub_longjmp): Likewise.
9287
9288 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
9289 [!GRUB_UTIL] (grub_longjmp): Removed.
9290
29dda3ed 92912006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
9292
9293 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
9294 "color!" method does not return any value.
9295
ad2a06ed 92962006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9297
9298 * include/grub/bitmap.h: New file.
9299
9300 * include/grub/i386/pc/vbeutil.h: Likewise.
9301
9302 * video/bitmap.c: Likewise.
9303
9304 * video/readers/tga.c: Likewise.
9305
9306 * video/i386/pc/vbeutil.c: Likewise.
9307
9308 * commands/videotest.c: Code cleanup and updated to reflect to new
9309 video API.
9310
9311 * term/gfxterm.c: Likewise.
9312
9313 * video/video.c: Likewise.
9314
9315 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
9316 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
9317 (bitmap_mod_SOURCES): New entry.
9318 (bitmap_mod_CFLAGS): Likewise.
9319 (bitmap_mod_LDFLAGS): Likewise.
9320 (tga_mod_SOURCES): Likewise.
9321 (tga_mod_CFLAGS): Likewise.
9322 (tga_mod_LDFLAGS): Likewise.
9323
9324 * include/grub/video.h (grub_video_blit_operators): New enum type.
9325 (grub_video_render_target): Changed as forward declaration and moved
9326 actual definition to be video driver specific.
9327 (grub_video_adapter.blit_bitmap): Added blitting operator.
9328 (grub_video_adapter.blit_render_target): Likewise.
9329 (grub_video_blit_bitmap): Likewise.
9330 (grub_video_blit_render_target): Likewise.
9331
9332 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
9333 driver specific render target definition.
9334 (grub_video_vbe_map_rgba): Added driver internal helper.
9335 (grub_video_vbe_unmap_color): Updated to use
9336 grub_video_i386_vbeblit_info.
9337 (grub_video_vbe_get_video_ptr): Likewise.
9338
9339 * include/grub/i386/pc/vbeblit.h
9340 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
9341 grub_video_i386_vbeblit_info.
9342 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
9343 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
9344 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
9345 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
9346 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
9347 (grub_video_i386_vbeblit_index_index): Likewise.
9348 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
9349 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
9350 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
9351 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
9352 operator.
9353 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
9354 operator.
9355
9356 * video/i386/pc/vbeblit.c: Updated to reflect changes on
9357 include/grub/i386/pc/vbeblit.h.
9358
9359 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
9360 Updated to use grub_video_i386_vbeblit_info.
9361 (grub_video_i386_vbefill_R8G8B8): Likewise.
9362 (grub_video_i386_vbefill_index): Likewise.
9363 (grub_video_i386_vbefill): Added generic filler.
9364
9365 * video/i386/pc/vbefill.c: Updated to reflect changes on
9366 include/grub/i386/pc/vbefill.h.
9367
9368 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
9369 grub_video_i386_vbeblit_info.
9370 (grub_video_vbe_unmap_color): Likewise.
9371 (grub_video_vbe_blit_glyph): Likewise.
9372 (grub_video_vbe_scroll): Likewise.
9373 (grub_video_vbe_draw_pixel): Removed function.
9374 (grub_video_vbe_get_pixel): Likewise.
9375 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
9376 updated code to use it.
9377 (common_blitter): Added common blitter for render target and bitmap.
9378 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
9379 (grub_video_vbe_blit_render_target): Likewise.
9380
bc8c036d 93812006-07-30 Johan Rydberg <jrydberg@gnu.org>
9382
9383 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
9384 is in text mode if there is no console control protocol instance
9385 available.
9386
684a8eff 93872006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9388
9389 * include/grub/video.h: Code cleanup.
9390
9391 * include/grub/i386/pc/vbe.h: Likewise.
9392
9393 * video/i386/pc/vbe.c: Likewise.
9394
9395 * video/i386/pc/vbeblit.c: Likewise.
9396
9397 * video/i386/pc/vbefill.c: Likewise.
9398
9399 * video/video.c: Likewise. Also added more comments.
9400
5915059b 94012006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9402
9403 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
9404 (struct grub_biosdisk_dap): Likewise.
9405
9406 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
9407 linkage settings for all functions.
9408
90ce5d56 94092006-07-12 Marco Gerards <marco@gnu.org>
9410
9411 * configure.ac (--enable-mm-debug): Fix typo.
9412
9413 * genkernsyms.sh.in: Use proper quoting for `CC'.
9414
43e7f879 94152006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
9416
9417 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
9418 (normal_mod_ASFLAGS): Remove "-m32".
9419
4889bdec 94202006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
9421
9422 * util/misc.c: Include config.h.
9423 [!HAVE_MEMALIGN]: Do not include malloc.h.
9424 (grub_memalign): Use posix_memalign, if present. Then, use
9425 memalign, if present. Otherwise, emit an error.
9426
9427 * util/grub-emu.c: Do not include malloc.h.
9428
9429 * include/grub/util/misc.h: Include unistd.h. This is required for
9430 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
9431 D. Eades III <hde@foobar-qux.org>.
9432
9433 * configure.ac (AC_GNU_SOURCE): Added.
9434 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
9435 type.
9436
fd39d4da 94372006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
9438
9439 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
9440 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
9441
b786f3b5 94422006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
9443
9444 * include/grub/types.h (grub_host_addr_t): Rename to
9445 grub_target_addr_t.
9446 (grub_host_off_t): Rename to grub_target_off_t.
9447 (grub_host_size_t): Rename to grub_target_size_t.
9448 (grub_host_ssize_t): Rename to grub_target_ssize_t.
9449 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
9450
9451 * include/grub/kernel.h (struct grub_module_header): Change type
9452 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
9453 (grub_module_info): Likewise.
f19dbdb7 9454
051988bb 94552006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9456
9457 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
9458 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
9459 Velazquez <jesus.velazquez@gmail.com>.
9460
deae281b 94612006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9462
9463 Count partitions from 1 instead of 0 in the string representation
9464 of partitions. Still use 0-based internally.
f19dbdb7 9465
deae281b 9466 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
9467 (sun_partition_map_iterate): Use grub_partition_t instead of
9468 struct grub_partition *. Cast DESC->START_CYLINDER to
9469 grub_uint64_t after converting the endian.
9470 (sun_partition_map_probe): Subtract 1 for PARTNUM.
9471 (sun_partition_map_get_name): Add 1 to P->INDEX.
9472
9473 * partmap/pc.c (grub_partition_parse): Subtract 1 for
9474 PCDATA->DOS_PART.
9475 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
9476
9477 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
9478 zero instead of one.
9479 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
9480 (gpt_partition_map_get_name): Add 1 into P->INDEX.
9481
9482 * partmap/apple.c (apple_partition_map_iterate): Change the type
9483 of POS to unsigned.
9484 (apple_partition_map_probe): Subtract 1 for PARTNUM.
9485 (apple_partition_map_get_name): Add 1 into P->INDEX.
9486
9487 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
9488 of POS to unsigned.
9489 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
9490 calculate the offset of a partition.
9491 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
9492 (amiga_partition_map_get_name): Add 1 into P->INDEX.
9493
9494 * partmap/acorn.c (acorn_partition_map_find): Change the type of
9495 SECTOR to grub_disk_addr_t.
9496 (acorn_partition_map_iterate): Likewise.
9497 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
9498 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
9499 top.
9500 (acorn_partition_map_get_name): Add 1 into P->INDEX.
9501
9502 * kern/i386/pc/init.c (make_install_device): Add 1 into
9503 GRUB_INSTALL_DOS_PART.
9504
9505 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
9506 conditional.
9507
524a1e6a 95082006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9509
9510 Clean up the code to support 64-bit addressing in disks and
9511 files. This change is not enough for filesystems yet.
f19dbdb7 9512
524a1e6a 9513 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
9514 type of "start" to grub_uint64_t.
9515 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
9516 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
9517 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
9518 convert addresses.
9519
9520 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
9521 to grub_disk_addr_t.
9522
9523 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
9524 string.
9525
9526 * partmap/pc.c (pc_partition_map_iterate): Likewise.
9527
9528 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
9529 to char *.
9530
9531 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
9532
9533 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
9534
9535 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
9536
9537 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
9538 to grub_off_t, to detect an error from grub_file_seek.
9539 (grub_multiboot_load_elf32): Likewise.
9540
9541 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
9542 maximum unsigned long value when an overflow is detected.
9543 (grub_strtoull): New function.
9544 (grub_divmod64): Likewise.
9545 (grub_lltoa): use grub_divmod64.
9546
9547 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
9548 grub_disk_addr_t.
9549 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
9550 the pointer to next character. Use grub_strtoull instead of
9551 grub_strtoul.
9552 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
9553 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
9554 respectively.
9555
fe6b695a 9556 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 9557 return value is signed.
9558 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
9559 test if OFFSET is less than zero, as OFFSET is unsigned now.
9560
9561 * kern/disk.c (struct grub_disk_cache): Change the type of
9562 "sector" to grub_disk_addr_t.
9563 (grub_disk_cache_get_index): Change the type of SECTOR to
9564 grub_disk_addr_t. Calculate the hash with SECTOR casted to
9565 unsigned after shifting.
9566 (grub_disk_cache_invalidate): Change the type of SECTOR to
9567 grub_disk_addr_t.
9568 (grub_disk_cache_unlock): Likewise.
9569 (grub_disk_cache_store): Likewise.
9570 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
9571 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
9572 grub_disk_addr_t and grub_uint64_t, respectively.
9573 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
9574 body, as the value of OFFSET is tweaked by
9575 grub_disk_check_range. Change the types of START_SECTOR, LEN and
9576 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
9577 respectively.
9578 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
9579 body, as the value of OFFSET is tweaked by
9580 grub_disk_check_range. Change the types of LEN and N to
9581 grub_size_t.
9582
9583 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
9584 and "saved_offset" to grub_off_t.
9585 (test_header): Cast BUF to char *.
9586 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
9587 to char *.
9588 (grub_gzio_read): Change the types of OFFSET and SIZE to
9589 grub_off_t and grub_size_t, respectively.
9590
9591 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
9592 Removed.
9593 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
9594 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
9595 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
9596 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
9597 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
9598
9599 * include/grub/types.h (grub_off_t): Unconditionally set to
9600 grub_uint64_t.
9601 (grub_disk_addr_t): Changed to grub_uint64_t.
9602
9603 * include/grub/partition.h (struct grub_partition): Change the
9604 types of "start", "len" and "offset" to grub_disk_addr_t,
9605 grub_uint64_t and grub_disk_addr_t, respectively.
9606 (grub_partition_get_start): Return grub_disk_addr_t.
9607 (grub_partition_get_len): Return grub_uint64_t.
9608
9609 * include/grub/misc.h (grub_strtoull): New prototype.
9610 (grub_divmod64): Likewise.
9611
9612 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
9613 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
9614 grub_off_t, respectively.
9615 All callers and references changed.
9616
9617 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
9618 grub_size_t in "read".
9619 All callers and references changed.
9620
9621 * include/grub/file.h (struct grub_file): Change the types of
9622 "offset" and "size" to grub_off_t and grub_off_t,
9623 respectively. Change the type of SECTOR to grub_disk_addr_t in
9624 "read_hook".
9625 (grub_file_read): Change the type of LEN to grub_size_t.
9626 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
9627 grub_off_t.
9628 (grub_file_size): Return grub_off_t.
9629 (grub_file_tell): Likewise.
9630 All callers and references changed.
9631
9632 * include/grub/disk.h (struct grub_disk_dev): Change the types of
9633 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
9634 "write".
9635 (struct grub_disk): Change the type of "total_sectors" to
9636 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 9637 "read_hook".
524a1e6a 9638 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
9639 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
9640 (grub_disk_write): Likewise.
9641 All callers and references changed.
9642
9643 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
9644 char * for grub_strncmp to silence gcc.
9645 (grub_iso9660_mount): Likewise.
9646 (grub_iso9660_mount): Likewise.
9647 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
9648 return statement.
9649 (grub_iso9660_iterate_dir): Likewise.
9650 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
9651
9652 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
9653 LEN to grub_disk_addr_t and grub_size_t, respectively.
9654
9655 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
9656
9657 * fs/jfs.c (grub_jfs_read_file): Likewise.
9658
9659 * fs/minix.c (grub_jfs_read_file): Likewise.
9660
9661 * fs/sfs.c (grub_jfs_read_file): Likewise.
9662
9663 * fs/ufs.c (grub_jfs_read_file): Likewise.
9664
9665 * fs/xfs.c (grub_jfs_read_file): Likewise.
9666
9667 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
9668 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
9669 respectively.
9670
9671 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
9672 BLKNR to -1 instead of returning GRUB_ERRNO.
9673 (grub_ext2_read_file): Change the types of SECTOR and
9674 LEN to grub_disk_addr_t and grub_size_t, respectively.
9675
9676 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
9677 LEN to grub_disk_addr_t and grub_size_t, respectively.
9678
9679 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
9680 grub_file_read.
9681
9682 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
9683 string. Do not cast SECTOR explicitly.
9684
9685 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
9686 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
9687 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
9688 grub_disk_addr_t and grub_size_t, respectively. If the sector is
9689 over 2TB and LBA mode is not supported, raise an error.
9690 (get_safe_sectors): New function.
9691 (grub_biosdisk_read): Use get_safe_sectors.
9692 (grub_biosdisk_write): Likewise.
9693
9694 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
9695 (grub_efidisk_write): Likewise.
9696
9697 * disk/loopback.c (delete_loopback): Cosmetic changes.
9698 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
9699 correctly.
9700 (grub_loopback_open): Likewise.
9701 (grub_loopback_read): Likewise. Also, change the type of POS to
9702 grub_off_t, and fix the usage of grub_memset.
9703
9704 * commands/i386/pc/play.c: Include grub/machine/time.h.
9705
9706 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
9707 print FILE->SIZE.
9708
9709 * commands/configfile.c: Include grub/env.h.
9710
9711 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
9712 GRUB_ERRNO directly instead. Change the type of POS to
9713 grub_off_t. Follow the coding standard.
9714
9715 * commands/blocklist.c: Include grub/partition.h.
9716 (grub_cmd_blocklist): Return an error if the underlying device is
9717 not a disk. Take the starting sector of a partition into account,
9718 if a partition is used.
9719
9720 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
9721 a length field.
9722 (lba_mode): Support 64-bit addresses.
9723 (chs_mode): Likewise.
9724 (copy_buffer): Adapted to the new offsets of a length field and a
9725 segment field.
9726 (blocklist_default_start): Allocate 64-bit space.
9727
9728 * boot/i386/pc/boot.S (force_lba): Removed.
9729 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 9730 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 9731 space.
9732 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
9733 is useless.
9734 (lba_mode): Refactored to support a 64-bit address. More size
9735 optimization.
9736 (setup_sectors): Likewise.
9737
53af98ad 97382006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9739
9740 * DISTLIST: Added include/grub/i386/linux.h. Removed
9741 include/grub/i386/pc/linux.h
9742
9743 * configure.ac (AC_INIT): Bumped to 1.94.
9744
9745 * config.guess: Updated from gnulib.
9746 * config.sub: Likewise.
9747 * install-sh: Likewise.
9748 * mkinstalldirs: Likewise.
9749
b4c1940a 97502006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9751
9752 * conf/common.rmk (grub_modules_init.lst): Depended on
9753 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
9754 MODSRCFILES.
9755
9756 * genmk.rb (PModule::rule): Reverted the previous change.
9757
cfca1cfd 97582006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9759
9760 * conf/common.rmk (grub_modules_init.lst): Depends on
9761 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
9762 that the target does not exist before producing.
9763 (grub_modules_init.h): Remove the target before generating.
9764 (grub_emu_init.c): Likewise.
9765
9766 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
9767
aa6d7826 97682006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
9769
9770 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
9771 for the target-specific tests. Make sure that we also have the
9772 up-to-date target variables for those tests.
9773
26c607b9 97742006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9775
9776 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
9777 (PModule::rule): Likewise.
9778
0162321a 97792006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9780
9781 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
9782 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
9783 target-specific flags should be prefixed.
9784 (PModule::rule): Likewise.
9785
6c826348 97862006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
9787
9788 * configure.ac (CMP): Check if cmp is available explicitly.
9789
b977bf01 97902006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
9791
9792 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
9793 (target_cpu): New variable.
9794 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 9795
b977bf01 9796 * util/i386/pc/grub-install.in (host_cpu): Removed.
9797 (target_cpu): New variable.
9798 (pkglibdir): Use target_cpu instead of host_cpu.
9799
9800 * util/genmoddep.c: Removed.
f19dbdb7 9801
b977bf01 9802 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
9803 instead of GRUB_HOST_SIZEOF_VOID_P.
9804 * kern/dl.c: Likewise.
9805
9806 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
9807 ...
9808 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9809 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9810 (GRUB_TARGET_SIZEOF_LONG): ... this.
9811 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9812 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9813 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9814 to ...
9815 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9816 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9817 (GRUB_TARGET_SIZEOF_LONG): ... this.
9818 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9819 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9820 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9821 to ...
9822 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9823 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9824 (GRUB_TARGET_SIZEOF_LONG): ... this.
9825 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9826 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9827
9828 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
9829 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
9830 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
9831 instead of GRUB_HOST_SIZEOF_LONG.
9832 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
9833 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
9834 GRUB_CPU_WORDS_BIGENDIAN.
9835 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
9836 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
9837 grub_host_ssize_t.
9838
9839 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
9840 (genmoddep_SOURCES): Likewise.
9841 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
9842 (genmoddep_SOURCES): Likewise.
9843 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
9844 (genmoddep_SOURCES): Likewise.
9845 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
9846 Likewise.
9847 (genmoddep_SOURCES): Likewise.
9848
9849 * genmoddep.awk: New file.
9850
9851 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
9852 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
9853 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
9854 (PModule::rule): Likewise.
9855 (Program::rule): Likewise.
9856 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
9857 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
9858 respectively.
9859
9860 * configure.ac: Rewritten intensively to use host and target
9861 instead of build and host, respectively.
9862
9863 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
9864 (host_cpu): Removed.
9865 (target_cpu): New variable.
9866 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
9867 (BUILD_CC): Removed.
9868 (BUILD_CFLAGS): Likewise.
9869 (BUILD_CPPFLAGS): Likewise.
9870 (TARGET_CC): New variable.
9871 (TARGET_CFLAGS): Likewise.
9872 (TARGET_CPPFLAGS): Likewise.
9873 (TARGET_LDFLAGS): Likewise.
9874 (AWK): Likewise.
9875 (include): Use target_cpu instead of host_cpu.
9876 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 9877
b977bf01 9878 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
9879
f09771a1 98802006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
9881
9882 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
9883 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
9884 field 'false' to 'exec_on_false'.
9885 (grub_script_create_cmdif): Renamed argument names to reflect above
9886 changes.
9887
9888 * normal/execute.c (grub_script_execute_cmdif): Likewise.
9889
9890 * normal/script.c (grub_script_create_cmdif): Likewise.
9891
118f4fb3 98922006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
9893
9894 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
9895 top.
9896 (grub_hfsplus_btree_recptr): Likewise.
9897 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
9898 FILEBLOCK both to pass a block number and store next block
9899 number.
9900 (grub_hfsplus_read_block): Rewritten heavily to support an extent
9901 overflow file correctly. Specify errors appropriately, because
9902 fshelp expects that GRUB_ERRNO is set when fails. Reuse
9903 grub_hfsplus_btree_recptr to get the pointer to a found key.
9904 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
9905 is found.
9906
9907 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
9908 linux.mod.
9909 (_linux_mod_SOURCES): New variable.
9910 (_linux_mod_CFLAGS): Likewise.
9911 (_linux_mod_LDFLAGS): Likewise.
9912 (linux_mod_SOURCES): Likewise.
9913 (linux_mod_CFLAGS): Likewise.
9914 (linux_mod_LDFLAGS): Likewise.
9915
9916 * DISTLIST: Added loader/i386/efi/linux.c,
9917 loader/i386/efi/linux_normal.c and
9918 include/grub/i386/efi/loader.h.
9919
9920 * loader/i386/efi/linux.c: New file.
9921 * loader/i386/efi/linux_normal.c: Likewise.
9922 * include/grub/i386/efi/loader.h: Likewise.
9923
89a7d726 99242006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
9925
9926 * commands/blocklist.c: New file.
9927
9928 * DISTLIST: Added commands/blocklist.c.
9929
9930 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 9931 color for the background, and a darker color for the foreground.
89a7d726 9932 (grub_console_checkkey): Return READ_KEY.
9933 (grub_console_cls): Set the background to
9934 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
9935
9936 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
9937
9938 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
9939 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
9940
9941 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
9942 prototype.
9943
9944 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
9945 BG. The spec is wrong again.
9946
9947 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
9948 prototype.
9949 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
9950
9951 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
9952 commands/blocklist.c.
9953 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 9954
89a7d726 9955 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
9956 (blocklist_mod_SOURCES): New variable.
9957 (blocklist_mod_CFLAGS): Likewise.
9958 (blocklist_mod_LDFLAGS): Likewise.
9959
75c8f258 99602006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
9961
9962 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
9963 duplication.
9964 (lba_mode): Use %eax more intensively to reduce the code size.
9965
da2eb181 99662006-05-20 Marco Gerards <marco@gnu.org>
9967
9968 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
9969
9970 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
9971 for `menuentry'.
9972 (script): Accept leading newlines.
9973 (newlines): New rule to describe 0 or more newlines.
9974 (commands): Accept `command' with trailing newline. Fixed the
9975 order in which arguments were passed to `grub_script_add_cmd'.
9976 Accept commands separated by newlines.
9977 (function): Changed to accept newlines.
9978 (menuentry) Rewritten.
9979
9980 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
9981 front of the list, instead of to the end.
9982
577b4050 99832006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
9984
9985 * util/i386/pc/grub-install.in (bindir): New variable.
9986 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
9987 Shaver <lbgwjl@gmail.com>.
9988
0d6e1189 99892006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
9990
9991 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
9992 grub/machine/linux.h
9993 * loader/i386/pc/linux.c: Likewise.
9994
9995 * include/grub/i386/pc/linux.h: Moved to ...
9996 * include/grub/i386/linux.h: ... here.
9997
9998 * include/grub/i386/linux.h (struct linux_kernel_params): New
9999 struct.
f19dbdb7 10000
31b86e9f 100012006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
10002
10003 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
10004 checking.
10005 (grub_video_vbe_blit_glyph): Likewise.
10006 (grub_video_vbe_blit_bitmap): Likewise.
10007 (grub_video_vbe_blit_render_target): Likewise.
10008
83b984de 100092006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
10010
10011 * configure.ac (--with-platform): Properly quote the square
10012 brackets.
10013
5f0413bd 100142006-05-08 Marco Gerards <marco@gnu.org>
10015
10016 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
10017 this...
10018 (kernel_elf_HEADERS): ...to this. Updated all users.
10019 (grubof_symlist.c): Renamed from this...
10020 (kernel_elf_symlist.c): ...to this. Updated all users.
10021 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10022 (grubof_SOURCES): Renamed from this...
10023 (kernel_elf_SOURCES): ...to this.
10024 (grubof_HEADERS): Renamed from this...
10025 (kernel_elf_HEADERS): ...to this.
10026 (grubof_CFLAGS): Renamed from this...
10027 (kernel_elf_CFLAGS): ...to this.
10028 (grubof_ASFLAGS): Renamed from this...
10029 (kernel_elf_ASFLAGS): ...to this.
10030 (grubof_LDFLAGS): Renamed from this...
10031 (kernel_elf_LDFLAGS): ...to this.
10032
10033 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
10034 this...
10035 (kernel_elf_HEADERS): ...to this. Updated all users.
10036 (grubof_symlist.c): Renamed from this...
10037 (kernel_elf_symlist.c): ...to this. Updated all users.
10038 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10039 (grubof_SOURCES): Renamed from this...
10040 (kernel_elf_SOURCES): ...to this.
10041 (grubof_HEADERS): Renamed from this...
10042 (kernel_elf_HEADERS): ...to this.
10043 (grubof_CFLAGS): Renamed from this...
10044 (kernel_elf_CFLAGS): ...to this.
10045 (grubof_ASFLAGS): Renamed from this...
10046 (kernel_elf_ASFLAGS): ...to this.
10047 (grubof_LDFLAGS): Renamed from this...
10048 (kernel_elf_LDFLAGS): ...to this.
10049
10050 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
10051 `kernel.elf' instead of `grubof'.
10052
05568c2e 100532006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
10054
10055 Add --with-platform to configure. Use pkglibdir instead of
10056 pkgdatadir. This is reported by Roger Leigh.
10057
10058 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
10059 (host_vendor): Likewise.
10060 (host_os): Likewise.
10061 (pkgdatadir): Likewise.
10062 (platform): New variable.
10063 (pkglibdir): Likewise.
10064 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 10065
05568c2e 10066 * util/i386/pc/grub-install.in (datadir): Removed.
10067 (host_vendor): Likewise.
10068 (host_os): Likewise.
10069 (pkgdatadir): Likewise.
10070 (platform): New variable.
10071 (pkglibdir): Likewise.
10072 Use PKGLIBDIR instead of PKGDATADIR.
10073
10074 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
10075 instead of GRUB_DATADIR.
10076 (main): Likewise.
10077 * util/i386/pc/grub-mkimage.c (usage): Likewise.
10078 (main): Likewise.
10079 * util/i386/efi/grub-mkimage.c (usage): Likewise.
10080 (main): Likewise.
10081
10082 * configure.ac (--with-platform): New option.
10083 Use PLATFORM instead of HOST_VENDOR to specify a platform.
10084
10085 * Makefile.in: Include a makefile based on PLATFORM instead of
10086 HOST_VENDOR.
10087 (pkgdatadir): Not appended by the machine type.
10088 (pkglibdir): Appended by the machine type.
10089 (host_vendor): Removed.
10090 (platform): New variable.
10091 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
10092 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
10093 (uninstall): Likewise.
10094
4e93851c 100952006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
10096
10097 Use the environment context in the menu. Remove the commands
10098 "default" and "timeout", and use variables instead.
f19dbdb7 10099
4e93851c 10100 * normal/menu.c: Include grub/env.h.
10101 (print_entry): Cast TITLE to silence gcc.
10102 (get_timeout): New function.
10103 (set_timeout): Likewise.
10104 (get_entry_number): Likewise.
10105 (run_menu): Use a default entry, a fallback entry and a timeout
10106 in the environment variables "default", "fallback" and
10107 "timeout". Also, tweak the default entry if it is not within the
10108 current menu entries.
10109 (grub_menu_run): Use a fallback entry in the environment variable
10110 "fallback".
10111
10112 * normal/main.c (read_config_file): Do not initialize
10113 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
10114 NEWMENU->TIMEOUT.
10115 (grub_normal_execute): Use a data slot to store the menu.
10116
10117 * include/grub/normal.h (struct grub_menu): Removed default_entry,
10118 fallback_entry and timeout.
10119 (struct grub_menu_list): Removed.
10120 (grub_menu_list_t): Likewise.
10121 (struct grub_context): Likewise.
10122 (grub_context_t): Likewise.
10123 (grub_context_get): Likewise.
10124 (grub_context_get_current_menu): Likewise.
10125 (grub_context_push_menu): Likewise.
10126 (grub_context_pop_menu): Likewise.
10127 (grub_default_init): Likewise.
10128 (grub_default_fini): Likewise.
10129 (grub_timeout_init): Likewise.
10130 (grub_timeout_fini): Likewise.
10131
10132 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
10133 and timeout.mod.
10134 (normal_mod_SOURCES): Removed normal/context.c.
10135
10136 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
10137 commands/default.c, commands/timeout.c and normal/context.c.
10138 (normal_mod_SOURCES): Removed normal/context.c.
10139
10140 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
10141 commands/timeout.c and normal/context.c.
10142 (normal_mod_SOURCES): Removed normal/context.c.
10143
10144 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
10145 commands/default.c, commands/timeout.c and normal/context.c.
10146 (normal_mod_SOURCES): Removed normal/context.c.
10147
10148 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
10149 timeout.mod.
10150 (default_mod_SOURCES): Removed.
10151 (default_mod_CFLAGS): Likewise.
10152 (default_mod_LDFLAGS): Likewise.
10153 (timeout_mod_SOURCES): Removed.
10154 (timeout_mod_CFLAGS): Likewise.
10155 (timeout_mod_LDFLAGS): Likewise.
10156
10157 * DISTLIST: Removed commands/default.c, commands/timeout.c and
10158 normal/context.c.
10159
10160 * commands/default.c: Removed.
10161 * commands/timeout.c: Likewise.
10162 * normal/context.c: Likewise.
10163
1eb9cc1d 101642006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
10165
10166 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
10167
385bd9c1 101682006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
10169
10170 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
10171 "next" to "prev" for readability.
10172 (struct grub_env_sorted_var): New struct.
10173 (grub_env_context): Renamed to ...
10174 (initial_context): ... this.
10175 (grub_env_var_context): Renamed to ...
10176 (current_context): ... this.
10177 (grub_env_find): Look only at CURRENT_CONTEXT.
10178 (grub_env_context_open): Rewritten to copy exported variables from
10179 previous context.
10180 (grub_env_context_close): Rewritten according to the new
10181 scheme. Also, add an assertion to prevent the initial context from
10182 removed.
10183 (grub_env_insert): Removed the code for the sorted list.
10184 (grub_env_remove): Likewise.
10185 (grub_env_export): Simply mark the variable with
10186 GRUB_ENV_VAR_GLOBAL.
10187 (grub_env_set): A cosmetic change for naming consistency.
10188 (grub_env_get): Likewise.
10189 (grub_env_unset): Likewise.
10190 (grub_env_iterate): Rewritten to sort variables within this
10191 function.
10192 (grub_register_variable_hook): Fixed for naming consistency. Call
10193 grub_env_find again, only if NAME is not found at the first time.
10194 (mangle_data_slot_name): New function.
10195 (grub_env_set_data_slot): Likewise.
10196 (grub_env_get_data_slot): Likewise.
10197 (grub_env_unset_data_slot): Likewise.
10198
10199 * include/grub/env.h (grub_env_var_type): New enum.
10200 (GRUB_ENV_VAR_LOCAL): New constant.
10201 (GRUB_ENV_VAR_GLOBAL): Likewise.
10202 (GRUB_ENV_VAR_DATA): Likewise.
10203 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
10204 "type".
10205 (grub_env_set): Replace VAR with NAME for consistency.
10206 (grub_register_variable_hook): Likewise.
10207 (grub_env_export): Specify the name of the argument.
10208 (grub_env_set_data_slot): New prototype.
10209 (grub_env_get_data_slot): Likewise.
10210 (grub_env_unset_data_slot): Likewise.
10211
7f362539 102122006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10213
10214 Extend the loader so that GRUB can accept a loader which comes
10215 back to GRUB when a loaded image exits. Also, this change adds
10216 support for a chainloader on EFI.
f19dbdb7 10217
7f362539 10218 * term/efi/console.c: Include grub/misc.h.
10219 (grub_console_checkkey): Display a scan code on the top for
10220 debugging. This will be removed once the EFI port gets stable.
10221 Correct the scan code mapping.
10222
10223 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
10224 allocate memory from larger regions, in order to reduce the number
10225 of allocated regions. Otherwise, the MacOSX loader panics.
10226 (filter_memory_map): Avoid less than 1MB for compatibility with
10227 other loaders.
10228 (add_memory_regions): Allocate from the tail of a region, if
10229 possible, to avoid allocating a region near to 1MB, for the MacOSX
10230 loader.
10231
10232 * kern/efi/init.c (grub_efi_set_prefix): Specify
10233 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
10234
10235 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
10236 argument IMAGE_HANDLE and specify it to get a loaded image.
10237 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
10238 grub_efi_get_loaded_image.
fe6b695a 10239 (grub_efi_get_filename): Divide the length by the size of
7f362539 10240 grub_efi_char16_t.
10241 (grub_efi_get_device_path): New function.
10242 (grub_efi_print_device_path): Print End Device Path nodes. Divide
10243 the length by the size of grub_efi_char16_t for a file path device
10244 path node.
10245
10246 * kern/loader.c (grub_loader_noreturn): New variable.
10247 (grub_loader_set): Accept a new argument NORETURN. Set
10248 GRUB_LOADER_NORETURN to NORETURN.
10249 All callers changed.
10250 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
10251 grub_machine_fini.
10252
10253 * include/grub/efi/efi.h (grub_efi_get_device_path): New
10254 prototype.
10255 (grub_efi_get_loaded_image): Take an argument to specify an image
10256 handle.
10257
10258 * include/grub/loader.h (grub_loader_set): Added one more argument
10259 NORETURN.
10260
10261 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
10262 instead of grub_efi_open_protocol.
10263 (grub_efidisk_get_device_name): Likewise.
10264 (grub_efidisk_close): Print a newline.
10265 (grub_efidisk_get_device_handle): Fixed to use
10266 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
10267 GRUB_EFI_DEVICE_PATH_TYPE.
10268
10269 * disk/efi/efidisk.c (device_path_guid): Moved to ...
10270 * kern/efi/efi.c (device_path_guid): ... here.
10271
10272 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
10273 chain.mod.
10274 (kernel_mod_HEADERS): Added efi/disk.h.
10275 (_chain_mod_SOURCES): New variable.
10276 (_chain_mod_CFLAGS): Likewise.
10277 (_chain_mod_LDFLAGS): Likewise.
10278 (chain_mod_SOURCES): Likewise.
10279 (chain_mod_CFLAGS): Likewise.
10280 (chain_mod_LDFLAGS): Likewise.
10281
10282 * DISTLIST: Added include/grub/efi/chainloader.h,
10283 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
10284
10285 * include/grub/efi/chainloader.h: New file.
10286 * loader/efi/chainloader.c: Likewise.
10287 * loader/efi/chainloader_normal.c: Likewise.
10288
c0111d6e 102892006-04-30 Marco Gerards <marco@gnu.org>
10290
10291 * commands/configfile.c (grub_cmd_source): New function.
10292 (GRUB_MOD_INIT): Register the commands `source' and `.'.
10293 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
10294
df5341da 102952006-04-30 Marco Gerards <marco@gnu.org>
10296
10297 * normal/execute.c (grub_script_execute_cmd): Change the return
10298 type to `grub_err_t'. Correctly return the error.
10299 (grub_script_execute_cmdline): In case a command line is not a
10300 command or a function, try to interpret it as an assignment.
10301
f85934bd 103022006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10303
10304 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
10305 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
10306 skip a node whose name is obviously invalid as UTF-16,
10307 i.e. contains a NUL character. Stop the iteration when the last
10308 directory entry is found. Instead of using the return value of
10309 grub_hfsplus_btree_iterate_node, store the value in RET and use
10310 it, because the iterator can be stopped by the last directory
10311 entry.
10312
8f8a2cf8 103132006-04-30 Marco Gerards <marco@gnu.org>
10314
10315 * include/grub/env.h (grub_env_export): New prototype. Reported
10316 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
10317
a27e84ce 103182006-04-30 Marco Gerards <marco@gnu.org>
10319
10320 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
10321 size of the extents in a catalog file record.
10322
eaef0553 103232006-04-29 Marco Gerards <marco@gnu.org>
10324
10325 * commands/configfile.c (grub_cmd_configfile): Execute the
10326 configfile within its own context.
10327
10328 * include/grub/env.h (grub_env_context_open): New prototype.
10329 (grub_env_context_close): Likewise.
10330
10331 * kern/env.c (grub_env): Removed.
10332 (grub_env_sorted): Likewise.
10333 (grub_env_context): New variable.
10334 (grub_env_var_context): Likewise.
10335 (grub_env_find): Search both the active context and the global
10336 context.
10337 (grub_env_context_open): New function.
10338 (grub_env_context_close): Likewise.
10339 (grub_env_insert): Likewise.
10340 (grub_env_remove): Likewise.
10341 (grub_env_export): Likewise.
10342 (grub_env_set): Changed to use helper functions to avoid code
10343 duplication.
10344 (grub_env_iterate): Rewritten so both the current context and the
10345 global context are being used.
10346
10347 * normal/command.c (export_command): New function.
10348 (grub_command_init): Register the `export' function.
10349
7b455f4d 103502006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
10351
10352 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
10353 explicitly to suppress gcc's warnings.
10354 * fs/fat.c (grub_fat_find_dir): Likewise.
10355 (grub_fat_label): Likewise.
10356 * fs/xfs.c (grub_xfs_read_inode): Likewise.
10357 (grub_xfs_mount): Likewise.
10358 (grub_xfs_label): Likewise.
10359 * fs/affs.c (grub_affs_mount): Likewise.
10360 (grub_affs_label): Likewise.
10361 (grub_affs_iterate_dir): Likewise.
10362 * fs/sfs.c (grub_sfs_mount): Likewise.
10363 (grub_sfs_iterate_dir): Likewise.
10364 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
10365 * fs/hfs.c (grub_hfs_mount): Likewise.
10366 (grub_hfs_cmp_catkeys): Likewise.
10367 (grub_hfs_find_dir): Likewise.
10368 (grub_hfs_dir): Likewise.
10369 (grub_hfs_label): Likewise.
10370 * fs/jfs.c (grub_jfs_mount): Likewise.
10371 (grub_jfs_opendir): Likewise.
10372 (grub_jfs_getent): Likewise.
10373 (grub_jfs_lookup_symlink): Likewise.
10374 (grub_jfs_label): Likewise.
10375 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
10376 (grub_hfsplus_iterate_dir): Likewise.
10377 (grub_hfsplus_btree_iterate_node): Made static.
10378
10379 * util/grub-emu.c (prefix): New variable.
10380 (grub_machine_set_prefix): New function.
10381 (main): Do not set the environment variable "prefix" here. Only
10382 set PREFIX, which is used later by grub_machine_set_prefix.
10383
10384 * include/grub/video.h: Do not include grub/symbol.h.
10385 (grub_video_register): Not exported. This symbol is not defined in
10386 the kernel.
10387 (grub_video_unregister): Likewise.
10388 (grub_video_iterate): Likewise.
10389 (grub_video_setup): Likewise.
10390 (grub_video_restore): Likewise.
10391 (grub_video_get_info): Likewise.
10392 (grub_video_get_blit_format): Likewise.
10393 (grub_video_set_palette): Likewise.
10394 (grub_video_get_palette): Likewise.
10395 (grub_video_set_viewport): Likewise.
10396 (grub_video_get_viewport): Likewise.
10397 (grub_video_map_color): Likewise.
10398 (grub_video_map_rgb): Likewise.
10399 (grub_video_map_rgba): Likewise.
10400 (grub_video_fill_rect): Likewise.
10401 (grub_video_blit_glyph): Likewise.
10402 (grub_video_blit_bitmap): Likewise.
10403 (grub_video_blit_render_target): Likewise.
10404 (grub_video_scroll): Likewise.
10405 (grub_video_swap_buffers): Likewise.
10406 (grub_video_create_render_target): Likewise.
10407 (grub_video_delete_render_target): Likewise.
10408 (grub_video_set_active_render_target): Likewise.
10409
10410 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
10411 Undefined.
10412 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
10413
10414 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
10415 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10416 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10417 instead of $(srcdir)/genkernsyms.sh.
10418
10419 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
10420 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10421 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10422 instead of $(srcdir)/genkernsyms.sh.
10423
10424 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
10425 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10426 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10427 instead of $(srcdir)/genkernsyms.sh.
10428
10429 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
10430 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10431 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10432 instead of $(srcdir)/genkernsyms.sh.
10433
10434 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
10435 genkernsyms.sh.
10436
10437 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
10438 genkernsyms.sh.
10439 (gensymlist.sh): New target.
10440 (genkernsyms.sh): Likewise.
10441
10442 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
10443 genkernsyms.sh.in and gensymlist.sh.in.
10444
10445 * genkernsyms.sh: Removed.
10446 * gensymlist.sh: Likewise.
f19dbdb7 10447
7b455f4d 10448 * genkernsyms.sh.in: New file.
10449 * gensymlist.sh.in: Likewise.
10450
1885bb27 104512006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10452
10453 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
10454 clobber "prefix", since we may have already set it manually.
10455
71538dff 104562006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10457
10458 * kern/misc.c (abort): New alias for grub_abort.
10459
2965c7cc 104602006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
10461
10462 A new machine-specific function "grub_machine_set_prefix" is
10463 defined. This is called after loading modules, so that a prefix
10464 initialization can use modules. Also, this change adds an
10465 intensive debugging feature for the memory manager via the
10466 configure option "--enable-mm-debug".
f19dbdb7 10467
2965c7cc 10468 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
10469 PART.LEN.
10470
10471 * kern/sparc64/ieee1275/init.c (abort): Removed.
10472 (grub_stop): Likewise.
10473 (grub_exit): New function.
10474 (grub_set_prefix): Renamed to ...
10475 (grub_machine_set_prefix): ... this.
10476 (grub_machine_init): Do not call grub_set_prefix.
10477
10478 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
10479 (grub_machine_set_prefix): ... this.
10480 (grub_machine_init): Do not call grub_set_prefix.
10481
10482 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
10483 (grub_machine_init): Do not set the prefix here.
10484
10485 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
10486
10487 * kern/efi/init.c: Include grub/mm.h.
10488 (grub_efi_set_prefix): New function.
10489
10490 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
10491 (grub_efi_get_filename): New function.
10492 (grub_print_device_path): Renamed to ...
10493 (grub_efi_print_device_path): ... this.
10494
10495 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
10496 [MM_DEBUG] (grub_realloc): Likewise.
10497 [MM_DEBUG] (grub_free): Likewise.
10498 [MM_DEBUG] (grub_memalign): Likewise.
10499 [MM_DEBUG] (grub_mm_debug): New variable.
10500 [MM_DEBUG] (grub_debug_malloc): New function.
10501 [MM_DEBUG] (grub_debug_free): New function.
10502 [MM_DEBUG] (grub_debug_realloc): New function.
10503 [MM_DEBUG] (grub_debug_memalign): New function.
10504
10505 * kern/misc.c (grub_abort): Print a newline to distinguish
10506 the message.
10507
10508 * kern/main.c (grub_main): Call grub_machine_set_prefix and
10509 grub_set_root_dev after loading modules. This is necessary when
10510 setting a prefix depends on modules.
10511
10512 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
10513 (grub_efi_print_device_path): ... this.
10514 (grub_efi_get_filename): New prototype.
10515 (grub_efi_set_prefix): Likewise.
10516
10517 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
10518 and grub/disk.h.
10519 (grub_efidisk_get_device_handle): New prototype.
10520 (grub_efidisk_get_device_name): Likewise.
10521
10522 * include/grub/mm.h: Include config.h.
10523 (MM_DEBUG): Removed.
10524 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
10525 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
10526 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
10527 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
10528 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
10529 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
10530 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
10531 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
10532 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
10533
10534 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
10535
10536 * disk/efi/efidisk.c: Include grub/partition.h.
10537 (iterate_child_devices): New function.
10538 (add_device): First, compare only last device path nodes, so that
10539 devices are sorted by the types.
10540 (grub_efidisk_get_device_handle): New function.
10541 (grub_efidisk_get_device_name): Likewise.
10542
10543 * configure.ac (--enable-mm-debug): New option to enable the
10544 memory manager debugging feature. This makes the binary much
10545 bigger, so is disabled by default.
10546
9cacaa17 105472006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
10548
10549 Use grub_abort instead of grub_stop, and grub_exit must be
10550 define in each architecture now. Also, this change adds support
10551 for EFI disks.
f19dbdb7 10552
9cacaa17 10553 * util/i386/pc/grub-probefs.c: Include grub/term.h.
10554 (grub_getkey): New function.
10555 (grub_term_get_current): Likewise.
10556
10557 * util/i386/pc/grub-setup.c: Include grub/term.h.
10558 (grub_getkey): New function.
10559 (grub_term_get_current): Likewise.
10560
10561 * util/misc.c (grub_stop): Renamed to ...
10562 (grub_exit): ... this.
10563
10564 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
10565 (grub_exit): ... this.
10566 (grub_machine_init): Use grub_abort instead of abort.
10567 (grub_stop): Removed.
10568
10569 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
10570 abort.
10571
10572 * kern/i386/pc/startup.S (grub_exit): New function.
10573 (cold_reboot): New label.
10574
10575 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
10576 (grub_efi_init): Call grub_efidisk_init.
10577 (grub_efi_fini): Call grub_efidisk_fini.
10578
10579 * kern/efi/efi.c: Include grub/mm.h.
10580 (grub_efi_console_control_guid): Renamed to ...
10581 (console_control_guid): ... this.
10582 (grub_efi_loaded_image_guid): Renamed to ...
10583 (loaded_image_guid): ... this.
10584 (grub_efi_locate_handle): New function.
10585 (grub_efi_open_protocol): Likewise.
10586 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
10587 GRUB_EFI_CONSOLE_CONTROL_GUID.
10588 (grub_efi_exit): Removed.
10589 (grub_stop): Likewise.
10590 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
10591 (grub_exit): New function.
10592 (grub_print_device_path): Likewise.
10593
10594 * kern/rescue.c (grub_rescue_cmd_exit): New function.
10595 (grub_enter_rescue_mode): Register "exit".
10596
10597 * kern/misc.c (grub_real_dprintf): A cosmetic change.
10598 (grub_abort): New function.
10599
10600 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
10601
10602 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
10603
10604 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
10605
10606 * include/grub/efi/efi.h (grub_efi_exit): Removed.
10607 (grub_print_device_path): New prototype.
10608 (grub_efi_locate_handle): Likewise.
10609 (grub_efi_open_protocol): Likewise.
10610
10611 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
10612 * disk/efi/efidisk.c: Likewise.
10613
10614 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
10615
10616 * include/grub/efi/console_control.h
10617 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
10618
10619 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
10620 last 8 bytes as an array.
10621 (GRUB_EFI_DISK_IO_GUID): New macro.
10622 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
10623 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
10624 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
10625 grub_uint8_t.
10626 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
10627 (struct grub_efi_device_path): Rename the member "sub_type" to
10628 "subtype".
10629 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
10630 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
10631 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
10632 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
10633 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
10634 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
10635 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
10636 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
10637 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
10638 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
10639 (struct grub_efi_pci_device_path): New structure.
10640 (grub_efi_pci_device_path_t): New type.
10641 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
10642 (struct grub_efi_pccard_device_path): New structure.
10643 (grub_efi_pccard_device_path_t): New type.
10644 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
10645 (struct grub_efi_memory_mapped_device_path): New structure.
10646 (grub_efi_memory_mapped_device_path_t): New type.
10647 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
10648 (struct grub_efi_vendor_device_path): New structure.
10649 (grub_efi_vendor_device_path_t): New type.
10650 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
10651 (struct grub_efi_controller_device_path): New structure.
10652 (grub_efi_controller_device_path_t): New type.
10653 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
10654 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
10655 (struct grub_efi_acpi_device_path): New structure.
10656 (grub_efi_acpi_device_path_t): New type.
10657 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
10658 (struct grub_efi_expanded_acpi_device_path): New structure.
10659 (grub_efi_expanded_acpi_device_path_t): New type.
10660 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
10661 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
10662 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
10663 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
10664 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
10665 (struct grub_efi_atapi_device_path): New structure.
10666 (grub_efi_atapi_device_path_t): New type.
10667 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
10668 (struct grub_efi_fibre_channel_device_path): New structure.
10669 (grub_efi_fibre_channel_device_path_t): New type.
10670 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
10671 (struct grub_efi_1394_device_path): New structure.
10672 (grub_efi_1394_device_path_t): New type.
10673 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
10674 (struct grub_efi_usb_device_path): New structure.
10675 (grub_efi_usb_device_path_t): New type.
10676 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
10677 (struct grub_efi_usb_class_device_path): New structure.
10678 (grub_efi_usb_class_device_path_t): New type.
10679 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
10680 (struct grub_efi_i2o_device_path): New structure.
10681 (grub_efi_i2o_device_path_t): New type.
10682 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
10683 (struct grub_efi_mac_address_device_path): New structure.
10684 (grub_efi_mac_address_device_path_t): New type.
10685 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
10686 (struct grub_efi_ipv4_device_path): New structure.
10687 (grub_efi_ipv4_device_path_t): New type.
10688 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
10689 (struct grub_efi_ipv6_device_path): New structure.
10690 (grub_efi_ipv6_device_path_t): New type.
10691 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
10692 (struct grub_efi_infiniband_device_path): New structure.
10693 (grub_efi_infiniband_device_path_t): New type.
10694 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
10695 (struct grub_efi_uart_device_path): New structure.
10696 (grub_efi_uart_device_path_t): New type.
10697 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
10698 (struct grub_efi_vendor_messaging_device_path): New structure.
10699 (grub_efi_vendor_messaging_device_path_t): New type.
10700 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
10701 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
10702 (struct grub_efi_hard_drive_device_path): New structure.
10703 (grub_efi_hard_drive_device_path_t): New type.
10704 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
10705 (struct grub_efi_cdrom_device_path): New structure.
10706 (grub_efi_cdrom_device_path_t): New type.
10707 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
10708 (struct grub_efi_vendor_media_device_path): New structure.
10709 (grub_efi_vendor_media_device_path_t): New type.
10710 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
10711 (struct grub_efi_file_path_device_path): New structure.
10712 (grub_efi_file_path_device_path_t): New type.
10713 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
10714 (struct grub_efi_protocol_device_path): New structure.
10715 (grub_efi_protocol_device_path_t): New type.
10716 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
10717 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
10718 (struct grub_efi_bios_device_path): New structure.
10719 (grub_efi_bios_device_path_t): New type.
10720 (struct grub_efi_disk_io): New structure.
10721 (grub_efi_disk_io_t): New type.
10722 (struct grub_efi_block_io_media): New structure.
10723 (grub_efi_block_io_media_t): New type.
10724 (struct grub_efi_block_io): New structure.
10725 (grub_efi_block_io_t): New type.
10726
10727 * include/grub/misc.h (grub_stop): Removed.
10728 (grub_exit): New prototype.
10729 (grub_abort): Likewise.
10730
10731 * include/grub/disk.h (enum grub_disk_dev_id): Added
10732 GRUB_DISK_DEVICE_EFIDISK_ID.
10733
10734 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
10735 disk/efi/efidisk.c.
10736 (kernel_syms.lst): Remove the target if an error occurs.
10737
49986a9f 107382006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
10739
10740 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
10741 as it was simply too buggy.
10742
970d3b8a 107432006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
10744
10745 * kern/misc.c (grub_lltoa): New function.
10746 (grub_vsprintf): Added support for the long long suffix,
10747 i.e. "ll".
10748
ff04ec24 107492006-04-20 Hollis Blanchard <hollis@penguinppc.org>
10750
10751 * Makefile.in (LDFLAGS): Add variable.
10752 (LD): Remove variable.
10753 * configure.ac: Add -m32 to LDFLAGS.
10754 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
10755 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
10756 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
10757 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
10758 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
10759 variables.
10760 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
10761 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
10762 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
10763
37e5e1a4 107642006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
10765
10766 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
10767 length for unknown glyph.
10768
c352d8dd 107692006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
10770
2eab1c0d 10771 Add support for pre-loaded modules into the EFI port.
f19dbdb7 10772
2eab1c0d 10773 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
10774 completely. Accept one more argument DIR. The caller has changed.
10775
10776 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
10777
10778 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
10779 (grub_efi_loaded_image_guid): New variable.
10780 (grub_efi_get_loaded_image): New function.
10781 (grub_arch_modules_addr): Likewise.
10782
10783 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
10784 prototype.
10785
10786 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
10787 (struct grub_efi_loaded_image): New structure.
10788 (grub_efi_loaded_image_t): New type.
10789
107902006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 10791
c352d8dd 10792 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
10793 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
10794 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
10795
6d01d6b4 107962006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
10797
10798 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
10799
976a4ea0 108002006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
10801
10802 * DISTLIST: Added include/grub/efi/console.h,
10803 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
10804 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10805
10806 * include/grub/efi/console.h: New file.
10807 * include/grub/efi/time.h: Likewise.
10808 * include/grub/i386/efi/kernel.h: Likewise.
10809 * kern/efi/init.c: Likewise.
10810 * kern/efi/mm.c: Likewise.
10811 * term/efi/console.c: Likewise.
f19dbdb7 10812
976a4ea0 10813 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
10814 (grub_stop): Removed.
10815 (grub_get_rtc): Likewise.
10816 (grub_machine_init): Simply call grub_efi_init.
10817 (grub_machine_fini): Call grub_efi_fini.
10818
10819 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
10820 (grub_efi_output_string): Removed.
10821 (grub_efi_stall): New function.
10822 (grub_stop): Likewise.
10823 (grub_get_rtc): Likewise.
10824
10825 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
10826 (grub_efi_stall): New prototype.
10827 (grub_efi_allocate_pages): Likewise.
10828 (grub_efi_free_pages): Likewise.
10829 (grub_efi_get_memory_map): Likewise.
10830 (grub_efi_mm_init): Likewise.
10831 (grub_efi_mm_fini): Likewise.
10832 (grub_efi_init): Likewise.
10833 (grub_efi_fini): Likewise.
10834
10835 * include/grub/i386/efi/time.h: Do not include
10836 grub/symbol.h. Include grub/efi/time.h.
10837 (GRUB_TICKS_PER_SECOND): Removed.
10838 (grub_get_rtc): Likewise.
10839
10840 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
10841 Added padding. The EFI spec is buggy.
10842 (GRUB_EFI_BLACK): New macro.
10843 (GRUB_EFI_BLUE): Likewise.
10844 (GRUB_EFI_GREEN): Likewise.
10845 (GRUB_EFI_CYAN): Likewise.
10846 (GRUB_EFI_RED): Likewise.
10847 (GRUB_EFI_MAGENTA): Likewise.
10848 (GRUB_EFI_BROWN): Likewise.
10849 (GRUB_EFI_LIGHTGRAY): Likewise.
10850 (GRUB_EFI_BRIGHT): Likewise.
10851 (GRUB_EFI_DARKGRAY): Likewise.
10852 (GRUB_EFI_LIGHTBLUE): Likewise.
10853 (GRUB_EFI_LIGHTGREEN): Likewise.
10854 (GRUB_EFI_LIGHTCYAN): Likewise.
10855 (GRUB_EFI_LIGHTRED): Likewise.
10856 (GRUB_EFI_LIGHTMAGENTA): Likewise.
10857 (GRUB_EFI_YELLOW): Likewise.
10858 (GRUB_EFI_WHITE): Likewise.
10859 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
10860 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
10861 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
10862 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
10863 (GRUB_EFI_BACKGROUND_RED): Likewise.
10864 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
10865 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
10866 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
10867 (GRUB_EFI_TEXT_ATTR): Likewise.
10868
10869 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
10870 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10871 (kernel_mod_HEADERS): Added efi/time.h.
10872
83709125 108732006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
10874
10875 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
10876 include/grub/efi/api.h, include/grub/efi/console_control.h,
10877 include/grub/efi/efi.h, include/grub/efi/pe32.h,
10878 include/grub/i386/efi/time.h, kern/efi/efi.c,
10879 kern/i386/efi/init.c, kern/i386/efi/startup.S,
10880 and util/i386/efi/grub-mkimage.c.
10881
10882 * Makefile.in (RMKFILES): Added i386-efi.rmk.
10883
10884 * genmk.rb (PModule#rule): Do not export symbols if
10885 #{prefix}_EXPORTS is set to "no".
10886
10887 * conf/i386-efi.mk: New file.
10888 * conf/i386-efi.rmk: Likewise.
10889 * include/grub/efi/api.h: Likewise.
10890 * include/grub/efi/console_control.h: Likewise.
10891 * include/grub/efi/efi.h: Likewise.
10892 * include/grub/efi/pe32.h: Likewise.
10893 * include/grub/i386/efi/time.h: Likewise.
10894 * kern/efi/efi.c: Likewise.
10895 * kern/i386/efi/init.c: Likewise.
10896 * kern/i386/efi/startup.S: Likewise.
10897 * util/i386/efi/grub-mkimage.c: Likewise.
10898
108992006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 10900
10901 * include/grub/script.h: Include <grub/parser.h> and
10902 "grub_script.tab.h".
10903 (struct grub_lexer_param): New struct.
10904 (struct grub_parser_param): Likewise.
10905 (grub_script_create_arglist): Pass the state in an argument.
10906 (grub_script_add_arglist): Likewise.
10907 (grub_script_create_cmdline): Likewise.
10908 (grub_script_create_cmdblock): Likewise.
10909 (grub_script_create_cmdif): Likewise.
10910 (grub_script_create_cmdmenu): Likewise.
10911 (grub_script_add_cmd): Likewise.
10912 (grub_script_arg_add): Likewise.
10913 (grub_script_lexer_ref): Likewise.
10914 (grub_script_lexer_deref): Likewise.
10915 (grub_script_lexer_record_start): Likewise.
10916 (grub_script_lexer_record_stop): Likewise.
10917 (grub_script_mem_record): Likewise.
10918 (grub_script_mem_record_stop): Likewise.
10919 (grub_script_malloc): Likewise.
10920 (grub_script_yylex): Likewise.
10921 (grub_script_yyparse): Likewise.
10922 (grub_script_yyerror): Likewise.
10923 (grub_script_yylex): Likewise.
10924 (grub_script_lexer_init): Return the state.
10925
10926 * normal/lexer.c (grub_script_lexer_state): Removed variable.
10927 (grub_script_lexer_done): Likewise.
10928 (grub_script_lexer_getline): Likewise.
10929 (grub_script_lexer_refs): Likewise.
10930 (script): Likewise.
10931 (newscript): Likewise.
10932 (record): Likewise.
10933 (recording): Likewise.
10934 (recordpos): Likewise.
10935 (recordlen): Likewise.
10936 (grub_script_lexer_init): Return the state instead of setting
10937 global variables.
10938 (grub_script_lexer_ref): Use the newly added argument for state
10939 instead of globals.
10940 (grub_script_lexer_deref): Likewise.
10941 (grub_script_lexer_record_start): Likewise.
10942 (grub_script_lexer_record_stop): Likewise.
10943 (recordchar): Likewise.
10944 (nextchar): Likewise.
10945 (grub_script_yylex2): Likewise.
10946 (grub_script_yylex): Likewise.
10947 (grub_script_yyerror): Likewise.
10948
10949 * normal/parser.y (func_mem): Removed variable.
10950 (menu_entry): Likewise.
10951 (err): Likewise.
10952 (%lex-param): New parser option.
10953 (%parse-param): Likewise.
10954 (script): Always return the AST.
10955 (argument): Pass the state around.
10956 (arguments): Likewise.
10957 (grubcmd): Likewise.
10958 (commands): Likewise.
10959 (function): Likewise.
10960 (menuentry): Likewise.
10961 (if_statement): Likewise.
10962 (if): Likewise.
10963
10964 * normal/script.c (grub_script_memused): Removed variable.
10965 (grub_script_parsed): Likewise.
10966 (grub_script_malloc): Added a state argument. Use that instead of
10967 global variables.
10968 (grub_script_mem_record): Likewise.
10969 (grub_script_mem_record_stop): Likewise.
10970 (grub_script_arg_add): Likewise.
10971 (grub_script_add_arglist): Likewise.
10972 (grub_script_create_cmdline): Likewise.
10973 (grub_script_create_cmdif): Likewise.
10974 (grub_script_create_cmdmenu): Likewise.
10975 (grub_script_add_cmd): Likewise.
10976 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 10977
e2a8c904 109782006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 10979
10980 * normal/command.c (grub_command_init): Remove the title command.
10981
10982 * normal/lexer.c (grub_script_yylex): Renamed from this...
10983 (grub_script_yylex2): ... to this.
10984 (grub_script_yylex): New function. Temporary
10985 introduced to filter some tokens.
10986 (grub_script_yyerror): Print a newline.
10987
10988 * normal/main.c (read_config_file): Output information about the
10989 lines that contain errors. Wait for a key after all lines have
10990 been processed. Don't return an empty menu.
10991
10992 * normal/parser.y (func_mem): Don't initialize.
10993 (menu_entry): Likewise.
10994 (err): New variable.
10995 (script): Don't return anything when an error was encountered.
10996 (ws, returns): Removed rules.
10997 (argument): Disabled concatenated variable support.
10998 (arguments): Remove explicit separators.
10999 (grubcmd): Likewise.
11000 (function): Likewise.
11001 (menuentry): Likewise.
11002 (if): Likewise.
11003 (commands): Likewise. Add error handling.
11004
11005 * normal/script.c (grub_script_create_cmdline): If
11006 `grub_script_parsed' is 0, assume the parser encountered an error.
11007
c9a86192 110082006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
11009
11010 * configure.ac: Add support for EFI. Fix the typo
11011 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
11012
70f3b243 110132006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11014
11015 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
11016 foreign multibyte characters should be shown correctly.
11017
65f201ad 110182006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11019
11020 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
11021 calculation.
11022 (read_config_file): Made it to close file before returning.
11023
b4b93674 110242006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
11025
11026 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
11027 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
11028 video/i386/pc/vbefill.c.
11029
11030 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
11031 video/i386/pc/vbefill.c.
11032
11033 * include/grub/video.h (grub_video_blit_format): New enum.
11034 (grub_video_mode_info): Added new member blit_format.
11035 (grub_video_get_blit_format): New function prototype.
11036
11037 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
11038 function prototype.
11039 (grub_video_vbe_map_rgb): Likewise.
11040 (grub_video_vbe_unmap_color): Likewise.
11041
11042 * include/grub/i386/pc/vbeblit.h: New file.
11043
11044 * include/grub/i386/pc/vbefill.h: New file.
11045
11046 * video/video.c (grub_video_get_blit_format): New function.
11047 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
11048 (grub_video_vbe_map_rgb): Likewise.
11049 (grub_video_vbe_unmap_color): Likewise.
11050
11051 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
11052 optimized fills.
11053 (grub_video_vbe_blit_render_target): Changed to use more optimized
11054 blits.
11055 (grub_video_vbe_setup): Added detection for optimized settings.
11056 (grub_video_vbe_create_render_target): Likewise.
11057
11058 * video/i386/pc/vbeblit.c: New file.
11059
11060 * video/i386/pc/vbefill.c: New file.
11061
c2379b9c 110622006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
11063
11064 * font/manager.c (grub_font_get_glyph): Removed font fixup from
11065 here...
11066
11067 * util/unifont2pff.rb: ... and moved it to here. Improved argument
11068 parsing to support both hex and dec ranges. If filename was missing
11069 show usage information.
11070
bd0d7896 110712006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
11072
11073 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
11074 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
11075
11076 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
11077 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
11078 (video_mod_SOURCES): Added.
11079 (video_mod_CFLAGS): Likewise.
11080 (video_mod_LDFLAGS): Likewise.
11081 (gfxterm_mod_SOURCES): Likewise.
11082 (gfxterm_mod_CFLAGS): Likewise.
11083 (gfxterm_mod_LDFLAGS): Likewise.
11084 (videotest_mod_SOURCES): Likewise.
11085 (videotest_mod_CFLAGS): Likewise.
11086 (videotest_mod_LDFLAGS): Likewise.
11087 (vesafb_mod_SOURCES): Removed.
11088 (vesafb_mod_CFLAGS): Likewise.
11089 (vesafb_mod_LDFLAGS): Likewise.
11090 (vga_mod_SOURCES): Likewise.
11091 (vga_mod_CFLAGS): Likewise.
11092 (vga_mod_LDFLAGS): Likewise.
11093
11094 * commands/videotest.c: New file.
11095
11096 * font/manager.c (fill_with_default_glyph): Modified to use
11097 grub_font_glyph.
11098 (grub_font_get_glyph): Likewise.
11099 (fontmanager): Renamed from this...
11100 (font_manager): ... to this.
11101
11102 * include/grub/font.h (grub_font_glyph): Added new structure.
11103 (grub_font_get_glyph): Modified to use grub_font_glyph.
11104
11105 * include/grub/misc.h (grub_abs): Added as inline function.
11106
11107 * include/grub/video.h: New file.
11108
11109 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
11110 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
11111 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
11112 (grub_vbe_get_controller_info): Renamed from this...
11113 (grub_vbe_bios_get_controller_info): ... to this.
11114 (grub_vbe_get_mode_info): Renamed from this...
11115 (grub_vbe_bios_get_mode_info): ... to this.
11116 (grub_vbe_set_mode): Renamed from this...
11117 (grub_vbe_bios_set_mode): ... to this.
11118 (grub_vbe_get_mode): Renamed from this...
11119 (grub_vbe_bios_get_mode): ... to this.
11120 (grub_vbe_set_memory_window): Renamed from this...
11121 (grub_vbe_bios_set_memory_window): ... to this.
11122 (grub_vbe_get_memory_window): Renamed from this...
11123 (grub_vbe_bios_get_memory_window): ... to this.
11124 (grub_vbe_set_scanline_length): Renamed from this...
11125 (grub_vbe_set_scanline_length): ... to this.
11126 (grub_vbe_get_scanline_length): Renamed from this...
11127 (grub_vbe_bios_get_scanline_length): ... to this.
11128 (grub_vbe_set_display_start): Renamed from this...
11129 (grub_vbe_bios_set_display_start): ... to this.
11130 (grub_vbe_get_display_start): Renamed from this...
11131 (grub_vbe_bios_get_display_start): ... to this.
11132 (grub_vbe_set_palette_data): Renamed from this...
11133 (grub_vbe_bios_set_palette_data): ... to this.
11134 (grub_vbe_set_pixel_rgb): Removed.
11135 (grub_vbe_set_pixel_index): Likewise.
11136
11137 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
11138 from this...
11139 (grub_vbe_bios_get_controller_info): ... to this.
11140 (grub_vbe_get_mode_info): Renamed from this...
11141 (grub_vbe_bios_get_mode_info): ... to this.
11142 (grub_vbe_set_mode): Renamed from this...
11143 (grub_vbe_bios_set_mode): ... to this.
11144 (grub_vbe_get_mode): Renamed from this...
11145 (grub_vbe_bios_get_mode): ... to this.
11146 (grub_vbe_set_memory_window): Renamed from this...
11147 (grub_vbe_bios_set_memory_window): ... to this.
11148 (grub_vbe_get_memory_window): Renamed from this...
11149 (grub_vbe_bios_get_memory_window): ... to this.
11150 (grub_vbe_set_scanline_length): Renamed from this...
11151 (grub_vbe_set_scanline_length): ... to this.
11152 (grub_vbe_get_scanline_length): Renamed from this...
11153 (grub_vbe_bios_get_scanline_length): ... to this.
11154 (grub_vbe_set_display_start): Renamed from this...
11155 (grub_vbe_bios_set_display_start): ... to this.
11156 (grub_vbe_get_display_start): Renamed from this...
11157 (grub_vbe_bios_get_display_start): ... to this.
11158 (grub_vbe_set_palette_data): Renamed from this...
11159 (grub_vbe_bios_set_palette_data): ... to this.
11160 (grub_vbe_bios_get_controller_info): Fixed problem with registers
11161 getting corrupted after calling it. Added more pushes and pops.
11162 (grub_vbe_bios_set_mode): Likewise.
11163 (grub_vbe_bios_get_mode): Likewise.
11164 (grub_vbe_bios_get_memory_window): Likewise.
11165 (grub_vbe_bios_set_scanline_length): Likewise.
11166 (grub_vbe_bios_get_scanline_length): Likewise.
11167 (grub_vbe_bios_get_display_start): Likewise.
11168 (grub_vbe_bios_set_palette_data): Likewise.
11169
11170 * normal/cmdline.c (cl_set_pos): Refresh the screen.
11171 (cl_insert): Likewise.
11172 (cl_delete): Likewise.
11173
11174 * term/gfxterm.c: New file.
11175
11176 * term/i386/pc/vesafb.c: Removed file.
11177
11178 * video/video.c: New file.
11179
11180 * video/i386/pc/vbe.c (real2pm): Added new function.
11181 (grub_video_vbe_draw_pixel): Likewise.
11182 (grub_video_vbe_get_video_ptr): Likewise.
11183 (grub_video_vbe_get_pixel): Likewise
11184 (grub_video_vbe_init): Likewise.
11185 (grub_video_vbe_fini): Likewise.
11186 (grub_video_vbe_setup): Likewise.
11187 (grub_video_vbe_get_info): Likewise.
11188 (grub_video_vbe_set_palette): Likewise.
11189 (grub_video_vbe_get_palette): Likewise.
11190 (grub_video_vbe_set_viewport): Likewise.
11191 (grub_video_vbe_get_viewport): Likewise.
11192 (grub_video_vbe_map_color): Likewise.
11193 (grub_video_vbe_map_rgb): Likewise.
11194 (grub_video_vbe_map_rgba): Likewise.
11195 (grub_video_vbe_unmap_color): Likewise.
11196 (grub_video_vbe_fill_rect): Likewise.
11197 (grub_video_vbe_blit_glyph): Likewise.
11198 (grub_video_vbe_blit_bitmap): Likewise.
11199 (grub_video_vbe_blit_render_target): Likewise.
11200 (grub_video_vbe_scroll): Likewise.
11201 (grub_video_vbe_swap_buffers): Likewise.
11202 (grub_video_vbe_create_render_target): Likewise.
11203 (grub_video_vbe_delete_render_target): Likewise.
11204 (grub_video_vbe_set_active_render_target): Likewise.
11205 (grub_vbe_set_pixel_rgb): Remove function.
11206 (grub_vbe_set_pixel_index): Likewise.
11207 (index_color_mode): Remove static variable.
11208 (active_mode): Likewise.
11209 (framebuffer): Likewise.
11210 (bytes_per_scan_line): Likewise.
11211 (grub_video_vbe_adapter): Added new static variable.
11212 (framebuffer): Likewise.
11213 (render_target): Likewise.
11214 (initial_mode): Likewise.
11215 (mode_in_use): Likewise.
11216 (mode_list): Likewise.
11217
5f97350b 112182006-03-10 Marco Gerards <marco@gnu.org>
11219
11220 * configure.ac (AC_INIT): Bumped to 1.93.
11221
11222 * DISTLIST: Added `include/grub/hfs.h'.
11223
a3c5c6f8 112242006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
11225
11226 * boot/i386/pc/boot.S (general_error): Before looping, try INT
11227 18H, which might help the BIOS falling back to next boot media.
11228
6de53d26 112292006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
11230
11231 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
11232 Poe Chen <poe.poechen@gmail.com>.
11233
77c4a393 112342006-01-17 Marco Gerards <marco@gnu.org>
11235
11236 * include/grub/normal.h: Include <grub/script.h>.
11237 (grub_command_list): Removed struct.
11238 (grub_command_list_t): Removed type.
11239 (grub_menu_entry): Remove members `num' and `command_list'. Add
11240 members `commands' and `sourcecode'.
11241 * include/grub/script.h: Add inclusion guards.
11242 (grub_script_cmd_menuentry): New struct.
11243 (grub_script_execute_menuentry): New prototype.
11244 (grub_script_lexer_record_start): Likewise.
11245 (grub_script_lexer_record_stop): Likewise.
11246 * normal/execute.c (grub_script_execute_menuentry): New function.
11247 * normal/lexer.c (record, recording, recordpos, recordlen): New
11248 variables.
11249 (grub_script_lexer_record_start): New function.
11250 (grub_script_lexer_record_stop): Likewise.
11251 (recordchar): Likewise.
11252 (nextchar): Likewise.
11253 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
11254 2048 as the buffer size. Add the tokens `menuentry' and `@'.
11255 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
11256 (current_menu): New variable.
11257 (free_menu): Mainly rewritten.
11258 (grub_normal_menu_addentry): New function.
11259 (read_config_file): Rewritten.
11260 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 11261 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 11262 the menu entry.
11263 (run): Mainly rewritten.
11264 * normal/parser.y (menu_entry): New variable.
11265 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
11266 (menuentry): New rule.
11267 (command): Add `menuentry'.
11268 (if_statement): Allow additional returns before `fi'.
11269 * normal/script.c (grub_script_create_cmdmenu): New function.
11270
144f1f98 112712006-01-03 Marco Gerards <marco@gnu.org>
11272
11273 * INSTALL: GNU Bison is required.
11274 * configure.ac: Rewritten the test to detect Bison.
11275 * Makefile.in (YACC): New variable. Reported by Xun Sun
11276 <xun.sun.cn@gmail.com>.
11277
af4b2d89 112782006-01-03 Marco Gerards <marco@gnu.org>
11279
11280 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
11281 the HFS+ filesystem to filesystem blocks.
11282 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
11283 GCC warning is silenced.
11284
15643b71 112852006-01-03 Marco Gerards <marco@gnu.org>
11286
11287 * partmap/apple.c (apple_partition_map_iterate): Convert the data
11288 read from disk from big endian to host byte order.
11289
00905879 112902006-01-03 Hollis Blanchard <hollis@penguinppc.org>
11291
11292 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
11293 documentation.
11294 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
11295 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
11296 embedded HFS+ filesystem.
11297 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
11298 (grub_hfs_sblock): Move from here...
11299 * include/grub/hfs.h: To here... New file.
11300 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
11301 documentation.
11302 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
11303 New macros.
11304 (grub_hfsplus_volheader): Change type of member `magic' to
11305 `grub_uint16_t'.
11306 (grub_hfsplus_data): Add new member `embedded_offset'.
11307 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
11308 returned block.
11309 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
11310 Calculate the offset.
11311
8899bc3e 113122005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11313
11314 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
11315 Removed.
11316 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
11317
ae8c0277 113182005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11319
11320 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
11321 ENV->NAME is NULL after allocating ENV->VALUE.
11322
07084456 113232005-12-25 Marco Gerards <marco@gnu.org>
11324
11325 * kern/env.c (grub_env_set): Rewritten the error handling code.
11326
4750f5f1 113272005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11328
11329 * geninit.sh: Made more robust, and more portable.
11330
50214199 113312005-12-25 Marco Gerards <marco@gnu.org>
11332
11333 Add support for Apple HFS+ filesystems.
f19dbdb7 11334
50214199 11335 * fs/hfsplus.c: New file.
11336
11337 * DISTLIST: Added `fs/hfsplus.c'.
11338
11339 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
11340 (hfsplus_mod_SOURCES): New variable.
11341 (hfsplus_mod_CFLAGS): Likewise.
11342 (hfsplus_mod_LDFLAGS): Likewise.
11343 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
11344 (grub_setup_SOURCES): Likewise.
11345 (grub_mkdevicemap_SOURCES): Likewise.
11346 (grub_emu_SOURCES): Likewise.
11347 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11348
11349 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
11350
11351 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
11352
befaed6c 113532005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11354
11355 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
11356 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
11357 include/grub/parser.h, include/grub/script.h, kern/parser.c,
11358 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
11359 normal/lexer.c, normal/parser.y, normal/script.c, and
11360 partmap/gpt.c.
11361 Removed kern/sparc64/cache.c.
11362
11363 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
11364 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
11365 grub_emu_init.c.
11366
11367 * configure.ac (AC_INIT): Bumped to 1.92.
11368
6a124103 113692005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
11370
11371 * kern/err.c (grub_error_push): Added new function to support error
11372 stacks.
11373 (grub_error_pop): Likewise.
11374 (grub_error_stack_items): New local variable to support error stacks.
11375 (grub_error_stack_pos): Likewise.
11376 (grub_error_stack_assert): Likewise.
11377 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
11378 stack depth.
11379 (grub_print_error): Added support to print errors from error stack.
11380
11381 * include/grub/err.h (grub_error_push): Added function prototype.
11382 (grub_error_pop): Likewise.
11383
be973c1b 113842005-12-09 Hollis Blanchard <hollis@penguinppc.org>
11385
11386 * configure.ac: Accept `powerpc64' as host_cpu.
11387 (amd64): Rename to `biarch32'.
11388
11389 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
11390 non-cacheline-aligned addresses.
11391
11392 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
11393 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
11394 if `size' is non-zero.
11395
b04216ab 113962005-12-03 Marco Gerards <mgerards@xs4all.nl>
11397
11398 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
11399 and `cd' to make sure the filename is not prefixed with a
11400 directory name.
11401 (pkgdata_MODULES): Add `gpt.mod'.
11402 (gpt_mod_SOURCES): New variable.
11403 (gpt_mod_CFLAGS): Likewise.
11404 (gpt_mod_LDFLAGS): Likewise.
11405
11406 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
11407
11408 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
11409 New macro.
11410
11411 * partmap/gpt.c: New file.
11412
11413 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
11414 GPT partition map is detected.
11415
41730ed9 114162005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
11417
11418 * commands/i386/pc/play.c: New file.
11419 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
11420 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
11421 macros.
f19dbdb7 11422
95dc3643 114232005-11-27 Marco Gerards <mgerards@xs4all.nl>
11424
11425 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
11426 ((unused))' to silence gcc warning.
11427
1569ec51 114282005-11-26 Hollis Blanchard <hollis@penguinppc.org>
11429
11430 * configure.ac: Correct `AC_PROG_YACC' test.
11431
9abde152 114322005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11433
11434 * util/powerpc/ieee1275/grub-install.in: Run the mount point
11435 check before installing files.
11436
44b83271 114372005-11-22 Mike Small <smallm@panix.com>
11438
11439 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
11440 number regex so multidigit numbers are recognized correctly.
11441
114422005-11-22 Mike Small <smallm@panix.com>
11443
11444 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
11445 debugging message before attempting to claim memory.
11446 (grub_rescue_cmd_initrd): Add a claim debugging message and try
11447 multiple addresses in case of failure.
11448
9c12956b 114492005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11450
11451 * term/tparm.c (get_space): Remove empty `if' statement.
11452
11453 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
11454
11455 * kern/parser.c (check_varstate): Rename `state' to 's'.
11456
aeaf81d9 114572005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11458
11459 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
11460 variable definitions to the beginning of each function. Sort stack
11461 variables by size.
11462 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
11463 `buf' argument to `char *'.
11464
79bbb63f 114652005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11466
11467 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
11468 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11469 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 11470 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11471 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11472 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11473 configfile.mod, search.mod, gzio.mod and test.mod.
11474 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11475 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11476 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11477 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11478 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11479 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11480 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11481 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11482 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11483 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11484 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11485 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11486 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11487 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11488 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11489 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11490 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11491 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11492 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11493 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11494 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11495 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11496 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
11497
11498 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
11499 `grep --include'.
11500 (pkgdata_MODULES): Add test.mod.
11501
233b1628 115022005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11503
11504 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
11505 appending to variables with "+=".
11506 (PModule): Use full pathname to generate *.lst filenames.
11507
11508 * Makefile.in: Fixed list rules moved from genmk.rb.
11509 (.DELETE_ON_ERROR): New special target.
11510 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
11511
11512 * conf/i386-pc.rmk: Include conf/common.mk.
11513 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11514 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 11515 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11516 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11517 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11518 configfile.mod, search.mod, gzio.mod and test.mod.
11519 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11520 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11521 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11522 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11523 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11524 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11525 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11526 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11527 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11528 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11529 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11530 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11531 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11532 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11533 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11534 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11535 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11536 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11537 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11538 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11539 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11540 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11541 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
11542 here...
11543 * conf/common.rmk: ... to here. New file.
11544
11545 * conf/common.mk: New file.
11546
16f820c8 115472005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
11548
11549 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
11550 (grub_script.tab.c): ... here.
11551
11552 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
11553 (grub_script.tab.c): ... here.
11554
11555 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
11556 (grub_script.tab.c): ... here.
11557
11558 * normal/command.c (grub_command_find): Fixed a memory leak of
11559 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
11560
63ba1554 115612005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11562
11563 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
11564 "@" which marks the start of a comment on ARM.
11565 (VARIABLE): Likewise.
11566
7f67dc13 115672005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11568
79bbb63f 11569 Add support for Linux/ADFS partition tables.
7f67dc13 11570
11571 * partmap/acorn.c: New file.
11572
11573 * include/grub/acorn_filecore.h: Likewise.
11574
11575 * DISTLIST: Added `partmap/acorn.c' and
11576 `include/grub/acorn_filecore.h'.
f19dbdb7 11577
7f67dc13 11578 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11579 `partmap/acorn.c'.
11580 (pkgdata_MODULES): Add `acorn.mod'.
11581 (acorn_mod_SOURCES): New variable.
11582 (acorn_mod_CFLAGS): Likewise.
11583
11584 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11585 `partmap/acorn.c'.
11586 (pkgdata_MODULES): Add `acorn.mod'.
11587 (acorn_mod_SOURCES): New variable.
11588 (acorn_mod_CFLAGS): Likewise.
11589
11590 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
11591 (pkgdata_MODULES): Add `acorn.mod'.
11592 (acorn_mod_SOURCES): New variable.
11593 (acorn_mod_CFLAGS): Likewise.
11594 (acorn_mod_LDFLAGS): Likewise.
11595
11596 * include/types.h (grub_disk_addr_t): New typedef.
11597
6d099807 115982005-11-13 Marco Gerards <mgerards@xs4all.nl>
11599
11600 * geninit.sh: New file.
11601
11602 * geninitheader.sh: Likewise.
11603
11604 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
11605 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
11606 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
11607 * commands/configfile.c (grub_configfile_init)
11608 (grub_configfile_fini): Likewise.
11609 * commands/default.c (grub_default_init, grub_default_fini):
11610 Likewise.
11611 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
11612 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
11613 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
11614 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
11615 Likewise.
11616 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
11617 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
11618 Likewise.
11619 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 11620 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 11621 Likewise.
11622 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
11623 Likewise.
fe6b695a 11624 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 11625 Likewise.
11626 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
11627 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
11628 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
11629 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
11630 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
11631 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
11632 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
11633 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
11634 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
11635 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
11636 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
11637 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
11638 * partmap/amiga.c (grub_amiga_partition_map_init)
11639 (grub_amiga_partition_map_fini): Likewise.
11640 * partmap/apple.c (grub_apple_partition_map_init)
11641 (grub_apple_partition_map_fini): Likewise.
11642 * partmap/pc.c (grub_pc_partition_map_init)
11643 (grub_pc_partition_map_fini): Likewise.
11644 * partmap/sun.c (grub_sun_partition_map_init,
11645 grub_sun_partition_map_fini): Likewise.
11646 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
11647 Likewise.
11648
11649 * util/grub-emu.c: Include <grub_modules_init.h>.
11650 (main): Don't initialize and de-initialize any modules directly,
11651 use `grub_init_all' and `grub_fini_all' instead.
11652
11653 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
11654 `grub_vesafb_mod_init'.
11655 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
11656 all users.
11657 * term/i386/pc/vga.c (grub_vga_init): Renamed to
11658 `grub_vga_mod_init'. Updated all users.
11659 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 11660
6d099807 11661 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
11662 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
11663 rules.
11664
11665 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
11666 Generate a function to initialize the module in utilities.
11667 Updated all callers.
11668 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
11669 initialize the module in utilities. Updated all callers.
11670
9046bcf0 116712005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11672
11673 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
11674 escape sequence and a literal ^L to clear the screen.
11675
11676 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
11677 when returning from Open Firmware.
11678
d13ea639 116792005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11680
11681 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
11682 (grub_ofconsole_height): Likewise.
11683 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
11684 manually insert a '\n'.
11685 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
11686 `grub_ofconsole_height'. Return early if these are already set.
11687
a8fcf206 116882005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
11689
11690 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11691 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
11692 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
11693 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
11694 and `normal/script.c'.
11695 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11696 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11697 (test_mod_SOURCES): New variable.
11698 (test_mod_CFLAGS): Likewise.
11699 (test_mod_LDFLAGS): Likewise.
11700 (pkgdata_MODULES): Add `test.mod'.
11701 (grub_script.tab.c): New rule.
11702 (grub_script.tab.h): Likewise.
11703
b6b32745 117042005-11-07 Marco Gerards <mgerards@xs4all.nl>
11705
11706 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11707 `commands/test.c', `normal/execute.c', `normal/lexer.c',
11708 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11709 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11710 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11711 (test_mod_SOURCES): New variable.
11712 (test_mod_CFLAGS): Likewise.
11713 (pkgdata_MODULES): Add `test.mod'.
11714 (grub_script.tab.c): New rule.
11715 (grub_script.tab.h): Likewise.
11716
daac212a 117172005-11-06 Marco Gerards <mgerards@xs4all.nl>
11718
11719 Add initial scripting support.
11720
11721 * commands/test.c: New file.
11722 * include/grub/script.h: Likewise.
11723 * normal/execute.c: Likewise.
11724 * normal/function.c: Likewise.
11725 * normal/lexer.c: Likewise.
11726 * normal/parser.y: Likewise.
11727 * normal/script.c: Likewise.
11728
11729 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 11730
daac212a 11731 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
11732 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
11733 `normal/function.c' and `normal/script.c'.
11734 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11735 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 11736 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
11737 variables.
daac212a 11738 (pkgdata_MODULES): Add `test.mod'.
11739 (grub_script.tab.c): New rule.
11740 (grub_script.tab.h): Likewise.
11741
11742 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
11743
11744 * include/grub/normal.h (grub_test_init): New prototype.
11745 (grub_test_fini): Likewise.
f19dbdb7 11746
daac212a 11747 * normal/command.c: Include <grub/script.h>.
11748 (grub_command_execute): Rewritten.
f19dbdb7 11749
daac212a 11750 * util/grub-emu.c (main): Call `grub_test_init' and
11751 `grub_test_fini'.
11752
77500b2b 117532005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11754
11755 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
11756 to 0.
11757 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
11758 there are no pending characters.
11759
e45deb9e 117602005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11761
11762 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
11763 `grub_strndup' to drop device arguments. Replace unnecessary
11764 `grub_strndup' with `grub_strdup'.
11765
4ce32619 117662005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11767
11768 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
11769 `debug' environment variable has been set.
11770
117712005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11772
4ce32619 11773 * Makefile.in (install-local): Use $(DATA).
11774 (uninstall): Likewise.
11775 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
11776 (sbin_UTILITIES): ... to here.
11777 (sbin_SCRIPTS): New variable.
11778 (grub_install_SOURCES): New variable.
11779 * util/powerpc/ieee1275/grub-install.in: New file.
11780 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
11781 variable.
11782 (add_segments): Call `grub_util_get_path'.
11783
25fe6f03 117842005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
11785
11786 From Timothy Baldwin:
11787 * commands/ls.c (grub_ls_list_files): Close FILE with
11788 grub_file_close.
11789 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
11790
04ccf3ec 117912005-10-24 Marco Gerards <mgerards@xs4all.nl>
11792
11793 * include/grub/parser.h: New file.
11794
11795 * kern/parser.c: Likewise.
11796
11797 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
11798 (grub_setup_SOURCES): Likewise.
11799 (grub_probefs_SOURCES): Likewise.
11800 (grub_emu_SOURCES): Likewise.
11801 (kernel_img_HEADERS): Add `parser.h'.
11802
11803 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11804 (grub_emu_SOURCES): Add `kern/parser.c'.
11805 (grubof_SOURCES): Likewise.
11806
11807 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11808 (grubof_SOURCES): Add `kern/parser.c'.
11809
11810 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
11811
11812 * kern/misc.c (grub_split_cmdline): Removed function.
11813
11814 * kern/rescue.c: Include <grub/parser.h>.
11815 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
11816 of `grub_split_cmdline'.
11817
11818 * normal/command.c: Include <grub/parser.h>.
11819 (grub_command_execute): Use `grub_parser_split_cmdline' instead
11820 of `grub_split_cmdline'.
11821
11822 * normal/completion.c: Include <grub/parser.h>.
11823 (cmdline_state): New variable.
11824 (iterate_dir): End the filename with a quote depending on the
11825 command line state.
11826 (get_state): new function.
11827 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
11828 split the arguments and determine the current argument. When the
11829 argument string is not quoted, escape all spaces.
11830
6d8f4b0e 118312005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11832
11833 * normal/sparc64/setjmp.S: New file.
11834
15cf03ed 118352005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11836
11837 * include/grub/sparc64/libgcc.h: New file.
11838 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
11839 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
11840 normal/sparc64/setjmp.c.
11841
03e8661a 118422005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11843
11844 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
11845 * kern/sparc64/cache.S: New file.
11846 * kern/sparc64/cache.c: Removed.
11847 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
11848 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
11849 -mtune=ultrasparc.
11850 (COMMON_LDFLAGS): Add -melf64_sparc.
11851 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
11852 (grubof_SOURCES): Use cache.S instead of cache.c.
11853 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
11854 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
11855 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
11856 commented though.
11857 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
11858 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
11859 (linux_mod_CFLAGS): Commented out.
11860 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
11861 out because module isn't built.
11862 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
11863 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
11864 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
11865 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
11866 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
11867 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
11868 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
11869 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
11870 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
11871 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
11872 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11873 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11874 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
11875 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
11876
34eeec8a 118772005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
11878
11879 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
11880 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
11881 longer, because HFS should not be used on PC.
11882
708367a3 118832005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11884
11885 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
11886 consistently within the loop.
11887
6fa1251a 118882005-10-15 Marco Gerards <mgerards@xs4all.nl>
11889
11890 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
11891 directory can not be read.
11892
4801580b 118932005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11894
11895 * configure.ac (AC_INIT): Increase the version number to 1.91.
11896
11897 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
11898 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
11899 term/i386/pc/serial.c.
11900
219ad426 119012005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11902
11903 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
11904 file size must be permitted.
11905
11906 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
11907 between %ah and %al.
11908
688e5699 119092005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11910
11911 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
11912 grub_uint64_t.
11913 Call the hook with a NUL-terminated filename.
11914 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
11915 grub_cpu_to_be32.
11916
11917 * kern/term.c (cursor_state): New variable.
11918 (grub_term_set_current): Reset the cursor state on a new
11919 terminal.
11920 (grub_setcursor): Rewritten to use CURSOR_STATE.
11921 (grub_getcursor): New function.
11922
11923 * include/grub/term.h (grub_getcursor): New prototype.
11924
11925 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
11926 integers on ARM. Reported by Timothy Baldwin
11927 <T.E.Baldwin99@members.leeds.ac.uk>.
11928
bb34586c 119292005-10-11 Marco Gerards <mgerards@xs4all.nl>
11930
11931 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
11932 allocated.
11933 (grub_sfs_dir): Likewise.
11934
9a909877 119352005-10-09 Marco Gerards <mgerards@xs4all.nl>
11936
11937 Add support for the SFS filesystem.
11938
11939 * fs/sfs.c: New file.
11940
11941 * DISTLIST: Added `fs/sfs.c'.
11942
11943 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
11944 (grub_probefs_SOURCES): Likewise.
11945 (grub_emu_SOURCES): Likewise.
11946 (pkgdata_MODULES): Add `sfs.mod'.
11947 (sfs_mod_SOURCES): New variable.
11948 (sfs_mod_CFLAGS): Likewise.
11949 (sfs_mod_LDFLAGS): Likewise.
11950
11951 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
11952 (pkgdata_MODULES): Add `sfs.mod'.
11953 (sfs_mod_SOURCES): New variable.
11954 (sfs_mod_CFLAGS): Likewise.
11955
11956 * util/grub-emu.c (main): Call `grub_sfs_init' and
11957 `grub_sfs_fini'.
11958
11959 * include/grub/fs.h (grub_sfs_init): New prototype.
11960 (grub_sfs_fini): Likewise.
11961
57bdbde3 119622005-10-07 Marco Gerards <mgerards@xs4all.nl>
11963
11964 Add support for the AFFS filesystem.
11965
11966 * fs/affs.c: New file.
11967
11968 * DISTLIST: Added `fs/affs.c'.
11969
11970 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
11971 (grub_probefs_SOURCES): Likewise.
11972 (grub_emu_SOURCES): Likewise.
11973 (pkgdata_MODULES): Add `affs.mod'.
11974 (affs_mod_SOURCES): New variable.
11975 (affs_mod_CFLAGS): Likewise.
11976 (affs_mod_LDFLAGS): Likewise.
11977
11978 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
11979 (pkgdata_MODULES): Add `affs.mod'.
11980 (affs_mod_SOURCES): New variable.
11981 (affs_mod_CFLAGS): Likewise.
11982
11983 * util/grub-emu.c (main): Call `grub_affs_init' and
11984 `grub_affs_fini'.
11985
11986 * include/grub/fs.h (grub_affs_init): New prototype.
11987 (grub_affs_fini): Likewise.
11988
047b67e0 119892005-10-01 Marco Gerards <mgerards@xs4all.nl>
11990
11991 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
11992
59b8208a 119932005-10-01 Marco Gerards <mgerards@xs4all.nl>
11994
11995 * configure.ac: Accept `x86_64' as host_cpu. In that case add
11996 `-m32' to CFLAGS.
11997
11998 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
11999 linking.
f19dbdb7 12000
59b8208a 12001 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
12002 (COMMON_LDFLAGS): New variable.
12003 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
12004 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
12005 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
12006 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
12007 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
12008 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
12009 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
12010 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
12011 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
12012 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
12013 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
12014 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
12015 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
12016 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
12017 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
12018 variables.
12019 (normal_mod_ASFLAGS): Add `-m32'.
12020
12021 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
12022 (grub_host_size_t, grub_host_ssize_t): New types.
12023 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 12024 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 12025 `GRUB_HOST_SIZEOF_VOID_P'.
12026
12027 * include/grub/kernel.h (struct grub_module_header): Type of
12028 member offset changed to `grub_host_off_t'. Type of member size
12029 changed to `grub_host_size_t'.
12030 (struct grub_module_info): Type of member offset changed to
12031 `grub_host_off_t'. Type of member size changed to
12032 `grub_host_size_t'.
12033
b4093103 120342005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
12035
12036 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 12037
b4093103 12038 * kern/i386/pc/startup.S (multiboot_header): New label.
12039 (multiboot_entry): Likewise.
12040 (multiboot_trampoline): Likewise.
12041
12042 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
12043 Increased to 0x4A0.
12044
12045 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
12046 put parentheses after a question mark.
12047 [!GRUB_UTIL] (my_mod): New variable.
12048
12049 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
12050
b2499b29 120512005-09-28 Marco Gerards <mgerards@xs4all.nl>
12052
12053 Adds support for the XFS filesystem. Btrees are not supported
12054 yet.
12055
12056 * fs/xfs.c: New file.
12057
12058 * DISTLIST: Added `fs/xfs.c'.
12059
12060 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
12061 (grub_probefs_SOURCES): Likewise.
12062 (grub_emu_SOURCES): Likewise.
12063 (pkgdata_MODULES): Add `xfs.mod'.
12064 (xfs_mod_SOURCES): New variable.
12065 (xfs_mod_CFLAGS): Likewise.
12066
12067 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
12068 (pkgdata_MODULES): Add `xfs.mod'.
12069 (xfs_mod_SOURCES): New variable.
12070 (xfs_mod_CFLAGS): Likewise.
12071
12072 * util/grub-emu.c (main): Call `grub_xfs_init' and
12073 `grub_xfs_fini'.
12074
12075 * include/grub/fs.h (grub_xfs_init): New prototype.
12076 (grub_xfs_fini): Likewise.
12077
f19dbdb7 12078
83d37a62 120792005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
12080
12081 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
12082 color modes, allow greater than 16 colors to be configured as
12083 a default palette.
12084
47d2d65e 120852005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
12086
12087 * normal/completion.c (complete_arguments): Add the qualifier
12088 const into OPTIONS.
12089
12090 From Omniflux <omniflux+lists@omniflux.com>:
12091 * include/grub/terminfo.h: New file.
12092 * include/grub/tparm.h: Likewise.
12093 * include/grub/i386/pc/serial.h: Likewise.
12094 * term/terminfo.c: Likewise.
12095 * term/tparm.c: Likewise.
12096 * term/i386/pc/serial.c: Likewise.
12097 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
12098 serial.mod.
12099 (terminfo_mod_SOURCES): New variable.
12100 (terminfo_mod_CFLAGS): Likewise.
12101 (serial_mod_SOURCES): Likewise.
12102 (serial_mod_CFLAGS): Likewise.
12103
48b671ff 121042005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
12105
12106 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
12107 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
12108 and kern/powerpc/ieee1275/cmain.c, respectively.
12109
12110 * boot/powerpc/ieee1275/crt0.S: Moved to ...
12111 * kern/powerpc/ieee1275/crt0.S: ... here.
12112
12113 * boot/powerpc/ieee1275/cmain.c: Moved to ...
12114 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 12115
48b671ff 12116 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
12117 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
12118 instead of boot/powerpc/ieee1275/crt0.S and
12119 boot/powerpc/ieee1275/cmain.c, respectively.
12120
12121 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
12122 sectors. It was not used anyway.
12123
09fc77a7 121242005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12125
12126 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
12127 `unused parameter' warning.
12128
003789c7 121292005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12130
12131 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
12132 function.
12133 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
12134 getcharwidth.
12135
67f44c86 121362005-08-28 Marco Gerards <metgerards@student.han.nl>
12137
12138 * include/grub/normal.h (enum grub_completion_type): Added
12139 `GRUB_COMPLETION_TYPE_ARGUMENT'.
12140
12141 * normal/cmdline.c (print_completion): Handle
12142 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
12143 * normal/menu_entry.c (store_completion): Likewise.
12144
12145 * normal/completion.c (complete_arguments): New function.
12146 (grub_normal_do_completion): Call `complete_arguments' when the
12147 current words start with a dash.
12148
0b5abe02 121492005-08-27 Marco Gerards <metgerards@student.han.nl>
12150
12151 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
12152 `gzio.mod' instead of `io.mod').
12153
d9864ee1 121542005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
12155
12156 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
12157 (DISTDIRS): Added io and video.
12158 Rewrite the search routine to make an output consistently.
12159
12160 * DISTLIST: Added conf/sparc64-ieee1275.mk,
12161 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
12162 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
12163 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
12164 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
12165 util/powerpc/ieee1275/misc.c.
f19dbdb7 12166
d9864ee1 12167 * include/grub/gzio.h: New file.
12168 * io/gzio.c: Likewise.
f19dbdb7 12169
d9864ee1 12170 * kern/file.c (grub_file_close): Call grub_device_close only if
12171 FILE->DEVICE is not NULL.
12172
12173 * include/grub/mm.h [!NULL] (NULL): New macro.
12174
12175 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
12176
12177 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
12178 (pkgdata_MODULES): Added gzio.mod.
12179 (gzio_mod_SOURCES): New variable.
12180 (gzio_mod_CFLAGS): Likewise.
12181
12182 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
12183 (pkgdata_MODULES): Added gzio.mod.
12184 (gzio_mod_SOURCES): New variable.
12185 (gzio_mod_CFLAGS): Likewise.
12186
12187 * commands/cat.c: Include grub/gzio.h.
12188 (grub_cmd_cat): Use grub_gzfile_open instead of
12189 grub_file_open.
f19dbdb7 12190
d9864ee1 12191 * commands/cmp.c: Include grub/gzio.h.
12192 (grub_cmd_cmp): Use grub_gzfile_open instead of
12193 grub_file_open.
12194
12195 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
12196 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
12197 grub_file_open.
12198 (grub_rescue_cmd_module): Likewise.
12199
fa46f4b5 122002005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12201
12202 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
12203 kern/sparc64/ieee1275/init.c because it contains _start.
12204 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
12205
e9211b5d 122062005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12207
12208 * configure.ac: Add support for sparc64 host with ieee1275
12209 firmware.
12210 * configure: Generated from configure.ac.
12211 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
12212 instead of int.
12213 (grub_ofdisk_read): Likewise.
12214 (grub_ofdisk_open): Use %p to print pointer values, and cast the
12215 pointers as (void *) to remove a warning.
12216 (grub_ofdisk_close): Likewise.
12217 (grub_ofdisk_read): Likewise.
12218 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
12219 returns, so make it return void to remove a warning.
12220 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
12221 Corresponding prototype change.
12222 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
12223 values, and cast the pointers as (void *) to remove a warning.
12224 (grub_mm_dump): Likewise.
12225 * conf/sparc64-ieee1275.mk: New file.
12226 * conf/sparc64-ieee1275.rmk: Likewise.
12227 * include/grub/sparc64/setjmp.h: Likewise.
12228 * include/grub/sparc64/types.h: Likewise.
12229 * include/grub/sparc64/ieee1275/console.h: Likewise.
12230 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
12231 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
12232 * include/grub/sparc64/ieee1275/time.h: Likewise.
12233 * kern/sparc64/cache.c: Likewise.
12234 * kern/sparc64/dl.c: Likewise.
12235 * kern/sparc64/ieee1275/init.c: Likewise.
12236 * kern/sparc64/ieee1275/openfw.c: Likewise.
12237
385c6a92 122382005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12239
12240 * util/console.c (grub_ncurses_putchar): If C is greater than
12241 0x7f, set C to a question mark.
12242 (grub_ncurses_getcharwidth): New function.
12243 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
12244 getcharwidth.
12245
12246 * normal/menu.c (print_entry): Made aware of Unicode. First,
12247 convert TITLE to UCS-4, and predict the cursor position by
12248 grub_getcharwidth.
12249
12250 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
12251 const to SRC.
12252 * kern/misc.c (grub_utf16_to_utf8): Likewise.
12253
16ccb8b1 122542005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12255
12256 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
12257 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12258 grub_strcat.
12259
12260 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
12261 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12262 grub_strcpy and grub_strlen. Take it into account that a space
12263 character is inserted as a delimiter.
12264
6a85ce79 122652005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12266
12267 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 12268 invalid magic in the error.
6a85ce79 12269
12270 * commands/search.c: New file.
f19dbdb7 12271
6a85ce79 12272 * util/grub-emu.c (main): Call grub_search_init and
12273 grub_search_fini.
12274
12275 * kern/rescue.c (grub_rescue_print_disks): Removed.
12276 (grub_rescue_print_devices): New function.
12277 (grub_rescue_cmd_ls): Use grub_device_iterate with
12278 grub_rescue_print_devices instead of grub_disk_dev_iterate with
12279 grub_rescue_print_disks.
12280
12281 * kern/partition.c (grub_partition_iterate): Return the result of
12282 PARTMAP->ITERATE instead of GRUB_ERRNO.
12283
12284 * kern/device.c: Include grub/partition.h.
12285 (grub_device_iterate): New function.
12286
12287 * include/grub/partition.h (grub_partition_iterate): Return int
12288 instead of grub_err_t.
12289
12290 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
12291 prototype.
12292 [GRUB_UTIL] (grub_search_fini): Likewise.
12293
12294 * include/grub/device.h (grub_device_iterate): New prototype.
12295
12296 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12297 commands/search.c.
12298 (pkgdata_MODULES): Added search.mod.
12299 (search_mod_SOURCES): New variable.
12300 (search_mod_CFLAGS): Likewise.
12301
12302 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
12303 (pkgdata_MODULES): Added search.mod.
12304 (search_mod_SOURCES): New variable.
12305 (search_mod_CFLAGS): Likewise.
12306
12307 * commands/ls.c (grub_ls_list_disks): Renamed to ...
12308 (grub_ls_list_devices): ... this, and use grub_device_iterate.
12309 All callers changed.
12310
12311 * DISTLIST: Added commands/search.c.
12312
ef095434 123132005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12314
12315 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
12316 conversion.
12317 (grub_getcharwidth): New function.
12318
12319 * kern/misc.c (grub_utf8_to_ucs4): New function.
12320
12321 * include/grub/term.h (struct grub_term): Added a new member
12322 "getcharwidth".
12323 (grub_getcharwidth): New prototype.
12324
12325 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
12326
12327 * term/i386/pc/console.c (map_char): New function. Segregated from
12328 grub_console_putchar.
12329 (grub_console_putchar): Use map_char.
12330 (grub_console_getcharwidth): New function.
12331 (grub_console_term): Specified grub_console_getcharwidth as
12332 getcharwidth.
12333
12334 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
12335 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
12336
12337 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
12338 GRUB_ERRNO.
12339 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
12340 on grub_strtoul completely.
12341 (write_char): Declare local variables in the beginning of the
12342 function.
12343 (grub_vesafb_getcharwidth): New function.
12344 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
12345 getcharwidth.
12346
1f0a95e4 123472005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
12348
12349 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
12350 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
12351 commands/i386/pc/vbetest.c.
12352
12353 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
12354 call grub_vbe_get_controller_info again, because the returned
12355 information is volatile.
12356 (grub_vbe_set_video_mode): Mostly rewritten.
12357 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
12358 grub_vbe_status_t correctly.
12359 (grub_vbe_get_video_mode_info): Likewise.
12360 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
12361 several if statements.
12362
12363 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
12364 * commands/i386/pc/vbeinfo.c: ... this.
12365
12366 * commands/i386/pc/vbe_test.c: Renamed to ...
12367 * commands/i386/pc/vbetest.c: ... this.
12368
12369 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
12370 ...
12371 (grub_cmd_vbeinfo): ... this. Save video modes before
12372 iterating. Skip a video mode, if it is not available, not enough
12373 information is given or it is monochrome. Show the memory
12374 model. Leave the interpretation of MODEVAR to grub_strtoul
12375 completely.
12376 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
12377 (GRUB_MOD_FINI): Likewise.
12378
12379 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
12380 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
12381 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
12382 duplicated grub_env_get. Leave the interpretation of MODEVAR to
12383 grub_strtoul completely.
12384 (real2pm): Removed.
12385 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
12386 (GRUB_MOD_FINI): Likewise.
12387
12388 * normal/misc.c: Include grub/mm.h.
12389
12390 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
12391 vbe_list_modes with vbetest.mod and vbeinfo.mod.
12392 (vbe_list_modes_mod_SOURCES): Removed.
12393 (vbe_list_modes_mod_CFLAGS): Likewise.
12394 (vbe_test_mod_SOURCES): Likewise.
12395 (vbe_test_mod_CFLAGS): Likewise.
12396 (vbeinfo_mod_SOURCES): New variable.
12397 (vbeinfo_mod_CFLAGS): Likewise.
12398 (vbetest_mod_SOURCES): Likewise.
12399 (vbetest_mod_CFLAGS): Likewise.
12400
992ffbbe 124012005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
12402
12403 * normal/misc.c: New file.
12404
12405 * DISTLIST: Added normal/misc.c.
f19dbdb7 12406
992ffbbe 12407 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
12408 DISK to HOOK. Call HOOK with DISK.
12409 * partmap/apple.c (apple_partition_map_iterate): Likewise.
12410 * partmap/pc.c (pc_partition_map_iterate): Likewise.
12411 * partmap/sun.c (sun_partition_map_iterate): Likewise.
12412
12413 * normal/menu_entry.c (struct screen): Added a new member
12414 "completion_shown".
12415 (completion_buffer): New global variable.
12416 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
12417 (store_completion): New function.
12418 (complete): Likewise.
12419 (clear_completions): Likewise.
12420 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
12421 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
12422 a tab, call complete.
12423
12424 * normal/completion.c (disk_dev): Removed.
12425 (print_simple_completion): Likewise.
12426 (print_partition_completion): Likewise.
12427 (print_func): New global variable.
12428 (add_completion): Do not take the arguments WHAT or PRINT any
12429 longer. Added a new argument TYPE. Instead of printing directly,
12430 call PRINT_FUNC if not NULL.
12431 All callers changed.
12432 (complete_device): Use a local variable DEV instead of
12433 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
12434 (grub_normal_do_completion): Take a new argument HOOK. Do not
12435 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
12436 empty string, return NULL instead.
12437 All callers changed.
12438
12439 * normal/cmdline.c (print_completion): New function.
12440
12441 * kern/partition.c (grub_partition_iterate): Add an argument DISK
12442 to HOOK.
12443 All callers changed.
12444
12445 * kern/disk.c (grub_print_partinfo): Removed.
12446
12447 * include/grub/partition.h (struct grub_partition_map): Add a new
12448 argument DISK into HOOK of ITERATE.
12449 (grub_partition_iterate): Add a new argument DISK to HOOK.
12450
12451 * include/grub/normal.h (enum grub_completion_type): New enum.
12452 (grub_completion_type_t): New type.
12453 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
12454 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
12455 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
12456 (GRUB_COMPLETION_TYPE_FILE): Likewise.
12457 (grub_normal_do_completion): Added a new argument HOOK.
12458 (grub_normal_print_device_info): New prototype.
12459
12460 * include/grub/disk.h (grub_print_partinfo): Removed.
12461
12462 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
12463 (normal_mod_SOURCES): Likewise.
12464 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12465 (normal_mod_SOURCES): Likewise.
12466
12467 * commands/ls.c (grub_ls_list_disks): Use
12468 grub_normal_print_device_info instead of grub_print_partinfo. Free
12469 PNAME.
12470 (grub_ls_list_files): Use grub_normal_print_device_info instead of
12471 duplicating the code.
12472
0bd41162 124732005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12474
12475 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 12476 follow GCS more precisely.
12477 * commands/i386/pc/vbe_test.c: Likewise.
12478 * include/grub/i386/pc/vbe.h: Likewise.
12479 * term/i386/pc/vesafb.c: Likewise.
12480 * video/i386/pc/vbe.c: Likewise.
0bd41162 12481
6323696a 124822005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12483
12484 * DISTLIST: Added term/i386/pc/vesafb.c
12485 DISTLIST: Added video/i386/pc/vbe.c
12486 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
12487 DISTLIST: Added commands/i386/pc/vbe_test.c.
12488 * commands/i386/pc/vbe_list_modes.c: New file.
12489 * commands/i386/pc/vbe_test.c: Likewise.
12490 * term/i386/pc/vesafb.c: Likewise.
12491 * video/i386/pc/vbe.c: Likewise.
12492 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
12493 (grub_vbe_probe) Added prototype.
12494 (grub_vbe_set_video_mode) Likewise.
12495 (grub_vbe_get_video_mode) Likewise.
12496 (grub_vbe_get_video_mode_info) Likewise.
12497 (grub_vbe_set_pixel_rgb) Likewise.
12498 (grub_vbe_set_pixel_index) Likewise.
12499 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
12500 (pkgdata_MODULES): Added vesafb.mod.
12501 (pkgdata_MODULES): Added vbe_list_modes.mod.
12502 (pkgdata_MODULES): Added vbe_test.mod.
12503 (vbe_mod_SOURCES): Added.
12504 (vbe_mod_CFLAGS): Likewise.
12505 (vesafb_mod_SOURCES): Likewise.
12506 (vesafb_mod_CFLAGS): Likewise.
12507 (vbe_list_modes_mod_SOURCES): Likewise.
12508 (vbe_list_modes_mod_CFLAGS): Likewise.
12509 (vbe_test_mod_SOURCES): Likewise.
12510 (vbe_test_mod_CFLAGS): Likewise.
12511
0a74e62f 125122005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
12513
0a74e62f 12514 * normal/command.c (grub_command_execute): If INTERACTIVE is
12515 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
12516 CMDLINE. Disable the pager if INTERACTIVE is true.
12517 All callers are changed.
12518
12519 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
12520 before reading a config file.
12521 * normal/main.c (read_config_file): Even if a command is not
12522 found, register it if it is within an entry.
12523
12524 * util/grub-emu.c: Include sys/types.h and unistd.h.
12525 (options): Added --hold.
12526 (struct arguments): Added a new member "hold".
12527 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
12528 missing.
12529 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
12530 cleared by a debugger, if it is not zero.
12531
12532 * include/grub/normal.h (grub_command_execute): Add an argument
12533 INTERACTIVE.
12534
e51f85ae 125352005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
12536
12537 * DISTLIST: Added include/grub/i386/pc/vbe.h.
12538
e9c6f39b 125392005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
12540
12541 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
12542 program with another one, because the old one didn't detect a bug
12543 in gcc-3.4. Always use regparm 2, because the new test is still
12544 not enough for gcc-4.0. Someone must investigate a simple test
12545 case which detects a bug in gcc-4.0.
12546
8de3495c 125472005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
12548
12549 * DISTLIST: Added normal/completion.c.
12550
12551 * normal/completion.c: New file.
f19dbdb7 12552
8de3495c 12553 * term/i386/pc/console.c (grub_console_getwh): New function.
12554 (grub_console_term): Assign grub_console_getwh to getwh.
12555
12556 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
12557 function is defined in normal/completion.c as
12558 grub_normal_do_completion.
12559 (grub_cmdline_get): Use grub_normal_do_completion instead of
12560 grub_tab_complete.
12561
12562 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
12563 returns non-zero, otherwise return 0.
12564 (grub_partition_iterate): First, probe the partition map. Then,
12565 call ITERATE only for this partition map.
12566
12567 * kern/misc.c (grub_strncmp): Rewritten.
12568
12569 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
12570 returns non-zero. Otherwise return 0.
12571
12572 * include/grub/partition.h (grub_partition_map_iterate): Return
12573 int instead of void.
12574
12575 * include/grub/normal.h (grub_normal_do_completion): New prototype.
12576
12577 * include/grub/misc.h (grub_strncmp): Change the type of N to
12578 grub_size_t.
12579
12580 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
12581 of void.
12582
12583 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 12584 unsigned explicitly before comparing it with I.
8de3495c 12585
12586 * kern/main.c (grub_env_write_root): Add the attribute unused into
12587 VAR.
12588
12589 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12590 normal/completion.c.
12591 (normal_mod_SOURCES): Likewise.
12592 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
12593 (normal_mod_SOURCES): Likewise.
12594
12595 * normal/command.c (grub_iterate_commands): If ITERATE returns
12596 non-zero, return one immediately.
12597
e85e144b 125982005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
12599
12600 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
12601 * kern/i386/pc/startup.S: Updated Global Descriptor table's
12602 descriptions.
12603 (grub_vbe_get_controller_info): New function.
12604 (grub_vbe_get_mode_info): Likewise.
12605 (grub_vbe_set_mode): Likewise.
12606 (grub_vbe_get_mode): Likewise.
12607 (grub_vbe_set_memory_window): Likewise.
12608 (grub_vbe_get_memory_window): Likewise.
12609 (grub_vbe_set_scanline_length): Likewise.
12610 (grub_vbe_get_scanline_length): Likewise.
12611 (grub_vbe_set_display_start): Likewise.
12612 (grub_vbe_get_display_start): Likewise.
12613 (grub_vbe_set_palette_data): Likewise.
12614 * include/grub/i386/pc/vbe.h: New file.
12615
c46153d2 126162005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12617
12618 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12619 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
12620 * DISTLIST: Likewise.
12621 * kern/ieee1275/of.c: Moved to ...
12622 * kern/ieee1275/ieee1275.c: ... here.
12623
0cb90c45 126242005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12625
12626 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
12627 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
12628 Pass 0 as `end' parameter to grub_strtoul().
12629
a19fb360 126302005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12631
12632 * include/grub/powerpc/ieee1275/console.h: Do not include
12633 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
12634 ifdef.
12635 (grub_console_cur_color): Remove i386-specific prototype.
12636 (grub_console_real_putchar): Likewise.
12637 (grub_console_checkkey): Likewise.
12638 (grub_console_getkey): Likewise.
12639 (grub_console_getxy): Likewise.
12640 (grub_console_gotoxy): Likewise.
12641 (grub_console_cls): Likewise.
12642 (grub_console_setcursor): Likewise.
12643 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
12644 Include <grub/machine/console.h>.
12645 * term/ieee1275/ofconsole.c: Likewise.
12646
4ac9bd04 126472005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
12648
12649 * Makefile.in (LIBLZO): New variable.
12650
12651 * configure.ac: Check for LZO version 2.
12652
12653 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
12654 lzo/lzo1x.h instead of lzo1x.h.
12655
12656 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
12657 of -llzo.
12658
12659 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
12660 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
12661
12662 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
12663 copying the data from PARTITION to P.
12664
f4917dfd 126652005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12666
12667 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
12668 negative, unload the module.
12669
12670 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
12671 map is "pc_partition_map" but not "pc".
12672 (usage): Fix the description. The options are --boot-image and
12673 --core-image but not --boot-file or --core-file.
12674 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
12675 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
12676 DEFAULT_DIRECTORY.
12677
12678 * util/i386/pc/grub-install.in: Do not specify --boot-file or
12679 --core-file. Specify INSTALL_DEVICE as an argument.
12680
12681 * util/console.c: Include config.h.
12682 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
12683 [HAVE_NCURSES_H]: Include ncurses.h.
12684 [HAVE_CURSES_H]: Include curses.h.
12685 [!A_NORMAL] (A_NORMAL): Defined as zero.
12686 [!A_STANDOUT] (A_STANDOUT): Likewise.
12687
12688 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
12689 -lncurses.
12690 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
12691
12692 * configure.ac: Check for curses libraries and headers.
12693
12694 * Makefile.in (LIBCURSES): New variable.
12695
12696 * genmk.rb (Script::rule): Set the executable bits.
12697
12698 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
12699 name of the PC partition map is "pc_partition_map" but not "pc".
12700
0e143073 127012005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12702
12703 * util/i386/pc/grub-install.in (grub_probefs): New variable.
12704 (modules): Likewise.
12705 (usage): Added descriptions for --modules and --grub-probefs.
12706 Handle --modules and --grub-probefs. Save the arguments in MODULES
12707 and GRUB_PROBEFS, respectively.
12708 Auto-detect a filesystem module against GRUBDIR. If the result is
12709 empty and modules are not specified explicitly, abort the
12710 installation. Add the result to MODULES.
12711
12712 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
12713 disk/powerpc/ieee1275/ofdisk.c,
12714 include/grub/powerpc/ieee1275/init.h and
12715 term/powerpc/ieee1275/ofconsole.c.
12716 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
12717 term/ieee1275/ofconsole.c.
12718
12719 * include/grub/powerpc/ieee1275/console.h: Resurrected.
12720
12721 * COPYING: Upgraded to the latest version. Only the address of the
12722 FSF office has changed.
f19dbdb7 12723
efd6e6d5 127242005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12725
12726 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12727 kern/ieee1275.c with kern/ieee1275/of.c.
12728
12729 * kern/ieee1275.c: Moved to ...
12730 * kern/ieee1275/of.c: ... here.
12731
8ceafda2 127322005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
12733
12734 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 12735 readability.
8ceafda2 12736
12737 * config.guess: Updated to the latest version from gnulib.
12738 * config.sub: Likewise.
12739 * install.sh: Likewise.
12740 * mkinstalldirs: Likewise.
12741
12742 * include/grub/console.h: Removed. This file is arch-specific. Do
12743 not put this in include/grub.
12744
12745 * include/grub/i386/pc/console.h: Resurrected.
12746
12747 * util/console.c: Include grub/machine/console.h instead of
12748 grub/console.h.
12749 * util/grub-emu.c: Likewise.
12750
267f6cd9 127512005-08-04 Marco Gerards <metgerards@student.han.nl>
12752
12753 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
12754 hardcoded value.
f19dbdb7 12755
267f6cd9 12756 From Vincent Pelletier <subdino2004@yahoo.fr>
12757 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
12758 Redefined to use grub_getwh.
12759 (grub_term): New member named getwh.
12760 (grub_getwh): New prototype.
12761 * kern/term.c (grub_getwh): New function.
12762 * term/i386/pc/console.c (grub_console_getwh): New function.
12763 (grub_console_term): New member `getwh'.
12764 * term/i386/pc/vga.c (grub_vga_getwh): New function.
12765 (grub_vga_term): New member `getwh'.
0b5abe02 12766 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 12767 grub_ssize_t.
12768 (grub_ofconsole_getw): New function.
12769 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
12770 (grub_ofconsole_term): New field named getwh and new initial
12771 value.
12772
3be7266d 127732005-08-03 Hollis Blanchard <hollis@penguinppc.org>
12774
12775 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
12776 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
12777 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
12778 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
12779 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
12780 of <grub/machine/ieee1275.h>.
12781 * commands/ieee1275/reboot.c: Likewise.
12782 * boot/powerpc/ieee1275/ieee1275.c: Move ...
12783 * kern/ieee1275.c: ... to here. All users updated. Change all
12784 parameter structs to use new type `grub_ieee1275_cell_t'.
12785 * term/powerpc/ieee1275/ofconsole.c: Move ...
12786 * term/ieee1275/ofconsole.c: ... to here. All users updated.
12787 * disk/powerpc/ieee1275/ofdisk.c: Move ...
12788 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
12789 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
12790 to return int.
12791 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
12792 Remove unused prototypes. All users updated.
12793 * include/grub/powerpc/ieee1275/console.h: Removed.
12794 * include/grub/powerpc/ieee1275/ieee1275.h: Define
12795 `grub_ieee1275_cell_t'.
12796 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
12797 Cast comparisons with -1 to the correct type.
12798 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
12799 type to match `grub_ieee1275_entry_fn'.
12800
8b5f3938 128012005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
12802
12803 * DISTLIST: Added util/i386/pc/grub-probefs.c.
12804
12805 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
12806 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
12807 partmap/sun.c.
12808 (grub_probefs_SOURCES): New variable.
12809
12810 * util/i386/pc/grub-probefs.c: New file.
12811
12812 * util/i386/pc/grub-setup.c (main): Call
12813 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
12814 grub_hfs_init and grub_jfs_init to initialize the system. Call
12815 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
12816 grub_pc_partition_map_fini to finish the system.
12817
ea409713 128182005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
12819
12820 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
12821 function.
12822 (grub_multiboot_load_elf32): Likewise.
12823 (grub_multiboot_is_elf64): Likewise.
12824 (grub_multiboot_load_elf64): Likewise.
12825 (grub_multiboot_load_elf): Likewise.
12826 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
12827 an ELF32 or ELF64 file.
12828 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
12829
12830 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
12831 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
12832 NULL before calling FS->LABEL.
12833 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
12834 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
12835 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
12836 before calling FS->LABEL.
12837
141a288b 128382005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
12839
12840 * util/i386/pc/grub-install.in (datadir): New variable.
12841 (libdir): Removed.
12842 (pkgdatadir): New variable.
12843 (pkglibdir): Removed.
12844
0d5f8a54 128452005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
12846
12847 * DISTLIST: Added util/i386/pc/grub-install.in.
12848
12849 * util/i386/pc/grub-install.in: New file.
12850
12851 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
12852 (grub_install_SOURCES): Likewise.
12853
12854 * genmk.rb: Added support for scripts.
12855 (Script): New class.
12856 (scripts): New variable.
12857
12858 * Makefile.in (install-local): Install sbin_SCRIPTS by
12859 INSTALL_SCRIPT.
12860 (uninstall): Remove sbin_SCRIPTS.
12861
12862 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
12863 device, try to get a GRUB device by
12864 grub_util_biosdisk_get_grub_dev.
12865 Free DEST_DEV.
12866
12867 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
12868 description for --device-map.
12869
5f968e1e 128702005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12871
12872 Change the semantics of variable hooks. They now return strings
12873 instead of error values.
f19dbdb7 12874
5f968e1e 12875 * util/i386/pc/grub-setup.c: Include grub/env.h.
12876 (setup): Use grub_device_set_root instead of grub_env_set.
12877
12878 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
12879 grub_env_get instead of grub_device_set_root and
12880 grub_device_get_root, respectively.
12881
12882 * kern/main.c (grub_env_write_root): New function.
12883 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
12884 grub_env_set instead of grub_device_set_root.
12885
12886 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
12887 many variables.
12888 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
12889 rather than calling ENV->WRITE_HOOK afterwards.
12890 (grub_env_get): Return the result of ENV->READ_HOOK rather than
12891 passing a pointer of a pointer.
12892 (grub_register_variable_hook): Change the types of "read_hook" and
12893 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
12894 respectively.
12895 Allocate the default empty string on the heap, because this string
12896 may be freed later.
12897
12898 * kern/device.c: Include grub/env.h.
12899 (grub_device_set_root): Removed.
12900 (grub_device_get_root): Likewise.
12901 (grub_device_open): Use grub_env_get instead of
12902 grub_device_get_root.
12903
12904 * include/grub/env.h (grub_env_read_hook_t): New type.
12905 (grub_env_write_hook_t): Likewise.
12906 (grub_env_var): Change the types of "read_hook" and "write_hook"
12907 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
12908 (grub_register_variable_hook): Likewise.
12909
12910 * include/grub/device.h (grub_device_set_root): Removed.
12911 (grub_device_set_root): Likewise.
12912
12913 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
12914 make sure that DIRNAME terminates with '/', so that
12915 grub_fat_find_dir will fail if PATH is not a directory.
12916
12917 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
12918 from DIRNAME.
12919 Use the qualifier auto for print_files and print_files_long.
12920 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
12921 as a regular file.
12922 Put a newline only if there is no error.
12923 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
12924 used.
12925
896f0afd 129262005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12927
12928 * kern/partition.c (grub_partition_probe): Initialize PART to
12929 NULL. Otherwise, when no partition map is registered, this returns
12930 a garbage.
12931
b28b81b2 129322005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
12933
12934 * partmap/apple.c (apple_partition_map_iterate): Check if POS
12935 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
12936 valid.
12937
5f3607e0 129382005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
12939
12940 * commands/ls.c (grub_ls_list_disks): Print the filesystem
12941 information on each device, if it does not have partitions. Print
12942 "Device" instead of "Disk", because this function is not specific
12943 to disk devices.
12944
12945 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
12946 static to ensure that it is put on the memory rather than a
12947 register.
12948
502c87e8 129492005-07-17 Yoshinori Okuji <okuji@enbug.org>
12950
12951 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
12952 (grub_cat_init): Likewise.
12953 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
12954 (options): Likewise.
12955 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
12956 (grub_configfile_init): Likewise.
12957 * font/manager.c (GRUB_MOD_INIT): Likewise.
12958 * commands/help.c (GRUB_MOD_INIT): Likewise.
12959 (grub_help_init): Likewise.
12960 * normal/command.c (grub_command_init): Likewise.
12961 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
12962 * disk/loopback.c (grub_loop_init): Likewise.
12963 (GRUB_MOD_INIT): Likewise.
12964 * commands/ls.c (grub_ls_init): Likewise.
12965 (GRUB_MOD_INIT): Likewise.
12966 (options): Likewise.
12967 * commands/boot.c (grub_boot_init): Likewise.
12968 (GRUB_MOD_INIT): Likewise.
12969 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
12970 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
12971 (GRUB_MOD_INIT): Likewise.
12972 * commands/cmp.c (grub_cmp_init): Likewise.
12973 (GRUB_MOD_INIT): Likewise.
12974
12975 * normal/arg.c: Use <> instead of "" to include header files.
12976 (SHORT_ARG_HELP): New macro.
12977 (SHORT_ARG_USAGE): Likewise.
12978 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
12979 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
12980 descriptions.
12981 (find_short): Check if C is 'h' or 'u' explicitly.
12982 (grub_arg_show_help): Use space characters instead of tabs. Treat
12983 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
12984 are shown with --help and --usage only if they are not used for
12985 the command itself.
12986 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
12987 'h' and 'u'.
12988
12989 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
12990 const into "longarg". Change the type of "shortarg" to int.
12991
f806d18e 129922005-07-17 Yoshinori Okuji <okuji@enbug.org>
12993
12994 * boot/i386/pc/boot.S (boot_drive_check): New label.
12995
12996 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
12997 macro.
12998
12999 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
13000 which do not pass a boot drive correctly. Copied from GRUB Legacy.
13001
e293232b 130022005-07-17 Yoshinori Okuji <okuji@enbug.org>
13003
13004 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
13005 When turning off Gate A20, skip the check and return immediately,
13006 because this is not fatal usually.
13007
ebedfd00 130082005-07-17 Yoshinori Okuji <okuji@enbug.org>
13009
13010 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
13011 be 0x7C00 instead of 0x8000.
13012
13013 * boot/i386/pc/pxeboot.S: Rewritten.
13014
13015 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
13016 EXT_C.
13017 (gate_a20_check_state): Read a byte from 0x108000. Invert the
13018 result.
13019
654fc59f 130202005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
13021
13022 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
13023 robustness. This routine now supports a BIOS call and System
13024 Control Port A to modify the gate A20.
13025
13026 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
13027 Increased to 0x440.
13028
09f9923f 130292005-07-12 Hollis Blanchard <hollis@penguinppc.org>
13030
13031 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
13032 device path and resulting ihandle.
13033 (grub_ofdisk_close): dprintf the ihandle being closed.
13034 (grub_ofdisk_read): dprintf function parameters.
13035 * kern/mm.c (grub_mm_init_region): Likewise.
13036 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
13037 (grub_linux_boot): dprintf the Linux entry point, initrd address and
13038 size, and boot arguments.
13039 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
13040 before loading into memory.
13041 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
13042 before loading into memory.
13043
7ef504d8 130442005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
13045
13046 * kern/mm.c: Added much documentation.
13047 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
13048 8, set to 5 instead of 8.
13049
e0f050c2 130502005-07-10 Yoshinori Okuji <okuji@enbug.org>
13051
13052 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
13053
13054 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
13055 (grub_mkdevicemap_SOURCES): New variable.
13056
13057 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
13058 lib/device.c of GRUB Legacy.
13059
7224189a 130602005-07-10 Yoshinori Okuji <okuji@enbug.org>
13061
13062 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
13063 instead of PATH is NULL.
13064
68c864eb 130652005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
13066
13067 * commands/cmp.c (BUFFER_SIZE): New macro.
13068 (grub_cmd_cmp): Close the right file at the right time. Compare
13069 only data just read. Don't report files of different size as
13070 identical. Dynamically allocate buffers. Move variable
13071 declarations at the beginning of function.
13072
e6f3e614 130732005-07-09 Yoshinori Okuji <okuji@enbug.org>
13074
13075 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
13076 reverse.
13077
f8f1559a 130782004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
13079
13080 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
13081 when backspace is pressed at beginning of line.
13082
39c9d41d 130832005-07-03 Yoshinori Okuji <okuji@enbug.org>
13084
13085 * DISTLIST: Added genfslist.sh.
13086
13087 * normal/main.c (fs_module_list): New variable.
13088 (autoload_fs_module): New function.
13089 (read_fs_list): Likewise.
13090 (grub_normal_execute): Call read_fs_list.
13091
13092 * kern/fs.c (grub_fs_autoload_hook): New variable.
13093 (grub_fs_probe): Added support for auto-loading.
13094
13095 * include/grub/normal.h (struct grub_fs_module_list): New struct.
13096 (grub_fs_module_list_t): New type.
13097
13098 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
13099 (grub_fs_autoload_hook): New prototype.
13100
13101 * genfslist.sh: New file.
f19dbdb7 13102
39c9d41d 13103 * genmk.rb: Added a rule to generate a filesystem list.
13104
121c1d83 131052005-06-30 Marco Gerards <metgerards@student.han.nl>
13106
13107 * configure.ac: Fix the test for cross-compiling.
13108
13109 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
13110 define GRUB_UTIL anymore.
13111
13112 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
13113 so this function works on other systems than just big endian.
13114 (load_modules): Likewise.
13115 (add_segments): Likewise.
13116
e75d76e1 131172005-06-23 Hollis Blanchard <hollis@penguinppc.org>
13118
13119 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
13120 contains `l' modifier, get a long from va_arg().
13121
50b5a0a7 131222005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
13123
13124 * kern/mm.c (grub_free): If the next free block which is being
13125 merged is the first free block, set the first block to the block
13126 being freed.
13127 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
13128
89371b20 131292005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13130
13131 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
13132 `grub_ieee1275_chosen'.
13133
168d6e58 131342005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13135
13136 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
13137 (grub_ieee1275_chosen): New variable.
13138 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
13139 `chosen'.
13140 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
13141 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
13142 Rename first argument to `phandle' for consistency.
13143 (grub_ieee1275_get_property_length): Likewise.
13144 (grub_ieee1275_next_property): Likewise. Change type of first argument
13145 to grub_ieee1275_phandle_t.
13146 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
13147 Move export next to declaration.
13148 (grub_ieee1275_chosen): New variable.
13149 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
13150 Correct cosmetic typo.
13151 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
13152 `grub_ieee1275_chosen'.
13153 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
13154 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
13155 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
13156 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
13157 `grub_ieee1275_chosen'.
13158
ca5baa3f 131592005-05-10 Hollis Blanchard <hollis@penguinppc.org>
13160
13161 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
13162 /chosen/bootargs.
13163 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
13164 /chosen/bootargs as "variable=value" pairs.
13165
708b345f 131662005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
13167
13168 * include/grub/misc.h (grub_dprintf): New macro.
13169 (grub_real_dprintf): New prototype.
13170 (grub_strword): Likewise.
13171 (grub_iswordseparator): Likewise.
13172 * kern/misc.c (grub_real_dprintf): New function.
13173 (grub_strword): Likewise.
13174 (grub_iswordseparator): Likewise.
13175
f4c5e67c 131762005-04-30 Hollis Blanchard <hollis@penguinppc.org>
13177
13178 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
13179 (roundup): Remove macro.
13180 (grub_ieee1275_flags): Make static.
13181 (grub_ieee1275_realmode): Remove.
13182 (grub_ieee1275_test_flag): New function.
13183 (grub_ieee1275_set_flag): Likewise.
13184 (find_options): Rename to `grub_ieee1275_find_options'; update
13185 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
13186 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
13187 (cmain): New prototype.
13188 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
13189 `grub_ieee1275_flags' directly.
13190 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
13191 machine/biosdisk.h.
13192 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
13193 Don't include grub/machine/init.h.
13194 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
13195 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
13196 Remove prototype.
13197 (grub_ieee1275_realmode): Likewise.
13198 (grub_ieee1275_flag): New enum.
13199 (grub_ieee1275_test_flag): New prototype.
13200 (grub_ieee1275_set_flag): New prototype.
13201 * include/grub/powerpc/ieee1275/init.h: Remove file.
13202 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
13203 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
13204 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
13205 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
13206 comment.
13207 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
13208 `grub_ieee1275_test_flag'.
13209 (grub_ieee1275_encode_devname): Likewise.
13210
ed16607e 132112005-04-21 Hollis Blanchard <hollis@penguinppc.org>
13212
13213 * include/grub/powerpc/ieee1275/ieee1275.h
13214 (grub_ieee1275_encode_devname): New prototype.
13215 (grub_ieee1275_get_filename): Likewise.
13216 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
13217 function.
13218 (grub_set_prefix): Likewise.
13219 (grub_machine_init): Call grub_set_prefix.
13220 * kern/powerpc/ieee1275/openfw.c: Fix typos.
13221 (grub_parse_type): New enum.
13222 (grub_ieee1275_get_devargs): New function.
13223 (grub_ieee1275_get_devname): Likewise.
13224 (grub_ieee1275_parse_args): Likewise.
13225 (grub_ieee1275_get_filename): Likewise.
13226 (grub_ieee1275_encode_devname): Likewise.
13227
be369920 132282005-03-30 Marco Gerards <metgerards@student.han.nl>
13229
13230 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
13231 `grub_loader_unset'.
13232
a5ce3a4a 132332005-03-26 Hollis Blanchard <hollis@penguinppc.org>
13234
13235 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
13236 instead of grub_ieee1275_interpret.
13237 (grub_halt_init): New function.
13238 (grub_halt_fini): Likewise.
13239 (GRUB_MOD_INIT): Correct message grammar.
13240 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
13241 instead of grub_ieee1275_interpret.
13242 (grub_reboot_init): New function.
13243 (grub_reboot_fini): Likewise.
13244 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
13245 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
13246 util/i386/pc/misc.c with commands/ieee1275/halt.c,
13247 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
13248 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
13249 function.
13250 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
13251 Add prototype.
13252 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
13253 prototype.
13254 (grub_halt): Likewise.
13255 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
13256 (cmain): Remove __attribute__((unused)).
13257 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
13258 (grub_heap_len): Likewise.
13259 (grub_machine_fini): New function.
13260 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
13261 (grub_halt): Likewise.
13262 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
13263 function.
13264 * util/powerpc/ieee1275/misc.c: New file.
13265
0058f771 132662005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
13267
13268 * DISTLIST: New file.
13269 * gendistlist.sh: Likewise.
f19dbdb7 13270
0058f771 13271 * Makefile.in (COMMON_DISTFILES): Removed.
13272 (BOOT_DISTFILES): Likewise.
13273 (CONF_DISTFILES): Likewise.
13274 (DISK_DISTFILES): Likewise.
13275 (FS_DISTFILES): Likewise.
13276 (INCLUDE_DISTFILES): Likewise.
13277 (KERN_DISTFILES): Likewise.
13278 (LOADER_DISTFILES): Likewise.
13279 (TERM_DISTFILES): Likewise.
13280 (UTIL_DISTFILES): Likewise.
13281 (DISTFILES): Likewise.
13282 (uninstall): Uninstall files in $(pkgdata_DATA).
13283 (DISTLIST): New target.
13284 (distdir): Use the contents of the file DISTLIST to get a list of
13285 distributed files.
13286
46b3b8a5 132872005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
13288
13289 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
13290 descriptor. This is ported from GRUB Legacy.
13291
13292 * gencmdlist.sh: Added an extra semicolon to make it work with
13293 old sed versions. Reported by Robert Bihlmeyer
13294 <robbe@orcus.priv.at>.
13295
5822ff87 132962005-03-08 Yoshinori Okuji <okuji@enbug.org>
13297
13298 Automatic loading of commands is supported.
f19dbdb7 13299
5822ff87 13300 * normal/main.c (read_command_list): New function.
13301 (grub_normal_execute): Call read_command_list.
13302
13303 * normal/command.c (grub_register_command): Return zero or CMD.
13304 Allocate CMD->NAME from the heap.
13305 Initialize CMD->MODULE_NAME to zero.
13306 Find the same name as well. If the same command is found and it is
13307 a dummy command, overwrite members. If it is not a dummy command,
13308 return zero.
13309 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
13310 (grub_command_find): If a dummy command is found, load a module
13311 and retry to find a command only once.
13312
13313 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
13314 make sure that each command is loaded.
13315
13316 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
13317 macro.
13318 (struct grub_command): Remove const from the member `name'.
13319 Add a new member `module_name'.
13320 (grub_register_command): Return grub_command_t.
13321
13322 * commands/help.c (grub_cmd_help): Call grub_command_find to make
13323 sure that each command is loaded.
13324
13325 * genmk.rb (PModule::rule): Specify a module name without the
13326 suffix ".mod" to gencmdlist.sh.
13327
7b1f4b57 133282005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13329
13330 * gencmdlist.sh: New file.
f19dbdb7 13331
7b1f4b57 13332 * genmk.rb (PModule::rule): Generate a rule for a command list.
13333 Clean command.lst.
13334 Generate command.lst from $(COMMANDFILES).
13335
13336 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
13337 (DATA): Added $(pkgdata_DATA).
13338 (install-local): Install files in $(pkgdata_DATA).
13339
062aaf39 133402005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13341
13342 * term/i386/pc/vga.c (debug_command): Removed.
13343 (GRUB_MOD_INIT): Do not register the command "debug".
13344
13345 From Hollis Blanchard:
13346 * commands/configfile.c: New file.
13347 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13348 commands/configfile.c.
13349 (pkgdata_MODULES): Added configfile.mod.
13350 (configfile_mod_SOURCES): New variable.
13351 (configfile_mod_CFLAGS): Likewise.
13352 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
13353 commands/configfile.c.
13354 (pkgdata_MODULES): Added configfile.mod.
13355 (configfile_mod_SOURCES): New variable.
13356 (configfile_mod_CFLAGS): Likewise.
13357 * util/grub-emu.c (main): Call grub_configfile_init and
13358 grub_configfile_fini.
13359 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
13360 prototype.
13361 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 13362
cee01aa6 133632005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13364
13365 * normal/arg.c (grub_arg_show_help): Do not show the bug report
13366 address.
13367
13368 * commands/help.c (grub_cmd_help): Do not print newlines after
13369 the last command in print_command_help.
13370
93f3a1d8 133712005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13372
13373 * commands/default.h: New file.
13374 * commands/timeout.h: Likewise.
13375 * normal/context.c: Likewise.
f19dbdb7 13376
93f3a1d8 13377 * util/misc.c: Do not include sys/times.h.
13378 Include sys/time.h and grub/machine/time.h.
13379 (grub_get_rtc): Rewritten with gettimeofday.
13380
13381 * util/grub-emu.c (main): Call grub_default_init and
13382 grub_timeout_init before grub_normal_init, and call
13383 grub_timeout_fini and grub_default_fini after grub_main.
13384
13385 * util/console.c (grub_ncurses_checkkey): Return the read
13386 character or -1.
13387
13388 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
13389 timeouts.
13390
13391 * normal/main.c (read_config_file): Push MENU. If this fails,
13392 print an error and wait for a user input.
13393 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
13394 If a menu is empty or an error occurs, pop MENU.
13395 (grub_normal_execute): Pop and free MENU after grub_menu_run
13396 returns.
13397
13398 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
13399
13400 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
13401 include time.h.
13402 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13403 without GRUB_UTIL.
13404 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
13405 time.h.
13406 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13407 without GRUB_UTIL.
13408
13409 * include/grub/normal.h (struct grub_menu_list): New struct.
13410 (grub_menu_list_t): New type.
13411 (struct grub_context): New struct.
13412 (grub_context_t): New type.
13413 (grub_register_command): Got rid of EXPORT_FUNC.
13414 (grub_unregister_command): Likewise.
13415 (grub_context_get): New prototype.
13416 (grub_context_get_current_menu): Likewise.
13417 (grub_context_push_menu): Likewise.
13418 (grub_context_pop_menu): Likewise.
13419 [GRUB_UTIL] (grub_default_init): Likewise.
13420 [GRUB_UTIL] (grub_default_fini): Likewise.
13421 [GRUB_UTIL] (grub_timeout_init): Likewise.
13422 [GRUB_UTIL] (grub_timeout_fini): Likewise.
13423
13424 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
13425 commands/timeout.c and normal/context.c.
13426 (pkgdata_MODULES): Added default.mod and timeout.mod.
13427 (normal_mod_SOURCES): Added normal/context.c.
13428 (default_mod_SOURCES): New variable.
13429 (default_mod_CFLAGS): Likewise.
13430 (timeout_mod_SOURCES): Likewise.
13431 (timeout_mod_CFLAGS): Likewise.
13432 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
13433 conf/i386-pc.rmk.
13434 (pkgdata_MODULES): Added default.mod and timeout.mod.
13435 (normal_mod_SOURCES): Added normal/context.c.
13436 (default_mod_SOURCES): New variable.
13437 (default_mod_CFLAGS): Likewise.
13438 (timeout_mod_SOURCES): Likewise.
13439 (timeout_mod_CFLAGS): Likewise.
13440
13441 * Makefile.in (all-local): Added $(MKFILES).
13442
4ed2e1dd 134432005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
13444
13445 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
13446 (grub_emu_SOURCES): Likewise.
13447 (pkgdata_MODULES): Add `sun.mod'.
13448 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13449 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13450 `partmap/sun.c'.
13451 (pkgdata_MODULES): Add `sun.mod'.
13452 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13453 * include/grub/partition.h (grub_sun_partition_map_init): New
13454 prototype.
13455 (grub_sun_partition_map_fini): Likewise.
13456 * partmap/sun.c: New file.
13457 * util/grub-emu.c (main): Initialize and de-initialize the sun
13458 partitionmap support.
13459
4d4e372e 134602005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
13461
13462 This implements an Emacs-like menu entry editor.
f19dbdb7 13463
4d4e372e 13464 * normal/menu_entry.c: New file.
f19dbdb7 13465
4d4e372e 13466 * util/console.c (grub_ncurses_putchar): Translate some Unicode
13467 characters to ASCII.
13468 (saved_char): New variable.
13469 (grub_ncurses_checkkey): Rewritten completely.
13470 (grub_ncurses_getkey): Likewise.
13471 (grub_ncurses_init): Call raw instead of cbreak.
13472
13473 * normal/menu.c (print_entry): Do not put a space.
13474 (init_page): Renamed to ...
13475 (grub_menu_init_page): ... this. All callers changed.
13476 (edit_menu_entry): Removed.
13477 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
13478
13479 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
13480
13481 * kern/misc.c (grub_vprintf): Call grub_refresh.
13482
13483 * normal/menu.c (DISP_LEFT): Renamed to ...
13484 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
13485 * normal/menu.c (DISP_UP): Renamed to ...
13486 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
13487 * normal/menu.c (DISP_RIGHT): Renamed to ...
13488 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
13489 * normal/menu.c (DISP_DOWN): Renamed to ...
13490 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
13491 * normal/menu.c (DISP_HLINE): Renamed to ...
13492 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
13493 * normal/menu.c (DISP_VLINE): Renamed to ...
13494 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
13495 * normal/menu.c (DISP_UL): Renamed to ...
13496 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
13497 * normal/menu.c (DISP_UR): Renamed to ...
13498 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
13499 * normal/menu.c (DISP_LL): Renamed to ...
13500 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
13501 * normal/menu.c (DISP_LR): Renamed to ...
13502 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
13503 * normal/menu.c (TERM_WIDTH): Renamed to ...
13504 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
13505 * normal/menu.c (TERM_HEIGHT): Renamed to ...
13506 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
13507 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
13508 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
13509 * normal/menu.c (TERM_MARGIN): Renamed to ...
13510 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
13511 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
13512 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
13513 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
13514 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
13515 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
13516 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
13517 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
13518 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
13519 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
13520 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
13521 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
13522 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
13523 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
13524 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
13525 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
13526 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
13527 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
13528 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
13529 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
13530 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
13531 All callers changed.
13532
13533 * include/grub/normal.h: New prototype.
13534
13535 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13536 normal/menu_entry.c.
13537 (normal_mod_SOURCES): Likewise.
13538 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13539 (normal_mod_SOURCES): Likewise.
13540
e6b92c8a 135412005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
13542
13543 * include/grub/normal.h (grub_halt_init): New prototype.
13544 (grub_halt_fini): Likewise.
13545 (grub_reboot_init): Likewise.
13546 (grub_reboot_fini): Likewise.
13547
13548 * util/grub-emu.c: Include signal.h.
13549 (main_env): New global variable.
13550 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
13551 catch C-c.
13552 (grub_machine_fini): New function.
13553 (main): Call grub_halt_init and grub_reboot_init before
13554 grub_main, and grub_reboot_fini and grub_halt_fini after it.
13555 Call setjmp with MAIN_ENV to go back afterwards.
13556 Call grub_machine_fini right before return.
13557
13558 * include/grub/util/misc.h: Include setjmp.h.
13559 (main_env): New prototype.
13560
13561 * include/grub/kernel.h (grub_machine_fini): New prototype.
13562 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
13563 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
13564
13565 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
13566 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
13567 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 13568
e6b92c8a 13569 * util/i386/pc/misc.c: New file.
f19dbdb7 13570
e6b92c8a 13571 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13572 util/i386/pc/misc.c, commands/i386/pc/halt.c and
13573 commands/i386/pc/reboot.c.
13574
c642636f 135752005-02-14 Guillem Jover <guillem@hadrons.org>
13576
13577 * include/grub/dl.h (grub_dl_check_header): New prototype.
13578 (grub_arch_dl_check_header): Change return type to grub_err_t,
13579 remove size parameter and export function. Update all callers.
13580 * kern/dl.c (grub_dl_check_header): New function.
13581 (grub_dl_load_core): Use `grub_dl_check_header' instead of
13582 `grub_arch_dl_check_header'. Check ELF type. Check if sections
13583 are inside the core.
13584 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
13585 independent ELF header checks.
13586 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13587 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
13588 `grub_dl_check_header' instead of explicit checks. Check for the
13589 ELF type.
13590 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
13591 `grub_dl_check_header' instead of explicit checks. Remove arch
13592 specific ELF header checks.
13593
e6b92c8a 13594 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
13595 argument SIZE.
13596
5eabe94b 135972005-02-13 Hollis Blanchard <hollis@penguinppc.org>
13598
13599 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
13600 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
13601
1b14a681 136022005-02-12 Hollis Blanchard <hollis@penguinppc.org>
13603
13604 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 13605 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 13606 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 13607 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 13608 * partmap/amiga.c (amiga_partition_map_iterate): Return
13609 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
13610 * partmap/apple.c (apple_partition_map_iterate): Likewise.
13611
aca108aa 136122005-02-01 Guillem Jover <guillem@hadrons.org>
13613
13614 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
13615 help info.
13616
c9f9c556 136172005-01-31 Marco Gerards <metgerards@student.han.nl>
13618
13619 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
13620 Removed prototype.
13621 (grub_rescue_cmd_linux): New prototype.
13622 (grub_rescue_cmd_initrd): Likewise.
13623 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
13624 `bi_rec'.
13625 (grub_linux_release_mem): Release the memory for the initrd.
13626 (grub_load_linux): Renamed from this...
13627 (grub_rescue_cmd_linux): ...To this. Changed all callers.
13628 Changed `entry' not to be static. Loop over memory regions to
13629 find another one when the default fails.
13630 (grub_rescue_cmd_initrd): New function.
13631 (grub_linux_init): Remove function.
13632 (grub_linux_fini): Likewise.
13633 (GRUB_MOD_INIT): Register `initrd'.
13634 (GRUB_MOD_FINI): Unregister `initrd'.
13635 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
13636 Function removed.
13637 (grub_linux_normal_fini): Likewise.
13638 (GRUB_MOD_INIT): Register `initrd'.
13639 (GRUB_MOD_FINI): Unregister `initrd'.
13640
990cf3aa 136412005-01-31 Marco Gerards <metgerards@student.han.nl>
13642
13643 * commands/help.c: New file.
13644 * normal/arg.c (show_help): Renamed to...
13645 (grub_arg_show_help): ... this.
13646 * commands/i386/pc/halt.c: New file.
13647 * commands/i386/pc/reboot.c: Likewise.
13648 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
13649 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
13650 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
13651 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
13652 variables.
13653 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13654 `commands/help.c'.
13655 (pkgdata_MODULES): Add `help.mod'.
13656 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
13657 * grub/i386/pc/init.h (grub_reboot): New prototype.
13658 (grub_halt): Likewise.
13659 * include/grub/normal.h (grub_arg_show_help): New prototype.
13660 (grub_help_init): Likewise.
13661 (grub_help_fini): Likewise.
13662 * util/grub-emu.c (main): Initialize and deinitialize the help
13663 command.
13664
13665 * normal/cmdline.c (grub_cmdline_get): Doc fix.
13666
13667 * normal/command.c (grub_command_init): Fixed the description of
13668 the `set' and `unset' commands.
13669
136702005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 13671
13672 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
13673 function.
13674 * commands/ieee1275/halt.c: New file.
13675 * commands/ieee1275/reboot.c: Likewise.
13676 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
13677 `__attribute__ ((unused))'. Some GCS related fixed.
13678 (grub_suspend_init) [GRUB_UTIL]: Function removed.
13679 (grub_suspend_fini): Likewise.
13680 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
13681 and `halt.mod'.
13682 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
13683 (halt_mod_CFLAGS): New variables.
13684 * include/grub/powerpc/ieee1275/ieee1275.h
13685 (grub_ieee1275_interpret): New prototype.
13686
1ab09cc7 136872005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
13688
13689 * include/grub/misc.h (memmove): New prototype.
13690 (memcpy): Likewise.
13691
8b8cbdb2 136922005-01-22 Hollis Blanchard <hollis@penguinppc.org>
13693
13694 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
13695 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
13696
e3741a27 136972005-01-22 Marco Gerards <metgerards@student.han.nl>
13698
13699 * kern/misc.c (grub_strndup): Function rewritten.
13700
776bd780 137012005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
13702
13703 * normal/menu.c (TERM_WIDTH): Macro redefined.
13704 (TERM_TOP_BORDER_Y): Likewise.
13705 (draw_border): Replaced while-loop by a for-loop. Make the number
13706 of lines consistent with the number of lines displayed in
13707 print_entries. Added a margin below the rectangle.
13708 (print_entry): Make the entry fit in the rectangle.
13709 (print_entries): Display the scroll arrows next to the right
13710 border.
13711
78026bce 137122005-01-21 Marco Gerards <metgerards@student.han.nl>
13713
13714 * fs/minix.c (grub_minix_find_file): Reserve more space for
13715 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
13716 `grub_strncpy' to copy `path' into it.
13717
67bbaf0f 137182005-01-21 Marco Gerards <metgerards@student.han.nl>
13719
13720 Add the loopback device, a device via which files can be accessed
13721 as devices.
f19dbdb7 13722
67bbaf0f 13723 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
13724 (pkgdata_MODULES): Add loopback.mod.
13725 (loopback_mod_SOURCES): New variable.
13726 (loopback_mod_CFLAGS): Likewise.
13727 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13728 `disk/loopback.c'.
13729 (pkgdata_MODULES): Add loopback.mod.
13730 (loopback_mod_SOURCES): New variable.
13731 (loopback_mod_CFLAGS): Likewise.
13732 * disk/loopback.c: new file.
13733 * include/grub/normal.h (grub_loop_init): New prototype.
13734 (grub_loop_fini): New prototype.
13735 * util/grub-emu.c (main): Initialize and de-initialize loopback
13736 support.
13737 * include/grub/disk.h (grub_disk_dev_id): Add
13738 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
13739
6f1c18bd 137402005-01-20 Hollis Blanchard <hollis@penguinppc.org>
13741
13742 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
13743 function.
13744 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
13745 (suspend_mod_SOURCES): New variable.
13746 (suspend_mod_CFLAGS): Likewise.
13747 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
13748 New prototype.
13749 * commands/ieee1275/suspend.c: New file.
13750
b38551da 137512005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13752
13753 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 13754 ((unused))' to `__attribute__ ((used))'.
b38551da 13755 (GRUB_MOD_FINI): Likewise.
13756 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
13757 * genmk.rb (PModule): Assign space to common symbols when linking
13758 modules.
13759
777aff39 137602005-01-20 Marco Gerards <metgerards@student.han.nl>
13761
13762 * include/grub/mm.h (grub_mm_init_region): Change the type of the
13763 `unsigned' arguments to `grub_size_t'.
13764 (grub_malloc): Likewise.
13765 (grub_realloc): Likewise.
13766 (grub_memalign): Likewise.
13767 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
13768 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13769 * util/misc.c (grub_malloc): Likewise.
13770 (grub_realloc): Likewise.
13771 * kern/mm.c (get_header_from_pointer): Change the casts to
13772 `unsigned' into a cast to `grub_size_t'.
13773
13774 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
13775 point to `currnode' when `currnode' is changed.
13776
13777 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
13778 Schottelius <nico-linux@schottelius.org>.
13779
d0ff18e1 137802005-01-09 Hollis Blanchard <hollis@penguinppc.org>
13781
13782 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
13783 (note_path): Remove variable.
13784 (GRUB_IEEE1275_NOTE_NAME): New macro.
13785 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
13786 (grub_ieee1275_note_hdr): New structure.
13787 (grub_ieee1275_note_desc): Likewise.
13788 (grub_ieee1275_note): Likewise.
13789 (load_note): Remove `dir' argument. All callers updated. Remove
13790 `note_img' and `path'. Do not load a file from `note_path'.
13791 Initialize a struct grub_ieee1275_note and write that to `out'.
13792 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
13793
4ca7004c 137942005-01-05 Marco Gerards <metgerards@student.han.nl>
13795
13796 * util/misc.c (grub_util_read_image): Revert last change. It
13797 called `grub_util_read_at', which seeks from the beginning of the
13798 file.
13799
0b412211 138002005-01-04 Hollis Blanchard <hollis@penguinppc.org>
13801
13802 * TODO: Add note about endianness in grub-mkimage.
13803 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
13804 section.
13805 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
13806 (grub_mkimage_SOURCES): New target.
13807 * include/grub/kernel.h (grub_start_addr): Remove variable.
13808 (grub_end_addr): Likewise.
13809 (grub_total_module_size): Likewise.
13810 (grub_kernel_image_size): Likewise.
13811 (GRUB_MODULE_MAGIC): New constant.
13812 (grub_module_info): New structure.
13813 (grub_arch_modules_addr): New prototype.
13814 (grub_get_end_addr): Remove prototype.
13815 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
13816 * include/grub/powerpc/ieee1275/kernel.h: New file.
13817 * include/grub/util/misc.h (grub_util_get_fp_size): New
13818 prototype.
13819 (grub_util_read_at): Likewise.
13820 (grub_util_write_image_at): Likewise.
13821 * kern/main.c (grub_get_end_addr): Remove function.
13822 (grub_load_modules): Call grub_arch_modules_addr instead of using
13823 grub_end_addr. Look for a grub_module_info struct in memory. Use
13824 the grub_module_info fields instead of calling grub_get_end_addr
13825 as loop conditions. Move grub_add_unused_region code here.
13826 (grub_add_unused_region): Remove function.
13827 * kern/i386/pc/init.c: Include grub/cache.h.
13828 (grub_machine_init): Remove call to grub_get_end_addr. Remove
13829 one call to add_mem_region.
13830 (grub_arch_modules_addr): New function.
13831 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
13832 (grub_total_module_size): Likewise.
13833 Include grub/machine/kernel.h.
13834 (grub_arch_modules_addr): New function.
13835 * util/grub-emu.c (grub_end_addr): Remove variable.
13836 (grub_total_module_size): Likewise.
13837 (grub_arch_modules_addr): New function.
13838 * util/misc.c: Include unistd.h.
13839 (grub_util_get_fp_size): New function.
13840 (grub_util_read_at): Likewise.
13841 (grub_util_write_image_at): Likewise.
13842 (grub_util_read_image): Call grub_util_read_at.
13843 (grub_util_write_image): Call grub_util_write_image_at.
13844 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
13845 additional memory in kernel_img for a struct grub_module_info.
13846 Fill in that grub_module_info.
13847 * util/powerpc/ieee1275/grub-mkimage.c: New file.
13848
458786f8 138492005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13850
13851 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
13852 New function.
13853 * include/grub/powerpc/ieee1275/ieee1275.h
13854 (grub_ieee1275_milliseconds): New prototype.
13855 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
13856 Change to 1000.
13857 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
13858 grub_ieee1275_milliseconds.
13859
ac507d1b 138602005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13861
13862 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
13863 variable.
13864 (find_options): New function.
13865 (cmain): Call find_options.
13866 * include/grub/powerpc/ieee1275/ieee1275.h
13867 (grub_ieee1275_realmode): New extern variable.
13868 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
13869 grub_map if grub_ieee1275_realmode is false.
13870
6b8fd1c4 138712004-12-29 Marco Gerards <metgerards@student.han.nl>
13872
13873 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
13874 lines are inserted and make it work like readline. Reported by
13875 Vincent Pelletier <subdino2004@yahoo.fr>.
13876
8514a1e0 138772004-12-28 Marco Gerards <metgerards@student.han.nl>
13878
13879 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
13880
13881 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
13882 `kern/powerpc/cache.S'.
13883
924b6140 138842004-12-27 Marco Gerards <metgerards@student.han.nl>
13885
13886 * genmk.rb: Handle the `Program' class in the main loop. Written
13887 by Johan Rydberg <jrydberg@gnu.org>.
13888 (Program): New class.
13889 (programs): New variable.
13890 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
13891 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
13892 instead of "grub/kernel.h". Include <grub/machine/init.h>.
13893 (help_arch): Function removed.
13894 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
13895 `powerpc/libgcc.h' and `loader.h'.
13896 (pkgdata_PROGRAMS): New variable.
13897 (sbin_UTILITIES): Variable removed.
13898 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
13899 (grubof_SOURCES): Variable re-defined so it only includes the
13900 core functionality.
13901 (grubof_CFLAGS): Remove `-DGRUBOF'.
13902 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
13903 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
13904 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
13905 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
13906 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
13907 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
13908 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
13909 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
13910 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
13911 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
13912 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13913 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
13914 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
13915 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
13916 (pc_mod_CFLAGS): New variables.
13917 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
13918 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
13919 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
13920 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
13921 Moved from here...
13922 * include/grub/i386/pc/init.h (grub_os_area_addr)
13923 (rub_os_area_size): ... to here.
13924 * include/grub/powerpc/ieee1275/ieee1275.h
13925 (grub_ieee1275_entry_fn): Export symbol.
13926 * include/grub/powerpc/ieee1275/init.h: New file.
13927 * include/grub/powerpc/libgcc.h: Likewise.
13928 * include/grub/cache.h: Likewise.
13929 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
13930 <hollis@penguinppc.org>.
13931 * kern/dl.c: Include <grub/cache.h>.
13932 (grub_dl_flush_cache): New function.
13933 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
13934 for this module.
13935 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
13936 (grub_console_init): Removed prototypes.
13937 (grub_machine_init): Don't initialize the modules anymore.
13938 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
13939 static.
13940 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
13941 Macro undef removed.
13942 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
13943 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
13944 relocation `R_PPC_REL32'. Return an error when the relocation is
13945 unknown.
13946 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
13947 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
13948 * util/misc.c (grub_arch_sync_caches): Likewise.
13949
e4b47e0c 139502004-12-19 Marco Gerards <metgerards@student.han.nl>
13951
13952 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
13953 `symlist.c', add `grubof_symlist.c'.
13954 (symlist.c): Variable removed.
13955 (grubof_HEADERS): Variable added.
13956 (grubof_symlist.c): New target.
13957 (kernel_syms.lst): Use `grubof_HEADERS' instead of
13958 `kernel_img_HEADERS'.
13959 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
13960 * kern/powerpc/dl.c: New file.
13961 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
13962 Function removed.
13963 (grub_arch_dl_relocate_symbols): Likewise.
13964 (grub_register_exported_symbols): Likewise.
13965
4ceb3636 139662004-12-13 Marco Gerards <metgerards@student.han.nl>
13967
13968 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
13969 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
13970 to fail instead. Reported by Vincent Pelletier
13971 <subdino2004@yahoo.fr>.
13972
13973 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
13974 it is not allocated. Reported by Vincent Pelletier
13975 <subdino2004@yahoo.fr>.
13976
13977 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
13978 output so the output looks better.
f19dbdb7 13979
3f1578fe 139802004-12-04 Marco Gerards <metgerards@student.han.nl>
13981
13982 Modulize the partition map support and add support for the amiga
13983 partition map.
f19dbdb7 13984
3f1578fe 13985 * commands/ls.c: Include <grub/partition.h> instead of
13986 <grub/machine/partition.h>.
13987 * kern/disk.c: Likewise.
13988 * kern/rescue.c: Likewise.
13989 * loader/i386/pc/chainloader.c: Likewise.
13990 * normal/cmdline.c: Likewise.
13991 * kern/powerpc/ieee1275/init.c: Likewise.
13992 (grub_machine_init): Call `grub_pc_partition_map_init',
13993 `grub_amiga_partition_map_init' and
13994 `grub_apple_partition_map_init'.
13995 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
13996 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
13997 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
13998 `partition.h' and `pc_partition.h'.
13999 (grub_setup_SOURCES): Remove
14000 `disk/i386/pc/partition.c'. Add `kern/partition.c',
14001 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14002 (grub_emu_SOURCES): Likewise.
14003 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
14004 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
14005 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
14006 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14007 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
14008 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14009 (grubof_SOURCES): Likewise.
14010 * disk/i386/pc/partition.c: File removed.
14011 * disk/powerpc/ieee1275/partition.c: Likewise.
14012 * include/grub/powerpc/ieee1275/partition.h: Likewise.
14013 * include/grub/i386/pc/partition.h: Likewise.
14014 * kern/partition.c: New file.
14015 * partmap/amiga.c: Likewise.
14016 * partmap/apple.c: Likewise.
14017 * partmap/pc.c: Likewise.
14018 * include/grub/partition.h: Likewise..
14019 * include/grub/pc_partition.h: Likewise.
14020 * util/grub-emu.c: Include <grub/partition.h> instead of
14021 <grub/machine/partition.h>.
14022 (main): Call `grub_pc_partition_map_init',
14023 `grub_amiga_partition_map_init' and
14024 `grub_apple_partition_map_init' and deinitialize afterwards.
14025 * util/i386/pc/biosdisk.c: Include `#include
14026 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14027 `<grub/machine/partition.h>'.
14028 * util/i386/pc/grub-setup.c: Likewise.
14029 * util/i386/pc/biosdisk.c: Likewise.
14030 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
14031 partition information in case of a PC partition.
14032 * util/i386/pc/grub-setup.c: Include `#include
14033 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14034 `<grub/machine/partition.h>'.
14035 (setup): Only access the PC specific partition information in case
14036 of a PC partition.
14037
0ef4ced9 140382004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 14039
0ef4ced9 14040 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
14041 (grub_longjmp): Likewise.
14042 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
14043 20.
14044 * normal/powerpc/setjmp.S: New file.
14045 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14046 `normal/powerpc/setjmp.S'.
14047 (grubof_CFLAGS): Add `-DGRUBOF'.
14048 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
14049 [GRUB_UTIL && !GRUBOF].
f19dbdb7 14050
19950e29 140512004-11-16 Marco Gerards <metgerards@student.han.nl>
14052
14053 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
14054 property named `name'. Correctly handle the error returned by
14055 `grub_ieee1275_finddevice' if a device can not be opened.
14056
a2fea427 140572004-11-02 Hollis Blanchard <hollis@penguinppc.org>
14058
14059 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
14060 `actual' for negativity.
14061 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14062 kern/fshelp.c.
14063
41ea0ea3 140642004-11-01 Marco Gerards <metgerards@student.han.nl>
14065
14066 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
14067 (PAGE_OFFSET): New macro.
14068 (CRTC_ADDR_PORT): Likewise.
14069 (CRTC_DATA_PORT): Likewise.
14070 (START_ADDR_HIGH_REGISTER): Likewise.
14071 (START_ADDR_LOW_REGISTER): Likewise.
14072 (GRAPHICS_ADDR_PORT): Likewise.
14073 (GRAPHICS_DATA_PORT): Likewise.
14074 (READ_MAP_REGISTER): Likewise.
14075 (INPUT_STATUS1_REGISTER): Likewise.
14076 (INPUT_STATUS1_VERTR_BIT): Likewise.
14077 (page): New variable.
14078 (wait_vretrace): New function.
14079 (set_read_map): Likewise.
14080 (set_start_address): Likewise.
14081 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
14082 the right page.
14083 (check_vga_mem): Take the page into account.
14084 (write_char): Likewise.
14085 (write_cursor): Likewise.
14086 (scroll_up): Likewise. Copy the page to the page that is not
14087 shown and switch between both pages.
14088 (grub_vga_putchar): Fix off by one error.
14089 (grub_vga_cls): Wait for the vertical retrace. Take the page into
14090 account.
14091
ad0bd20b 140922004-11-01 Marco Gerards <metgerards@student.han.nl>
14093
14094 Add support for iso9660 (including rockridge).
f19dbdb7 14095
ad0bd20b 14096 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14097 (iso9660_mod_SOURCES): New variable.
14098 (iso9660_mod_CFLAGS): Likewise.
14099 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14100 * include/grub/fs.h (grub_iso9660_init): New prototype.
14101 * util/grub-emu.c (main): Call `grub_iso9660_init'.
14102 * fs/iso9660.c: New file.
14103
14104 * include/grub/misc.h (grub_strncat): New prototype.
14105 * kern/misc.c (grub_strncat): New function.
f19dbdb7 14106
ad0bd20b 14107 * fs/hfs.c (grub_hfs_mount): Translate the error
14108 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
14109 * fs/jfs.c (grub_jfs_mount): Likewise.
14110 * fs/ufs.c (grub_ufs_mount): Likewise.
14111
a5477a59 141122004-10-28 Hollis Blanchard <hollis@penguinppc.org>
14113
14114 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
14115 which initialized BAT registers.
14116 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
14117 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14118 Move from here...
14119 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
14120 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14121 ... to here.
14122 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
14123 (grub_mapclaim): Likewise.
14124 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
14125 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
14126 hand.
14127
9304c1f8 141282004-10-19 Hollis Blanchard <hollis@penguinppc.org>
14129
14130 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
14131 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
14132 -ffreestanding and -msoft-float.
14133
86f4ae25 141342004-10-15 Hollis Blanchard <hollis@penguinppc.org>
14135
14136 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
14137 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
14138 set in grub_ieee1275_flags.
14139
38912228 141402004-10-14 Hollis Blanchard <hollis@penguinppc.org>
14141
14142 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
14143 prototype.
14144 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
14145 grub_console_init first.
14146 Change the memory range used for grub_ieee1275_claim and
14147 grub_mm_init_region.
14148 Print an error message if the claim fails.
14149 Include <grub/misc.h>.
14150
d1923dc8 141512004-10-13 Hollis Blanchard <hollis@penguinppc.org>
14152
14153 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
14154 Call grub_children_iterate for device nodes of type `scsi',
14155 `ide', or `ata'.
14156 (grub_ofdisk_open): Remove manual device alias resolution.
14157 Fix memory leak when device cannot be opened.
f19dbdb7 14158 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 14159 (grub_children_iterate): New prototype.
14160 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
14161 New function.
14162 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
14163 Return -1 if args.size was -1.
14164
4512e4f3 141652004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14166
14167 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
14168 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
14169 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
14170 Open Firmware's memory for it; claim memory from _start to _end.
14171 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
14172 (_end): New extern.
14173 (_start): Zero BSS from __bss_start to _end.
14174 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
14175 New extern.
14176 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
14177
4d61feb0 141782004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14179
ad0bd20b 14180 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
14181 -1 if args.base was -1.
4d61feb0 14182
026fa2f9 141832004-10-08 Hollis Blanchard <hollis@penguinppc.org>
14184
14185 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
14186 escape sequence instead of a literal ^L. Also call
14187 grub_ofconsole_gotoxy.
14188
9f2220ef 141892004-10-03 Hollis Blanchard <hollis@penguinppc.org>
14190
14191 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
14192 void * arguments to grub_addr_t. All callers updated. Also make
14193 the `result' argument optional.
14194 (grub_ieee1275_release): change void * arguments to grub_addr_t.
14195 All callers updated.
14196
8a572cd7 141972004-09-22 Hollis Blanchard <hollis@penguinppc.org>
14198
14199 * commands/ls.c (grub_ls_list_files): Use the string following the
14200 initial ')', if present, as the filesystem path.
14201 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
14202
14203 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
14204
18aa81f2 142052004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
14206
14207 Make the source code of the menu interface more readable.
f19dbdb7 14208
18aa81f2 14209 * normal/menu.c: Include grub/mm.h.
14210 (TERM_WIDTH): New macro.
14211 (TERM_HEIGHT): Likewise.
14212 (TERM_INFO_HEIGHT): Likewise.
14213 (TERM_MARGIN): Likewise.
14214 (TERM_SCROLL_WIDTH): Likewise.
14215 (TERM_TOP_BORDER_Y): Likewise.
14216 (TERM_LEFT_BORDER_X): Likewise.
14217 (TERM_BORDER_WIDTH): Likewise.
14218 (TERM_MESSAGE_HEIGHT): Likewise.
14219 (TERM_BORDER_HEIGHT): Likewise.
14220 (TERM_NUM_ENTRIES): Likewise.
14221 (TERM_FIRST_ENTRY_Y): Likewise.
14222 (TERM_ENTRY_WIDTH): Likewise.
14223 (TERM_CURSOR_X): Likewise.
14224 (draw_border): Use macros instead of magic numbers.
14225 (print_entry): Likewise.
14226 (print_entries): Likewise.
14227 (run_menu): Likewise. Also, handle the key 'e'.
14228 (run_menu_entry): Ignore empty command lines.
14229 (print_message): Added a new argument EDIT. If EDIT is true,
14230 print a different message.
14231 (init_page): Likewise.
14232 (edit_menu_entry): New function. Not implemented yet.
14233
b47efe30 142342004-09-17 Marco Gerards <metgerards@student.han.nl>
14235
14236 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
14237 can be loaded from normal mode.
f19dbdb7 14238
b47efe30 14239 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
14240 `multiboot.mod'.
14241 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
14242 (multiboot_mod_CFLAGS): New variables.
14243 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 14244 * loader/i386/pc/multiboot_normal.c: Likewise.
14245
b47efe30 14246 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
14247 attribute `unused'.
f19dbdb7 14248
b47efe30 14249 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
14250 `fdiro' to read the mode information from instead of `diro'.
14251
14252 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
14253 looking up a symlink.
14254
14255 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
14256 macro.
14257 * normal/command.c (grub_command_execute): Don't parse the
14258 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
14259 flags of the command.
14260
14261 * normal/menu.c (grub_menu_run): Fix typo.
14262
da75ac71 142632004-09-14 Hollis Blanchard <hollis@penguinppc.org>
14264
14265 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
14266
14267 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
14268 `y + 1' instead of `y - 1'.
14269
14270 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 14271
062b24c2 142722004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
14273
14274 From Hollis Blanchard <hollis@penguinppc.org>:
14275 * kern/misc.c (memmove): New alias for grub_memmove.
14276 (memcmp): New alias for grub_memcmp.
14277 (memset): New alias for grub_memset.
f19dbdb7 14278 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 14279 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 14280 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 14281 (grub_ieee1275_get_property): Likewise.
f19dbdb7 14282
8ddad845 142832004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
14284
14285 Added normal mode command `chainloader' as module chain.mod, which
14286 depends on normal.mod and _chain.mod.
f19dbdb7 14287
8ddad845 14288 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
14289 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
14290 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
14291 Deleted prototype.
14292 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
14293 but arguments parsing moved to ...
14294 (grub_chainloader_cmd): ... here. New function.
14295 * include/grub/i386/pc/chainloader.h: New file.
14296 * loader/i386/pc/chainloader_normal.c: Likewise.
14297
2c1f4ce3 142982004-09-11 Marco Gerards <metgerards@student.han.nl>
14299
14300 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
14301 (grub_mkimage_LDFLAGS): Likewise.
14302 (grub_emu_SOURCES): Likewise.
14303 (kernel_img_HEADERS): Added fshelp.h.
14304 * fs/ext2.c: Include <grub/fshelp.h>.
14305 (FILETYPE_REG): New macro.
14306 (FILETYPE_INO_REG): Likewise.
14307 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
14308 Changed all users.
14309 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
14310 all users.
14311 (grub_fshelp_node): New struct.
14312 (grub_ext2_data): Added member `diropen'. Changed member `inode'
14313 to a pointer.
14314 (grub_ext2_get_file_block): Removed function.
14315 (grub_ext2_read_block): New function.
14316 (grub_ext2_read_file): Replaced parameter `data' by `node'.
14317 This function was written.
14318 (grub_ext2_mount): Read the root inode. Create a diropen struct.
14319 (grub_ext2_find_file): Removed function.
14320 (grub_ext2_read_symlink): New function.
14321 (grub_ext2_iterate_dir): Likewise.
14322 (grub_ext2_open): Rewritten.
14323 (grub_ext2_dir): Rewritten.
14324 * include/grub/fshelp.h: New file.
14325 * fs/fshelp.c: Likewise.
14326
3c52136a 143272004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
14328
14329 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
14330 (print_message): Add a missing newline.
14331 (run_menu): Added timeout support.
14332 (run_menu_entry): New local function.
14333 (grub_menu_run): Added support for booting.
14334
14335 * kern/loader.c (grub_loader_is_loaded): New function.
14336
14337 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
14338 (grub_get_rtc): Exported.
14339
14340 * include/grub/i386/pc/time.h: Include grub/symbol.h.
14341 (grub_get_rtc): Exported.
14342
14343 * include/grub/normal.h (struct grub_command_list): Remove
14344 constant from the member `command'.
14345
14346 * include/grub/loader.h (grub_loader_is_loaded): Declared.
14347
14348 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
14349
14350 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
14351
aa033560 143522004-08-28 Marco Gerards <metgerards@student.han.nl>
14353
14354 Add support for the JFS filesystem.
14355
14356 * fs/jfs.c: New file.
14357 * include/grub/fs.h (grub_jfs_init): New prototype.
14358 (grub_jfs_fini): New prototype.
14359 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
14360 (grub_emu_SOURCES): Likewise.
14361 (pkgdata_MODULES): Add jfs.mod.
14362 (jfs_mod_SOURCES): New variable.
14363 (jfs_mod_CFLAGS): Likewise.
14364 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
14365 (grubof_SOURCES): Likewise.
14366 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
14367
14368 * fs/fat.c (grub_fat_find_dir): Convert the filename little
14369 endian to the host endian.
14370 (grub_fat_utf16_to_utf8): Move function from there...
14371 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 14372 the endianness of the source string anymore.
aa033560 14373 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
14374
94bc45af 143752004-08-24 Marco Gerards <metgerards@student.han.nl>
14376
14377 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
14378 (grub_boot_fini) [GRUB_UTIL]: Likewise.
14379 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
14380 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 14381
94bc45af 14382 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
14383 (grub_hfs_iterate_dir): Make the function static. Add prototypes
14384 for `node_found' and `it_dir'.
14385 (grub_hfs_dir): Add prototype for `dir_hook'.
14386
14387 * fs/minix.c (grub_minix_get_file_block): Add prototype for
14388 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
14389 and `indir32' to silence a gcc warning.
14390
14391 * include/grub/fs.h (grub_hfs_init): New prototype.
14392 (grub_hfs_fini): Likewise.
f19dbdb7 14393
14394
97543f08 143952004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14396
14397 Each disk device has its own id now. This is useful to make use
14398 of multiple disk devices.
f19dbdb7 14399
97543f08 14400 * include/grub/disk.h (grub_disk_dev_id): New enum.
14401 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
14402 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
14403
14404 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
14405 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14406
14407 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
14408 GRUB_DISK_DEVICE_OFDISK_ID as an id.
14409
14410 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
14411 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14412
14413 * include/grub/disk.h (struct grub_disk_dev): Added a new member
14414 "id" which is used by the cache manager.
14415
14416 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
14417 of just "GRUB".
14418
64372eb4 144192004-08-18 Marco Gerards <metgerards@student.han.nl>
14420
14421 * fs/hfs.c: New file.
14422 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
14423 (grub_emu_SOURCES): Likewise.
14424 (pkgdata_MODULES): Add hfs.mod.
14425 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
14426 (grubof_SOURCES): Likewise.
14427 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
14428
14429 * include/grub/misc.h (grub_strncasecmp): Add prototype.
14430 * kern/misc.c (grub_strncasecmp): Add function.
14431
cc61b58f 144322004-08-14 Marco Gerards <metgerards@student.han.nl>
14433
14434 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
14435 with parentheses.
14436
14437 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
14438 (grub_ext2_dir): In case the directory entry type is unknown, read
14439 it from the inode.
14440
0ef123f6 144412004-08-02 Peter Bruin <pjbruin@dds.nl>
14442
14443 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
14444 grub_load_linux instead of grub_rescue_cmd_linux as second
14445 argument of grub_rescue_register_command.
14446
14447 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
14448
a447c5df 144492004-07-27 Marco Gerards <metgerards@student.han.nl>
14450
14451 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
14452 function.
14453 * commands/boot.c: Remove the check for `GRUB_UTIL'.
14454 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14455 `loader/powerpc/ieee1275/linux.c',
14456 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
14457 * include/grub/powerpc/ieee1275/ieee1275.h
14458 (grub_ieee1275_release): New prototype.
14459 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
14460 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
14461 normal, boot, linux and linux_normal.
14462 * loader/powerpc/ieee1275/linux.c: New file.
14463 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
14464
5a9e3546 144652004-07-12 Marco Gerards <metgerards@student.han.nl>
14466
14467 * normal/arg.c (grub_arg_parse): Correct error handling after
14468 reallocating the argumentlist (check if `argl' is not null instead
14469 of checking if `args' is not null).
14470 * kern/mm.c (grub_realloc): Return the same pointer when using the
14471 same region, instead of returning the header address.
14472
e15199cb 144732004-07-11 Marco Gerards <metgerards@student.han.nl>
14474
14475 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
14476 one block instead of two when looking for the initial partition.
14477 (grub_partition_probe): Initialize the local variable `p' with 0.
14478 Use base 10 for the grub_strtoul call.
14479 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
14480 need for one local variable.
14481 (grub_strtoul): Don't add the new value to `num', instead of that
14482 just assign it.
14483
020616c2 144842004-07-11 Marco Gerards <metgerards@student.han.nl>
14485
14486 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
14487 (pxeboot_img_SOURCES): New variable.
14488 (pxeboot_img_ASFLAGS): Likewise.
14489 (pxeboot_img_LDFLAGS): Likewise.
14490 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
14491 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
14492 <lode_leroy@hotmail.com>.
14493
6c51eb64 144942004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14495
14496 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
14497 there was no input.
14498
cfb12aff 144992004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14500
14501 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
14502 the history buffer logic.
14503
6eabba74 145042004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14505
14506 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
14507 (FILETYPE_INO_SYMLINK): New macros.
14508 (grub_ext2_find_file): Check if the node is a directory using the
14509 inode stat information instead of using the filetype in the
14510 dirent. Exclude the first character of an absolute symlink.
14511 (grub_ext2_dir): Mask out the filetype part of the mode member of
14512 the inode.
14513
66e19ef8 145142004-05-24 Marco Gerards <metgerards@student.han.nl>
14515
14516 Add support for UFS version 1 and 2. Add support for the minix
14517 filesystem version 1 and 2, both the variants with 14 and 30 long
14518 filenames.
f19dbdb7 14519
66e19ef8 14520 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
14521 fs/minix.c.
14522 (grub_emu_SOURCES): Likewise.
14523 (pkgdata_MODULES): Add ufs.mod and minix.mod.
14524 (ufs_mod_SOURCES): New variable.
14525 (ufs_mod_CFLAGS): Likewise.
14526 (minix_mod_SOURCES): Likewise.
14527 (minix_mod_CFLAGS): Likewise.
14528 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
14529 fs/minix.c.
14530 (grubof_SOURCES): Likewise.
14531 * fs/ufs.c: New file.
14532 * fs/minix.c: New file.
14533 * include/grub/fs.h (grub_ufs_init): New prototype.
14534 (grub_ufs_fini): Likewise.
14535 (grub_minix_init): Likewise.
14536 (grub_minix_fini): Likewise.
14537 * util/grub-emu.c (main): Initialize and deinitialize UFS and
14538 minix fs.
14539
cc2e748a 145402004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
14541
14542 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
14543 commands/ls.c, commands/terminal.c, commands/boot.c,
14544 commands/cmp.c and commands/cat.c.
14545 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
14546
14547 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
14548 "env.h"
14549
4b13b216 145502004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14551
14552 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
14553 and grub_, respectively. Because the conversion is trivial and
14554 mechanical, I omit the details here. Please refer to the CVS
14555 if you need more information.
14556
6a142551 145572004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14558
14559 * include/pupa: Renamed to ...
14560 * include/grub: ... this.
14561 * util/i386/pc/pupa-mkimage.c: Renamed to ...
14562 * util/i386/pc/grub-mkimage.c: ... this.
14563 * util/i386/pc/pupa-setup.c: Renamed to ...
14564 * util/i386/pc/grub-setup.c: ... this.
14565 * util/pupa-emu.c: Renamed to ...
14566 * util/grub-emu.c: ... this.
14567
e56cdf21 145682004-03-29 Marco Gerards <metgerards@student.han.nl>
14569
14570 Add support for the newworld apple macintosh (PPC). This has been
14571 tested on the powerbook 2000 only. It only adds support for
14572 generic ieee1275 functions, console and disk support. This should
14573 be easy to port to other architectures with support for Open
14574 Firmware.
f19dbdb7 14575
e56cdf21 14576 * configure.ac: Accept the powerpc as host_cpu. In the case of
14577 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
14578 specific tests are only executed while building for the i386.
14579 Inverse test for crosscompile.
14580 * genmk.rb (Utility): Allow assembler files.
14581 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
14582 * conf/powerpc-ieee1275.rmk: New file.
14583 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
14584 * disk/powerpc/ieee1275/partition.c: Likewise.
14585 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
14586 * include/pupa/powerpc/ieee1275/console.h: Likewise.
14587 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
14588 * include/pupa/powerpc/ieee1275/time.h: Likewise.
14589 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
14590 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
14591 * include/pupa/powerpc/ieee1275/loader.h
14592 * include/pupa/powerpc/setjmp.h: Likewise.
14593 * include/pupa/powerpc/types.h: Likewise.
14594 * kern/powerpc/ieee1275/init.c: Likewise.
14595 * kern/powerpc/ieee1275/openfw.c: Likewise.
14596 * term/powerpc/ieee1275/ofconsole.c: Likewise.
14597
14598 These files were written by Johan Rydberg
14599 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 14600
e56cdf21 14601 * boot/powerpc/ieee1275/cmain.c: New file.
14602 * boot/powerpc/ieee1275/crt0.S: Likewise.
14603 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
14604 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
14605
8c8cc205 146062004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
14607
14608 * Makefile.in: Update copyright.
14609 * genmodsrc.sh: Likewise.
14610 * gensymlist.sh: Likewise.
14611 * term/i386/pc/vga.c: Indent correctly.
14612
14613 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
14614 bugreporting address.
14615 * util/i386/pc/pupa-setup.c (usage): Likewise,
14616 (main): Call pupa_ext2_init and pupa_ext2_fini.
14617
f19dbdb7 14618 * fs/fat.c (log2): Renamed to ...
8c8cc205 14619 (fat_log2): ... this.
14620 All callers changed.
14621 * kern/misc.c (memcpy): Alias to pupa_memmove.
14622 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
14623 lvalue cast.
14624 * util/console.c (pupa_ncurses_fini): Return 0.
14625
14626 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
14627 Move fail label here.
14628 [__GNU__]: Don't warn when using stat.
14629 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
14630 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
14631 long int. Use strtol instead of strtoul.
f19dbdb7 14632
db1771cf 146332004-03-14 Marco Gerards <metgerards@student.han.nl>
14634
14635 * commands/boot.c: New file.
14636 * commands/cat.c: Likewise.
14637 * commands/cmp.c: Likewise.
14638 * commands/ls.c: Likewise.
14639 * commands/terminal.c: Likewise.
14640 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
14641 (pupa_register_command): Changed interface to match the new
14642 argument parser.
14643 (pupa_command_execute): Changed (almost rewritten) so it uses
14644 pupa_split_command. Added support for setting variables using the
14645 syntax `foo=bar'.
14646 (rescue_command): Changed to work with the new argument parser.
14647 (terminal_command): Moved from here to commands/terminal.c.
14648 (set_command): New function.
14649 (unset_command): New function.
14650 (insmod_command): New function.
14651 (rmmod_command): New function.
14652 (lsmod_command): New function.
14653 (pupa_command_init): Don't initialize the command terminal
14654 anymore. Initialize the commands set, unset, insmod, rmmod and
14655 lsmod.
14656 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
14657 (kernel_img_HEADERS): Add arg.h and env.h.
14658 (pupa_mkimage_LDFLAGS): Add kern/env.c.
14659 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
14660 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
14661 normal/arg.c.
14662 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
14663 terminal.mod.
14664 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
14665 (boot_mod_SOURCES): New variable.
14666 (terminal_mod_SOURCES): Likewise.
14667 (ls_mod_SOURCES): Likewise.
14668 (cmp_mod_SOURCES): Likewise.
14669 (cat_mod_SOURCES): Likewise.
14670
14671 * normal/arg.c: New file.
14672 * kern/env.c: Likewise.
14673 * include/pupa/arg.h: Likewise.
14674 * include/pupa/env.h: Likewise.
14675 * font/manager.c (font_command): Changed to match argument parsing
14676 interface changes.
14677 (PUPA_MOD_INIT): Likewise.
14678 * hello/hello.c (pupa_cmd_hello): Likewise.
14679 (PUPA_MOD_INIT): Likewise.
14680 * include/pupa/disk.h: Include <pupa/device.h>.
14681 (pupa_print_partinfo): New prototype.
14682 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
14683 (pupa_dl_get_prefix): Likewise.
14684 * include/pupa/misc.h: Include <pupa/err.h>.
14685 (pupa_isgraph): New prototype.
14686 (pupa_isdigit): Likewise.
14687 (pupa_split_cmdline): Likewise.
14688 * include/pupa/normal.h: Include <pupa/arg.h>.
14689 (pupa_command): Changed the prototype of the member `func' to
14690 match the argument parsing interface. Added member `options'.
14691 (pupa_register_command): Updated to match function.
14692 (pupa_arg_parse): New prototype.
14693 (pupa_hello_init) [PUPA_UTIL]: New prototype.
14694 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
14695 (pupa_ls_init) [PUPA_UTIL]: Likewise.
14696 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
14697 (pupa_cat_init) [PUPA_UTIL]: Likewise.
14698 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
14699 (pupa_boot_init) [PUPA_UTIL]: Likewise.
14700 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
14701 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
14702 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
14703 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
14704 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
14705 * kern/disk.c: Include <pupa/file.h>.
14706 (pupa_print_partinfo): New function.
14707 * kern/dl.c: Include <pupa/env.h>.
14708 (pupa_dl_dir): Variable removed.
14709 (pupa_dl_load): Use the environment variable `prefix' instead of
14710 the variable pupa_dl_dir.
14711 (pupa_dl_set_prefix): Function removed.
14712 (pupa_dl_get_prefix): Likewise.
14713 * kern/i386/pc/init.c: Include <pupa/env.h>.
14714 (pupa_machine_init): Use the environment variable `prefix' instead of
14715 using pupa_dl_set_prefix to set the prefix.
14716 * kern/main.c: Include <pupa/env.h>.
14717 (pupa_set_root_dev): Use the environment variable `prefix' instead of
14718 using pupa_dl_get_prefix to get the prefix.
14719 * kern/misc.c: Include <pupa/env.h>.
14720 (pupa_isdigit): New function.
14721 (pupa_isgraph): Likewise.
14722 (pupa_ftoa): Likewise.
14723 (pupa_vsprintf): Added support for printing values of the type
14724 `double'. Make it possible to format variable output when using
14725 formatting like `%1.2%f'.
14726 (pupa_split_cmdline): New function.
14727 * kern/rescue.c: Include <pupa/env.h>.
14728 (next_word): Removed function.
14729 (pupa_rescue_cmd_prefix): Likewise.
14730 (pupa_rescue_cmd_set): New function.
14731 (pupa_rescue_cmd_unset): New function.
14732 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
14733 split the command line instead of splitting it here. Added
14734 support for setting variables using the syntax `foo=bar'. Don't
14735 initialize the prefix command anymore. Initialized the set and
14736 unset commands.
14737 * normal/cmdline.c: Include <pupa/env.h>.
14738 (pupa_tab_complete): Added prototypes for print_simple_completion,
14739 print_partition_completion, add_completion, iterate_commands,
14740 iterate_dev, iterate_part and iterate_dir. Moved code to print
14741 partition information from here to kern/disk.c.
fe6b695a 14742 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 14743 * normal/main.c: Include <pupa/env.h>.
14744 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
14745 instead of using pupa_dl_get_prefix to get the prefix.
14746 * term/i386/pc/vga.c: Include <pupa/arg.h>.
14747 (check_vga_mem): Cast pointers to `void *' to silence a gcc
14748 warning.
14749 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
14750 (pupa_vga_setcolor): Declare unused variables with `__attribute__
14751 ((unused))' to silence a gcc warning.
14752 (pupa_vga_setcolor): Likewise.
14753 (debug_command): Changed to match argument parsing
14754 interface changes.
14755 * util/pupa-emu.c: Include <pupa/env.h>.
14756 (options): Added 0's for unused fields to silence a gcc warning.
14757 (argp): Likewise.
14758 (main): Use the environment variable `prefix' instead of using
14759 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
14760 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
14761 and terminal.
14762
14763 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
14764 * util/misc.c: Include <malloc.h>.
14765 (pupa_malloc): Rewritten so errors are correctly reported.
14766 (pupa_realloc): Likewise.
14767 (pupa_memalign): Likewise.
14768 (pupa_mm_init_region): Declare unused variables with
14769 `__attribute__ ((unused))' to silence a gcc warning.
14770 * normal/i386/setjmp.S: Remove tab at the end of the file to
14771 silence a gcc warning.
14772 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
14773 variables with `__attribute__ ((unused))' to silence a gcc
14774 warning.
14775 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
14776 local variable i unsigned to silence a gcc warning.
14777
14778 * kern/term.c: Include <pupa/misc.h>.
14779 (pupa_more_lines): New variable.
14780 (pupa_more): Likewise.
14781 (pupa_putcode): When the pager is active pause at the end of every
14782 screen.
14783 (pupa_set_more): New function.
14784 * include/pupa/term.h (pupa_set_more): New prototype.
14785
14786
3b1139cb 147872004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
14788
14789 Now this project is GRUB 2 rather than PUPA. The location of
14790 the CVS repository was moved to GRUB's.
f19dbdb7 14791
3b1139cb 14792 * configure.ac: Use bug-grub as the reporting address.
14793 Use GRUB instead of PUPA.
14794 Change the version number to 1.90.
14795
8367695c 147962004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
14797
14798 * genkernsyms.sh: Updated copyright information.
14799 * genmk.rb: Likewise.
14800 * genmodsrc.sh: Likewise.
14801 * gensymlist.sh: Likewise.
14802 * boot/i386/pc/boot.S: Likewise.
14803 * boot/i386/pc/diskboot.S: Likewise.
14804 * disk/i386/pc/biosdisk.c: Likewise.
14805 * disk/i386/pc/partition.c: Likewise.
14806 * font/manager.c: Likewise.
14807 * fs/ext2.c: Likewise.
14808 * fs/fat.c: Likewise.
14809 * include/pupa/boot.h: Likewise.
14810 * include/pupa/device.h: Likewise.
14811 * include/pupa/disk.h: Likewise.
14812 * include/pupa/dl.h: Likewise.
14813 * include/pupa/elf.h: Likewise.
14814 * include/pupa/err.h: Likewise.
14815 * include/pupa/file.h: Likewise.
14816 * include/pupa/font.h: Likewise.
14817 * include/pupa/fs.h: Likewise.
14818 * include/pupa/kernel.h: Likewise.
14819 * include/pupa/loader.h: Likewise.
14820 * include/pupa/misc.h: Likewise.
14821 * include/pupa/mm.h: Likewise.
14822 * include/pupa/net.h: Likewise.
14823 * include/pupa/normal.h: Likewise.
14824 * include/pupa/rescue.h: Likewise.
14825 * include/pupa/setjmp.h: Likewise.
14826 * include/pupa/symbol.h: Likewise.
14827 * include/pupa/term.h: Likewise.
14828 * include/pupa/types.h: Likewise.
14829 * include/pupa/i386/setjmp.h: Likewise.
14830 * include/pupa/i386/types.h: Likewise.
14831 * include/pupa/i386/pc/biosdisk.h: Likewise.
14832 * include/pupa/i386/pc/boot.h: Likewise.
14833 * include/pupa/i386/pc/console.h: Likewise.
14834 * include/pupa/i386/pc/init.h: Likewise.
14835 * include/pupa/i386/pc/kernel.h: Likewise.
14836 * include/pupa/i386/pc/linux.h: Likewise.
14837 * include/pupa/i386/pc/loader.h: Likewise.
14838 * include/pupa/i386/pc/memory.h: Likewise.
14839 * include/pupa/i386/pc/multiboot.h: Likewise.
14840 * include/pupa/i386/pc/partition.h: Likewise.
14841 * include/pupa/i386/pc/time.h: Likewise.
14842 * include/pupa/i386/pc/vga.h: Likewise.
14843 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
14844 * include/pupa/util/getroot.h: Likewise.
14845 * include/pupa/util/misc.h: Likewise.
14846 * include/pupa/util/resolve.h: Likewise.
14847 * kern/device.c: Likewise.
14848 * kern/disk.c: Likewise.
14849 * kern/dl.c: Likewise.
14850 * kern/err.c: Likewise.
14851 * kern/file.c: Likewise.
14852 * kern/fs.c: Likewise.
14853 * kern/loader.c: Likewise.
14854 * kern/main.c: Likewise.
14855 * kern/misc.c: Likewise.
14856 * kern/mm.c: Likewise.
14857 * kern/rescue.c: Likewise.
14858 * kern/term.c: Likewise.
14859 * kern/i386/dl.c: Likewise.
14860 * kern/i386/pc/init.c: Likewise.
14861 * kern/i386/pc/lzo1x.S: Likewise.
14862 * kern/i386/pc/startup.S: Likewise.
14863 * loader/i386/pc/chainloader.c: Likewise.
14864 * loader/i386/pc/linux.c: Likewise.
14865 * loader/i386/pc/multiboot.c: Likewise.
14866 * normal/cmdline.c: Likewise.
14867 * normal/command.c: Likewise.
14868 * normal/main.c: Likewise.
14869 * normal/menu.c: Likewise.
14870 * normal/i386/setjmp.S: Likewise.
14871 * term/i386/pc/console.c: Likewise.
14872 * term/i386/pc/vga.c: Likewise.
14873 * util/console.c: Likewise.
14874 * util/genmoddep.c: Likewise.
14875 * util/misc.c: Likewise.
14876 * util/pupa-emu.c: Likewise.
14877 * util/resolve.c: Likewise.
14878 * util/unifont2pff.rb: Likewise.
14879 * util/i386/pc/biosdisk.c: Likewise.
14880 * util/i386/pc/getroot.c: Likewise.
14881 * util/i386/pc/pupa-mkimage.c: Likewise.
14882 * util/i386/pc/pupa-setup.c: Likewise.
14883
e6eced71 148842004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
14885
14886 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
14887 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
14888 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
14889 reading and reset it after reading.
14890 (pupa_ext2_close): Return PUPA_ERR_NONE.
14891
14892 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
14893 Correct value.
14894 (struct linux_kernel_header): Add kernel_version and
14895 initrd_addr_max.
14896 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
14897 pupa_file_read succeeds.
14898 (pupa_rescue_cmd_initrd): Implement.
14899
5aded270 149002003-12-03 Marco Gerards <metgerards@student.han.nl>
14901
14902 * fs/ext2.c (pupa_ext2_label): New function.
14903 (pupa_ext2_fs): Added label.
14904 * fs/fat.c (pupa_fat_label): New function.
14905 (pupa_fat_fs): Added label.
14906 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
14907
14908 * kern/misc.c (pupa_strndup): New function.
14909 * include/pupa/misc.h (pupa_strndup): New prototype.
14910
14911 * include/pupa/normal.h: Include <pupa/err.h>.
14912 (pupa_set_history): New prototype.
14913 (pupa_iterate_commands): New prototype.
14914 * normal/cmdline.c: Include <pupa/machine/partition.h>,
14915 <pupa/disk.h>, <pupa/file.h>.
14916 (hist_size): New variable.
14917 (hist_lines): Likewise.
14918 (hist_end): Likewise.
14919 (hist_used): Likewise.
14920 (pupa_set_history): New function.
14921 (pupa_history_get): Likewise.
14922 (pupa_history_add): Likewise.
14923 (pupa_history_replace): Likewise.
14924 (pupa_tab_complete): Likewise.
14925 (pupa_cmdline_run): Added tab completion and history buffer. Tab
14926 completion shows partitionnames while completing partitions, this
14927 feature was suggested by Jeff Bailey.
14928 * normal/command.c (pupa_iterate_commands): New function.
14929 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
14930 (pupa_normal_init): Initialize history buffer.
14931 (PUPA_MOD_INIT): Likewise.
14932 (pupa_normal_fini): Free the history buffer.
14933 (PUPA_MOD_FINI): Likewise.
14934
14935 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
14936 key.
14937
14938 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
14939 * configure.ac [i386]: Check for regparam bug.
14940 (NESTED_FUNC_ATTR) [! i386]: Defined.
14941
1f7315a3 149422003-11-17 Marco Gerards <metgerards@student.han.nl>
14943
14944 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
14945 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
14946 (pupa_emu_SOURCES): New variable.
14947 (pupa_emu_LDFLAGS): Likewise.
14948 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
14949 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
14950 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
14951 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
14952 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
14953 (pupa_jmp_buf): New typedef.
14954 (pupa_setjmp) [PUPA_UTIL]: New macro.
14955 (pupa_longjmp) [PUPA_UTIL]: Likewise.
14956 * include/pupa/term.h (struct pupa_term): New member `refresh'.
14957 (pupa_refresh): New prototype.
14958 * include/pupa/util/getroot.h: New file.
14959 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
14960 it.
14961 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
14962 (pupa_rescue_cmd_cat): Likewise.
14963 (pupa_rescue_cmd_ls): Likewise.
14964 (pupa_rescue_cmd_testload): Likewise.
14965 (pupa_rescue_cmd_lsmod): Likewise.
14966 * normal/cmdline.c (pupa_cmdline_get): Likewise.
14967 * normal/menu.c (run_menu): Likewise.
14968 * kern/term.c (pupa_cls): Likewise.
14969 (pupa_refresh): New function.
14970 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
14971 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
14972 * util/console.c: New file.
f19dbdb7 14973
1f7315a3 14974 * util/i386/pc/getroot.c: New file.
14975 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
14976 (pupa_putchar): New function.
14977 (pupa_refresh): Likewise.
14978 (xgetcwd): Function moved to ...
14979 (strip_extra_slashes): Likewise.
14980 (get_prefix): Likewise.
f19dbdb7 14981 * util/i386/pc/getroot.c: ... here.
1f7315a3 14982 (find_root_device): Function moved and renamed to...
14983 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
14984 Changed all callers.
14985 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
14986 and renamed to...
14987 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
14988 Changed all callers.
14989 * util/misc.c (pupa_memalign): New function.
14990 (pupa_mm_init_region): Likewise.
14991 (pupa_register_exported_symbols): Likewise.
14992 (pupa_putchar): Function removed.
14993 * util/pupa-emu.c: New file.
14994
9a5c1ade 149952003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
14996
14997 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
14998 (_multiboot_mod_SOURCES): New variable.
14999 (_multiboot_mod_CFLAGS): Likewise.
15000 * loader/i386/pc/multiboot.c: New file.
15001 * include/pupa/i386/pc/multiboot.h: Likewise.
15002 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
15003 (pupa_multiboot_real_boot): New function.
15004 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
15005 (pupa_multiboot_real_boot): New prototype.
15006 (pupa_rescue_cmd_multiboot): Likewise
15007 (pupa_rescue_cmd_module): Likewise.
15008
15009 * kern/loader.c (pupa_loader_set): Continue when
15010 pupa_loader_unload_func() fails.
15011 (pupa_loader_unset): New function.
15012 * include/pupa/loader.h (pupa_loader_unset): New prototype.
15013
15014 * kern/misc.c (pupa_stpcpy): New function.
15015 * include/pupa/misc.h (pupa_stpcpy): New prototype.
15016
8e72a9c0 150172003-11-12 Marco Gerards <metgerards@student.han.nl>
15018
15019 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
15020 for available extensions.
15021
15022 * include/pupa/i386/pc/time.h: New file.
15023 * kern/disk.c: Include <pupa/machine/time.h>.
15024 (PUPA_CACHE_TIMEOUT): New macro.
15025 (pupa_last_time): New variable.
15026 (pupa_disk_open): Flush the cache when there was a timeout.
15027 (pupa_disk_close): Reset the timer.
15028 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
15029 pupa_currticks.
15030 * util/misc.c: Include <sys/times.h>
15031 (pupa_get_rtc): New function.
15032
c4adbd32 150332003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
15034
15035 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
15036 as blocks.
15037 (pupa_ext2_get_file_block): Use blocks member.
15038
15039 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
15040 first block. Return -1 instead of pupa_errno on error.
15041
bfd30f06 150422003-10-27 Marco Gerards <metgerards@student.han.nl>
15043
15044 * README: In the pupa-mkimage example use _chain instead of chain
15045 and ext2 instead of fat.
15046 * TODO: Replace ext2fs with jfs as an example. Add an item for
15047 adding journal playback for ext2fs.
15048 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
15049 (pkgdata_MODULES): Added ext2.mod.
15050 (ext2_mod_SOURCES): New variable.
15051 (ext2_mod_CFLAGS): Likewise.
15052 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
15053 * include/pupa/misc.h (pupa_strncpy): New prototype.
15054 (pupa_strcat): Likewise.
15055 (pupa_strncmp): Likewise.
15056 * kern/misc.c (pupa_strcat): Enable function.
15057 (pupa_strncpy): New function.
15058 (pupa_strncmp): Likewise.
15059 * fs/ext2.c: New file.
f19dbdb7 15060
bfd30f06 15061 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
15062 when the read failed before retrying.
15063 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
15064 (_FILE_OFFSET_BITS): Likewise.
15065 * configure.ac: Added AC_SYS_LARGEFILE.
15066
98d15063 150672003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15068
15069 * genmk.rb (PModule#rule): Make sure to get only symbol names
15070 from the output of nm.
15071 Reported by Robert Millan <zeratul2@wanadoo.es>.
15072
18d9c7cd 150732003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15074
15075 I forgot to check in these changes for a long time. This adds
15076 incomplete support for VGA console, and this is still very
15077 buggy. Also, a lot of consideration is required for I18N,
15078 UNICODE, and VGA font issues. Therefore, assume that this is
15079 such that "better than nothing".
f19dbdb7 15080
18d9c7cd 15081 * font/manager.c: New file.
15082 * include/pupa/font.h: Likewise.
15083 * include/pupa/i386/pc/vga.h: Likewise.
15084 * term/i386/pc/vga.c: Likewise.
15085 * util/unifont2pff.rb: Likewise.
15086
15087 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
15088 (pkgdata_MODULES): Added vga.mod and font.mod.
15089 (vga_mod_SOURCES): New variables.
15090 (vga_mod_CFLAGS): Likewise.
15091 (font_mod_SOURCES): Likewise.
15092 (font_mod_CFLAGS): Likewise.
15093
15094 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
15095
15096 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 15097 (struct pupa_term): Added init and fini.
18d9c7cd 15098 Changed the argument of putchar to pupa_uint32_t.
15099
15100 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
15101 (pupa_console_real_putchar): New prototype.
15102 (pupa_console_putchar): Removed.
15103 (pupa_console_checkkey): Exported.
15104 (pupa_console_getkey): Likewise.
15105
15106 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
15107 characters.
15108
15109 * kern/term.c (pupa_term_set_current): Rewritten.
15110 (pupa_putchar): Likewise.
15111 (pupa_putcode): New function.
15112
15113 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
15114 (pupa_console_real_putchar): ... this.
15115 (pupa_vga_set_mode): New function.
15116 (pupa_vga_get_font): Likewise.
15117
15118 * normal/command.c: Include pupa/term.h.
15119 (terminal_command): New function.
15120 (pupa_command_init): Register the command "terminal".
15121
15122 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
15123 (DISP_UP): Likewise.
15124 (DISP_RIGHT): Likewise.
15125 (DISP_DOWN): Likewise.
15126 (DISP_HLINE): Likewise.
15127 (DISP_VLINE): Likewise.
15128 (DISP_UL): Likewise.
15129 (DISP_UR): Likewise.
15130 (DISP_LL): Likewise.
15131 (DISP_LR): Likewise.
15132
15133 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 15134
977329f5 151352003-02-08 NIIBE Yutaka <gniibe@m17n.org>
15136
15137 * util/resolve.c (pupa_util_resolve_dependencies): BUG
15138 FIX. Reverse the path_list.
15139
15140 * include/pupa/normal.h: Export pupa_register_command and
15141 pupa_unregister_command.
15142
15143 * hello/hello.c (pupa_cmd_hello): New module.
15144 * conf/i386-pc.rmk: Added hello.mod.
15145
1f5ab428 151462003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
15147
15148 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 15149
1f5ab428 15150 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
15151 (compress_kernel): New variable.
15152 (generate_image): Heavily modified to support compressing a
15153 large part of the core image.
15154
15155 * util/misc.c (pupa_util_read_image): Fix a file descriptor
15156 leak.
15157 (pupa_util_load_image): New function.
15158
15159 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
15160 (pupa_compressed_size): New variable.
15161 (codestart): Enable Gate A20 here.
15162 Decompress the compressed part of the core image.
15163 Rearrange the code to put functions and variables which are
15164 required for initialization in the non-compressed part.
15165 Include lzo1x.S.
15166
15167 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
15168 here.
15169
15170 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
15171
f19dbdb7 15172 * include/pupa/i386/pc/kernel.h
1f5ab428 15173 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
15174 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
15175 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15176 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15177 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
15178
15179 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
15180
15181 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
15182 (Utility#rule): Likewise.
15183
15184 * configure.ac: Check if LZO is available.
15185
ce5bf700 151862003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
15187
15188 * include/pupa/normal.h: New file.
15189 * include/pupa/setjmp.h: Likewise.
15190 * include/pupa/i386/setjmp.h: Likewise.
15191 * normal/cmdline.c: Likewise.
15192 * normal/command.c: Likewise.
15193 * normal/main.c: Likewise.
15194 * normal/menu.c: Likewise.
15195 * normal/i386/setjmp.S: Likewise.
f19dbdb7 15196
ce5bf700 15197 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
15198 (pupa_rescue_cmd_initrd): Likewise.
15199
15200 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
15201 Likewise.
15202
15203 * kern/i386/pc/startup.S (translation_table): New variable.
15204 (translate_keycode): New function.
15205 (pupa_console_getkey): Call translate_keycode.
15206
15207 * kern/rescue.c (attempt_normal_mode): New function.
15208 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
15209 it failed, print a message.
15210
15211 * kern/mm.c (pupa_real_malloc): Print more information when a
15212 free magic is broken.
15213 (pupa_free): If the first free header is not free actually, set
15214 it to P.
15215
15216 * kern/main.c (pupa_load_normal_mode): Just load the module
15217 "normal".
15218 (pupa_main): Don't print the message
15219 "Entering into rescue mode..." here.
15220
15221 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
15222 Declared.
15223 (pupa_rescue_cmd_initrd): Likewise.
15224 (pupa_rescue_cmd_initrd): Likewise.
15225
15226 * include/pupa/symbol.h (FUNCTION): Specify the type.
15227 (VARIABLE): Likewise.
15228
15229 * include/pupa/err.h (pupa_err_t): Added
15230 PUPA_ERR_UNKNOWN_COMMAND.
15231
15232 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
15233 (pupa_dl_get_prefix): Likewise.
15234
15235 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
15236 Added _chain.mod and _linux.mod instead of chain.mod and
15237 linux.mod.
15238 (chain_mod_SOURCES): Renamed to ...
15239 (_chain_mod_SOURCES): ... this.
15240 (chain_mod_CFLAGS): Renamed to ...
15241 (_chain_mod_CFLAGS): ... this.
15242 (linux_mod_SOURCES): Renamed to ...
15243 (_linux_mod_SOURCES): ... this.
15244 (linux_mod_CFLAGS): Renamed to ...
15245 (_linux_mod_CFLAGS): ... this.
15246 (normal_mod_SOURCES): New variable.
15247 (normal_mod_CFLAGS): Likewise.
15248 (normal_mod_ASFLAGS): Likewise.
15249
152502003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
15251
15252 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
15253 possible.
15254
fe6b695a 15255 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 15256 recursively.
15257 (pupa_dl_unref): Unrefer depending modules recursively.
15258 Don't call pupa_dl_unload implicitly, because PUPA can crash if
15259 a module is unloaded before one depending on that module is
15260 unloaded.
15261 (pupa_dl_unload): Unload depending modules explicitly,
15262 if possible.
15263
c04da074 152642003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
15265
15266 * include/pupa/i386/pc/linux.h: New file.
15267 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 15268
c04da074 15269 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
15270 Removed.
15271 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
15272 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
15273 of PUPA_CHAINLOADER_BOOT_SECTOR.
15274
15275 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
15276 (pupa_linux_prot_size): New variable.
15277 (pupa_linux_tmp_addr): Likewise.
15278 (pupa_linux_real_addr): Likewise.
15279 (pupa_linux_boot_zimage): New function.
15280 (pupa_linux_boot_bzimage): Likewise.
15281
15282 * kern/i386/pc/init.c (struct mem_region): New structure.
15283 (MAX_REGIONS): New macro.
15284 (mem_regions): New variable.
15285 (num_regions): Likewise.
15286 (pupa_os_area_addr): Likewise.
15287 (pupa_os_area_size): Likewise.
15288 (pupa_lower_mem): Likewise.
15289 (pupa_upper_mem): Likewise.
15290 (add_mem_region): New function.
15291 (compact_mem_regions): Likewise.
15292 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
15293 the size of the conventional memory and that of so-called upper
15294 memory (before the first memory hole).
15295 Instead of adding each found region to free memory, use
15296 add_mem_region and add them after removing overlaps.
15297 Also, add only 1/4 of the upper memory to free memory. The rest
15298 is used for loading OS images. Maybe this is ad hoc, but this
15299 makes it much easier to relocate OS images when booting.
15300
15301 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
15302 (pupa_enter_rescue_mode): Don't register initrd and module.
15303
15304 * kern/mm.c: Include pupa/dl.h.
15305
15306 * kern/main.c: Include pupa/file.h and pupa/device.h.
15307
15308 * kern/loader.c (pupa_loader_load_module_func): Removed.
15309 (pupa_loader_load_module): Likewise.
15310
15311 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
15312 ``.o''.
15313
15314 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
15315 (pupa_linux_tmp_addr): Likewise.
15316 (pupa_linux_real_addr): Likewise.
15317 (pupa_linux_boot_zimage): Likewise.
15318 (pupa_linux_boot_bzimage): Likewise.
15319
15320 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
15321 (pupa_upper_mem): Likewise.
15322 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
15323 module is too dangerous.
15324
15325 * include/pupa/loader.h (pupa_os_area_addr): Declared.
15326 (pupa_os_area_size): Likewise.
15327 (pupa_loader_set): Remove the first argument. Loader doesn't
15328 manage modules or initrd any longer.
15329 (pupa_loader_load_module): Removed.
15330
15331 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
15332 (linux_mod_SOURCES): New variable.
15333 (linux_mod_CFLAGS): Likewise.
15334
a13f9237 153352003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
15336
15337 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
15338 the length of a blocklist correctly.
15339
15340 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
15341 Use ioctl only if the OS file is a block device.
15342 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
15343 not very useful for normal files.
15344
15345 * kern/main.c (pupa_set_root_dev): New function.
15346 (pupa_load_normal_mode): Likewise.
15347 (pupa_main): Call those above.
15348
15349 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
15350 pupa_uint16_t.
15351
15352 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
15353
a5ffe966 153542003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
15355
15356 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
15357 (setup): Configure the installed partition information and the
15358 dl prefix.
15359
15360 * loader/i386/pc/chainloader.c (my_mod): New variable.
15361 (pupa_chainloader_unload): New function.
15362 (pupa_rescue_cmd_chainloader): Refer itself.
15363 (PUPA_MOD_INIT): Save its own module in MY_MOD.
15364
15365 * kern/i386/pc/startup.S (install_partition): Removed.
15366 (version_string): Likewise.
15367 (config_file): Likewise.
15368 (pupa_install_dos_part): New variable.
15369 (pupa_install_bsd_part): Likewise.
15370 (pupa_prefix): Likewise.
15371 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
15372
15373 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
15374 and pupa/misc.h.
15375 (make_install_device): New function.
15376 (pupa_machine_init): Set the dl prefix.
15377
15378 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
15379 (buf): Renamed to ...
15380 (linebuf): ... this.
15381 (pupa_rescue_cmd_prefix): New function.
15382 (pupa_rescue_cmd_insmod): Likewise.
15383 (pupa_rescue_cmd_rmmod): Likewise.
15384 (pupa_rescue_cmd_lsmod): Likewise.
15385 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
15386 rmmod and lsmod.
15387
15388 * kern/mm.c (pupa_memalign): If failed even after invalidating
15389 disk caches, unload unneeded modules and retry.
15390
15391 * kern/misc.c (pupa_memmove): New function.
15392 (pupa_memcpy): Removed.
15393 (pupa_strcpy): New function.
15394 (pupa_itoa): Made static.
15395
15396 * kern/dl.c (pupa_dl_iterate): New function.
15397 (pupa_dl_ref): Likewise.
15398 (pupa_dl_unref): Likewise.
15399 (pupa_dl_unload): Return if succeeded or not.
15400 (pupa_dl_unload_unneeded): New function.
15401 (pupa_dl_unload_all): Likewise.
15402 (pupa_dl_init): Renamed to ...
15403 (pupa_dl_set_prefix): ... this.
15404 (pupa_dl_get_prefix): New function.
15405
15406 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
15407 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
15408 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15409 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15410 (pupa_install_dos_part): Declared.
15411 (pupa_install_bsd_part): Likewise.
15412 (pupa_prefix): Likewise.
15413 (pupa_boot_drive): Likewise.
15414
15415 * include/pupa/types.h: Fix a typo.
15416
15417 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
15418 pupa_memmove.
15419 (pupa_memmove): Declared.
15420 (pupa_strcpy): Likewise.
15421
15422 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
15423 pupa_mod_init takes one argument, its own module.
15424 (pupa_dl_unload_unneeded): Declared.
15425 (pupa_dl_unload_all): Likewise.
15426 (pupa_dl_ref): Likewise.
15427 (pupa_dl_unref): Likewise.
15428 (pupa_dl_iterate): Likewise.
15429 (pupa_dl_init): Renamed to ...
15430 (pupa_dl_set_prefix): ... this.
15431 (pupa_dl_get_prefix): Declared.
15432
15433 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 15434 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 15435 unloaded.
15436 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
15437 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
15438
15439 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
15440 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
15441
012d7999 154422003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15443
15444 * util/i386/pc/pupa-setup.c (setup): Define the internal
15445 function find_first_partition_start at the top level, because GCC
15446 3.0.x cannot compile internal functions in deeper scopes
15447 correctly.
15448 (find_root_device): Use lstat instead of stat.
15449 Don't follow symbolic links.
15450 Fix the path-constructing code.
15451
15452 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
15453 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
15454 by a BLKGETSIZE ioctl first, because block devices don't fill
15455 the member st_mode of the structure stat on Linux.
15456 [__linux__] (linux_find_partition): Use a temporary buffer
15457 REAL_DEV for the working space. Copy it to DEV before returning.
15458 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
15459 buffer cache consistent.
15460 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
15461 strncmp. The previous value was merely wrong.
15462 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
15463
15464 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
15465 FAT size is 12. The previous value was merely wrong.
15466
15467 * kern/main.c (pupa_main): Don't split the starting message from
15468 newlines.
15469
15470 * kern/term.c (pupa_putchar): Put CR after LF instead of before
15471 LF, because BIOS goes crazy about character attributes in this
15472 case.
15473
1cc73a62 154742003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15475
15476 * include/i386/pc/util/biosdisk.h: New file.
15477 * util/i386/pc/biosdisk.c: Likewise.
15478 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 15479
1cc73a62 15480 * Makefile.in (INCLUDE_DISTFILES): Added
15481 include/pupa/i386/pc/util/biosdisk.h.
15482 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
15483 directory util/i386/pc.
15484 (install-local): Added a rule for sbin_UTILITIES.
15485 (uninstall): Likewise.
15486
15487 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
15488
15489 * util/misc.c (xrealloc): New function.
15490 (pupa_malloc): Likewise.
15491 (pupa_free): Likewise.
15492 (pupa_realloc): Likewise.
15493 (pupa_stop): Likewise.
15494 (pupa_putchar): Likewise.
15495
15496 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
15497
15498 * include/pupa/util/misc.h (xrealloc): Declared.
15499
15500 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
15501 macro.
15502 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
15503 (PUPA_BOOT_MACHINE_BPB_END): ... this.
15504
15505 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
15506 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15507
15508 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
15509 way should be implemented.
15510 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15511
15512 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
15513 the size of NAME for safety.
15514 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
15515 0x88.
15516
15517 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
15518 (pupa_setup_SOURCES): Likewise.
15519
15520 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
15521
08b70fe8 155222002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15523
15524 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
15525 bunch of pushl's from pusha, because this destroys the return
15526 value.
15527
62ddcc8f 155282002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15529
15530 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
15531 This means that any missing prototypes could be fatal. Also, you
15532 must take care when writing assembly code. See the comments at
15533 the beginning of startup.S, for more details.
f19dbdb7 15534
62ddcc8f 15535 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
15536 compilation mechanism.
15537 (pupa_chainloader_real_boot): Likewise.
15538 (pupa_biosdisk_rw_int13_extensions): Likewise.
15539 (pupa_biosdisk_rw_standard): Likewise.
15540 (pupa_biosdisk_check_int13_extensions): Likewise.
15541 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
15542 (pupa_biosdisk_get_diskinfo_standard): Likewise.
15543 (pupa_get_memsize): Likewise.
15544 (pupa_get_mmap_entry): Likewise.
15545 (pupa_console_putchar): Likewise.
15546 (pupa_console_setcursor): Likewise.
15547 (pupa_getrtsecs): Use pushl instead of push.
15548
15549 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
15550 memory instead of the stack for a mmap entry, because some
15551 BIOSes may ignore the maximum size and overflow.
15552
15553 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
15554
15555 * genmk.rb (PModule#rule): Compile automatically generated
15556 sources with module-specific CFLAGS as well as other sources.
15557
9962ed99 155582002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15559
15560 * configure.ac: Check ld.
15561 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
15562 respectively, before checking endianness and sizes.
15563
15564 * Makefile.in (LD): New variable.
f19dbdb7 15565
abdfc3c5 155662002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15567
15568 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
15569
6a161fa9 155702002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15571
15572 * Changelog: New file.
15573