]> git.proxmox.com Git - grub2.git/blame - ChangeLog
Forgot to delete stamp-h.in
[grub2.git] / ChangeLog
CommitLineData
4484e01e 12009-04-14 Felix Zielcke <fzielcke@z-51.de>
2
3 * configure: Remove.
4 * config.h.in: Likewise.
5 * DISTLIST: Likewise.
6 * conf/common.mk: Likewise.
7 * conf/i386-coreboot.mk: Likewise.
8 * conf/i386-efi.mk: Likewise.
9 * conf/i386-ieee1275.mk: Likewise.
10 * conf/i386.mk: Likewise.
11 * conf/i386-pc.mk: Likewise.
12 * conf/powerpc-ieee1275.mk: Likewise.
13 * conf/sparc64-ieee1275.mk: Likewise.
14 * conf/x86_64-efi.mk: Likewise.
15
16 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
17 develop on GRUB.
18
5c5bf96a 192009-04-14 John Stanley <jpsinthemix@verizon.net>
20 David S. Miller <davem@davemloft.net>
21
22 * util/hostdisk.c (make_device_name): Fix buffer length
23 calculations.
24
e25b5a8c 252009-04-14 Felix Zielcke <fzielcke@z-51.de>
26
27 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
28 <sys/param.h> and <sys/sysctl.h>.
29 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
30 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
31 opening the device and reset them afterwards.
32
1f1f580c 332009-04-13 Pavel Roskin <proski@gnu.org>
34
35 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
36 Reported by John Stanley <jpsinthemix@verizon.net>
37
7ebc2d6b 382009-04-13 Robert Millan <rmh@aybabtu.com>
39
40 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
41 that name for menuentries when appropiate.
42
d8ba3667 432009-04-13 Felix Zielcke <fzielcke@z-51.de>
44
45 * util/grub.d/10_freebsd.in: Add a missing `fi'.
46
cba416eb 472009-04-13 Robert Millan <rmh@aybabtu.com>
48
49 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
50 to Linux, simply abort telling the user it's no longer supported.
51
a547a745 522009-04-13 Felix Zielcke <fzielcke@z-51.de>
53
54 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
55 doestn't exist. Check also for /boot/kernel/kernel.gz. Print
56 `freebsd_loadenv' only when devices.hints exist.
57
232a769c 582009-04-13 Pavel Roskin <proski@gnu.org>
59
60 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
61
c3012039 622009-04-13 Felix Zielcke <fzielcke@z-51.de>
63
64 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
65 partition number.
66 (grub_drive): Likewise.
67
234022fe 682009-04-13 David S. Miller <davem@davemloft.net>
69
70 * kern/sparc64/ieee1275/ieee1275.c: New file.
71 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
72 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
73 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
74 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
75 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
76 grub_ieee1275_alloc_physmem): Declare new exported functions.
77
d8e1836c 78 * include/grub/sparc64/ieee1275/loader.h: New file.
79 * include/grub/sparc64/ieee1275/memory.h: Likewise.
80 * include/grub/sparc64/kernel.h: Likewise.
81 * loader/sparc64/ieee1275/linux.c: Likewise.
82
96bd81ec 83 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
84 (grub_fstest_SOURCES): Likewise.
85
6a4737e5 86 * util/hostdisk.c (make_device_name): Do not make any assumptions
87 about the length of drive names.
88
1d7a72fd 89 * kern/dl.c (grub_dl_load_file): Close file immediately when
90 we are done using it.
91
56bc2471 922009-04-12 David S. Miller <davem@davemloft.net>
93
94 * kern/misc.c (grub_ltoa): Fix cast when handling negative
95 values. Noticed by Pavel Roskin.
96
df38d0bb 97 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
98 target compiler.
99
e382e93a 100 * genmk.rb: Add more flexible image type specification, also
101 pass --strip-unneeded to objcopy.
102 * conf/i386-pc.rmk: Use *_FORMAT.
103 * conf/i386-pc.mk: Rebuilt.
104
f5dbbca9 105 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
106 (OFDISK_HASH_SZ): Define.
107 (ofdisk_hash): New hash table.
108 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
109 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
110 instead of device phandle which is not unique.
111
91c88b12 112 * kern/sparc64/ieee1275/init.c: Delete, replace with...
113 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
114 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
115 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
116 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
117 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
118 GRUB_KERNEL_MACHINE_DATA_END): Define.
119 (grub_kernel_image_size, grub_total_module_size): Declare.
120
5b5d4aa5 1212009-04-12 Pavel Roskin <proski@gnu.org>
122
123 * configure.ac: Change the logic when we check for target tools.
124 Do it when the target is specified and it's different from the
125 specified value of the host.
126
c91e1793 1272009-04-11 Felix Zielcke <fzielcke@z-51.de>
128
129 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
130 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
131 GNU/kFreeBSD. Check if a device is a character device. Use
132 DIOCGMEDIASIZE to get the size.
133 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
134 support for GNU/kFreeBSD.
135 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
136 is a character device instead of a block device. Add support for
137 FreeBSD device names.
138
139 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
140 is a character device instead of a block device.
141
142 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
143 is a character device instead of a block device.
144
b1ac8644 1452009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
146
147 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
148 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
149 FreeBSD. Check if a device is a character device. Use
150 DIOCGMEDIASIZE to get the size.
151 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
152 support for FreeBSD.
153 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
154 is a character device instead of a block device. Add support for
155 FreeBSD device names.
156
157 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
158 a character device instead of a block device.
159 (grub_util_check_char_device): New function.
160
161 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
162 a character device instead of a block device.
163
164 * include/grub/util/getroot.h (grub_util_check_char_device): New
165 prototype.
166
a3f7515a 1672009-04-11 David S. Miller <davem@davemloft.net>
168
169 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
170 static libgcc.
171 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
172 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
173 function, if present.
174 (__bswapdi2): Likewise.
175
0d44993d 176 * include/grub/sparc64/ieee1275/boot.h: New file.
177 * boot/sparc64/ieee1275/boot.S: Likewise.
178 * boot/sparc64/ieee1275/diskboot.S: Likewise.
179
ed3d2bc2 180 * kern/misc.c (grub_ltoa): New function.
181 (grub_vsprintf): Use it to format 'long' integers.
182
d3bfb59c 1832009-04-10 David S. Miller <davem@davemloft.net>
184
185 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
186 slots are of type grub_ieee1275_cell_t.
187 (grub_nand_read): Likewise.
188 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
189 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
190 macros are used to compare values in arg/ret block of the call.
191 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
192 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
193 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
194 grub_ieee1275_instance_to_path, grub_ieee1275_write,
195 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
196 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
197 grub_ieee1275_close, grub_ieee1275_set_property,
198 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
199 grub_ieee1275_cell_t.
200 * kern/ieee1275/openfw.c (grub_map): Likewise.
201 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
202 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
203
450e2238 204 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
205 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
206 (grub_devalias_iterate): Likewise.
207
6df8cc76 2082009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
209
210 UFS improvements
211
212 * fs/ufs.c (INODE_NBLOCKS): new definition
213 (struct grub_ufs_dirent): added fields for non-BSD dirents
214 (grub_ufs_get_file_block): fixed double indirect handling
215 (grub_ufs_lookup_symlink): use more robust way to determine whether
216 symlink is inline
217 (grub_ufs_find_file): support for non-BSD dirents
218 (grub_ufs_dir): support for non-BSD dirents
219
e7e6862a 2202009-04-10 Bean <bean123ch@gnail.com>
221
222 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
223 attribute, otherwise the size would be wrong for i386 platform.
224
225 * include/grub/pci.h (grub_pci_read_word): New inline function.
226 (grub_pci_read_byte): Likewise.
227 (grub_pci_write): Likewise.
228 (grub_pci_write_word): Likewise.
229 (grub_pci_write_byte): Likewise.
230
231 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
232
233 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
234 (find_framebuf): Scan pci to locate the frame buffer address.
235
236 * commands/efi/fixvideo.c: New file.
237
238 * commands/efi/loadbios.c: Likewise.
239
240 * commands/memrw.c: Likewise.
241
242 * util/grub-dumpbios.in: Likewise.
243
244 * conf/common.rmk (grub-dumpbios): New utility.
245 (pkglib_MODULES): New module memrw.mod.
246 (memrw_mod_SOURCE): New macro.
247 (memrw_mod_CFLAGS): Likewise.
248 (memrw_mod_LDFLAGS): Likewise.
249
250 * conf/i386-efi.rmk (pkglig_MODULES): New module loadbios.mod and
251 fixvideo.mod.
252 (loadbios_mod_SOURCE): New macro.
253 (loadbios_mod_CFLAGS): Likewise.
254 (loadbios_mod_LDFLAGS): Likewise.
255 (fixvideo_mod_SOURCE): Likewise.
256 (fixvideo_mod_CFLAGS): Likewise.
257 (fixvideo_mod_LDFLAGS): Likewise.
258
259 * conf/x86_64.rmk (pkglig_MODULES): New module loadbios.mod and
260 fixvideo.mod.
261 (loadbios_mod_SOURCE): New macro.
262 (loadbios_mod_CFLAGS): Likewise.
263 (loadbios_mod_LDFLAGS): Likewise.
264 (fixvideo_mod_SOURCE): Likewise.
265 (fixvideo_mod_CFLAGS): Likewise.
266 (fixvideo_mod_LDFLAGS): Likewise.
267
af63ada2 2682009-04-08 Felix Zielcke <fzielcke@z-51.de>
269
270 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
271
c2cdde70 2722009-04-07 David S. Miller <davem@davemloft.net>
273
274 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
275 support for R_SPARC_OLO10 relocations. Fix compile warning for
276 R_SPARC_WDISP30 case.
ea3f72cf 277 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 278
761319cf 2792009-04-06 Pavel Roskin <proski@gnu.org>
280
1007d1f5 281 * include/grub/misc.h (ARRAY_SIZE): New macro.
282 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
283 New macro.
284 * loader/i386/linux.c (allocate_pages): Use free_pages().
285 (grub_linux_unload): Don't use free_pages().
286 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
287 wrong index. Treat all other modes as text modes.
288 (grub_cmd_linux): Initialize vid_mode unconditionally to
289 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
290
761319cf 291 * commands/help.c (print_command_help): Use cmd->prio, not
292 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
293
ea761d40 2942009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
295
296 Parttool
297
298 * parttool/pcpart.c: new file
299 * commands/parttool.c: likewise
300 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
301 (parttool_mod_SOURCES): new variable
302 (parttool_mod_CFLAGS): likewise
303 (parttool_mod_LDFLAGS): likewise
304 (pcpart_mod_SOURCES): likewise
305 (pcpart_mod_CFLAGS): likewise
306 (pcpart_mod_LDFLAGS): likewise
307 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
308 and parttool/pcpart.c
309 * conf/i386-efi.rmk: likewise
310 * conf/i386-ieee1275.rmk: likewise
311 * conf/i386-pc.rmk: likewise
312 * conf/powerpc-ieee1275.rmk: likewise
313 * conf/sparc64-ieee1275.rmk: likewise
314 * conf/x86_64-ieee1275.rmk: likewise
315
05aaebfb 3162009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
317
318 Support for mtime and further expandability of dir command
319
320 * include/grub/lib/datetime.h: moved to ...
321 * include/grub/datetime.h: ... moved here and added
322 declaration of grub_unixtime2datetime. All users updated
323 * include/grub/fs.h: new syntax for dir and mtime functionin
324 struct grub_fs
325 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
326 and GRUB_FSHELP_FLAGS_MASK
327 * commands/ls.c (grub_ls_list_files): Write mtime in long format
328 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
329 (grub_ext2_mtime): new function
330 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
331 (grub_hfsplus_mtime): new function
332 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
333 (GRUB_UFS_ATTR_FILE): likewise
334 (GRUB_UFS_ATTR_LNK): likewise
335 (struct grub_ufs_sblock): new fields mtime
336 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
337 all users updated
338 (grub_ufs_dir): mtime support
339 (grub_ufs_mtime): new function
340 * fs/affs.c (grub_affs_dir): use new dir syntax
341 * fs/afs.c (grub_afs_dir): likewise
342 * fs/cpio.c (grub_cpio_dir): likewise
343 * fs/fat.c (grub_fat_find_dir): likewise
344 * fs/hfs.c (grub_hfs_dir): likewise
345 * fs/iso9660.c (grub_iso9660_dir): likewise
346 * fs/jfs.c (grub_jfs_dir): likewise
347 * fs/minix.c (grub_minix_dir): likewise
348 * fs/ntfs.c (grub_ntfs_dir): likewise
349 * fs/reiserfs.c (grub_reiserfs_dir): likewise
350 * fs/sfs.c (grub_sfs_dir): likewise
351 * fs/xfs.c (grub_xfs_dir): likewise
352 * util/hostfs.c (grub_hostfs_dir): likewise
353 * lib/datetime.c: moved to ...
354 * normal/datetime.c: ... moved here
355 (grub_unixtime2datetime): new function
356 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
357 * normal/completition.c (iterate_dir): use new dir syntax
358 * normal/misc.c (grub_normal_print_device_info): tell the
359 last modification time of a volume
360 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
361 * conf/common.rmk: added lib/datetime.c to ls.mod
362 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
363 (normal_mod_SOURCES): likewise
364 (datetime_mod_SOURCES): Removed lib/datetime.c
365 * conf/i386-efi.rmk: likewise
366 * conf/i386-ieee1275.rmk: likewise
367 * conf/i386-pc.rmk: likewise
368 * conf/powerpc-ieee1275.rmk: likewise
369 * conf/sparc64-ieee1275.rmk: likewise
370 * conf/x86_64-efi.rmk: likewise
371
8a7e1a14 3722009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
373
374 Trim trailing spaces in FAT label and support mtools-like labels
375
376 * fs/fat.c (grub_fat_iterate_dir): New function based
377 on grub_fat_find_dir
378 (grub_fat_find_dir): use grub_fat_iterate_dir
379 (grub_fat_label): likewise
380
04186a9c 3812009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
382
383 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
384 and command.h
385 remove extraneous kernel_elf_HEADERS
386
da4c0bb6 3872009-04-04 Bean <bean123ch@gnail.com>
388
389 * include/grub/util/misc.h: Add dummy function fsync for mingw.
390
391 * util/misc.c: Likewise.
392
54ad9555 3932009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
394
395 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
396 instead of grub_printf.
397
7a6bf9f2 3982009-04-03 Robert Millan <rmh@aybabtu.com>
399
400 * loader/i386/linux.c (grub_linux_setup_video): Fill
401 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
402 values from `mode info' structure instead of hardcoded
403 values.
404
3fcc2083 4052009-04-01 Pavel Roskin <proski@gnu.org>
406
407 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
408 unused now.
409 * genmk.rb: Likewise.
410 * configure.ac: Likewise.
411
5ec9740b 4122009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
413
414 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
415 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
416
5270cec8 4172009-04-01 David S. Miller <davem@davemloft.net>
418
419 * normal/sparc64/setjmp.S: Fix setjmp implementation.
420 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
421 (grub_setjmp): Mark with 'returns_twice' attribute.
422 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
423 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
424 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
425
9c3dd854 4262009-04-01 Robert Millan <rmh@aybabtu.com>
427
428 Reapply fix from 2008-07-28 which was accidentally reverted; also
429 perform the same fix to a similar check in same function.
430
431 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
432 with the same number are found, just use issue a warning with
433 grub_dprintf(), as this error has been reported to be non-fatal.
434
0d818b7e 4352009-03-31 Pavel Roskin <proski@gnu.org>
436
437 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
438 for cross-compilation.
439
95646d92 4402009-03-30 Robert Millan <rmh@aybabtu.com>
441
442 Fix i386-ieee1275 build.
443
444 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
445 Remove declaration.
446
6a003ed1 4472009-03-30 Pavel Roskin <proski@gnu.org>
448
449 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
450 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
451 zero-terminated, rely only on the strlen value. Fix comparison
452 of strings differing in length.
453
92f33540 4542009-03-30 Robert Millan <rmh@aybabtu.com>
455
456 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
457 checking for abi version. Improve error messages on BIOS to notify
458 user about `linux16' command.
459
a8c48fd5 4602009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
461
f968172e 462 Leak fixes
a8c48fd5 463
f968172e 464 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
465 in case of collision
466 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 467
9c323f09 4682009-03-29 Robert Millan <rmh@aybabtu.com>
469
470 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
471 set `vid_mode' accordingly.
472 (grub_linux_boot): Process `vid_mode' and set video mode.
473
ae68f423 4742009-03-29 Robert Millan <rmh@aybabtu.com>
475
476 * util/grub.d/10_linux.in (linux_entry): New function.
477 Factorize generation of Linux boot entries.
478
5709cfc4 4792009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
480
481 Make the format of Environment Block plain text. The boot loader
482 part is not tested well yet.
483
484 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
485 (buffer): Removed.
486 (envblk): Likewise.
487 (usage): Remove "info" and "clear". Add "unset". Update the
488 description of "set", as this does not delete variables any
489 longer.
490 (create_envblk_file): Complete rewrite.
491 (open_envblk_file): Likewise.
492 (cmd_info): Removed.
493 (cmd_list): Likewise.
494 (cmd_set): Likewise.
495 (cmd_clear): Likewise.
496 (list_variables): New function.
497 (write_envblk): Likewise.
498 (set_variables): Likewise.
499 (unset_variables): Likewise.
500 (main): Complete rewrite.
501
502 * commands/loadenv.c (buffer): Removed.
503 (envblk): Likewise.
504 (open_envblk_file): New function.
505 (read_envblk_file): Complete rewrite.
506 (grub_cmd_load_env): Likewise.
507 (grub_cmd_list_env): Likewise.
508 (struct blocklist): New struct.
509 (free_blocklists): New function.
510 (check_blocklists): Likewise.
511 (write_blocklists): Likewise.
512 (grub_cmd_save_env): Complete rewrite.
513
514 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
515 a plain text signature.
516 (GRUB_ENVBLK_MAXLEN): Removed.
517 (struct grub_envblk): Complete rewrite.
518 (grub_envblk_find): Removed.
519 (grub_envblk_insert): Likewise.
520 (grub_envblk_open): New prototype.
521 (grub_envblk_set): Likewise.
522 (grub_envblk_delete): Put const to VALUE.
523 (grub_envblk_iterate): Put const to NAME and VALUE.
524 (grub_envblk_close): New prototype.
525 (grub_envblk_buffer): New inline function.
526 (grub_envblk_size): Likewise.
527
528 * lib/envblk.c: Include grub/mm.h.
529 (grub_env_find): Removed.
530 (grub_envblk_open): New function.
531 (grub_envblk_close): Likewise.
532 (escaped_value_len): Likewise.
533 (find_next_line): Likewise.
534 (grub_envblk_insert): Removed.
535 (grub_envblk_set): New function.
536 (grub_envblk_delete): Complete rewrite.
537 (grub_envblk_iterate): Likewise.
538
a9368fd3 5392009-03-28 Robert Millan <rmh@aybabtu.com>
540
541 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
542 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
543 variables. Use 16-bit loader.
544 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
545 loader.
546 * kern/i386/loader.S (grub_linux_boot): Rename to ...
547 (grub_linux16_boot): ... this. Update all users.
548 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
549 (grub_linux_boot): ... this. Update all users.
550
551 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
552 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
553 commands to `linux16' and `initrd16'.
554 (GRUB_MOD_FINI(linux)): Rename to ...
555 (GRUB_MOD_FINI(linux16)): ... this.
556
e4dd5a7e 5572009-03-24 Pavel Roskin <proski@gnu.org>
558
559 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
560 not just for compilation.
561
c04d6e05 5622009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
563
564 Move multiboot helper out of kernel
565
566 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
567 `loader/i386/multiboot_helper.S'.
568 * conf/i386-coreboot.rmk: Likewise
569 * conf/i386-ieee1275.rmk: Likewise
570
571 * kern/i386/loader.S: Move multiboot helpers from here...
572 * loader/i386/multiboot_helper.S: ...moved here
573 * include/grub/i386/loader.h: Move declarations of multiboot
574 helpers from here...
575 * include/grub/i386/multiboot.h: ...moved here
576 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
577
42a5b3fc 5782009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
579
580 * kern/env.c (grub_env_context_open): Added an argument to specify
581 whether a new context inherits exported variables from current
582 one. This is useful when making a sandbox to interpret a config
583 file.
584 All callers updated.
585
586 * include/grub/env.h (grub_env_context_open): Updated the prototype.
587
b28bbc4e 5882009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
589
590 * kern/env.c (grub_env_context_close): Fix memory leaks.
591
f04f02e4 5922009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
593
594 * normal/main.c (grub_normal_execute): Added an argument
595 BATCH to specify if an interactive interface should be provided
596 after reading a config file.
597 All callers updated.
598 (read_command_list): Prevent being executed twice.
599 (read_fs_list): Likewise.
600
42a5b3fc 601 * include/grub/normal.h (grub_normal_execute): Updated the
602 prototype.
f04f02e4 603
41473ac2 6042009-03-22 Pavel Roskin <proski@gno.org>
605
fbc00b0c 606 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
607 _start.
608 * kern/i386/pc/startup.S: Likewise.
609 * kern/i386/efi/startup.S: Likewise.
610 * kern/i386/ieee1275/startup.S: Likewise.
611 * kern/i386/coreboot/startup.S: Likewise.
612 * kern/x86_64/efi/startup.S: Likewise.
613
41473ac2 614 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
615 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
616 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
617
2274cc8f 6182009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
619
620 Bugfixes in multiboot for bugs uncovered by solaris kernel.
621
622 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
623 limit detection.
624 Use vaddr of correct segment for entry_point.
625
b1b797cb 6262009-03-21 Bean <bean123ch@gmail.com>
627
628 * commands/blocklist.c: Add include file <grub/command.h>, remove
629 <grub/normal.h> and <grub/arg.h>.
630 (grub_cmd_blocklist): Use the new command interface.
631 (GRUB_MOD_INIT): Likewise.
632 (GRUB_MOD_FINI): Likewise.
633 * commands/boot.c: Likewise.
634 * commands/cat.c: Likewise.
635 * commands/cmp.c: Likewise.
636 * commands/configfile.c: Likewise.
637 * commands/crc.c: Likewise.
638 * commands/echo.c: Likewise.
639 * commands/halt.c: Likewise.
640 * commands/handler.c: Likewise.
641 * commands/hdparm.c: Likewise.
642 * commands/help.c: Likewise.
643 * commands/hexdump.c: Likewise.
644 * commands/loadenv.c: Likewise.
645 * commands/ls.c: Likewise.
646 * commands/lsmmap.c: Likewise.
647 * commands/lspci.c: Likewise.
648 * commands/loadenv.c: Likewise.
649 * commands/read.c: Likewise.
650 * commands/reboot.c: Likewise.
651 * commands/search.c: Likewise.
652 * commands/sleep.c: Likewise.
653 * commands/test.c: Likewise.
654 * commands/usbtest.c: Likewise.
655 * commands/videotest.c: Likewise.
656 * commands/i386/cpuid.c: Likewise.
657 * commands/i386/pc/halt.c: Likewise.
658 * commands/i386/pc/play.c: Likewise.
659 * commands/i386/pc/pxecmd.c: Likewise.
660 * commands/i386/pc/vbeinfo.c: Likewise.
661 * commands/i386/pc/vbetest.c: Likewise.
662 * commands/ieee1275/suspend.c: Likewise.
663 * disk/loopback.c: Likewise.
664 * font/font_cmd.c: Likewise.
665 * hello/hello.c: Likewise.
666 * loader/efi/appleloader.c: Likewise.
667 * loader/efi/chainloader.c: Likewise.
668 * loader/i386/bsd.c: Likewise.
669 * loader/i386/efi/linux.c: Likewise.
670 * loader/i386/ieee1275/linux.c: Likewise.
671 * loader/i386/linux.c: Likewise.
672 * loader/i386/pc/chainloader.c: Likewise.
673 * loader/i386/pc/linux.c: Likewise.
674 * loader/powerpc/ieee1275/linux.c: Likewise.
675 * loader/multiboot_loader.c: Likewise.
676 * term/gfxterm.c: Likewise.
677 * term/i386/pc/serial.c: Likewise.
678 * term/terminfo.c: Likewise.
679
680 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
681 * term/i386/pc/vga.c: Likewise.
682 * video/readers/jpeg.c: Likewise.
683 * video/readers/png.c: Likewise.
684 * video/readers/tga.c: Likewise.
685
686 * util/grub-fstest (cmd_loopback): Removed.
687 (cmd_blocklist): Likewise.
688 (cmd_ls): Likewise.
689 (grub_register_command): Likewise.
690 (grub_unregister_command): Likewise.
691 (execute_command): Use grub_command_find to locate command and execute
692 it.
693
694 * include/grub/efi/chainloader.h: Removed.
695 * loader/efi/chainloader_normal.c: Likewise.
696 * loader/i386/bsd_normal.c: Likewise.
697 * loader/i386/pc/chainloader_normal.c: Likewise.
698 * loader/i386/pc/multiboot_normal.c: Likewise.
699 * loader/linux_normal.c: Likewise.
700 * loader/multiboot_loader_normal.c: Likewise.
701 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
702
703 * gencmdlist.sh: Scan new registration command grub_register_extcmd
704 and grub_register_command_p1.
705
706 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
707 kern/command.c, lib/arg.c and commands/extcmd.c.
708 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
709 (minicmd_mod_SOURCES): New variable.
710 (minicmd_mod_CFLAGS): Likewise.
711 (minicmd_mod_LDFLAGS): Likewise.
712 (extcmd_mod_SOURCES): Likewise.
713 (extcmd_mod_CFLAGS): Likewise.
714 (extcmd_mod_LDFLAGS): Likewise.
715 (boot_mod_SOURCES): Removed.
716 (boot_mod_CFLAGS): Likewise.
717 (boot_mod_LDFLAGS): Likewise.
718
719 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
720 kern/corecmd.c.
721 (kernel_img_HEADERS): Add command.h.
722 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
723 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
724 and lib/arg.c.
725 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
726 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
727 remove the corresponding normal mode command.
728 (normal_mod_SOURCES): Remove normal/arg.c.
729 * conf/i386-coreboot.rmk: Likewise.
730 * conf/i386-efi.rmk: Likewise.
731 * conf/i386-ieee1275.rmk: Likewise.
732 * conf/powerpc-ieee1275.rmk: Likewise.
733 * conf/x86_64-efi.rmk: Likewise.
734
735 * include/grub/arg.h: Move from here ...
736 * include/grub/lib/arg.h: ... to here.
737
738 * normal/arg.c: Move from here ...
739 * lib/arg.c: ... to here.
740
741 * commands/extcmd.c: New file.
742 * commands/minicmd.c: Likewise.
743 * include/grub/command.h: Likewise.
744 * include/grub/extcmd.h: Likewise.
745 * kern/command.c: Likewise.
746 * kern/corecmd.c: Likewise.
747
748 * kern/list.c (grub_list_iterate): Return int instead of void.
749 (grub_list_insert): New function.
750 (grub_prio_list_insert): Likewise.
751
752 * kern/rescue.c (grub_rescue_command): Removed.
753 (grub_rescue_command_list): Likewise.
754 (grub_rescue_register_command): Likewise.
755 (grub_rescue_unregister_command): Likewise.
756 (grub_rescue_cmd_boot): Move to minicmd.c
757 (grub_rescue_cmd_help): Likewise.
758 (grub_rescue_cmd_info): Likewise.
759 (grub_rescue_cmd_boot): Likewise.
760 (grub_rescue_cmd_testload): Likewise.
761 (grub_rescue_cmd_dump): Likewise.
762 (grub_rescue_cmd_rmmod): Likewise.
763 (grub_rescue_cmd_lsmod): Likewise.
764 (grub_rescue_cmd_exit): Likewise.
765 (grub_rescue_print_devices): Moved to corecmd.c.
766 (grub_rescue_print_files): Likewise.
767 (grub_rescue_cmd_ls): Likewise.
768 (grub_rescue_cmd_insmod): Likewise.
769 (grub_rescue_cmd_set): Likewise.
770 (grub_rescue_cmd_unset): Likewise.
7d074e3c 771 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 772 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 773 commands, remove grub_rescue_register_command calls.
b1b797cb 774
7d074e3c 775 * normal/command.c (grub_register_command): Removed.
b1b797cb 776 (grub_unregister_command): Likewise.
777 (grub_command_find): Likewise.
778 (grub_iterate_commands): Likewise.
779 (rescue_command): Likewise.
780 (export_command): Moved to corecmd.c.
781 (set_command): Removed.
782 (unset_command): Likewise.
783 (insmod_command): Likewise.
784 (rmmod_command): Likewise.
785 (lsmod_command): Likewise.
786 (grub_command_init): Likewise.
787
788 * normal/completion.c (iterate_command): Use cmd->prio to check for
789 active command.
790 (complete_arguments): Use grub_extcmd_t structure to find options.
791 (grub_normal_do_completion): Change function grub_iterate_commands to
792 grub_command_iterate.
793
794 * normal/execute.c (grub_script_execute_cmd): No need to parse
795 argument here.
796
797 * normal/main.c (grub_dyncmd_dispatcher): New function.
798 (read_command_list): Register unload commands as dyncmd.
799 (grub_cmd_normal): Use new command interface, register rescue,
800 unregister normal at entry, register normal, unregister rescue at exit.
801
802 * include/grub/list.h (grub_list_test_t): New type.
803 (grub_list_iterate): Return int instead of void.
804 (grub_list_insert): New function.
805 (GRUB_AS_NAMED_LIST_P): New macro.
806 (GRUB_AS_PRIO_LIST): Likewise.
807 (GRUB_AS_PRIO_LIST_P): Likewise.
808 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
809 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
810 (grub_prio_list): New structure.
811 (grub_prio_list_insert): New function.
812 (grub_prio_list_remove): New inline function.
813
814 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
815 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
816 (GRUB_COMMAND_FLAG_MENU): Likewise.
817 (GRUB_COMMAND_FLAG_BOTH): Likewise.
818 (GRUB_COMMAND_FLAG_TITLE): Likewise.
819 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
820 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
821 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
822 (grub_command): Likewise.
823 (grub_register_command): Likewise.
824 (grub_command_find): Likewise.
825 (grub_iterate_commands): Likewise.
826 (grub_command_init): Likewise.
827 (grub_arg_parse): Likewise.
828 (grub_arg_show_help): Likewise.
829
830 * include/grub/rescue.h (grub_rescue_register_command): Removed.
831 (grub_rescue_unregister_command): Likewise.
832
833 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
834 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
835 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
836
837 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
838 grub_rescue_cmd_initrd.
839 * include/grub/i386/loader.h: Likewise.
840 * include/grub/x86_64/loader.h: Likewise.
841
842 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
843
1f4147aa 8442009-03-21 Bean <bean123ch@gmail.com>
845
846 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
847 instead of stat in mingw environment.
848
849 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
850
851 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
852
853 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
854 AC_CONFIG_LINKS.
855
2156d5ba 8562009-03-21 Bean <bean123ch@gmail.com>
857
858 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
859 out of range error.
860
177b82ca 8612009-03-18 Michel Dänzer <michel@daenzer.net>
862
863 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
864 checking inode flags for EXT4_EXTENTS_FLAG.
865
14aad807 8662009-03-18 Robert Millan <rmh@aybabtu.com>
867
868 * loader/i386/linux.c: Include `<grub/video.h>' and
869 `<grub/i386/pc/vbe.h>'..
870 (grub_linux_setup_video): New function. Loosely based on the EFI one.
871 (grub_linux32_boot): Attempt to configure video settings with
872 grub_linux_setup_video().
873 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
874 to avoid grub_console_fini() which would step out of graphical mode
875 unconditionally.
876
8cf83a27 8772009-03-14 Robert Millan <rmh@aybabtu.com>
878
879 Fix build on powerpc.
880 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
881
40164e75 8822009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
883
884 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
885 background image command.
886
c58bc32a 8872009-03-12 Colin D Bennett <colin@gibibit.com>
888
889 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
890 (grub_gfxterm_putchar): Extract pairs of identical calls to
891 draw_cursor out of conditional blocks.
892
5415144a 8932009-03-11 Pavel Roskin <proski@gnu.org>
894
895 * fs/hfs.c (grub_hfs_strncasecmp): New function.
896 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
897
6394042e 8982009-03-11 Robert Millan <rmh@aybabtu.com>
899
900 * loader/i386/multiboot_elfxx.c
901 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
902
b7b50e5f 9032009-03-11 Felix Zielcke <fzielcke@z-51.de>
904
905 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
906 `kern/handler.c'.
907
1ca7fc96 9082009-03-11 Robert Millan <rmh@aybabtu.com>
909
910 * loader/i386/multiboot.c (code_size): New variable.
911 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 912 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 913 4-byte alignment to MBI and others by increasing
7d074e3c 914 `boot_loader_name_length' appropriately.
1ca7fc96 915
916 * loader/i386/multiboot_elfxx.c
917 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
918
a83ea1d2 9192009-03-09 Felix Zielcke <fzielcke@z-51.de>
920
921 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
922 `fs/ext2.c'.
923
aa9f3bff 9242009-03-08 Robert Millan <rmh@aybabtu.com>
925
926 Make loader/i386/linux.c usable on i386-pc again.
927
928 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
929 memory to heap.
930 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
931 `#error' stanza.
932
d8b3b60e 9332009-03-07 Bean <bean123ch@gmail.com>
934
935 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
936 allocation.
937
b362c9e9 9382009-03-06 Robert Millan <rmh@aybabtu.com>
939
940 Fix display issue on terminals with screen size other than 80x25
941 (e.g. gfxterm with resolution higher than 640x480).
942
943 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 944 position relative to the center of the terminal instead of relying
b362c9e9 945 on a hardcoded offset.
946
9304eef1 9472009-03-04 Robert Millan <rmh@aybabtu.com>
948
949 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
950 installed.
951
952 * Makefile.in (host_kernel): New variable.
953 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
954 scripts instead of just the windows one.
955 * configure.ac: Initialize and AC_SUBST `host_kernel'.
956
eabc95fb 9572009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 958
959 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
960 `kern/handler.c'.
961 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
962 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
963 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
964 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
965 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
966 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
967
ceb1223c 9682009-03-04 Felix Zielcke <fzielcke@z-51.de>
969
970 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
971 or if there's no space for the disk label and print the partition number on a
972 invalid magic.
973
4910684a 9742009-03-04 Felix Zielcke <fzielcke@z-51.de>
975
976 * util/misc.c: Include <time.h>.
977 (grub_millisleep): New function.
978
7e9ca17a 9792009-03-04 Bean <bean123ch@gmail.com>
980
981 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
982 another option -mno-red-zone.
983
984 * commands/handler.c: Change module description.
985
986 * kern/handler.c: Add missing space at the end of description line.
987
988 * kern/list.c: Likewise.
989
f501677c 9902009-03-03 Robert Millan <rmh@aybabtu.com>
991
992 Move more components to the relocation area, and fix mbi pointer
993 handling to use the destination rather than the origin (thanks to
994 Vladimir Serbinenko for spotting).
995
996 * loader/i386/multiboot.c (mbi_dest): New variable.
997 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
998 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
999 relocation area.
1000
9902d047 10012009-03-01 Bean <bean123ch@gmail.com>
1002
50fb7002 1003 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 1004 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
1005 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
1006 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
1007
1008 * loader/i386/efi/linux.c (acpi_guid): New variable.
1009 (acpi_guid): Likewise.
1010 (EBDA_SEG_ADDR): New constant.
1011 (LOW_MEM_ADDR): Likewise.
1012 (FAKE_EBDA_SEG): Likewise.
1013 (fake_bios_data): New function.
1014 (grub_linux_boot): Call fake_bios_data.
1015
71b9f361 10162009-03-01 Bean <bean123ch@gmail.com>
1017
1018 * commands/terminal.c: Removed.
1019
1020 * commands/handler.c: New file.
1021
1022 * include/grub/list.h: Likewise.
1023
1024 * include/grub/handler.h: Likewise.
1025
1026 * kern/list.c: Likewise.
1027
1028 * kern/handler.c: Likewise.
1029
1030 * kern/term.h: Include header file <grub/handler.h>.
1031 (grub_term_input): Move next field to the beginning.
1032 (grub_term_output): Likewise.
1033 (grub_term_input_class): New variable.
1034 (grub_term_output_class): Likewise.
1035 (grub_term_register_input): Changed to inline function.
1036 (grub_term_register_output): Likewise.
1037 (grub_term_unregister_input): Likewise.
1038 (grub_term_unregister_output): Likewise.
1039 (grub_term_set_current_input): Likewise.
1040 (grub_term_set_current_output): Likewise.
1041 (grub_term_get_current_input): Likewise.
1042 (grub_term_get_current_output): Likewise.
1043 (grub_term_iterate_input): Removed.
1044 (grub_term_iterate_output): Likewise.
1045
1046 * kern/term.c (grub_term_list_input): Removed.
1047 (grub_term_list_output): Likewise.
1048 (grub_term_input_class): New variable.
1049 (grub_term_output_class): Likewise.
50fb7002 1050 (grub_cur_term_input): Change variable as macro.
71b9f361 1051 (grub_cur_term_output): Likewise.
1052 (grub_term_register_input): Removed.
1053 (grub_term_register_output): Likewise.
1054 (grub_term_unregister_input): Likewise.
1055 (grub_term_unregister_output): Likewise.
1056 (grub_term_set_current_input): Likewise.
1057 (grub_term_set_current_output): Likewise.
1058 (grub_term_iterate_input): Likewise.
1059 (grub_term_iterate_output): Likewise.
1060 (grub_term_get_current_input): Likewise.
1061 (grub_term_get_current_output): Likewise.
1062
1063 * util/grub-editenv.c: Include header file <grub/handler.h>.
1064 (grub_term_get_current_input): Removed.
1065 (grub_term_get_current_output): Likewise.
1066 (grub_term_input_class): New variable.
50fb7002 1067 (grub_term_output_class): Likewise.
71b9f361 1068
1069 * util/grub-fstest.c (grub_term_get_current_input): Removed.
1070 (grub_term_get_current_output): Likewise.
1071 (grub_term_input_class): New variable.
50fb7002 1072 (grub_term_output_class): Likewise.
71b9f361 1073
1074 * util/grub-probe.c (grub_term_get_current_input): Removed.
1075 (grub_term_get_current_output): Likewise.
1076 (grub_term_input_class): New variable.
50fb7002 1077 (grub_term_output_class): Likewise.
71b9f361 1078
1079 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
1080 (grub_term_get_current_output): Likewise.
1081 (grub_term_input_class): New variable.
50fb7002 1082 (grub_term_output_class): Likewise.
71b9f361 1083
1084 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
1085 (terminal_mod_SOURCES): Likewise.
1086 (terminal_mod_CFLAGS): Likewise.
1087 (terminal_mod_LDFLAGS): Likewise.
1088
1089 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
1090 handler.c.
1091 (kernel_img_SOURCES): Add list.c and handler.c.
1092 (kernel_img_HEADERS): Add list.h and handler.h.
1093
1094 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1095 handler.c.
1096 (kernel_mod_SOURCES): Add list.c and handler.c.
1097 (kernel_mod_HEADERS): Add list.h and handler.h.
1098
1099 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
1100 handler.c.
1101 (kernel_elf_SOURCES): Add list.c and handler.c.
1102 (kernel_elf_HEADERS): Add list.h and handler.h.
1103
1104 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1105 handler.c.
1106 (kernel_elf_SOURCES): Add list.c and handler.c.
1107 (kernel_elf_HEADERS): Add list.h and handler.h.
1108
1109 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1110 handler.c.
1111 (kernel_mod_SOURCES): Add list.c and handler.c.
1112 (kernel_mod_HEADERS): Add list.h and handler.h.
1113
1114 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1115 handler.c.
1116 (kernel_elf_SOURCES): Add list.c and handler.c.
1117 (kernel_elf_HEADERS): Add list.h and handler.h.
1118
8a31787f 11192009-02-27 Robert Millan <rmh@aybabtu.com>
1120
1121 Factorize elf32 / elf64 code in Multiboot loader. This will
1122 prevent it from getting out of sync again.
1123
1124 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
1125 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
1126 grub_multiboot_load_elf64): Move from here ...
1127 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
1128 grub_multiboot_load_elf): ... to here (new file).
1129
51cd3dfc 11302009-02-27 Robert Millan <rmh@aybabtu.com>
1131
1132 * util/grub.d/10_linux.in: Rename "single-user mode" to
1133 "recovery mode".
1134
6e8c9c3a 11352009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
1136
1137 Don't leak in SCSI code.
1138 * disk/scsi.c (grub_scsi_close): free `scsi'.
1139
4b6bf4f9 11402009-02-27 Robert Millan <rmh@aybabtu.com>
1141
1142 * loader/i386/pc/multiboot.c: Move from here ...
1143 * loader/i386/multiboot.c: ... to here. Update all users.
1144
b9413424 11452009-02-27 Robert Millan <rmh@aybabtu.com>
1146
1147 Patch from Alexandre Bique <bique.alexandre@gmail.com>
1148 * util/i386/pc/grub-setup.c (setup): Fix directory path.
1149
50fb7002 11502009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 1151
1152 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
1153 b-tree.
1154
8cc50345 11552009-02-27 Robert Millan <rmh@aybabtu.com>
1156
1157 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
1158 `0x' qualifier as 0 when base is specified as parameter).
1159
6e09b8b7 11602009-02-24 Bean <bean123ch@gmail.com>
1161
1162 * configure.ac: Check for -mcmodel=large in x86_64 target.
1163
1164 * include/grub/efi/api.h (efi_call_10): New macro.
1165 (efi_wrap_10): New function.
1166
1167 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
1168 (GRUB_PE32_REL_BASED_HIGH): Likewise.
1169 (GRUB_PE32_REL_BASED_LOW): Likewise.
1170 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
1171 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
1172 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
1173 (GRUB_PE32_REL_BASED_SECTION): Likewise.
1174 (GRUB_PE32_REL_BASED_REL): Likewise.
1175 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
1176 (GRUB_PE32_REL_BASED_DIR64): Likewise.
1177 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
1178
1179 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
1180 issue.
1181
1182 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
1183 (efi_wrap_10): New function.
1184
1185 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
1186
1187 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
1188 MB/MBP model (NV chipset).
1189 (devdata_devs): Add devpath_5 to the list.
1190
1191 * load/i386/efi/linux.c (video_base): Remove variable.
1192 (RGB_MASK): New macro.
1193 (RGB_MAGIC): Likewise.
1194 (LINE_MIN): Likewise.
1195 (LINE_MAX): Likewise.
1196 (FBTEST_STEP): Likewise.
1197 (FBTEST_COUNT): Likewise.
1198 (fb_list): New variable.
1199 (grub_find_video_card): Remove function.
1200 (find_framebuf): New function.
1201 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
1202 line length.
1203
1204 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
1205 problem for x86_64.
1206
74b21bee 12072009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
1208
1209 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
1210
1211 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
1212 coding tool name.
1213
a455f472 12142009-02-22 Robert Millan <rmh@aybabtu.com>
1215
1216 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
1217 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
1218 in our relocation, instead of using it directly from heap. Also
1219 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
1220
6374daf3 12212009-02-21 Robert Millan <rmh@aybabtu.com>
1222
1223 Implement USB keyboard support (based on patch by Marco Gerards)
1224
1225 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
1226 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
1227 (usb_keyboard_mod_LDFLAGS): New variables.
1228
1229 * term/usb_keyboard.c: New file.
1230
8fa4ea70 12312009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
1232
1233 Corrected wrong declaration
1234
1235 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
1236
353976ac 12372009-02-14 Christian Franke <franke@computer.org>
1238
1239 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
1240 (grub_lspci_iter): Print class code and programming interface byte.
1241
6aa1169b 12422009-02-14 Christian Franke <franke@computer.org>
1243
1244 * gendistlist.sh: Ignore `.svn' directories.
1245
265372ca 12462009-02-14 Felix Zielcke <fzielcke@z-51.de>
1247
1248 * fs/fat.c: Add 2009 to Copyright line.
1249
9ff516f3 12502009-02-14 Christian Franke <franke@computer.org>
1251
1252 * commands/hdparm.c: New file. Provides `hdparm' command
1253 which sends ATA commands via grub_disk_ata_pass_through ().
1254
1255 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
1256
1257 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
1258 and <grub/cpu/io.h> to include/grub/ata.h.
1259 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
1260 (GRUB_CDROM_SECTOR_SIZE): Remove.
1261 (GRUB_ATA_*): Move to include/grub/ata.h.
1262 (GRUB_ATAPI_*): Likewise.
1263 (enum grub_ata_commands): Likewise.
1264 (enum grub_ata_timeout_milliseconds): Likewise.
1265 (struct grub_ata_device): Likewise.
1266 (grub_ata_regset): Likewise.
1267 (grub_ata_regget): Likewise.
1268 (grub_ata_regset2): Likewise.
1269 (grub_ata_regget2): Likewise.
1270 (grub_ata_check_ready): Likewise.
1271 (grub_ata_wait_not_busy): Remove static, exported in
1272 include/grub/ata.h.
1273 (grub_ata_wait_drq): Likewise.
1274 (grub_ata_pio_read): Likewise.
1275
1276 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
1277 function for hdparm.mod.
1278
1279 * include/grub/ata.h: New file, contains declarations from
1280 disk/ata.c.
1281 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
1282
1283 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
1284 (grub_disk_ata_pass_through): New exported variable.
1285
1286 * kern/disk.c (grub_disk_ata_pass_through): New variable.
1287
772e23da 12882009-02-13 Colin D Bennett <colin@gibibit.com>
1289
1290 Support multiple fallback entries, and provide an API to support
1291 executing default+fallback menu entries. Renamed the `terminal' menu
1292 viewer to `text'.
1293
1294 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
1295 variable declaration.
1296 (grub_menu_execute_callback): New structure declaration.
1297 (grub_menu_execute_callback_t): New typedef.
1298 (grub_menu_execute_with_fallback): New function declaration.
1299 (grub_menu_get_entry): Likewise.
1300 (grub_menu_get_timeout): Likewise.
1301 (grub_menu_set_timeout): Likewise.
1302
1303 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
1304
1305 * normal/menu.c (grub_wait_after_message): Moved to
1306 `normal/menu_text.c'.
1307 (draw_border): Likewise.
1308 (print_message): Likewise.
1309 (print_entry): Likewise.
1310 (print_entries): Likewise.
1311 (grub_menu_init_page): Likewise.
1312 (get_entry_number): Likewise.
1313 (print_timeout): Likewise.
1314 (run_menu): Likewise.
1315 (grub_menu_execute_entry): Likewise.
1316 (show_text_menu): Likewise.
1317 (get_and_remove_first_entry_number): New function.
1318 (grub_menu_execute_with_fallback): Likewise.
1319 (get_entry): Renamed to ...
1320 (grub_menu_get_entry): .. this and made it global.
1321 (get_timeout): Renamed to ...
1322 (grub_menu_get_timeout): ... this and made it global.
1323 (set_timeout): Renamed to ...
1324 (grub_menu_set_timeout): ... this and made it global.
1325 (grub_normal_terminal_menu_viewer): Renamed to ...
1326 (grub_normal_text_menu_viewer): ... this.
1327
1328 * normal/menu_text.c: New file. Extracted text-menu-specific code
1329 from normal/menu.c.
1330
1331 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
1332 (normal_mod_SOURCES): Likewise.
1333
1334 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1335 (normal_mod_SOURCES): Likewise.
1336
1337 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1338 (normal_mod_SOURCES): Likewise.
1339
1340 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
1341 (normal_mod_SOURCES): Likewise.
1342
1343 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1344 (normal_mod_SOURCES): Likewise.
1345
1346 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1347 (normal_mod_SOURCES): Likewise.
1348
1349 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1350 (normal_mod_SOURCES): Likewise.
1351
16ac430e 13522009-02-11 Robert Millan <rmh@aybabtu.com>
1353
1354 * util/grub.d/00_header.in: Update old reference to `font' command.
1355
06ff20fc 13562009-02-10 Felix Zielcke <fzielcke@z-51.de>
1357
1358 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
1359
1360 Based on patch from Javier Martín.
1361
96da9407 13622009-02-09 Felix Zielcke <fzielcke@z-51.de>
1363
1364 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 1365 to avoid false positives with FAT.
96da9407 1366 (grub_fstest_SOURCES): Likewise.
1367 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1368 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1369 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1370 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1371 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1372 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1373
6dca6fe4 13742009-02-09 Felix Zielcke <fzielcke@z-51.de>
1375
06ff20fc 1376 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 1377 bpb.version_specific.fat12_or_fat16.fstype and
1378 bpb.version_specific.fat32.fstype.
1379
2550c62f 13802009-02-08 Robert Millan <rmh@aybabtu.com>
1381
be110b30 1382 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 1383
56978920 13842009-02-08 Robert Millan <rmh@aybabtu.com>
1385
1386 * Makefile.in (host_os, host_cpu): New variables.
1387 (target_os): Remove. Update all users.
1388
d64399b5 13892009-02-08 Marco Gerards <marco@gnu.org>
1390
1391 * Makefile.in (enable_grub_emu_usb): New variable.
1392 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
1393 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
1394 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
1395 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
1396 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
1397 `usbtest.mod' and `usbms.mod'.
1398 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
1399 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
1400 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
1401 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
1402 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
1403 variables.
1404
1405 * disk/usbms.c: New file.
1406
1407 * include/grub/usb.h: Likewise.
1408
1409 * include/grub/usbtrans.h: Likewise.
1410
1411 * include/grub/usbdesc.h: Likewise.
1412
1413 * bus/usb/usbtrans.c: Likewise.
1414
1415 * bus/usb/ohci.c: Likewise.
1416
1417 * bus/usb/uhci.c: Likewise.
1418
1419 * bus/usb/usbhub.c: Likewise.
1420
1421 * bus/usb/usb.c: Likewise.
1422
1423 * commands/usbtest.c: Likewise.
1424
1425 * util/usb.c: Likewise.
50fb7002 1426
d64399b5 1427 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
1428
1429 * configure.ac: Test for libusb presence.
50fb7002 1430
d64399b5 1431 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
1432
2b40d6bb 14332009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
1434
1435 * kern/mm.c: Add more comments.
1436
73a4ce81 14372009-02-08 Robert Millan <rmh@aybabtu.com>
1438
1439 Patch from Javier Martín.
1440 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
1441 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
1442
f821ce59 14432009-02-08 Robert Millan <rmh@aybabtu.com>
1444
1445 * fs/cpio.c: Split tar functionality to ...
1446 * fs/tar.c: ... here (new file). Update all users.
1447
aebfc4b0 14482009-02-07 Robert Millan <rmh@aybabtu.com>
1449
1450 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
1451 backward-incompatible features.
1452
1453 Based on patch from Javier Martín, with some adjustments.
1454
50fb7002 14552009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 1456
1457 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
1458
0bb5115e 14592009-02-07 Robert Millan <rmh@aybabtu.com>
1460
1461 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
1462 position of `disk/lvm.c' to ensure grub_init_all() always picks it
1463 after the RAID stuff.
1464
38a0f8e7 14652009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
1466
50fb7002 1467 Fixes problem when running vbetest command as reported by
38a0f8e7 1468 Vladimir Serbinenko <phcoder@gmail.com>.
1469
1470 * (grub_vbe_set_video_mode): Fixed problem with text modes.
1471
3143cc1c 14722009-02-04 Felix Zielcke <fzielcke@z-51.de>
1473
1474 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
1475 /dev/md/NpN style mdraid devices.
1476
9cba6fce 14772009-02-03 Felix Zielcke <fzielcke@z-51.de>
1478
1479 * util/unifont2pff.rb: Remove.
1480
e507a2c1 14812009-02-03 Felix Zielcke <fzielcke@z-51.de>
1482
1483 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
1484 `#'.
1485
d2c2b4cd 14862009-02-03 Felix Zielcke <fzielcke@z-51.de>
1487
1488 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
1489 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1490 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1491 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1492 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1493 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1494 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1495
b4315fb0 14962009-02-02 Christian Franke <franke@computer.org>
1497
1498 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
1499
de3aa260 15002009-02-01 Felix Zielcke <fzielcke@z-51.de>
1501
7c3ff286 1502 * INSTALL: Note that we now require at least autoconf 2.59 and
1503 that LZO is optional.
de3aa260 1504
825a182b 15052009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1506
1507 Base on patch on bug #24154 created by Tomas Tintera
1508 <trosos@seznam.cz>.
1509
1510 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
1511
a69ef770 15122009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1513
7c3ff286 1514 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 1515 <bero@arklinux.org>.
1516
1517 * normal/parser.y (script_init): Add missing semicolon.
1518
6fa42fa6 15192009-01-31 Colin D Bennett <colin@gibibit.com>
1520
7c3ff286 1521 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 1522 (free_menu_entry_classes): Added.
1523 (grub_normal_menu_addentry): Added class property handling.
1524 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
1525 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
1526
1527 * normal/menu_viewer.c: New file.
1528
1529 * normal/menu.c (run_menu_entry): Renamed to ...
1530 (grub_menu_execute_entry): ... this and made it as global.
1531 (grub_menu_run): Renamed to ...
1532 (show_text_menu): ... this and made it local.
1533 (show_text_menu): Adapt to new function names.
1534 (grub_normal_terminal_menu_viewer): New global variable.
1535
1536 * include/grub/menu.h: New file.
1537
1538 * include/grub/menu_viewer.h: New file.
1539
1540 * include/grub/normal.h: Added include to grub/menu.h.
1541 (grub_menu_entry): Moved to include/grub/menu.h.
1542 (grub_menu_entry_t): Likewise.
1543 (grub_menu): Likewise.
1544 (grub_menu_t): Likewise.
1545 (grub_normal_terminal_menu_viewer): Added.
1546 (grub_menu_execute_entry): Likewise.
1547 (grub_menu_run): Removed.
1548
1549 * DISTLIST: Added include/grub/menu.h.
1550 Added include/grub/menu_viewer.h.
1551 Added normal/menu_viewer.c.
1552
15532009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
1554
1555 * normal/execute.c (grub_script_execute_menuentry): Changed to use
1556 arglist for menutitle arguments.
1557
1558 * normal/main.c (grub_normal_menu_addentry): Likewise.
1559
1560 * normal/parser.y (menuentry): Likewise.
1561
1562 * normal/script.c (grub_script_create_cmdmenu): Likewise.
1563
1564 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
1565 (grub_script_create_cmdmenu): Likewise.
1566
1567 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
1568
1569 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
1570 changes.
1571
1572 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
1573
1574 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
1575
1576 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
1577
1578 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1579
1580 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1581
1582 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1583
56192c23 15842009-01-30 Christian Franke <franke@computer.org>
1585
1586 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
1587 in option help text.
1588
d72521b3 15892009-01-27 Pavel Roskin <proski@gnu.org>
1590
1591 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
1592
994b5e84 15932009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1594
1595 * commands/lsmmap.c: Add include to grub/machine/memory.h.
1596
1597 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
1598
1599 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
1600 unregister function.
1601
6a7eab2c 16022009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1603
1604 * disk/scsi.c (grub_scsi_read): Fix sign problem.
1605
1606 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
1607
1608 * util/grub-mkfont.c (usage): Fix typo.
1609
1610 * util/elf/grub-mkimage.c (load_modules): Fix warning.
1611
1806b56e 16122009-01-26 Daniel Mierswa <impulze@impulze.org>
1613
3fb18f09 1614 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
1615
336e1fb9 1616 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
1617
1806b56e 1618 * kern/misc.c (grub_strcasecmp): New function.
1619 (grub_strcasecmp): Use grub_size_t instead of int for length.
1620 Fix return value.
1621 * include/grub/misc.h: Update function prototypes.
1622
580b2a0f 16232009-01-26 Robert Millan <rmh@aybabtu.com>
1624
1625 * configure.ac: Fix cross-compilation check.
ef257b36 1626
d31c24f1 16272009-01-22 Christian Franke <franke@computer.org>
1628
1629 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
1630 (precision) digit string. Allow `.format2' without `format1' (width).
1631 Limit input chars for `%s' output to `format2' if specified. This is
1632 compatible with standard printf ().
1633
3138b44c 16342009-01-22 Christian Franke <franke@computer.org>
1635
1636 * disk/ata.c (grub_ata_wait_status): Replace by ...
1637 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
1638 other status bits may be invalid while BSY is asserted.
1639 (grub_ata_check_ready): New function.
1640 (grub_ata_cmd): Removed.
1641 (grub_ata_wait_drq): New function.
1642 (grub_ata_strncpy): Remove inline.
1643 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
1644 and error check now done by grub_ata_wait_drq ().
1645 (grub_ata_pio_write): Likewise.
1646 (grub_atapi_identify): Set DEV before check for !BSY. Use
1647 grub_ata_wait_drq () to wait for data.
1648 (grub_ata_device_initialize): Add status register check to
1649 detect missing SATA slave devices. Add debug messages.
1650 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
1651 (grub_atapi_packet): Set DEV before check for !BSY. Replace
1652 transfer loop by grub_ata_pio_write ().
1653 (grub_ata_identify): Set DEV before check for !BSY. Use
1654 grub_ata_wait_drq () to wait for data.
ef257b36 1655 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 1656 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
1657 read/write in one loop. Fix invalid command on write. Fix incomplete
1658 command on (size % batch) == 0. Add missing error check after write of
1659 last block. Add debug messages.
1660 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
1661
59a64ef6 16622009-01-19 Christian Franke <franke@computer.org>
1663
1664 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
1665 (GRUB_ATAPI_IREASON_*): Likewise.
1666 (grub_ata_pio_write): Fix timeout error return.
1667 (grub_atapi_identify): Add grub_ata_wait () after cmd.
1668 (grub_atapi_wait_drq): New function.
1669 (grub_atapi_packet): New parameter `size'.
1670 Use grub_atapi_wait_drq () and direct write instead of
1671 grub_ata_pio_write ().
1672 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
1673 reads the number of bytes requested by the device for each DRQ
1674 assertion.
1675 (grub_atapi_write): Remove old implementation, return not
1676 implemented instead.
1677
1cfe20b3 16782009-01-19 Christian Franke <franke@computer.org>
1679
1680 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
1681 of 512 to calculate data size.
1682 (grub_scsi_read12): Likewise.
1683 (grub_scsi_write10): Likewise.
1684 (grub_scsi_write12): Likewise.
1685 (grub_scsi_read): Adjust size according to blocksize.
1686 Add checks for invalid blocksize and unaligned transfer.
1687
bee5fe5d 16882009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
1689
1690 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
1691
ef257b36 1692 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 1693 width glyphs.
1694
3e643f8c 16952009-01-19 Robert Millan <rmh@aybabtu.com>
1696
1697 * config.guess: Update to latest version from config git.
1698 * config.sub: Likewise.
1699
4fa80998 17002009-01-17 Felix Zielcke <fzielcke@z-51.de>
1701
1702 * Makefile.in: Change font compilation to use new grub-mkfont instead
1703 of java version.
1704
1705 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
1706 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
1707 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1708 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1709 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
1710 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
1711 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
1712 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
1713 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1714
7086085b 17152009-01-16 Christian Franke <franke@computer.org>
1716
1717 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
1718 (enum grub_ata_timeout_milliseconds): New enum.
1719 (grub_ata_wait_status): Add parameter milliseconds.
1720 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
1721 recovery from timed-out commands.
1722 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
1723 return grub_errno instead of REG_ERROR.
1724 (grub_ata_pio_write): Add parameter milliseconds.
1725 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
1726 Pass milliseconds to grub_ata_wait_status () and
1727 grub_ata_pio_read ().
1728 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
1729 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
1730 grub_ata_wait_status (). Fix IDENTIFY timeout check.
1731 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
1732 It is not suitable for device detection, because DEV bit is ignored,
1733 the command may run too long, and not all devices set the signature
1734 properly.
1735 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
1736 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
1737 Fix device selection, DEV bit must be set first to address the registers
1738 of the correct device.
1739 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
1740 grub_ata_pio_read/write ().
1741 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
1742 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
1743
4a412913 17442009-01-13 Carles Pina i Estany <carles@pina.cat>
1745
1746 * util/grub-editenv.c (main): Use fseeko(), not fseek().
1747
7795c55e 17482009-01-13 Bean <bean123ch@gmail.com>
d913988c 1749
1750 * util/grub-mkfont.c (write_font): forget to remove some debug code.
1751
7795c55e 17522009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 1753
1754 * Makefile.in: (enable_grub_mkfont): New variable.
1755 (freetype_cflags): Likewise.
1756 (freetype_libs): Likewise.
1757
1758 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
1759 (grub_mkfont_SOURCES): New variable.
1760 (grub_mkfont_CFLAGS): Likewise.
1761 (grub_mkfont_LDFLAGS): Likewise.
1762
1763 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
1764 library if `--enable-grub-mkfont' is requested.
1765 (enable_grub_mkfont): New variable.
1766 (freetype_cflags): Likewise.
1767 (freetype_libs): Likewise.
1768
1769 * util/grub-mkfont.c: New file.
1770
093af1fe 17712009-01-12 Christian Franke <franke@computer.org>
1772
1773 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
1774 mode check. Fix setting of compat_use[].
1775
f36cc108 17762009-01-10 Robert Millan <rmh@aybabtu.com>
1777
1778 Update a few copyright years which we forgot to do in 2008 (only for
1779 files whose changes made in 2008 were copyright-significant)
1780
1781 * Makefile.in: Add 2008 to Copyright line.
1782 * disk/ieee1275/ofdisk.c: Likewise.
1783 * disk/efi/efidisk.c: Likewise.
1784 * kern/dl.c: Likewise.
1785 * kern/sparc64/ieee1275/init.c: Likewise.
1786 * kern/mm.c: Likewise.
1787 * kern/efi/mm.c: Likewise.
1788 * boot/i386/pc/boot.S: Likewise.
1789 * genfslist.sh: Likewise.
1790 * fs/iso9660.c: Likewise.
1791 * fs/hfs.c: Likewise.
1792 * fs/jfs.c: Likewise.
1793 * fs/minix.c: Likewise.
1794 * fs/ufs.c: Likewise.
1795 * gensymlist.sh.in: Likewise.
1796 * genkernsyms.sh.in: Likewise.
1797 * include/grub/misc.h: Likewise.
1798 * include/grub/types.h: Likewise.
1799 * include/grub/symbol.h: Likewise.
1800 * include/grub/elf.h: Likewise.
1801 * include/grub/kernel.h: Likewise.
1802 * include/grub/disk.h: Likewise.
1803 * include/grub/dl.h: Likewise.
1804 * include/grub/i386/linux.h: Likewise.
1805 * include/grub/i386/pc/biosdisk.h: Likewise.
1806 * include/grub/efi/api.h: Likewise.
1807 * include/grub/efi/pe32.h: Likewise.
1808 * include/grub/util/misc.h: Likewise.
1809 * normal/execute.c: Likewise.
1810 * normal/arg.c: Likewise.
1811 * normal/completion.c: Likewise.
1812 * normal/lexer.c: Likewise.
1813 * normal/parser.y: Likewise.
1814 * normal/misc.c: Likewise.
1815 * commands/i386/pc/vbeinfo.c: Likewise.
1816 * commands/hexdump.c: Likewise.
1817 * commands/terminal.c: Likewise.
1818 * commands/ls.c: Likewise.
1819 * commands/help.c: Likewise.
1820 * partmap/pc.c: Likewise.
1821 * loader/efi/chainloader.c: Likewise.
1822 * loader/multiboot_loader.c: Likewise.
1823 * loader/i386/pc/multiboot2.c: Likewise.
1824 * term/efi/console.c: Likewise.
1825 * term/i386/pc/serial.c: Likewise.
1826 * util/lvm.c: Likewise.
1827 * util/console.c: Likewise.
1828 * util/i386/efi/grub-mkimage.c: Likewise.
1829 * util/raid.c: Likewise.
1830
7f02114b 18312009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
1832
1833 * commands/videotest.c: Removed include to grub/machine/memory.h.
1834
1835 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
1836 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
1837 (video_mod_SOURCES): Removed.
1838 (video_mod_CFLAGS): Likewise.
1839 (video_mod_LDFLAGS): Likewise.
1840 (gfxterm_mod_SOURCES): Likewise.
1841 (gfxterm_mod_CFLAGS): Likewise.
1842 (gfxterm_mod_LDFLAGS): Likewise.
1843 (videotest_mod_SOURCES): Likewise.
1844 (videotest_mod_CFLAGS): Likewise.
1845 (videotest_mod_LDFLAGS): Likewise.
1846 (bitmap_mod_SOURCES): Likewise.
1847 (bitmap_mod_CFLAGS): Likewise.
1848 (bitmap_mod_LDFLAGS): Likewise.
1849 (tga_mod_SOURCES): Likewise.
1850 (tga_mod_CFLAGS): Likewise.
1851 (tga_mod_LDFLAGS): Likewise.
1852 (jpeg_mod_SOURCES): Likewise.
1853 (jpeg_mod_CFLAGS): Likewise.
1854 (jpeg_mod_LDFLAGS): Likewise.
1855 (png_mod_SOURCES): Likewise.
1856 (png_mod_CFLAGS): Likewise.
1857 (png_mod_LDFLAGS): Likewise.
1858
1859 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
1860 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
1861 (video_mod_SOURCES): Added.
1862 (video_mod_CFLAGS): Likewise.
1863 (video_mod_LDFLAGS): Likewise.
1864 (videotest_mod_SOURCES): Likewise.
1865 (videotest_mod_CFLAGS): Likewise.
1866 (videotest_mod_LDFLAGS): Likewise.
1867 (bitmap_mod_SOURCES): Likewise.
1868 (bitmap_mod_CFLAGS): Likewise.
1869 (bitmap_mod_LDFLAGS): Likewise.
1870 (tga_mod_SOURCES): Likewise.
1871 (tga_mod_CFLAGS): Likewise.
1872 (tga_mod_LDFLAGS): Likewise.
1873 (jpeg_mod_SOURCES): Likewise.
1874 (jpeg_mod_CFLAGS): Likewise.
1875 (jpeg_mod_LDFLAGS): Likewise.
1876 (png_mod_SOURCES): Likewise.
1877 (png_mod_CFLAGS): Likewise.
1878 (png_mod_LDFLAGS): Likewise.
1879 (gfxterm_mod_SOURCES): Likewise.
1880 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 1881 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 1882
1883 * term/gfxterm.c: Removed include to grub/machine/memory.h,
1884 grub/machine/console.h.
1885
644fff97 18862009-01-04 Jerone Young <jerone@gmail.com>
1887
1888 Make on screen instructions clearer
1889
1890 Based on patch created by Jidanni <jidanni@jidanni.org>
1891
1892 * normal/menu.c: print clearer instructions on the screen
1893
1e901a75 18942009-01-02 Colin D Bennett <colin@gibibit.com>
1895
1896 New font engine.
34c44600 1897
1e901a75 1898 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
1899 build system and fixed gfxterm.c to work with different sized fonts.
1900
1901 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 1902
1e901a75 1903 * configure: Re-generated.
34c44600 1904
1e901a75 1905 * DISTLIST: Removed font/manager.c.
1906 Added font/font.c.
1907 Added font/font_cmd.c.
34c44600 1908
1e901a75 1909 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
1910 compilation.
34c44600 1911
1e901a75 1912 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 1913
1914 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 1915
1916 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 1917
1e901a75 1918 * normal/menu.c: Likewise.
34c44600 1919
1e901a75 1920 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
1921 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 1922
1e901a75 1923 * include/grub/font.h: Replaced with new file.
34c44600 1924
1e901a75 1925 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
1926 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
1927 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
1928 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
1929 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 1930 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 1931 fg_red, fg_green, fg_blue, fg_alpha.
1932 (grub_video_adapter): Removed blit_glyph.
34c44600 1933 (grub_video_blit_glyph): Removed.
1934
1e901a75 1935 * font/manager.c: Removed file.
34c44600 1936
1937 * font/font.c: New file.
1938
1e901a75 1939 * font/font_cmd.c: Likewise.
34c44600 1940
1e901a75 1941 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 1942
1e901a75 1943 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
1944 (grub_video_vbe_map_rgba): Likewise.
1945 (grub_video_vbe_unmap_color_int): Likewise.
1946 (grub_video_vbe_blit_glyph): Removed.
1947 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 1948
1e901a75 1949 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
1950 (get_pixel): Likewise.
34c44600 1951 (set_pixel): Likewise.
1952
1e901a75 1953 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 1954
1e901a75 1955 * term/gfxterm.c: Adapted to new font engine.
34c44600 1956
1e901a75 1957 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 1958
1e901a75 1959 * term/i386/pc/vga.c: Likewise.
34c44600 1960
1e901a75 1961 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 1962
1e901a75 1963 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 1964
1e901a75 1965 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1966
1e901a75 1967 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 1968
1e901a75 1969 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 1970
1e901a75 1971 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 1972
1e901a75 1973 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 1974
1e901a75 1975 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 1976
1e901a75 1977 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1978
1979 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 1980
1e901a75 1981 * util/grub-mkconfig_lib.in: Changed font extension.
1982
278922e8 19832008-12-28 Felix Zielcke <fzielcke@z-51.de>
1984
1985 * util/getroot.c (grub_util_get_grub_dev): Add support for
1986 /dev/md/dNNpNN style partitionable mdraid devices.
1987
3ced05cf 19882008-12-12 Alex Smith <alex@alex-smith.me.uk>
1989
1990 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
1991 at a time limit of the PXE TFTP API correctly.
1992 (grub_pxefs_close): Likewise.
1993
7fd0ee30 19942008-11-29 Robert Millan <rmh@aybabtu.com>
1995
34c44600 1996 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 1997 grub_ata_device_initialize() calls.
1998
34c44600 19992008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 2000
2001 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
2002 iteration failed.
2003 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
2004
89313780 20052008-11-28 Robert Millan <rmh@aybabtu.com>
2006
2007 Fix build on powerpc-ieee1275. Based on patch created by
2008 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
2009 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
2010 `kern/ieee1275/mmap.c'.
2011 * include/grub/powerpc/ieee1275/memory.h: New file.
2012
15257703 2013 Provide grub-install on coreboot.
2014 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
2015 (grub_install_SOURCES): New variable.
2016 * util/i386/pc/grub-install.in: Add a few condition checks to make it
2017 usable on coreboot.
2018
9fc5388a 20192008-11-25 Felix Zielcke <fzielcke@z-51.de>
2020
2021 * util/grub-fstest.c (grub_term_get_current_input): Change return type
2022 to `grub_term_input_t'.
2023 (grub_term_get_current_output): Change return type to
2024 `grub_term_output_t'.
2025
bc3a2f31 20262008-11-22 Robert Millan <rmh@aybabtu.com>
2027
34c44600 2028 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 2029 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
2030 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
2031 grub_vga_text_cls().
2032
80fc88f2 2033 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 2034 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 2035
cbf36fd3 2036 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
2037 to 0x200000 (avoids trouble with some OFW implementations, and matches
2038 with the one in Yaboot).
2039 Reported by Manoel Abranches
2040
73e8e268 20412008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 2042
2043 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
2044 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
2045
73e8e268 2046 * util/grub-mkconfig_lib.in (grub_warn): New function.
2047 (convert_system_path_to_grub_path): Use grub_warn() when issuing
2048 warnings, to obtain consistent formatting.
2049 * util/grub.d/00_header.in: Likewise.
2050 * util/update-grub_lib.in: Likewise.
2051
e94045a1 2052 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 2053 Move comment text to `#error' stanza.
e94045a1 2054
79d29fd7 2055 Harmonize ieee1275's grub_available_iterate() with the generic
2056 grub_machine_mmap_iterate() interface (fixes a recently-introduced
2057 build problem on i386-ieee1275):
2058 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
2059 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
2060 parameter `type'. Update all users of this function.
2061 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
2062 `kern/ieee1275/mmap.c'.
2063 * kern/ieee1275/init.c
2064 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
2065 with ...
2066 (grub_machine_mmap_iterate): ... this.
2067 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
2068 return type to `grub_err_t'. Update all implementations of this
2069 function prototype.
2070 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
2071 Likewise.
2072
60d6b16e 2073 Add `lsmmap' command (lists firmware-provided memory map):
2074 * commands/lsmmap.c: New file.
2075 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
2076 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
2077 variables.
2078 * conf/powerpc-ieee1275.rmk: Likewise.
2079 * conf/i386-coreboot.rmk: Likewise.
2080 * conf/i386-ieee1275.rmk: Likewise.
2081
ebaaf49b 20822008-11-19 Robert Millan <rmh@aybabtu.com>
2083
2084 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 2085 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
2086 constraints to initrd allocation (based on code from
2087 loader/i386/pc/linux.c). Without them, initrd was allocated too high
2088 for Linux to find it.
ebaaf49b 2089
dfab719f 20902008-11-14 Robert Millan <rmh@aybabtu.com>
2091
2092 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
2093 order to cope with duplicate slashes.
2094
10fc3eb9 20952008-11-14 Robert Millan <rmh@aybabtu.com>
2096
2097 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
2098 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
2099 don't want to mess with lower memory, because it is used in the Linux
2100 loader.
2101
2102 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 2103 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 2104 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
2105 is in our heap (probably as a result of it being corrupted during
2f2a3442 2106 decompression). Add #error instance with comment to explain why this
2107 loader isn't currently usable on PC/BIOS.
10fc3eb9 2108
e2e07847 21092008-11-14 Robert Millan <rmh@aybabtu.com>
2110
2111 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 2112 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 2113
fe8e8d69 21142008-11-12 Robert Millan <rmh@aybabtu.com>
2115
2116 Make loader/i386/linux.c buildable on i386-pc (although disabled).
2117
2118 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
2119 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
2120 from here ...
2121 * include/grub/i386/pc/memory.h: ... to here.
2122
976b07d0 21232008-11-12 Robert Millan <rmh@aybabtu.com>
2124
2125 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
2126 split).
2127
2128 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
2129 (grub_console_cur_color, grub_console_real_putchar)
2130 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2131 (grub_console_setcolorstate, grub_console_setcolor)
2132 (grub_console_getcolor): Move from here ...
2133 * include/grub/i386/vga_common.h: ... to here (new file).
2134
2135 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
2136 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
2137 `<grub/i386/io.h>'.
2138 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
2139 `<grub/i386/vga_common.h>'.
2140
76679cd3 21412008-11-12 Robert Millan <rmh@aybabtu.com>
2142
2143 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
2144 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
2145 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
2146 variables.
2147 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2148 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
2149
2150 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
2151 grub_console_init() with call to grub_vga_text_init().
2152 (grub_machine_fini): Replace call to
2153 grub_console_fini() with call to grub_vga_text_fini() and
2154 grub_at_keyboard_fini().
2155
2156 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
2157 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2158 (grub_console_setcolorstate, grub_console_setcolor)
2159 (grub_console_getcolor): New function prototypes.
2160
2161 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
2162 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
2163 (grub_vga_text_setcursor): Static-ize.
2164 (grub_vga_text_term): New structure.
2165 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
2166
2167 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
2168 (grub_console_cur_color, grub_console_standard_color)
2169 (grub_console_normal_color, grub_console_highlight_color)
2170 (map_char, grub_console_putchar, grub_console_getcharwidth)
2171 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
2172 (grub_console_getcolor): Move from here ...
2173 * term/i386/vga_common.c: ... to here (same function names).
2174
95b841d3 21752008-11-12 Robert Millan <rmh@aybabtu.com>
2176
2177 Use newly-added Multiboot support in coreboot.
2178
2179 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2180 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
2181
2182 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
2183 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
2184 (codestart): Store the MBI in `startup_multiboot_info' when we're
2185 being loaded using Multiboot.
2186
2187 * kern/i386/coreboot/init.c (grub_machine_init): Move
2188 grub_at_keyboard_init() call to beginning of function (useful for
2189 debugging). Call grub_machine_mmap_init() before attempting to use
2190 grub_machine_mmap_iterate().
2191 (grub_lower_mem, grub_upper_mem): Move from here ...
2192 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
2193 here (new file).
2194
2195 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
2196 function prototype.
2197
761ca975 21982008-11-12 Robert Millan <rmh@aybabtu.com>
2199
2200 Fix a regression introduced by the at_keyboard.mod split. Because
2201 some terminals are default on some platforms and non-default on
2202 others, the first terminal being registered determines which is
2203 going to be default.
2204
2205 * kern/term.c (grub_term_register_input): If this is the first
2206 terminal being registered, set it as the current one.
2207 (grub_term_register_output): Likewise.
2208
2209 * term/efi/console.c (grub_console_init): Do not call
2210 grub_term_set_current_output() or grub_term_set_current_input().
2211 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
2212 * term/i386/pc/console.c (grub_console_init): Likewise.
2213 (grub_console_fini): Do not call grub_term_set_current_input()
2214 (but leave grub_term_set_current_output() to restore text mode).
2215
6c529df7 22162008-11-10 Robert Millan <rmh@aybabtu.com>
2217
2218 * util/grub.d/00_header.in: Add backward compatibility check for
2219 versions of terminal.mod that don't understand `terminal_input' or
2220 `terminal_output'.
2221
132e4113 22222008-11-09 Robert Millan <rmh@aybabtu.com>
2223
2224 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
2225 `terminal_input' / `terminal_output', not `terminal'.
2226
ac293d50 22272008-11-08 Robert Millan <rmh@aybabtu.com>
2228
2229 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 2230 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 2231
0025933a 22322008-11-08 Robert Millan <rmh@aybabtu.com>
2233
2234 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 2235 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 2236 members. Update all users.
2237 * util/console.c (grub_ncurses_term): Split in ...
2238 (grub_ncurses_term_input): ... this, and ...
2239 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 2240 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 2241
37c86336 22422008-11-08 Robert Millan <rmh@aybabtu.com>
2243
2244 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
2245 (PKGDATA): Add $(pkgdata_SRCDIR).
2246 (pkglib_BUILDDIR): New variable.
2247 (pkgdata_SRCDIR): New variable.
2248 (build_env.mk): New target.
2249 (include_DATA): New variable.
2250 (install-local): Install $(include_DATA) files in $(includedir).
2251
b6c15a2d 22522008-11-07 Pavel Roskin <proski@gnu.org>
2253
d99d46f1 2254 * gendistlist.sh: Use C locale for sorting to ensure consistent
2255 output on all systems.
2256
b6c15a2d 2257 * util/grub.d/00_header.in: Remove incorrect space before
2258 "serial".
2259
c32ee8c9 22602008-11-07 Robert Millan <rmh@aybabtu.com>
2261
2262 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
2263 per specification.
2264 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
2265 * loader/multiboot_loader.c (find_multi_boot2_header): New function
2266 (based on find_multi_boot1_header).
2267 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
2268 using find_multi_boot2_header(), and abort if neither Multiboot or
2269 Multiboot headers were found.
2270
651c29b7 22712008-11-07 Robert Millan <rmh@aybabtu.com>
2272
2273 Modularize at_keyboard.mod:
2274
2275 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
2276 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
2277 (at_keyboard_mod_LDFLAGS): New variables.
2278
2279 Actual terminal split:
2280
2281 * include/grub/term.h (struct grub_term): Split in ...
2282 (struct grub_term_input): ... this, and ...
2283 (struct grub_term_output): ... this. Update all users.
2284 (grub_term_set_current): Split in ...
2285 (grub_term_set_current_input): ... this, and ...
2286 (grub_term_set_current_output): ... this.
2287 (grub_term_get_current): Split in ...
2288 (grub_term_get_current_input): ... this, and ...
2289 (grub_term_get_current_output): ... this.
2290 (grub_term_register): Split in ...
2291 (grub_term_register_input): ... this, and ...
2292 (grub_term_register_output): ... this.
2293 (grub_term_unregister): Split in ...
2294 (grub_term_unregister_input): ... this, and ...
2295 (grub_term_unregister_output): ... this.
2296 (grub_term_iterate): Split in ...
2297 (grub_term_iterate_input): ... this, and ...
2298 (grub_term_iterate_output): ... this.
2299
2300 * kern/term.c (grub_term_list): Split in ...
2301 (grub_term_list_input): ... this, and ...
2302 (grub_term_list_output): ... this. Update all users.
2303 (grub_cur_term): Split in ...
2304 (grub_cur_term_input): ... this, and ...
2305 (grub_cur_term_output): ... this. Update all users.
2306 (grub_term_set_current): Split in ...
2307 (grub_term_set_current_input): ... this, and ...
2308 (grub_term_set_current_output): ... this.
2309 (grub_term_get_current): Split in ...
2310 (grub_term_get_current_input): ... this, and ...
2311 (grub_term_get_current_output): ... this.
2312 (grub_term_register): Split in ...
2313 (grub_term_register_input): ... this, and ...
2314 (grub_term_register_output): ... this.
2315 (grub_term_unregister): Split in ...
2316 (grub_term_unregister_input): ... this, and ...
2317 (grub_term_unregister_output): ... this.
2318 (grub_term_iterate): Split in ...
2319 (grub_term_iterate_input): ... this, and ...
2320 (grub_term_iterate_output): ... this.
2321
2322 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
2323 a check for input and one for output (and only attempt to get keys
2324 from user when input works).
2325
2326 * util/grub-probe.c (grub_term_get_current): Split in ...
2327 (grub_term_get_current_input): ... this, and ...
2328 (grub_term_get_current_output): ... this.
2329 * util/grub-fstest.c: Likewise.
2330 * util/i386/pc/grub-setup.c: Likewise.
2331 * util/grub-editenv.c: Likewise.
2332
2333 Portability adjustments:
2334
2335 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
2336 `term/i386/pc/at_keyboard.c'.
2337 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
2338 grub_keyboard_controller_init() (now handled by terminal .init).
2339 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
2340 grub_at_keyboard_init().
2341 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
2342 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
2343 at_keyboard.mod via input terminal interface).
2344 * include/grub/i386/coreboot/console.h: Convert into a stub for
2345 `<grub/i386/pc/console.h>'.
2346
2347 Migrate full terminals to new API:
2348
2349 * term/efi/console.c (grub_console_term): Split into ...
2350 (grub_console_term_input): ... this, and ...
2351 (grub_console_term_output): ... this. Update all users.
2352 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
2353 (grub_ofconsole_init): Split into ...
2354 (grub_ofconsole_init_input): ... this, and ...
2355 (grub_ofconsole_init_output): ... this.
2356 (grub_ofconsole_term): Split into ...
2357 (grub_ofconsole_term_input): ... this, and ...
2358 (grub_ofconsole_term_output): ... this. Update all users.
2359 * term/i386/pc/serial.c (grub_serial_term): Split into ...
2360 (grub_serial_term_input): ... this, and ...
2361 (grub_serial_term_output): ... this. Update all users.
2362 * term/i386/pc/console.c (grub_console_term): Split into ...
2363 (grub_console_term_input): ... this, and ...
2364 (grub_console_term_output): ... this. Update all users.
2365 (grub_console_term_input): Only enable it on PC/BIOS platform.
2366 (grub_console_init): Remove grub_keyboard_controller_init() call.
2367
2368 Migrate input terminals to new API:
2369
2370 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
2371 `i386' and `i386/pc' to enable build on x86_64 (this driver is
2372 i386-specific anyway).
2373 (grub_console_checkkey): Rename to ...
2374 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
2375 users.
2376 (grub_keyboard_controller_orig): New variable.
2377 (grub_console_getkey): Rename to ...
2378 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
2379 users.
2380 (grub_keyboard_controller_init): Static-ize. Save original
2381 controller value so that it can be restored ...
2382 (grub_keyboard_controller_fini): ... here (new function).
2383 (grub_at_keyboard_term): New structure.
2384 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
2385 functions.
2386
2387 Migrate output terminals to new API:
2388
2389 * term/i386/pc/vga.c (grub_vga_term): Change type to
2390 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2391 members. Update all users.
2392 * term/gfxterm.c (grub_video_term): Change type to
2393 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2394 members. Update all users.
2395 * include/grub/i386/pc/console.h (grub_console_checkkey)
2396 (grub_console_getkey): Do not export (no longer needed by gfxterm,
2397 etc).
2398
2399 Migrate `terminal' command and userland tools to new API:
2400
2401 * commands/terminal.c (grub_cmd_terminal): Split into ...
2402 (grub_cmd_terminal_input): ... this, and ...
2403 (grub_cmd_terminal_output): ... this.
2404 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
2405 `terminal_input' and `terminal_output'.
2406 * util/grub.d/00_header.in: Adjust `terminal' calls to new
2407 `terminal_input' / `terminal_output' API.
2408 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
2409 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
2410 provided ${GRUB_TERMINAL}, convert it).
2411
96e5d876 24122008-11-04 Robert Millan <rmh@aybabtu.com>
2413
2414 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
2415 for FreeBSD.
2416 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
2417
556f3775 24182008-11-03 Bean <bean123ch@gmail.com>
2419
2420 * kern/elf.c (grub_elf32_load): Revert to previous code.
2421 (grub_elf64_load): Likewise.
2422
2423 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
2424
926b9823 24252008-11-01 Robert Millan <rmh@aybabtu.com>
2426
2427 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
2428 (TARGET_CPPFLAGS): Likewise.
2429 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
2430
1432e958 24312008-11-01 Carles Pina i Estany <carles@pina.cat>
2432
2433 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
2434
dba3f844 24352008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 2436
2437 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
2438 addition of objects until the code is not going to be able to fail.
2439
dba3f844 24402008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 2441
2442 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
2443 (add a missing NULL check, and correct them by moving the pointer
2444 operations after the actual check).
2445
7ab28c21 24462008-10-29 Robert Millan <rmh@aybabtu.com>
2447
2448 * util/i386/pc/grub-install.in: Handle empty string as output from
2449 make_system_path_relative_to_its_root().
2450
1b7748eb 24512008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
2452
2453 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
2454 circular metadata worst case scenario. If the metadata is circular
2455 then copy the wrap in place.
2456 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
2457 project lib/format_text/layout.h
2458 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
2459
c9618ab2 24602008-10-03 Felix Zielcke <fzielcke@z-51.de>
2461
7a36edca 2462 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 2463
bf981c62 24642008-10-03 Felix Zielcke <fzielcke@z-51.de>
2465
2466 * util/update-grub_lib.in: Mention filename in warning message.
2467
6d994591 24682008-09-29 Felix Zielcke <fzielcke@z-51.de>
2469
2470 * NEWS: Update for rename of update-grub to grub-mkconfig.
2471
18ade780 24722008-09-29 Felix Zielcke <fzielcke@z-51.de>
2473
2474 * util/update-grub_lib.in: Copy to ...
2475 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 2476 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 2477 * util/update-grub.in: Rename to ...
2478 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
2479 option. Add `--output' option to allow users to specify the generated
2480 configuration file. Default to stdout.
2481 (update_grub_dir): Rename to ...
2482 (grub_mkconfig_dir): ... this.
2483 (grub_cfg): Default to an empty string.
2484 * conf/common.rmk (update-grub): Rename to ...
2485 (grub-mkconfig): ... this.
2486 (update-grub_lib): Copy to ...
2487 (grub-mkconfig_lib): ... this.
2488 (update-grub_SCRIPTS): Copy to ...
2489 (grub-mkconfig_SCRIPTS): ... this. Update all users.
2490 (update-grub_DATA): Rename to ...
2491 (grub-mkconfig_DATA): ... this.
2492
556ce6ac 24932008-09-28 Robert Millan <rmh@aybabtu.com>
2494
2495 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
2496 to `modified'. Add the real `created' field.
2497 (grub_iso9660_uuid): Use `modified' rather than `created' for
2498 constructing the UUID.
2499
25002008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 2501
2502 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
2503 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
2504
92274e85 25052008-09-28 Bean <bean123ch@gmail.com>
2506
2507 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
2508 Thanks to Christian Franke for finding this bug.
2509
add6f17a 25102008-09-25 Robert Millan <rmh@aybabtu.com>
2511
2512 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
2513 instances of grub_util_get_disk_name() (see previous commit).
2514
d2a367b8 25152008-09-25 Robert Millan <rmh@aybabtu.com>
2516
2517 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
2518 `util/i386/get_disk_name.c'.
2519 * conf/i386-efi.rmk: Likewise.
2520 * conf/x86_64-efi.rmk: Likewise.
2521 * conf/i386-coreboot.rmk: Likewise.
2522 * conf/i386-ieee1275.rmk: Likewise.
2523 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
2524 `util/ieee1275/get_disk_name.c'.
2525 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
2526 * util/ieee1275/get_disk_name.c: Remove file.
2527 * util/i386/get_disk_name.c: Remove file.
2528 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
2529 "hd%d" for device.map entries, rather than using
2530 grub_util_get_disk_name().
2531
81a06771 25322008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 2533
2534 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
2535 warning.
2536 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
2537
5a004279 25382008-09-24 Carles Pina i Estany <carles@pina.cat>
2539
2540 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
2541 Changed to 0x5100.
2542 (GRUB_TERM_PPAGE): Changed to 0x4900.
2543
397093d3 25442008-09-24 Robert Millan <rmh@aybabtu.com>
2545
2546 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
2547 macros (they were i386-pc specific).
2548 * include/grub/sparc64/ieee1275/console.h: Likewise.
2549 * include/grub/efi/console.h: Likewise.
2550
a91b6c7c 25512008-09-22 Bean <bean123ch@gmail.com>
2552
2553 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
2554 resident and in attribute list.
2555
2556 * include/grub/ntfs.h (BMP_LEN): Removed.
2557
c40fd116 25582008-09-22 Bean <bean123ch@gmail.com>
2559
81a06771 2560 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 2561 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
2562
2563 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
2564 error occurs, as grub_disk_open will call grub_disk_close, which will
2565 call p->close (scsi).
2566
81a06771 25672008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 2568
2569 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
2570 (AC_PREREQ): Bumped to 2.59.
2571 (AC_TRY_COMPILE): Replace obsolete macro with ...
2572 (AC_COMPILE_IFELSE): ... this.
2573 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
2574 (AC_LINK_IFELSE): ... this.
2575
5dc43410 25762008-09-21 Felix Zielcke <fzielcke@z-51.de>
2577
2578 * autogen.sh: Add a call to `gendistlist.sh'.
2579
9035dce4 25802008-09-19 Christian Franke <franke@computer.org>
2581
2582 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
2583 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
2584 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
2585 Export __enable_execute_stack() to modules.
2586 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
2587 New function.
2588
7fd75377 25892008-09-09 Felix Zielcke <fzielcke@z-51.de>
2590
040030b3 2591 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
2592 Sort the list.
2593
25942008-09-09 Felix Zielcke <fzielcke@z-51.de>
2595
2596 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 2597 #include <grub/util/hostdisk.h>.
2598
89d5ffcf 25992008-09-08 Robert Millan <rmh@aybabtu.com>
2600
2601 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
2602 segments when their filesz is zero (grub_file_read() interprets
81a06771 2603 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 2604 Use `lowest_segment' rather than 0 for calculating the current
2605 segment load address.
2606
40da438f 26072008-09-08 Robert Millan <rmh@aybabtu.com>
2608
2609 * util/hostdisk.c (open_device): Replace a grub_util_info() call
2610 with grub_dprintf("hostdisk", ...), as it was so verbose that it
2611 clobbered useful information.
2612
ddbf5556 26132008-09-08 Robert Millan <rmh@aybabtu.com>
2614
2615 * include/grub/util/biosdisk.h: Move to ...
2616 * include/grub/util/hostdisk.h: ... here. Update all users.
2617 * util/biosdisk.c: Move to ...
2618 * util/hostdisk.c: ... here. Update all users.
2619
783d0f48 26202008-09-07 Robert Millan <rmh@aybabtu.com>
2621
2622 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
2623 variables.
2624 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
2625 and length can be stored directly in the `mbi->mmap_addr' and
2626 `mbi->mmap_length' struct fields.
2627
548e2ea5 26282008-09-07 Robert Millan <rmh@aybabtu.com>
2629
2630 * conf/i386.rmk: New file. Provides declaration for building
2631 `cpuid.mod'.
2632 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
2633 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
2634 variables.
2635 Include `conf/i386.mk'.
2636 * conf/i386-efi.rmk: Likewise.
2637 * conf/x86_64-efi.rmk: Likewise.
2638 * conf/i386-coreboot.rmk: Likewise.
2639 * conf/i386-ieee1275.rmk: Likewise.
2640
0ea85a37 26412008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
2642
2643 Based on patch created by Colin D Bennett <colin@gibibit.com>.
2644 Adds optimization support for BGR based modes.
2645
2646 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
2647 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2648 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2649 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2650 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2651 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2652 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2653 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2654 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2655 (grub_video_i386_vbeblit_index_index): Likewise.
2656 (grub_video_i386_vbeblit_replace_directN): Added.
2657 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2658 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2659 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2660 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2661 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2662 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 2663 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 2664 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2665 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2666 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2667 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2668 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2669 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
2670
2671 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
2672 (grub_video_i386_vbefill_R8G8B8): Likewise.
2673 (grub_video_i386_vbefill_index): Likewise.
2674 (grub_video_i386_vbefill_direct32): Added.
2675 (grub_video_i386_vbefill_direct24): Likewise.
2676 (grub_video_i386_vbefill_direct16): Likewise.
2677 (grub_video_i386_vbefill_direct8): Likewise.
2678
81a06771 2679 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 2680 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
2681 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
2682 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
2683 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
2684 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 2685
0ea85a37 2686 * video/video.c (grub_video_get_blit_format): Updated to use new
2687 blit formats. Added handling for 16 bit color modes.
81a06771 2688
2689 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 2690 fillers.
2691 (common_blitter): Updated to use new blitters.
2692
2693 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
2694 Removed.
2695 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2696 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2697 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2698 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2699 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2700 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2701 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2702 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2703 (grub_video_i386_vbeblit_index_index): Likewise.
2704 (grub_video_i386_vbeblit_replace_directN): Added.
2705 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2706 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2707 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2708 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2709 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2710 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
2711 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
2712 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2713 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2714 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2715 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2716 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2717 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 2718
0ea85a37 2719 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
2720 (grub_video_i386_vbefill_R8G8B8): Likewise.
2721 (grub_video_i386_vbefill_index): Likewise.
2722 (grub_video_i386_vbefill_direct32): Added.
2723 (grub_video_i386_vbefill_direct24): Likewise.
2724 (grub_video_i386_vbefill_direct16): Likewise.
2725 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 2726
0ea85a37 2727 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
2728 types.
81a06771 2729
0ea85a37 2730 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
2731 types.
81a06771 2732
0ea85a37 2733 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
2734 blitter types.
81a06771 2735
0ea85a37 2736 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
2737 types.
2738
e8a83df6 27392008-09-06 Felix Zielcke <fzielcke@z-51.de>
2740
2741 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
2742 RAID level 1.
2743
6bcd8ee5 27442008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 2745
6bcd8ee5 2746 * fs/iso9660.c (grub_iso9660_date): New structure.
2747 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
2748 (grub_iso9660_uuid): New function.
c375ae58 2749
59261157 27502008-09-05 Bean <bean123ch@gmail.com>
2751
2752 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
2753
2754 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
2755 insensitive bit for names in Win32 and Win32 & DOS namespace.
2756
2757 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
2758
2759 * include/grub/types.h (LONG_MAX): Likewise.
2760
58b6645a 27612008-09-04 Felix Zielcke <fzielcke@z-51.de>
2762
4ee55921 2763 * util/getroot.c: Include <config.h>.
2764 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
2765 add support for /dev/md/N devices and handle LVM double dash escaping.
2766
27672008-09-04 Felix Zielcke <fzielcke@z-51.de>
2768
2769 * config.guess: Update to latest version from config git.
2770 * config.sub: Likewise.
58b6645a 2771
9124f65d 27722008-09-03 Robert Millan <rmh@aybabtu.com>
2773
2774 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
2775 `disk->total_sectors'.
2776
81a06771 27772008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 2778
2779 * include/grub/normal.h: Fixed incorrect comment for
2780 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
2781
81a06771 27822008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 2783
2784 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
2785 values with defines.
2786
2787 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
2788 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
2789 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
2790 (GRUB_VBE_MODEATTR_COLOR): Likewise.
2791 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
2792 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
2793 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
2794 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
2795 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
2796 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
2797 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
2798 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
2799 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
2800 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
2801 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
2802 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
2803 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
2804 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
2805 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
2806
93d5cbf8 28072008-08-31 Robert Millan <rmh@aybabtu.com>
2808
2809 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
2810 declaration.
2811 (grub_multiboot): Fix a few warnings.
2812
21751d50 28132008-08-31 Robert Millan <rmh@aybabtu.com>
2814
2815 * loader/i386/pc/multiboot.c: Update comment not to say that
2816 boot_device support is unimplemented.
2817
e27a75c5 28182008-08-31 Robert Millan <rmh@aybabtu.com>
2819
2820 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
2821 or memory map support are unimplemented.
2822
81a06771 28232008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 2824
2825 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
2826
81a06771 28272008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 2828
2829 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
2830 total video memory in 'vbeinfo' output; show color format details for
2831 each video mode.
2832
7c5d8d95 28332008-08-30 Pavel Roskin <proski@gnu.org>
2834
2835 * util/genmoddep.c: Remove for real this time.
2836 * DISTLIST: Remove util/genmoddep.c.
2837
4cebd25a 28382008-08-30 Robert Millan <rmh@aybabtu.com>
2839
2840 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
2841 as required by Multiboot spec (it was already 4-byte aligned, but
2842 only by chance).
2843
b497a269 28442008-08-29 Pavel Roskin <proski@gnu.org>
2845
e3925185 2846 * kern/powerpc/ieee1275/crt0.S: Rename to ...
2847 * kern/powerpc/ieee1275/startup.S: ... this.
2848 * conf/powerpc-ieee1275.rmk: Adjust for the above.
2849 * DISTLIST: Likewise.
2850
b497a269 2851 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
2852 grub/cpu/kernel.h. Add start label for consistency with other
2853 platforms. Add grub_prefix immediately after start. Add jump
2854 to the code after grub_prefix.
2855 * include/grub/powerpc/kernel.h: Provide valid values for
2856 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
2857
6e5a42fe 28582008-08-29 Bean <bean123ch@gmail.com>
2859
2860 * configure.ac: Change host_os to cygwin for mingw.
2861 (asprintf): New check for function.
2862
2863 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
2864 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
2865
2866 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 2867 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 2868 sync, sleep and grub_util_get_disk_size for mingw.
2869
2870 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
2871 to get size in mingw.
2872 (open_device): Use flag O_BINARY if it's defined.
2873 (find_root_device): Add dummy code for mingw.
2874
2875 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
2876 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
2877 (get_scsi_disk_name): Return 0 for mingw.
2878
2879 * util/hostfs.c: #include <grub/util/misc.h>.
2880 (grub_hostfs_open): Use "rb" flag to open file, use
2881 grub_util_get_disk_size to get disk size for mingw.
2882
2883 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
2884 (asprintf): New function if HAVE_ASPRINTF is not set.
2885 (sync): New function for mingw.
2886 (sleep): Likewise.
2887 (grub_util_get_disk_size): Likewise.
2888
ab3f2673 28892008-08-28 Pavel Roskin <proski@gnu.org>
2890
2891 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
2892 kern/time.c.
2893
1c282483 28942008-08-28 Robert Millan <rmh@aybabtu.com>
2895
2896 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
2897
678e849c 28982008-08-28 Robert Millan <rmh@aybabtu.com>
2899
2900 Change find_grub_drive() syntax so it doesn't prevent it from
2901 detecting NULL names as errors.
2902
2903 * util/biosdisk.c (find_grub_drive): Move free slot search code
2904 from here ...
2905 (find_free_slot): ... to here.
2906 (read_device_map): Use find_free_slot() to search for free slots.
2907
965c75ca 29082008-08-27 Marco Gerards <marco@gnu.org>
2909
2910 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
2911 (scsi_mod_SOURCES): New variable.
2912 (scsi_mod_CFLAGS): Likewise
2913 (scsi_mod_LDFLAGS): Likewise.
2914
2915 * disk/scsi.c: New file.
2916
2917 * include/grub/scsi.h: Likewise.
2918
2919 * include/grub/scsicmd.h: Likewise.
2920
2921 * disk/ata.c: Include <grub/scsi.h>.
2922 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
2923 instead.
2924 (grub_ata_iterate): Skip ATAPI devices.
2925 (grub_ata_open): Only handle ATAPI devices.
2926 (struct grub_atapi_read): Removed.
2927 (grub_atapi_readsector): Likewise.
2928 (grub_ata_read): No longer handle ATAPI devices.
2929 (grub_ata_write): Likewise.
2930 (grub_atapi_iterate): New function.
2931 (grub_atapi_read): Likewise.
2932 (grub_atapi_write): Likewise.
2933 (grub_atapi_open): Likewise.
2934 (grub_atapi_close): Likewise.
2935 (grub_atapi_dev): New variable.
2936 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
2937 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
2938
2939 * include/grub/disk.h (enum grub_disk_dev_id): Add
2940 `GRUB_DISK_DEVICE_SCSI_ID'.
2941
c07ae501 29422008-08-26 Robert Millan <rmh@aybabtu.com>
2943
2944 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
2945 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
2946 descriptive.
2947
5ed20adc 29482008-08-23 Bean <bean123ch@gmail.com>
2949
2950 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
2951 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2952 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
2953 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
2954 dm_nv.mod.
2955 (raid5rec_mod_SOURCES): New macro.
2956 (raid5rec_mod_CFLAGS): Likewise.
2957 (raid5rec_mod_LDFLAGS): Likewise.
2958 (raid6rec_mod_SOURCES): Likewise.
2959 (raid6rec_mod_CFLAGS): Likewise.
2960 (raid6rec_mod_LDFLAGS): Likewise.
2961 (mdraid_mod_SOURCES): Likewise.
2962 (mdraid_mod_CFLAGS): Likewise.
2963 (mdraid_mod_LDFLAGS): Likewise.
2964 (dm_nv_mod_SOURCES): Likewise.
2965 (dm_nv_mod_CFLAGS): Likewise.
2966 (dm_nv_mod_LDFLAGS): Likewise.
2967
2968 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
2969 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
2970 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2971
2972 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
2973 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
2974
2975 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2976
2977 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2978
2979 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2980
2981 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2982
2983 * disk/raid5_recover.c: New file.
2984
2985 * disk/raid6_recover.c: Likewise.
2986
2987 * disk/mdraid_linux.c: Likewise.
2988
2989 * disk/dmraid_nvidia.c: Likewise.
2990
2991 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
2992 ULONG_MAX.
2993
2994 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
2995 calculate the size of raid device.
2996 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
2997 different layout of raid5.
2998 (grub_raid_scan_device): Remove code specific to mdraid.
2999 (grub_raid_list): New variable.
3000 (free_array): New function.
3001 (grub_raid_register): Likewise.
3002 (grub_raid_unregister): Likewise.
3003 (grub_raid_rescan): Likewise.
3004 (GRUB_MOD_INIT): Don't iterate device here.
3005 (GRUB_MOD_FINI): Use free_array to release resource.
3006
3007 * include/grub/raid.h: Remove macro and structure specific to mdraid.
3008 (grub_raid5_recover_func_t): New function variable type.
3009 (grub_raid6_recover_func_t): Likewise.
3010 (grub_raid5_recover_func): New variable.
3011 (grub_raid6_recover_func): Likewise.
3012 (grub_raid_register): New function.
3013 (grub_raid_unregister): Likewise.
3014 (grub_raid_rescan): Likewise.
3015 (grub_raid_block_xor): Likewise.
3016
3017 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
3018 (CMD_CRC): New macro.
3019 (part): Removed.
3020 (read_file): Handle device as well as file.
3021 (cmd_crc): New function.
3022 (fstest): Handle multiple disks.
3023 (options): Remove part, raw and long, add root and diskcount.
3024 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 3025 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 3026 add handling for the new options, support multiple disks.
3027
3028 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
3029
29c18915 30302008-08-23 Bean <bean123ch@gmail.com>
3031
3032 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
3033
3034 * genfslist.sh: Ignore kernel.mod.
3035
3036 * genpartmaplist.sh: Likewise.
3037
8415f261 30382008-08-23 Robert Millan <rmh@aybabtu.com>
3039
3040 * util/getroot.c (find_root_device): Skip anything that starts with
3041 a dot, not just directories. This avoids things like /dev/.tmp.md0.
3042
d5a7dc5b 30432008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 3044
d5a7dc5b 3045 * util/update-grub.in (GRUB_GFXMODE): Export variable.
3046 * util/grub.d/00_header.in: Allow the administrator to change default
3047 gfxmode via ${GRUB_GFXMODE}.
3048
380cfbb4 30492008-08-21 Felix Zielcke <fzielcke@z-51.de>
3050
3051 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
3052
c9baafe7 30532008-08-21 Robert Millan <rmh@aybabtu.com>
3054
3055 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
3056 loader.
3057 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
3058 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
3059
e290bef2 30602008-08-20 Carles Pina i Estany <carles@pina.cat>
3061
3062 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
3063 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
3064
f9dbfc96 30652008-08-19 Robert Millan <rmh@aybabtu.com>
3066
3067 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
3068 (struct grub_virtual_screen): Remove `cursor_color'.
3069 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
3070 initialization.
3071 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
3072
dd6bd6ab 30732008-08-18 Robert Millan <rmh@aybabtu.com>
3074
3075 Unify (identical) linux_normal.c files.
3076 * loader/i386/efi/linux_normal.c: Move from here ...
3077 * loader/linux_normal.c: ... to here. Update all users.
3078 * loader/i386/pc/linux_normal.c: Delete. Update all users.
3079 * loader/i386/ieee1275/linux_normal.c: Likewise.
3080
7f42f83e 30812008-08-18 Robert Millan <rmh@aybabtu.com>
3082
3083 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
3084 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
3085 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
3086 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
3087 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
3088 New macros.
3089 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
3090 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
3091 (GRUB_LINUX_CL_END_OFFSET): ... to here.
3092 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
3093 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
3094 (GRUB_EFI_CL_END_OFFSET): Rename to ...
3095 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
3096 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
3097 Initialize `params->video_cursor_x' and `params->video_cursor_y'
3098 portably using grub_getxy().
3099 Replace `-EFI' with `-bzImage' in boot message.
3100
38487ddb 31012008-08-17 Robert Millan <rmh@aybabtu.com>
3102
3103 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
3104
deceb3ec 31052008-08-17 Robert Millan <rmh@aybabtu.com>
3106
3107 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
3108
3109 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
3110 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
3111 (grub_machine_mmap_iterate): New function declaration.
3112 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
3113 structure.
3114 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
3115 macros.
3116
3117 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
3118 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
3119 Move e820 parsing from here ...
3120 * kern/i386/pc/mmap.c: New file.
3121 (grub_machine_mmap_iterate): ... to here.
3122
3123 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
3124 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
3125 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
3126 (grub_available_iterate): Redeclare to return `void', and redeclare
3127 its hook to use grub_uint64_t as addr and size parameters, and rename
3128 to ...
3129 (grub_machine_mmap_iterate): ... this. Update all users.
3130
3131 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
3132 to make it more readable. Rename to ...
3133 (grub_machine_mmap_iterate): ... this.
3134
3135 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
3136 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
3137 (grub_multiboot): Allocate an extra region after the payload, and fill
3138 it with a Multiboot memory map. Adjust a.out loader to calculate size
3139 with the extra space.
3140 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
3141 with the extra space.
3142
f8aa0f43 31432008-08-17 Carles Pina i Estany <carles@pina.cat>
3144
9807deb9 3145 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 3146
605f5bb6 31472008-08-17 Felix Zielcke <fzielcke@z-51.de>
3148
3149 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
3150 mdate-sh to the list `find' searches for.
3151 * DISTLIST: Regenerated.
3152
210db6c6 31532008-08-16 Felix Zielcke <fzielcke@z-51.de>
3154
3155 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
3156 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 3157 genmoddep.awk, gensymlist.sh.in.
3158 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 3159 * DISTLIST: Regenerated.
48cdbfd4 3160 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 3161
1082b929 31622008-08-16 Robert Millan <rmh@aybabtu.com>
3163
3164 * disk/raid.c (grub_raid_init): Handle/report errors set by
3165 grub_device_iterate().
3166 * disk/lvm.c (grub_lvm_init): Likewise.
3167
42ce5170 31682008-08-15 Bean <bean123ch@gmail.com>
3169
3170 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3171 and datehook.mod.
3172 (datetime_mod_SOURCES): New macro.
3173 (datetime_mod_CFLAGS): Likewise.
3174 (datetime_mod_LDFLAGS): Likewise.
3175 (date_mod_SOURCES): Likewise.
3176 (date_mod_CFLAGS): Likewise.
3177 (date_mod_LDFLAGS): Likewise.
3178 (datehook_mod_SOURCES): Likewise.
3179 (datehook_mod_CFLAGS): Likewise.
3180 (datehook_mod_LDFLAGS): Likewise.
3181
3182 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3183 and datehook.mod.
3184 (datetime_mod_SOURCES): New macro.
3185 (datetime_mod_CFLAGS): Likewise.
3186 (datetime_mod_LDFLAGS): Likewise.
3187 (date_mod_SOURCES): Likewise.
3188 (date_mod_CFLAGS): Likewise.
3189 (date_mod_LDFLAGS): Likewise.
3190 (datehook_mod_SOURCES): Likewise.
3191 (datehook_mod_CFLAGS): Likewise.
3192 (datehook_mod_LDFLAGS): Likewise.
3193
3194 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3195 and datehook.mod.
3196 (datetime_mod_SOURCES): New macro.
3197 (datetime_mod_CFLAGS): Likewise.
3198 (datetime_mod_LDFLAGS): Likewise.
3199 (date_mod_SOURCES): Likewise.
3200 (date_mod_CFLAGS): Likewise.
3201 (date_mod_LDFLAGS): Likewise.
3202 (datehook_mod_SOURCES): Likewise.
3203 (datehook_mod_CFLAGS): Likewise.
3204 (datehook_mod_LDFLAGS): Likewise.
3205
3206 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3207 and datehook.mod.
3208 (datetime_mod_SOURCES): New macro.
3209 (datetime_mod_CFLAGS): Likewise.
3210 (datetime_mod_LDFLAGS): Likewise.
3211 (date_mod_SOURCES): Likewise.
3212 (date_mod_CFLAGS): Likewise.
3213 (date_mod_LDFLAGS): Likewise.
3214 (datehook_mod_SOURCES): Likewise.
3215 (datehook_mod_CFLAGS): Likewise.
3216 (datehook_mod_LDFLAGS): Likewise.
3217
3218 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3219 and datehook.mod.
3220 (datetime_mod_SOURCES): New macro.
3221 (datetime_mod_CFLAGS): Likewise.
3222 (datetime_mod_LDFLAGS): Likewise.
3223 (date_mod_SOURCES): Likewise.
3224 (date_mod_CFLAGS): Likewise.
3225 (date_mod_LDFLAGS): Likewise.
3226 (datehook_mod_SOURCES): Likewise.
3227 (datehook_mod_CFLAGS): Likewise.
3228 (datehook_mod_LDFLAGS): Likewise.
3229
3230 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
3231
3232 * commands/date.c: New file.
3233
3234 * hook/datehook.c: Likewise.
3235
3236 * include/grub/lib/datetime.h: Likewise.
3237
3238 * include/grub/i386/cmos.h: Likewise.
3239
3240 * lib/datetime.c: Likewise.
3241
3242 * lib/i386/datetime.c: Likewise.
3243
3244 * lib/efi/datetime.c: Likewise.
3245
0e9242da 32462008-08-14 Robert Millan <rmh@aybabtu.com>
3247
3248 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
3249 (grub_mkelfimage_SOURCES): New variable.
3250 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
3251
3252 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
3253 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
3254 * conf/powerpc-ieee1275.rmk: Likewise.
3255 * conf/i386-ieee1275.rmk: Likewise.
3256
3257 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
3258 * kern/i386/coreboot/init.c: Likewise.
3259
3260 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
3261 with `<grub/cpu/kernel.h>'.
3262 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
3263 to ...
3264 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
3265 * kern/i386/coreboot/startup.S: Likewise.
3266
3267 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
3268 (GRUB_MOD_GAP): Remove.
3269 * include/grub/powerpc/kernel.h: New file.
3270 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
3271 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3272 * include/grub/i386/kernel.h: New file.
3273 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
3274 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
3275 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3276
3277 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
3278 `grub-mkelfimage'.
3279 Use --directory when invoking grub_mkimage.
3280
3281 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
3282 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
3283 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
3284 and GRUB_KERNEL_CPU_PREFIX.
3285
b86408f8 32862008-08-14 Felix Zielcke <fzielcke@z-51.de>
3287
d5e619ca 3288 * include/grub/err.h (grub_err_printf): New function prototype.
3289 * util/misc.c (grub_err_printf): New function.
3290 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
3291 grub_printf.
3292 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 3293
7161f0e0 32942008-08-13 Robert Millan <rmh@aybabtu.com>
3295
3296 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
3297
a1967522 32982008-08-13 Robert Millan <rmh@aybabtu.com>
3299
3300 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
3301 boot entry.
3302
371458b5 33032008-08-12 Robert Millan <rmh@aybabtu.com>
3304
3305 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
3306 of the relocation code from here ...
3307 (grub_multiboot): ... to here.
3308 (forward_relocator, backward_relocator): Move from here ...
3309 * kern/i386/loader.S (grub_multiboot_forward_relocator)
3310 (grub_multiboot_backward_relocator): ... to here.
3311 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
3312 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
3313 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
3314 (grub_multiboot_forward_relocator_end)
3315 (grub_multiboot_backward_relocator)
3316 (grub_multiboot_backward_relocator_end): New variables.
3317
05f9452b 33182008-08-12 Bean <bean123ch@gmail.com>
3319
3320 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
3321
20024ab0 33222008-08-11 Robert Millan <rmh@aybabtu.com>
3323
3324 * kern/i386/linuxbios/startup.S: Move from here ...
3325 * kern/i386/coreboot/startup.S: ... to here.
3326
3327 * kern/i386/linuxbios/init.c: Move from here ...
3328 * kern/i386/coreboot/init.c: ... to here.
3329
3330 * kern/i386/linuxbios/table.c: Move from here ...
3331 * kern/i386/coreboot/mmap.c: ... to here.
3332
3333 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
3334
e352e9cd 33352008-08-11 Robert Millan <rmh@aybabtu.com>
3336
3337 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
3338 errors. Leave it to the upper layer to handle them.
3339
2d05bc6a 33402008-08-09 Christian Franke <franke@computer.org>
3341
3342 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
3343 * conf/common.rmk: Install `grub-pe2elf' only if requested.
3344 Install `grub.d/10_windows' only on Cygwin.
3345 * configure.ac: Add subst of `target_os'.
3346 Check `target_os' also before setting TARGET_OBJ2ELF.
3347 Add `--enable-grub-pe2elf'.
3348
042bd419 33492008-08-08 Robert Millan <rmh@aybabtu.com>
3350
3351 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3352 (grub_last_time): Change type to grub_uint64_t.
3353 (grub_disk_open): Migrate code from to using grub_get_time_ms().
3354 (grub_disk_close): Likewise.
3355
3356 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3357 (run_menu): Migrate code from to using grub_get_time_ms().
3358
3359 * util/misc.c (grub_get_time_ms): New function.
3360
7f280db5 33612008-08-08 Marco Gerards <marco@gnu.org>
3362
3363 * disk/ata.c (grub_ata_regget): Change return type to
3364 `grub_uint8_t'.
3365 (grub_ata_regget2): Likewise.
3366 (grub_ata_wait_status): New function.
3367 (grub_ata_wait_busy): Removed function, updated all users to use
3368 `grub_ata_wait_status'.
3369 (grub_ata_wait_drq): Likewise.
3370 (grub_ata_cmd): New function.
3371 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
3372 error handling.
3373 (grub_ata_pio_write): Add error handling.
3374 (grub_atapi_identify): Likewise.
3375 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
3376 handling.
3377 (grub_ata_identify): Use `grub_ata_cmd' and improve error
3378 handling. Actually use the detected registers. Reorder the
3379 detection logic such that it is easier to read.
3380 (grub_ata_pciinit): Do not assign the same ID to each controller.
3381 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
3382 handling.
3383 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
3384
3385 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
3386
1fbc5e66 33872008-08-08 Marco Gerards <marco@gnu.org>
3388
3389 * NEWS: Update.
3390
819ce6c0 33912008-08-07 Bean <bean123ch@gmail.com>
3392
3393 * include/grub/x86_64/pci.h: New file.
3394
5c41d44d 33952008-08-07 Christian Franke <franke@computer.org>
3396
3397 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
3398 (TIMER2_GATE): Likewise.
3399 (grub_pit_wait): Add enable/disable of the timer2 gate
3400 bit of port 0x61. This fixes a possible infinite loop.
3401
5ebc275d 34022008-08-07 Bean <bean123ch@gmail.com>
3403
3404 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
3405 kern/i386/tsc.c and kern/i386/pit.c.
3406
3407 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
3408 x86_64 platform.
3409
3410 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
3411 <grub/i386/tsc.h>.
3412
3413 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
3414
e383b3d0 34152008-08-07 Bean <bean123ch@gmail.com>
3416
3417 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
3418
3419 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
3420
3421 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
3422 multiple inclusion. Add #include <grub/types.h>.
3423
1cbb58ac 34242008-08-06 Christian Franke <franke@computer.org>
3425
3426 * conf/common.rmk: Build and install `10_windows'.
3427 * util/grub.d/10_windows.in: New script.
3428
337f5a1e 34292008-08-06 Pavel Roskin <proski@gnu.org>
3430
3431 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
3432
057bc4ac 34332008-08-06 Robert Millan <rmh@aybabtu.com>
3434
3435 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
3436 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
3437
2b99f123 34382008-08-06 Bean <bean123ch@gmail.com>
3439
3440 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
3441 (grub_pxefs_fs_int): Remove dummy definition.
3442 (grub_pxefs_open): Use data->block_size to store the current block
3443 size setting.
3444 (grub_pxefs_read): Use block size stored in data->block_size. As the
3445 value of grub_pxe_blksize can be changed after the file is opened.
3446
9f0234cb 34472008-08-06 Bean <bean123ch@gmail.com>
3448
3449 * fs/i386/pc/pxe.c (curr_file): new variable.
3450 (grub_pxefs_open): Simply the handling of pxe file system. Don't
3451 require the dummy internal file system anymore.
3452 (grub_pxefs_read): Removed.
3453 (grub_pxefs_close): Likewise.
3454 (grub_pxefs_fs_int): Likewise.
3455 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
3456 connection when we switch file.
3457 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
3458
a55d42e0 34592008-08-06 Robert Millan <rmh@aybabtu.com>
3460
3461 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
3462 `halt.mod'.
3463 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
3464 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
3465
3466 * kern/i386/halt.c: New file.
3467 * kern/i386/reboot.c: Likewise.
3468 * include/grub/i386/reboot.h: Likewise.
3469 * include/grub/i386/halt.h: Likewise.
3470
3471 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
3472 Include `<grub/cpu/halt.h>'.
3473 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
3474 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
3475
3476 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
3477 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
3478 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
3479 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
3480 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
3481 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
3482 from here ...
3483 * include/grub/i386/at_keyboard.h: ... to here.
3484
24371d26 34852008-08-05 Robert Millan <rmh@aybabtu.com>
3486
3487 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
3488 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
3489 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
3490 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3491 `kern/generic/millisleep.c'.
3492
3493 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
3494 instead of grub_get_rtc().
3495 (grub_tsc_init): Initialize `tsc_boot_time'.
3496
3497 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
3498 (grub_machine_init): Use grub_tsc_init() rather than
3499 installing an RTC-based handler via grub_install_get_time_ms().
3500
3501 * kern/i386/pit.c: New file.
3502 * include/grub/i386/pit.h: Likewise.
3503
9e7007b3 35042008-08-05 Bean <bean123ch@gmail.com>
3505
3506 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
3507
3508 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
3509 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
3510 (pxe_mod_SOURCES): New macro.
3511 (pxe_mod_CFLAGS): Likewise.
3512 (pxe_mod_LDFLAGS): Likewise.
3513 (pxecmd_mod_SOURCES): Likewise.
3514 (pxecmd_mod_CFLAGS): Likewise.
3515 (pxecmd_mod_LDFLAGS): Likewise.
3516
3517 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
3518 (grub_pxe_call): Likewise.
3519
3520 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
3521
3522 * commands/i386/pc/pxecmd.c: New file.
3523
9f0234cb 3524 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 3525
3526 * include/grub/i386/pc/pxe.h: Likewise.
3527
6977d49f 35282008-08-05 Bean <bean123ch@gmail.com>
3529
3530 * util/console.c (grub_console_cur_color): New variable.
3531 (grub_console_standard_color): Likewise.
3532 (grub_console_normal_color): Likewise.
3533 (grub_console_highlight_color): Likewise.
3534 (color_map): Likewise.
3535 (use_color): Likewise.
3536 (NUM_COLORS): New macro.
3537 (grub_ncurses_setcolorstate): Handle color properly.
3538 (grub_ncurses_setcolor): Don't change color here, just remember the
3539 settings, color will be set in grub_ncurses_setcolorstate.
3540 (grub_ncurses_getcolor): New function.
3541 (grub_ncurses_init): Initialize color pairs.
3542 (grub_ncurses_term): New member grub_ncurses_getcolor.
3543
9c2ff3ee 35442008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 3545
9c2ff3ee 3546 High resolution timer support. Implemented for x86 CPUs using TSC.
3547 Extracted generic grub_millisleep() so it's linked in only as needed.
3548 This requires a Pentium compatible CPU; if the RDTSC instruction is
3549 not supported, then it falls back on the generic grub_get_time_ms()
3550 implementation that uses the machine's RTC.
3551
3552 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
3553 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3554 `kern/generic/millisleep.c'.
3555
3556 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
3557 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
3558
3559 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
3560 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
3561
3562 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3563
3564 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3565 `kern/generic/millisleep.c'.
3566
3567 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3568
3569 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
3570
3571 * kern/generic/rtc_get_time_ms.c: New file.
3572
3573 * kern/generic/millisleep.c: New file.
337f5a1e 3574
9c2ff3ee 3575 * kern/misc.c: Don't include
3576 <kern/time.h> anymore.
3577 (grub_millisleep_generic): Removed.
3578
3579 * commands/sleep.c (grub_interruptible_millisleep): Uses
3580 grub_get_time_ms() instead of grub_get_rtc().
3581
3582 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
3583 function.
3584 (grub_cpu_is_cpuid_supported): New inline function.
3585 (grub_cpu_is_tsc_supported): New inline function.
3586 (grub_tsc_init): New function prototype.
3587 (grub_tsc_get_time_ms): New function prototype.
3588
3589 * kern/i386/tsc.c (grub_get_time_ms): New file.
3590
3591 * include/grub/time.h: Include <grub/types.h.
3592 (grub_millisleep_generic): Removed.
3593 (grub_get_time_ms): New prototype.
3594 (grub_install_get_time_ms): New prototype.
3595 (grub_rtc_get_time_ms): New prototype.
3596
3597 * kern/time.c (grub_get_time_ms): New function.
3598 (grub_install_get_time_ms): New function.
3599
3600 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
3601 <grub/time.h> anymore.
3602 (grub_millisleep): Removed.
3603 (grub_machine_init): Call grub_tsc_init.
3604
3605 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
3606 get_time_ms() implementation.
3607
3608 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
3609 (ieee1275_get_time_ms): New function.
3610 (grub_machine_init): Install get_time_ms() implementation.
3611
3612 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
3613 (grub_machine_init): Call grub_tsc_init().
3614 (grub_millisleep): Removed.
bf06a93f 3615
9c2ff3ee 3616 * kern/ieee1275/init.c (grub_millisleep): Removed.
3617 (grub_machine_init): Install ieee1275_get_time_ms()
3618 implementation.
3619 (ieee1275_get_time_ms): New function.
3620 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
3621 real work.
3622
9ec92aaf 36232008-08-05 Marco Gerards <marco@gnu.org>
3624
3625 * disk/ata.c: Include <grub/pci.h>.
3626 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
3627 (grub_ata_initialize): Rewritten.
3628 (grub_ata_device_initialize): New function.
3629
8d23f507 36302008-08-04 Pavel Roskin <proski@gnu.org>
3631
3632 * kern/main.c: Include grub/mm.h.
3633
5e15ee3d 36342008-08-04 Robert Millan <rmh@aybabtu.com>
3635
3636 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
3637 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
3638 corruption problem).
3639
a9053f8f 36402008-08-04 Robert Millan <rmh@aybabtu.com>
3641
3642 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
3643 warnings introduced in my last commit.
3644
dd19c7d7 36452008-08-03 Robert Millan <rmh@aybabtu.com>
3646
3647 Make PCI available on all i386 architectures.
3648
3649 * include/grub/i386/pc/pci.h: Move from here ...
3650 * include/grub/i386/pci.h: ... to here.
3651
3652 * include/grub/i386/pc/pci.h: Remove.
3653 * include/grub/i386/efi/pci.h: Remove.
3654 * include/grub/x86_64/efi/pci.h: Remove.
3655
3656 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
3657 `<grub/cpu/pci.h>'.
3658
3659 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
3660 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
3661 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
3662
3663 * conf/i386-ieee1275.rmk: Likewise.
3664
e14a6184 36652008-08-03 Robert Millan <rmh@aybabtu.com>
3666
3667 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
3668 (grub_console_setcursor): Make it possible to set cursor off.
3669
52768e37 36702008-08-03 Robert Millan <rmh@aybabtu.com>
3671
3672 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
3673 of modules instead of assuming which platform provides what.
3674 * util/update-grub.in: Likewise.
3675
2d52f57f 36762008-08-03 Robert Millan <rmh@aybabtu.com>
3677
3678 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
3679 instead of `grub_install_dos_part' to determine whether a drive needs
3680 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 3681 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 3682
2a5cd121 36832008-08-02 Robert Millan <rmh@aybabtu.com>
3684
3685 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
3686
93808428 36872008-08-02 Robert Millan <rmh@aybabtu.com>
3688
3689 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
3690 of informational grub_dprintf() calls.
3691
3bd0a12a 36922008-08-02 Robert Millan <rmh@aybabtu.com>
3693
3694 * disk/memdisk.c (memdisk_size): Don't initialize.
3695 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
3696
3697 * include/grub/i386/pc/kernel.h
3698 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
3699 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
3700 (grub_memdisk_image_size, grub_arch_memdisk_addr)
3701 (grub_arch_memdisk_size): Remove.
3702
3703 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
3704 field (was only used to transfer a constant). Add `type' field to
3705 support multiple module types.
3706 (grub_module_iterate): New function.
3707
3708 * kern/device.c (grub_device_open): Do not hide error messages
3709 when grub_disk_open() fails. Use grub_print_error() instead.
3710
3711 * kern/i386/pc/init.c (grub_arch_modules_addr)
3712 (grub_arch_memdisk_size): Remove functions.
3713 (grub_arch_modules_addr): Return the module address in high memory
3714 (now that it isn't copied anymore).
3715
3716 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
3717 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
3718 decompression routine (grub_total_module_size already includes that
3719 now). Don't copy modules back to low memory.
3720
3721 * kern/main.c: Include `<grub/mm.h>'.
3722 (grub_load_modules): Split out (and use) ...
3723 (grub_module_iterate): ... this function, which iterates through
3724 module objects and runs a hook.
3725 Comment out grub_mm_init_region() call, as it would cause non-ELF
3726 modules to be overwritten.
3727
3728 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
3729 the memdisk image in its own region, make it part of the module list.
3730 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
3731 (main): Parse --memdisk|-m option, and pass user-provided path as
3732 parameter to generate_image().
3733 (add_segments): Pass `memdisk_path' down to load_modules().
3734 (load_modules): Embed memdisk image in module section when requested.
3735 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
3736 `header.type' instead of `header.offset'.
3737
3738 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
3739 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
3740 (memdisk_mod_LDFLAGS): New variables.
3741 * conf/i386-coreboot.rmk: Likewise.
3742 * conf/i386-ieee1275.rmk: Likewise.
3743
a927cc73 37442008-08-02 Robert Millan <rmh@aybabtu.com>
3745
3746 * loader/i386/pc/multiboot.c (playground, forward_relocator)
3747 (backward_relocator): New variables. Used to allocate and relocate
3748 the payload, respectively.
3749 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 3750 address, install the appropriate relocator code in each bound of
a927cc73 3751 the payload, and set the entry point such that
3752 grub_multiboot_real_boot() will jump to one of them.
3753
3754 * kern/i386/loader.S (grub_multiboot_payload_size)
3755 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3756 (grub_multiboot_payload_entry_offset): New variables.
3757 (grub_multiboot_real_boot): Set cpu context to what the relocator
3758 expects, and jump to the relocator instead of the payload.
3759
3760 * include/grub/i386/loader.h (grub_multiboot_payload_size)
3761 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3762 (grub_multiboot_payload_entry_offset): Export.
3763
b15d8a0c 37642008-08-01 Bean <bean123ch@gmail.com>
3765
3766 * normal/menu_entry.c (editor_getline): Don't return the original
3767 string as result, as it will be released by lexer once it has done
3768 using it.
3769
cdfb3d22 37702008-08-01 Robert Millan <rmh@aybabtu.com>
3771
3772 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
3773 within menuentries, not before them.
3774 util/grub.d/10_hurd.in: Likewise.
3775
9175e93d 37762008-08-01 Bean <bean123ch@gmail.com>
3777
3778 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
3779 (bufio_mod_SOURCES): New macro.
3780 (bufio_mod_CFLAGS): Likewise.
3781 (bufio_mod_LDFLAGS): Likewise.
3782
3783 * include/grub/bufio.h: New file.
3784
3785 * io/bufio.c: Likewise.
3786
3787 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
3788 (grub_video_reader_png): Use grub_buffile_open to open file.
3789
3790 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
3791 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
3792
3793 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
3794 (grub_video_reader_tga): Use grub_buffile_open to open file.
3795
3796 * font/manager.c: Include <grub/bufio.h>.
3797 (add_font): Use grub_buffile_open to open file.
3798
3d8383e7 37992008-07-31 Robert Millan <rmh@aybabtu.com>
3800
3801 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
3802 ELF segments, use a macro for arbitrarily accessing any of them instead
3803 of preparing a pointer that allows access to one at a time.
3804 (grub_multiboot_load_elf64): Likewise.
3805
16e641b6 38062008-07-31 Bean <bean123ch@gmail.com>
3807
3808 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
3809 GRUB_KERNEL_MACHINE_DATA_END.
3810
59198b72 38112008-07-30 Robert Millan <rmh@aybabtu.com>
3812
3813 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
3814 Increase from 0x50 to 0x60.
3815 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
3816 use UUIDs to identify the root drive for them. If that's not
3817 possible, abort.
3818 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
3819 check, for cross-disk installs.
3820
ae88bca3 38212008-07-30 Robert Millan <rmh@aybabtu.com>
3822
3823 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
3824 is non-empty, use it to set the `prefix' environment variable instead
3825 of the usual approach.
3826 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
3827 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
3828 environment variable instead of dummy make_install_device().
3829
3830 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
3831 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 3832 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 3833
3834 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
3835 New variable reference.
3836 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
3837 New macro. Defines offset of `grub_prefix' within startup.S (relative
3838 to `start').
3839 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
3840 section within startup.S (relative to `start').
3841 * include/grub/i386/coreboot/kernel.h: Likewise.
3842
3843 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
3844 Overwrite grub_prefix with its contents, at the beginning of the
3845 first segment.
3846 (main): Understand -p|--prefix.
3847
14f41dd1 38482008-07-30 Robert Millan <rmh@aybabtu.com>
3849
3850 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
3851
4ca049a3 38522008-07-30 Robert Millan <rmh@aybabtu.com>
3853
3854 * term/i386/pc/vga_text.c (grub_console_cls): Use
3855 grub_console_gotoxy() to go back to beginning of the screen.
3856 Found by Patrick Georgi <patrick.georgi@coresystems.de>
3857
2921d337 38582008-07-29 Christian Franke <franke@computer.org>
3859
3860 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3861 Add conversion of emulated mount points on Cygwin.
3862
b609876d 38632008-07-29 Christian Franke <franke@computer.org>
3864
3865 * util/update-grub.in: Add a check for admin
3866 group on Cygwin.
3867 Remove old `grub.cfg.new' before creation.
3868 Add `-f' to `mv' to handle the different filesystem
3869 semantics of Windows.
3870
e93e4679 38712008-07-29 Bean <bean123ch@gmail.com>
3872
3873 * normal/main.c (get_line): Fix buffer overflow bug.
3874
41694fd0 38752008-07-28 Robert Millan <rmh@aybabtu.com>
3876
3877 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
3878 (struct grub_apple_header): New struct. Describes the layout of
3879 the partmap header.
3880 (apple_partition_map_iterate): Check the header magic as well as the
3881 partition magic (which was already being checked).
3882
cfd0b4e6 38832008-07-28 Pavel Roskin <proski@gnu.org>
3884
3885 * genmk.rb: Add a warning to the beginning of the output that
3886 it's a generated file and should not be edited.
3887
93cce016 38882008-07-28 Robert Millan <rmh@aybabtu.com>
3889
3890 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
3891 with the same number are found, just use issue a warning with
3892 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 3893
cd1df915 38942008-07-27 Robert Millan <rmh@aybabtu.com>
3895
3896 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
3897 information.
3898
b70a8427 38992008-07-27 Bean <bean123ch@gmail.com>
3900
3901 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
3902 (grub_fat_find_dir): Ignore case when comparing filename.
3903
8f5e379f 39042008-07-27 Bean <bean123ch@gmail.com>
3905
3906 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
3907 smallino, as it's more descriptive, and i8count can be confused with
3908 the other field count.
3909 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
3910 inode type.
3911
a85cd5a0 39122008-07-27 Bean <bean123ch@gmail.com>
3913
3914 * commands/crc.c: New file.
3915
3916 * lib/crc.c: Likewise.
3917
3918 * include/grub/lib/crc.h: Likewise.
3919
3920 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
3921
3922 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
3923 (hexdump): Move this function to ...
3924
3925 * lib/hexdump.c: ... here.
3926
3927 * include/grub/hexdump.h: Renamed to ...
3928
3929 * include/grub/lib/hexdump.h: ... this.
3930
3931 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
3932
3933 * util/grub-editenv.c: Likewise.
3934
3935 * include/envblk.h: Renamed to ...
3936
3937 * include/lib/envblk.h: ... this.
3938
3939 * util/envblk.c: Renamed to ...
3940
3941 * lib/envblk.c: ... this.
3942
3943 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
3944 lib/hexdump.c.
3945 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
3946 (pkglib_MODULES): Add crc.mod.
3947 (hexdump_mod_SOURCES): Add lib/hexdump.c.
3948 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
3949 (crc_mod_SOURCES): New macro.
3950 (crc_mod_CFLAGS): Likewise.
3951 (crc_mod_LDFLAGS): Likewise.
3952
3953 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
3954
3955 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3956
3957 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3958
3959 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3960
3961 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3962
c298def0 39632008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 3964
3965 * commands/help.c: Include <grub/term.h>.
3966 (TERM_WIDTH): Removed. Updated all users.
3967
cc349fb3 39682008-07-27 Pavel Roskin <proski@gnu.org>
3969
3970 * util/getroot.c (find_root_device): Rephrase a comment to avoid
3971 spurious warnings about a comment within a comment.
3972
9051607e 39732008-07-25 Robert Millan <rmh@aybabtu.com>
3974
3975 * util/getroot.c (find_root_device): Skip devices that match
3976 /dev/dm-[0-9]. This lets the real device be found for any type of
3977 abstraction (LVM, EVMS, RAID..).
3978 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
3979 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
3980 device is found first, find_root_device() will now skip it.
3981
01453bfc 39822008-07-24 Pavel Roskin <proski@gnu.org>
3983
3984 * include/grub/types.h: Use __builtin_bswap32() and
3985 __builtin_bswap64() with gcc 4.3 and newer.
3986
6af9849f 39872008-07-24 Christian Franke <franke@computer.org>
3988
3a0fa256 3989 * util/i386/pc/grub-install.in: If `--debug' is specified,
3990 pass `--verbose' to grub-setup.
3991 Abort script if make_system_path_relative_to_its_root() fails.
3992
7810e747 39932008-07-24 Bean <bean123ch@gmail.com>
3994
3995 * configure.ac: Fixed a bug caused by the previous cygwin patch,
3996 variable `target_platform' should be `platform'.
3997
42290e17 39982008-07-24 Bean <bean123ch@gmail.com>
3999
51cc5193 4000 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 4001 (grub_png_init_fixed_block): New function.
4002 (grub_png_decode_image_data): Handle fixed huffman code compression.
4003
2a8a80e4 40042008-07-24 Bean <bean123ch@gmail.com>
4005
4006 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
4007 (grub_pe2elf_SOURCES): New macro.
4008 (CLEANFILES): Add grub-pe2elf.
4009
4010 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
4011 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
4012 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
4013 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
4014 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
4015 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
4016 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
4017 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
4018 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
4019 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
4020 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
4021 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
4022 (GRUB_PE32_DT_FUNCTION): Likewise.
4023 (GRUB_PE32_REL_I386_DIR32): Likewise.
4024 (GRUB_PE32_REL_I386_REL32): Likewise.
4025 (grub_pe32_symbol): New structure.
4026 (grub_pe32_reloc): Likewise.
4027
4028 * util/grub-pe2elf.c: New file.
4029
4030 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
4031 start symbol in non pc platform.
4032
4033 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
4034
4035 The following patches are from Christian Franke.
4036
4037 * include/grub/dl.h: Remove .previous, gas supports this only
4038 for ELF format.
4039
4040 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
4041 Remove .type, gas supports this only for ELF format.
4042
4043 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
4044 nullbytes in symbol table. This fixes an infinite loop if table is
4045 zero filled.
4046
4047 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
4048 TARGET_IMG_LDFLAGS and EXEEXT.
4049
4050 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
4051 TARGET_IMG_LDFLAGS_AC.
4052 (grub_CHECK_STACK_ARG_PROBE): New function.
4053
4054 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
4055
4056 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
4057
4058 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
4059 to set TARGET_IMG_LD* accordingly.
4060 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
4061 Add call to grub_CHECK_STACK_ARG_PROBE.
4062 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
4063
4064 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
4065
4066 * genmk.rb: Add EXEEXT to CLEANFILES.
4067
12ccdb75 40682008-07-23 Robert Millan <rmh@aybabtu.com>
4069
4070 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
4071 define the codes for arrows and lines used for the menu).
4072 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
4073 as well.
4074
4075 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
4076 fonts, because the latter are too slow.
4077
18eeaf04 40782008-07-21 Bean <bean123ch@gmail.com>
4079
4080 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
4081 a20. Run keyboard test last, as it will cause macbook to halt.
4082
b095e2ad 40832008-07-18 Pavel Roskin <proski@gnu.org>
4084
4085 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
4086 load foreign architecture modules correctly anyway. Keep
4087 support for loading host architecture modules, whether we
4088 compile them or not.
4089
737feb35 40902008-07-17 Pavel Roskin <proski@gnu.org>
4091
3f4ce737 4092 * configure.ac: Use -m32 or -m64 regardless of whether we had to
4093 change target_cpu. The compiler default can mismatch target_cpu
4094 in any case.
4095
4ad2d049 4096 * disk/efi/efidisk.c: Fix format warnings on x86_64.
4097 * kern/efi/efi.c: Likewise.
4098
f6130a12 4099 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
4100 target compiler is functional.
4101 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
4102 are set up.
4103
58393a2d 4104 * configure.ac: Default to efi platform for x86_64-apple. Allow
4105 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
4106 adjustments from the rest, only do them if target is not
4107 explicitly given. Merge other adjustments with the final sanity
4108 check. Remove an extraneous check for supported CPU. Be
4109 specific which CPU and which platform is not supported.
4110
737feb35 4111 * configure.ac: Default to pc platform for x86_64.
4112
546f966a 41132008-07-17 Robert Millan <rmh@aybabtu.com>
4114
4115 Partial LinuxBIOS -> Coreboot rename.
4116
4117 * conf/i386-linuxbios.rmk: Renamed to ...
4118 * conf/i386-coreboot.rmk: ... this.
4119 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
4120 * configure.ac: Accept "coreboot" as input platform (but maintain
4121 compatibility with "linuxbios").
4122 * include/grub/i386/linuxbios: Renamed to ...
4123 * include/grub/i386/coreboot: ... this.
4124
20011694 41252008-07-17 Bean <bean123ch@gmail.com>
4126
4127 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 4128 (appleldr_mod_SOURCE): New variable.
20011694 4129 (appleldr_mod_CFLAGS): Likewise.
4130 (appleldr_mod_LDFLAGS): Likewise.
4131 (pci_mod_SOURCES): Likewise.
4132 (pci_mod_CFLAGS): Likewise.
4133 (pci_mod_LDFLAGS): Likewise.
4134 (lspci_mod_SOURCES): Likewise.
4135 (lspci_mod_CFLAGS): Likewise.
4136 (lspci_mod_LDFLAGS): Likewise.
4137
4138 * conf/x86_64-efi.rmk: New file.
4139
4140 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
4141 macro.
4142 (grub_efidisk_write): Likewise.
4143
4144 * include/efi/api.h (efi_call_0): New macro.
4145 (efi_call_1): Likewise.
4146 (efi_call_2): Likewise.
4147 (efi_call_3): Likewise.
4148 (efi_call_4): Likewise.
4149 (efi_call_5): Likewise.
4150 (efi_call_6): Likewise.
4151
4152 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
4153 grub_rescue_cmd_chainloader.
4154
4155 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
4156 (grub_pe32_optional_header): Change some fields based on i386 or
4157 x86_64 platform.
4158 (GRUB_PE32_PE32_MAGIC): Likewise.
4159
4160 * include/grub/efi/uga_draw.h: New file.
4161
4162 * include/grub/elf.h (STN_ABS): New constant.
4163 (R_X86_64_NONE): Relocation constant for x86_64.
4164 (R_X86_64_64): Likewise.
4165 (R_X86_64_PC32): Likewise.
4166 (R_X86_64_GOT32): Likewise.
4167 (R_X86_64_PLT32): Likewise.
4168 (R_X86_64_COPY): Likewise.
4169 (R_X86_64_GLOB_DAT): Likewise.
4170 (R_X86_64_JUMP_SLOT): Likewise.
4171 (R_X86_64_RELATIVE): Likewise.
4172 (R_X86_64_GOTPCREL): Likewise.
4173 (R_X86_64_32): Likewise.
4174 (R_X86_64_32S): Likewise.
4175 (R_X86_64_16): Likewise.
4176 (R_X86_64_PC16): Likewise.
4177 (R_X86_64_8): Likewise.
4178 (R_X86_64_PC8): Likewise.
4179
4180 * include/grub/i386/efi/pci.h: New file.
4181
4182 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
4183 Change it value based on platform.
4184 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
4185 (GRUB_E820_RAM): Likewise.
4186 (GRUB_E820_RESERVED): Likewise.
4187 (GRUB_E820_ACPI): Likewise.
4188 (GRUB_E820_NVS): Likewise.
4189 (GRUB_E820_EXEC_CODE): Likewise.
4190 (GRUB_E820_MAX_ENTRY): Likewise.
4191 (grub_e820_mmap): New structure.
4192 (linux_kernel_header): Change the efi field according to different
4193 kernel version, also field from linux_kernel_header.
4194
4195 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
4196
4197 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
4198 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
4199 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
4200 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
4201 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
4202 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
4203 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
4204 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
4205 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
4206 (GRUB_PCI_ADDR_IO_MASK): Likewise.
4207
4208 * include/grub/x86_64/efi/kernel.h: New file.
4209
4210 * include/grub/x86_64/efi/loader.h: Likewise.
4211
4212 * include/grub/x86_64/efi/machine.h: Likewise.
4213
4214 * include/grub/x86_64/efi/pci.h: Likewise.
4215
4216 * include/grub/x86_64/efi/time.h: Likewise.
4217
4218 * include/grub/x86_64/linux.h: Likewise.
4219
4220 * include/grub/x86_64/setjmp.h: Likewise.
4221
4222 * include/grub/x86_64/time.h: Likewise.
4223
4224 * include/grub/x86_64/types.h: Likewise.
4225
4226 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
4227 GRUB_TARGET_SIZEOF_VOID_P.
4228
4229 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
4230 (grub_efi_locate_handle): Likewise.
4231 (grub_efi_open_protocol): Likewise.
4232 (grub_efi_set_text_mode): Likewise.
4233 (grub_efi_stall): Likewise.
4234 (grub_exit): Likewise.
4235 (grub_reboot): Likewise.
4236 (grub_halt): Likewise.
4237 (grub_efi_exit_boot_services): Likewise.
4238 (grub_get_rtc): Likewise.
4239
4240 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
4241 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
4242 (grub_efi_allocate_pages): Wrap efi calls.
4243 (grub_efi_free_pages): Wrap efi calls.
4244 (grub_efi_get_memory_map): Wrap efi calls.
4245
4246 * kern/x86_64/dl.c: New file.
4247
4248 * kern/x86_64/efi/callwrap.S: Likewise.
4249
4250 * kern/x86_64/efi/startup.S: Likewise.
4251
4252 * loader/efi/appleloader.c: Likewise.
4253
4254 * loader/efi/chainloader.c (cmdline): New variable.
4255 (grub_chainloader_unload): Wrap efi calls.
4256 (grub_chainloader_boot): Likewise.
4257 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
4258 command line.
4259
4260 * loader/efi/chainloader_normal.c (chainloader_command):
4261 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
4262 command line.
4263
4264 * loader/i386/efi/linux.c (allocate_pages): Change allocation
4265 method.
4266 (grub_e820_add_region): New function.
4267 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
4268 booting.
4269 (grub_find_video_card): New function.
4270 (grub_linux_setup_video): New function.
4271 (grub_rescue_cmd_linux): Probe for video information.
4272
4273 * normal/x86_64/setjmp.S: New file.
4274
4275 * term/efi/console.c (map_char): New function.
4276 (grub_console_putchar): Map unicode char.
4277 (grub_console_checkkey): Wrap efi calls.
4278 (grub_console_getkey): Likewise.
4279 (grub_console_getwh): Likewise.
4280 (grub_console_gotoxy): Likewise.
4281 (grub_console_cls): Likewise.
4282 (grub_console_setcolorstate): Likewise.
4283 (grub_console_setcursor): Likewise.
4284
4285 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
4286
59652a20 42872008-07-16 Pavel Roskin <proski@gnu.org>
4288
ef294055 4289 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
4290 format strings.
4291
59652a20 4292 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
4293 pointer, not an integer. This fixes a warning and prevents
4294 precision loss on 64-bit systems.
4295 (relocate_addresses): Remove unneeded cast.
4296
afc3b5d7 42972008-07-15 Pavel Roskin <proski@gnu.org>
4298
506b2b3e 4299 * kern/i386/ieee1275/init.c: Include grub/cache.h.
4300
62ead89c 4301 * term/ieee1275/ofconsole.c: Disable code unused on i386.
4302
c4cd51d7 4303 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
4304 Fix comparison between signed and unsigned.
4305
0d3d8f28 4306 * include/grub/i386/ieee1275/console.h: Declare
4307 grub_console_init() and grub_console_fini().
4308
8804b286 4309 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
4310 It's empty and unused.
4311
ee01cf35 4312 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
4313 beginning to avoid warnings with some compilers.
4314
afc3b5d7 4315 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
4316 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
4317
e4e8eaa5 43182008-07-14 Pavel Roskin <proski@gnu.org>
4319
407aceb4 4320 * kern/env.c (grub_register_variable_hook): Don't copy empty
4321 string, it leaks memory. Pass "" to grub_env_set(), it should
4322 handle constant strings.
4323
e4e8eaa5 4324 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
4325 * commands/cmp.c (grub_cmd_cmp): Likewise.
4326 * kern/dl.c (grub_dl_flush_cache): Likewise.
4327 (grub_dl_load_core): Likewise.
4328 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
4329 (grub_elf64_load_phdrs): Likewise.
4330
d4e2dad3 43312008-07-13 Pavel Roskin <proski@gnu.org>
4332
4333 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
4334 between signed and unsigned.
4335 (LzmaEnc_Finish): Fix warning about an unused parameter.
4336
aa24b516 43372008-07-13 Bean <bean123ch@gmail.com>
4338
4339 * Makefile.in (enable_lzo): New rule.
4340
4341 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
4342
4343 * configure.ac (ENABLE_LZO): New option --enable-lzo.
4344
4345 * boot/i386/pc/lnxboot.S: #include <config.h>.
4346
4347 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 4348 its value according to the compression algorithm used, lzo or lzma.
aa24b516 4349
4350 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
4351 compression algorithm according to configure macro.
4352
4353 * kern/i386/pc/startup.S (codestart): Likewise.
4354
4355 * kern/i386/pc/lzma_decode.S: New file.
4356
4357 * include/grub/lib/LzFind.h: Likewise.
4358
4359 * include/grub/lib/LzHash.h: Likewise.
4360
4361 * include/grub/lib/LzmaDec.h: Likewise.
4362
4363 * include/grub/lib/LzmaEnc.h: Likewise.
4364
4365 * include/grub/lib/LzmaTypes.h: Likewise.
4366
4367 * lib/LzFind.c: Likewise.
4368
4369 * lib/LzmaDec.c: Likewise.
4370
4371 * lib/LzmaEnc.c: Likewise.
4372
4ae821ac 43732008-07-13 Bean <bean123ch@gmail.com>
4374
4375 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
4376 (grub_ext4_extent_header): New structure.
4377 (grub_ext4_extent): Likewise.
4378 (grub_ext4_extent_idx): Likewise.
4379 (grub_ext4_find_leaf): New function.
4380 (grub_ext2_read_block): Handle extents.
4381
9a745147 43822008-07-12 Robert Millan <rmh@aybabtu.com>
4383
4384 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
4385
d49a4cf6 43862008-07-11 Robert Millan <rmh@aybabtu.com>
4387
4388 * util/grub.d/40_custom.in: New file. Example on how to add custom
4389 entries to /etc/grub.d.
4390 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
4391 40_custom (implicitly, by merging all the grub.d rules).
4392
947414b4 43932008-07-11 Pavel Roskin <proski@gnu.org>
4394
0059cf6f 4395 * commands/read.c (grub_getline): Fix invalid memory access.
4396 Don't add newline to the variable value.
4397
947414b4 4398 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
4399 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
4400 (serial_hw_get_port): Check validity of the port number.
4401 (grub_cmd_serial): Check return value of serial_hw_get_port().
4402
62a02d00 44032008-07-07 Pavel Roskin <proski@gnu.org>
4404
4405 * boot/i386/pc/diskboot.S (notification_string): Replace
4406 "Loading kernel" with just "loading". This is shorter, less
4407 confusing and saves a few bytes for possible future changes.
4408
3e5581b0 44092008-07-05 Pavel Roskin <proski@gnu.org>
4410
ea387a48 4411 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
4412 size for ATAPI devices, they are undefined. Output sector
4413 number in decimal form.
4414
3e5581b0 4415 * disk/ata.c: Use named constants for status bits.
4416
fdecb8fd 44172008-07-04 Pavel Roskin <proski@gnu.org>
4418
bcd35b90 4419 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
4420 grub_addr_t before casting it to the void pointer to fix a
4421 warning. Non-addressable regions are discarded earlier.
4422 (grub_arch_modules_addr): Cast _end to grub_addr_t.
4423 * kern/i386/linuxbios/table.c: Include grub/misc.h.
4424 (check_signature): Don't shadow table_header.
4425 (grub_linuxbios_table_iterate): Cast numeric constants to
4426 grub_linuxbios_table_header_t.
4427 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
4428 grub_stop().
4429
af58ab3d 4430 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
4431 prevent warnings.
4432
1759aa57 4433 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
4434 pointer, which can cause warnings. Support 64-bit addresses.
4435
fdecb8fd 4436 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
4437 of sizeof(long). This fixes PowerPC image generation on x86_64.
4438
8516d2a8 44392008-07-04 Robert Millan <rmh@aybabtu.com>
4440
4441 This fixes a performance issue when pc & gpt partmap iterators
4442 didn't abort iteration even after our hook found what it was
fe987087 4443 looking for (often causing expensive probes of non-existent drives).
8516d2a8 4444
4445 Some callers relied on previous buggy behaviour, since they would
34c44600 4446 raise an error when their own hooks caused early abortion of its
8516d2a8 4447 iteration.
4448
4449 * kern/device.c (grub_device_open): Improve error message.
4450 * disk/lvm.c (grub_lvm_open): Likewise.
4451 * disk/raid.c (grub_raid_open): Likewise.
4452
4453 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
4454 when hook requests it, independently of grub_errno.
4455 (pc_partition_map_probe): Do not fail when find_func() caused
4456 early abortion of pc_partition_map_iterate().
4457
4458 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
4459 when hook requests it, independently of grub_errno.
4460 (gpt_partition_map_probe): Do not fail when find_func() caused
4461 early abortion of gpt_partition_map_iterate().
4462
4463 * kern/partition.c (grub_partition_iterate): Abort parent iteration
4464 when hook requests it, independently of grub_errno. Do not fail when
4465 part_map_iterate_hook() caused early abortion of p->iterate().
4466
4467 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
4468 when grub_partition_iterate() returned with non-zero.
4469
277d0de9 44702008-07-03 Pavel Roskin <proski@gnu.org>
4471
4472 * disk/ata.c (grub_ata_pio_write): Check status before writing,
4473 like we do in grub_ata_pio_read().
4474 (grub_ata_readwrite): Always write individual sectors. Fix the
4475 sector count for the remainder.
4476 (grub_ata_write): Enable writing to ATA devices. Correctly
4477 report error for ATAPI devices.
4478
d4c9b428 44792008-07-02 Pavel Roskin <proski@gnu.org>
4480
e43fc690 4481 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
4482 warning.
4483
f707af42 4484 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
4485 for every read sector, we already increment it for the whole
4486 batch. This fixes reading more than 256 sectors at once.
4487
11e16b15 4488 * util/grub-editenv.c (cmd_info): Cast argument to long
4489 explicitly. ptrdiff_t reduces to int on i386.
4490
cbabfdd4 4491 * util/grub-editenv.c (main): Be specific which parameter is
4492 missing.
4493
b8fbce0a 4494 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
4495 (memdisk): Make memdisk_orig_addr a pointer.
4496
c9c8e606 4497 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
4498 for file offsets, use grub_off_t instead. Fix printf format
4499 warnings.
4500
ca62e598 4501 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
4502 there. Real unexpected warnings should not drown in the noise
4503 about known problems.
4504
ce8d1766 4505 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
4506 grub_disk_addr_t for memory addresses.
4507
00c7a56a 4508 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
4509 explicitly to fix a warning.
4510
08d3ef09 4511 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
4512
cb71ba20 4513 * Makefile.in (MODULE_LDFLAGS): New variable.
4514 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
4515 the linker accepts --build-id=none.
4516 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
4517 MODULE_LDFLAGS.
4518 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
4519
d4c9b428 4520 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
4521 those in Linux XFS code. Provide a way to access 64-bit parent
4522 inode.
4523 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
4524 the end of struct grub_xfs_dir_header.
4525
d4156eee 45262008-07-02 Bean <bean123ch@gmail.com>
4527
4528 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
4529 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4530 and GRUB_IEEE1275_FLAG_NO_ANSI.
4531
4532 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
4533 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4534 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
4535
4536 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
4537 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
4538
4539 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
4540 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
4541
4542 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
4543 esc sequence on non ANSI terminal.
4544 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
4545
4546 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
4547 beginning of file.
4548
2270f77b 45492008-07-02 Bean <bean123ch@gmail.com>
4550
4551 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
4552 (grub_editenv_SOURCES): New variable.
4553 (pkglib_MODULES): Add loadenv.mod.
4554 (loadenv_mod_SOURCES): New variable.
4555 (loadenv_mod_CFLAGS): Likewise.
4556 (loadenv_mod_LDFLAGS): Likewise.
4557
4558 * include/grub/envblk.h: New file.
4559
4560 * util/envblk.c: New file.
4561
4562 * util/grub-editenv.c: New file.
4563
4564 * commands/loadenv.c: New file.
4565
0e9e51ec 45662008-07-01 Pavel Roskin <proski@gnu.org>
4567
d89b7634 4568 * include/multiboot2.h (struct multiboot_tag_module): Use char,
4569 not unsigned char. This fixes warnings and is consistent with
4570 other tags.
4571
bf1835b1 4572 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
4573
8222a04b 4574 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
4575
6a42d99d 4576 * term/tparm.c (analyze): Always set *popcount.
4577
10b159d1 4578 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
4579 cast to fix a warning.
4580
b8789f6c 4581 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
4582 cast to suppress a warning.
4583
29d7e38a 4584 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
4585 grub_fshelp_read_file() expects.
4586
f341f669 4587 * fs/fat.c: Fix UUID calculation on big-endian systems. We
4588 write uuid as a 32-bit value in CPU byte order, so declare and
4589 use it as such.
4590
0e9e51ec 4591 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
4592 long if the format specifier expects it.
4593 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
4594 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4595 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
4596 long to fix a warning.
4597 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
4598 grub_dprintf() arguments to fix warnings.
4599
3aefa857 46002008-06-30 Pavel Roskin <proski@gnu.org>
4601
56c7668b 4602 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
4603 install_bsd_part immediately before core.img is embedded or
4604 modified on disk. This fixes core.img verification if core.img
4605 cannot be embedded.
4606
3aefa857 4607 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
4608 core_path to calculate the blocklist.
4609 Patch from Javier Martín <lordhabbit@gmail.com>
4610
5444088d 46112008-06-29 Robert Millan <rmh@aybabtu.com>
4612
4613 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
4614 block to disk block.
4615 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
4616 Patch from Niels Böhm <bitbucket@arcor.de>
4617
674835c8 46182008-06-29 Robert Millan <rmh@aybabtu.com>
4619
4620 * util/update-grub_lib.in (font_path): Search for fonts in
4621 /boot/grub first, which is more likely to be readable (we aren't
4622 deciding where fonts live, just looking for them).
4623
f527dbc8 46242008-06-26 Pavel Roskin <proski@gnu.org>
4625
6c2d8df6 4626 * util/biosdisk.c (read_device_map): Don't leave dead map
4627 entries for devices failing stat() check.
4628
f527dbc8 4629 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
4630 core_path_dev for the core.img path on the target device.
4631
aebe3d13 46322008-06-26 Robert Millan <rmh@aybabtu.com>
4633
4634 * disk/fs_uuid.c: New file.
4635 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
4636 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
4637 (fs_uuid_mod_LDFLAGS): New variables.
4638 * include/grub/disk.h (grub_disk_dev_id): Add
4639 `GRUB_DISK_DEVICE_UUID_ID'.
4640 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
4641 implement iterate().
4642
37aaf354 46432008-06-26 Robert Millan <rmh@aybabtu.com>
4644
4645 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
4646 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
4647 Linux image includes no initrd.
4648
25ff262a 46492008-06-21 Javier Martín <lordhabbit@gmail.com>
4650
4651 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
4652 call to resolve the core image location that effectively appended the
4653 name twice.
4654
76a2bd44 46552008-06-21 Robert Millan <rmh@aybabtu.com>
4656
4657 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
4658 call from here ...
4659
4660 * util/grub.d/10_hurd.in: ... to here ...
4661 * util/grub.d/10_linux.in: ... and here.
4662
650e1c79 46632008-06-19 Robert Millan <rmh@aybabtu.com>
4664
fe987087 4665 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 4666 after it has been set by grub_machine_set_prefix().
4667
6ce63911 46682008-06-19 Robert Millan <rmh@aybabtu.com>
4669
4670 * commands/search.c (search_label, search_fs_uuid, search_file): Print
4671 search result when not saving to variable, not the other way around.
4672 When saving to variable, abort iteration as soon as a match is found.
4673
73940cec 46742008-06-19 Robert Millan <rmh@aybabtu.com>
4675
4676 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
4677 check for partition that provides /boot/grub. Its logic is flawed,
4678 as it prevents prepare_grub_to_access_device() from being called
4679 multiple times.
4680
3c62a39d 46812008-06-19 Robert Millan <rmh@aybabtu.com>
4682
4683 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
4684 "insmod" command directly when abstraction modules are needed,
fe987087 4685 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 4686 since it had already been processed).
4687
47395a42 46882008-06-19 Pavel Roskin <proski@gnu.org>
4689
4690 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
4691 changed. This is needed in case GRUB_LIBDIR changes.
4692 * conf/i386-ieee1275.rmk: Likewise.
4693 * conf/i386-linuxbios.rmk: Likewise.
4694 * conf/i386-pc.rmk: Likewise.
4695 * conf/powerpc-ieee1275.rmk: Likewise.
4696
a145ac2d 46972008-06-18 Pavel Roskin <proski@gnu.org>
4698
4699 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
4700 kernel_elf_symlist.c to symlist.c for consistency with other
4701 architectures. Update all users.
4702 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
4703
7847c51e 47042008-06-18 Robert Millan <rmh@aybabtu.com>
4705
4706 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
4707 it in prefix.
4708
4709 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
4710 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
4711 a RAID device, run setup() for all members independently on whether
4712 LVM abstraction is being used.
4713 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
4714 If grub-mkimage has set `*install_dos_part == -2', don't override this
4715 value.
4716 Perform *install_dos_part adjustments independently on whether
4717 we're embedding or not.
4718 Clarify error message when image is too big for embedding.
4719 Remove duplicate *install_dos_part stanza.
4720
b23e5644 47212008-06-17 Robert Millan <rmh@aybabtu.com>
4722
4723 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
4724 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
4725 variables.
4726 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
4727 values in grub_ofconsole_normal_color and
4728 grub_ofconsole_highlight_color (they're not directly related to
4729 background and foreground).
4730 (grub_ofconsole_setcolorstate): Extract background and foreground
4731 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
4732
0aac2f79 47332008-06-17 Robert Millan <rmh@aybabtu.com>
4734
4735 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
4736 /boot/grub for the check in last commit, not /boot (they could be
4737 different partitions).
4738
3cca7ef3 47392008-06-16 Robert Millan <rmh@aybabtu.com>
4740
4741 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
4742 asked to setup access for the same partition that provides /boot,
4743 don't bother using UUIDs since our root already has the value we
4744 want.
4745
347396d8 47462008-06-16 Robert Millan <rmh@aybabtu.com>
4747
4748 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
4749 I2O devices.
4750 Patch from Sven Mueller <sven@debian.org>.
4751
991477f8 47522008-06-16 Robert Millan <rmh@aybabtu.com>
4753
4754 * util/update-grub.in: Check for $EUID instead of $UID.
4755 Reported by Vincent Zweije.
4756
d31a32a1 47572008-06-16 Bean <bean123ch@gmail.com>
4758
fe987087 4759 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 4760 (grub_ext2_read_block): Likewise.
4761 (grub_ext2_read_inode): Likewise.
4762 (grub_ext2_mount): Likewise.
4763 (grub_ext2_close): Likewise.
4764 (grub_ext3_get_journal): Removed.
4765
fe987087 4766 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 4767 (grub_reiserfs_read_symlink): Likewise.
4768 (grub_reiserfs_mount): Likewise.
4769 (grub_reiserfs_open): Likewise.
4770 (grub_reiserfs_read): Likewise.
4771 (grub_reiserfs_close): Likewise.
4772 (grub_reiserfs_get_journal): Removed.
4773
4774 * fs/fshelp.c (grub_fshelp_read): Removed.
4775 (grub_fshelp_map_block): Likewise.
4776
4777 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
4778 (grub_fshelp_journal): Likewise.
4779 (grub_fshelp_read): Likewise.
4780 (grub_fshelp_map_block): Likewise.
4781
3540a760 47822008-06-16 Pavel Roskin <proski@gnu.org>
4783
4784 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
4785 floating point anymore.
4786 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
4787
95614c84 47882008-06-15 Pavel Roskin <proski@gnu.org>
4789
4790 * commands/ls.c (grub_ls_list_files): Use integer calculations
4791 for human readable format, avoid floating point use.
4792 * kern/misc.c (grub_ftoa): Remove.
4793 (grub_vsprintf): Remove floating point support.
4794
50465dd6 47952008-06-15 Robert Millan <rmh@aybabtu.com>
4796
fe6b695a 4797 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 4798 devices.
4799 Reported by Max Vozeler.
4800
a9207284 48012008-06-15 Robert Millan <rmh@aybabtu.com>
4802
4803 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
4804 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
4805 skipped later.
4806 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
4807 the beginning of the prefix.
4808
4809 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
4810 It is assumed that if we have a memdisk, grub-mkimage has set
4811 grub_prefix to include the "(memdisk)" drive in it.
4812
a7cbd45a 48132008-06-15 Robert Millan <rmh@aybabtu.com>
4814
4815 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
4816 Initialize keyboard controller after registering the terminal, so that
4817 grub_printf() can be called from grub_keyboard_controller_init().
4818
21cf716a 48192008-06-15 Robert Millan <rmh@aybabtu.com>
4820
4821 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
4822 extent-btree which is written as big endian on disk.
4823 Reported by Alain Greppin <al@chilibi.org>.
4824
23a64d8e 48252008-06-14 Robert Millan <rmh@aybabtu.com>
4826
4827 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
4828 * util/i386/pc/grub-install.in (modules): Likewise.
4829
d687651c 48302008-06-13 Pavel Roskin <proski@gnu.org>
4831
4832 * commands/ls.c (grub_ls_list_files): Fix format warnings.
4833
dfe9ddd4 48342008-06-13 Bean <bean123ch@gmail.com>
4835
4836 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
4837
4838 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
4839
4840 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
4841 to indicate sparse block.
4842
16ae7781 48432008-06-12 Pavel Roskin <proski@gnu.org>
4844
e6d1a308 4845 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
4846 number, grub_fshelp_read() does it for us.
4847
16ae7781 4848 * fs/fshelp.c (grub_fshelp_read): New function. Implement
4849 linear disk read with journal translation.
4850 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
4851 * include/grub/fshelp.h: Declare grub_fshelp_read().
4852
40fd3a2b 48532008-06-09 Pavel Roskin <proski@gnu.org>
4854
4855 * fs/minix.c (grub_minix_mount): Handle error reading
4856 superblock.
4857
f5679726 48582008-06-08 Robert Millan <rmh@aybabtu.com>
4859
4860 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
4861 don't append the RAID prefix afterwards.
4862 Reported by Clint Adams.
4863
ce525529 48642008-06-08 Robert Millan <rmh@aybabtu.com>
4865
4866 Based on description from Pavel:
4867 * kern/disk.c (grub_disk_check_range): Rename to ...
4868 (grub_disk_adjust_range): ... this. Add a comment explaining the
4869 tasks performed by this function.
4870
ad4936a0 48712008-06-08 Robert Millan <rmh@aybabtu.com>
4872
4873 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
4874 `num_serial' (for consistency with other variables).
4875 (struct grub_ntfs_data): Add `uuid' member.
4876 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
4877 (grub_ntfs_uuid): New function.
4878 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
4879
dc20b0f9 48802008-06-07 Pavel Roskin <proski@gnu.org>
4881
4882 * util/biosdisk.c (open_device): Revert last change to the
4883 function, it broke installation. The sector needs to be
4884 different dependent on which device is opened.
4885
c5e3cfba 48862008-06-06 Robert Millan <rmh@aybabtu.com>
4887
4888 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
4889 rest of GRUB, and breakage doesn't happen if its value were modified.
4890
4891 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
4892 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
4893 a constant (same value).
4894 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
4895 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
4896
26a1f8c4 48972008-06-06 Robert Millan <rmh@aybabtu.com>
4898
4899 * util/biosdisk.c (open_device): Do not modify sector offset when
4900 accessing a partition. kern/disk.c already handles this for us.
4901
25d6b327 49022008-06-06 Robert Millan <rmh@aybabtu.com>
4903
4904 * util/grub-emu.c (grub_machine_init): Move code in this function from
4905 here ...
4906 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
4907 segfault in case grub_printf() is called).
4908
4909 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
4910 grub_probe. Update all users not to explicitly add it again.
4911 (grub_device): New variable; contains corresponding device for grubdir.
4912 (fs_module, partmap_module, devabstraction_module): Pass
4913 `--device ${grub_device}' to grub_probe to avoid traversing /dev
4914 every time.
4915
9ece62fb 49162008-06-05 Robert Millan <rmh@aybabtu.com>
4917
4918 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
4919 is found, print it (same layout as with labels).
4920
1ad36d37 49212008-06-04 Robert Millan <rmh@aybabtu.com>
4922
4923 * util/biosdisk.c (get_drive): Rename to ...
4924 (find_grub_drive): ... this. Update all users.
4925
4926 (get_os_disk): Rename to ...
4927 (convert_system_partition_to_system_disk): ... this. Update all users.
4928
4929 (find_drive): Rename to ...
4930 (find_system_device): ... this. Update all users.
4931
e6a30859 49322008-06-04 Robert Millan <rmh@aybabtu.com>
4933
4934 * util/biosdisk.c (get_os_disk): Handle IDA devices.
4935 * util/grub-mkdevicemap.c (get_mmc_disk_name)
4936 (make_device_map): Likewise.
4937
00c108a4 49382008-06-01 Robert Millan <rmh@aybabtu.com>
4939
4940 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
4941 before dereferencing it.
4942
4943 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
4944 union with fat12/fat16-specific ones. Add some new fields, including
4945 `num_serial' for both versions.
4946 (struct grub_fat_data): Add `uuid' member.
4947 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
4948 names. Initialize `data->uuid' using `num_serial'.
4949 (grub_fat_uuid): New function.
4950 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
4951
4952 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
4953 (grub_reiserfs_uuid): New function.
4954 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
4955 member.
4956
4957 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
4958 (grub_xfs_uuid): New function.
4959 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
4960
1385c5bb 49612008-06-01 Robert Millan <rmh@aybabtu.com>
4962
4963 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
4964 code that is backward compatible with pre-uuid search command.
4965
c682dfd7 49662008-05-31 Robert Millan <rmh@aybabtu.com>
4967
4968 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
4969 floppies after everything else, to ensure floppy drive isn't accessed
4970 unnecessarily (patch from Bean).
4971
b7db5d47 49722008-05-31 Robert Millan <rmh@aybabtu.com>
4973
4974 * commands/search.c (search_label, search_fs_uuid, search_file): Do
4975 not print device names when we were asked to set a variable.
4976
6e037aa9 49772008-05-31 Robert Millan <rmh@aybabtu.com>
4978
4979 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
4980 using "cursor-on" and "cursor-off" commands (understood at least by
4981 the Open Firmware flavour on OLPC).
4982
41305bc8 49832008-05-31 Michael Gorven <michael@gorven.za.net>
4984
4985 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
4986 on and off sequences.
4987
69ba137e 49882008-05-31 Robert Millan <rmh@aybabtu.com>
4989
4990 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
4991 * util/update-grub.in: Likewise.
4992
520ae21b 49932008-05-30 Pavel Roskin <proski@gnu.org>
4994
4995 * util/biosdisk.c (linux_find_partition): Simplify logic and
4996 make the code more universal. Keep special processing for
4997 devfs, but use a simple rule for all other devices. If the
4998 device ends with a number, append 'p' and the partition number.
4999 Otherwise, append only the partition number.
5000
5786569b 50012008-05-30 Robert Millan <rmh@aybabtu.com>
5002
5003 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
5004 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
5005 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
5006 the `root' parameter to Linux.
5007
51500452 50082008-05-30 Robert Millan <rmh@aybabtu.com>
5009
5010 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
5011 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
5012 --fs_uuid with --fs-uuid.
5013 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
5014 all filesystems support them).
5015
811d3878 50162008-05-30 Robert Millan <rmh@aybabtu.com>
5017
5018 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 5019 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 5020
cab63c95 50212008-05-30 Robert Millan <rmh@aybabtu.com>
5022
5023 * util/grub.d/00_header.in: Remove obsolete comment referencing
5024 convert_system_path_to_grub_path().
5025 * util/update-grub.in: Likewise.
5026 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
5027 (convert_system_path_to_grub_path): Add a warning message explaining
5028 that this function is deprecated. Rely on is_path_readable_by_grub()
5029 for the readability checks.
5030 (font_path): Use is_path_readable_by_grub() for the readability
5031 check rather than convert_system_path_to_grub_path().
5032
972e2f7a 50332008-05-30 Robert Millan <rmh@aybabtu.com>
5034
5035 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
5036 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
5037 converting it first.
5038 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
5039 grub.cfg for access to font file, and afterwards call it again to set
5040 the root device.
5041
62191274 50422008-05-30 Robert Millan <rmh@aybabtu.com>
5043
5044 * commands/search.c (options): Add --fs_uuid option.
5045 (search_fs_uuid): New function.
5046 (grub_cmd_search): Fix --set argument passing.
5047 Use search_fs_uuid() when requested via --fs_uuid.
5048 (grub_search_init): Update help message.
5049 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
5050 and redeclare it as an array of 16-bit words.
5051 (grub_ext2_uuid): New function.
5052 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
5053 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
5054 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
5055 (GRUB_DEVICE_BOOT_UUID): New variables.
5056 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
5057 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
5058 whenever possible.
5059 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
5060 just assume `root' variable has the right value.
5061 * util/grub.d/10_linux.in: Likewise.
5062 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
5063 via PRINT_FS_UUID.
5064 (main): Recognise `-t fs_uuid' argument.
5065
01b73ec8 50662008-05-30 Robert Millan <rmh@aybabtu.com>
5067
5068 * util/biosdisk.c (map): Redefine structure to hold information
5069 about GRUB drive name.
fe6b695a 5070 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 5071 drive names.
5072 (call_hook): Remove.
5073 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
5074 member. Assume drive has partitions.
5075 (grub_util_biosdisk_open): Access device names via `.device' struct
5076 member.
5077 (open_device): Likewise.
5078 (find_drive): Likewise.
5079 (read_device_map): Adjust map[] usage to match the new struct
5080 definition. Don't check for duplicates (still possible, but not cheap
5081 anymore).
5082 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
5083 (make_device_name): Remove assumption of BIOS-like drive names.
5084
22f16596 50852008-05-30 Pavel Roskin <proski@gnu.org>
5086
5087 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
5088 compiling execute.c doesn't need grub_script.tab.h anymore.
5089 (normal/command.c_DEPENDENCIES): Likewise.
5090 (normal/function.c_DEPENDENCIES): Likewise.
5091 * conf/i386-ieee1275.rmk: Likewise.
5092 * conf/i386-linuxbios.rmk: Likewise.
5093 * conf/i386-pc.rmk: Likewise.
5094 * conf/powerpc-ieee1275.rmk: Likewise.
5095 * conf/sparc64-ieee1275.rmk: Likewise.
5096
528ad8f2 50972008-05-29 Pavel Roskin <proski@gnu.org>
5098
d1dff95d 5099 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
5100 when scanning metadata for volume group name.
5101
528ad8f2 5102 * include/grub/script.h: Don't include grub_script.tab.h. It's
5103 a generated file, which may only be included from the files with
5104 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
5105 use union YYSTYPE, as the later allows forward declaration.
5106 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
5107
47248e08 51082008-05-29 Robert Millan <rmh@aybabtu.com>
5109
5110 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
5111 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
5112 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
5113 (grub_console_checkkey): Add grub_dprintf() call to report unknown
5114 scan codes.
5115
ee632529 51162008-05-29 Robert Millan <rmh@aybabtu.com>
5117
5118 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
5119 control key combinations.
5120
eee96e08 51212008-05-29 Robert Millan <rmh@aybabtu.com>
5122
5123 * util/powerpc/ieee1275/grub-install.in: Move from here ...
5124 * util/ieee1275/grub-install.in: ... to here.
5125 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
5126 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
5127 (grub_install_SOURCES): Likewise.
5128
da9a6a94 51292008-05-29 Robert Millan <rmh@aybabtu.com>
5130
5131 * fs/affs.c: Update copyright year.
5132 * fs/ext2.c: Likewise.
5133 * fs/fshelp.c: Likewise.
5134 * fs/hfsplus.c: Likewise.
5135 * fs/ntfs.c: Likewise.
5136 * fs/xfs.c: Likewise.
5137 * include/grub/fshelp.h: Likewise.
5138 * util/grub-mkdevicemap.c: Likewise.
5139
12e65f3a 51402008-05-28 Robert Millan <rmh@aybabtu.com>
5141
5142 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
5143 might need to be fatfs to support some firmware implementations
5144 (e.g. OFW or EFI).
5145
23023641 51462008-05-28 Robert Millan <rmh@aybabtu.com>
5147
5148 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
5149 devices.
5150 * util/grub-mkdevicemap.c (get_mmc_disk_name)
5151 (make_device_map): Likewise.
5152
887d2619 51532008-05-20 Bean <bean123ch@gmail.com>
5154
5155 * fs/fshelp.c (grub_fshelp_map_block): New function.
5156 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
5157 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
5158
5159 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
5160 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
5161 (grub_fshelp_journal): New structure.
5162 (grub_fshelp_map_block): New function prototype.
5163 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
5164 (grub_fshelp_map_block): Likewise.
5165
5166 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
5167 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
5168 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
5169 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
5170 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
5171 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
5172 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
5173 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
5174 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
5175 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
5176 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
5177 (grub_ext2_sblock): New members for journal support.
5178 (grub_ext3_journal_header): New structure.
5179 (grub_ext3_journal_revoke_header): Likewise.
5180 (grub_ext3_journal_block_tag): Likewise.
5181 (grub_ext3_journal_sblock): Likewise.
5182 (grub_fshelp_node): New members logfile and journal.
5183 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
5184 grub_fshelp_map_block to get real block number.
5185 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
5186 number.
5187 (grub_ext2_read_inode): Likewise.
5188 (grub_ext3_get_journal): New function.
5189 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
5190 (grub_ext2_close): Release memory used by journal.
5191
5192 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
5193 (REISERFS_MAGIC_DESC_BLOCK): New macro.
5194 (grub_reiserfs_transaction_header): Renamed to
5195 grub_reiserfs_description_block, replace field data with real_blocks.
5196 (grub_reiserfs_commit_block): New structure.
5197 (grub_reiserfs_data): New member journal.
5198 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
5199 number.
5200 (grub_reiserfs_read_symlink): Likewise.
5201 (grub_reiserfs_iterate_dir): Likewise.
5202 (grub_reiserfs_open): Likewise.
5203 (grub_reiserfs_read): Likewise.
5204 (grub_reiserfs_get_journal): New function.
5205 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
5206 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
5207 using grub_reiserfs_get_journal.
5208 (grub_reiserfs_close): Release memory used by journal.
5209
5210 * fs/affs.c (grub_affs_read_block): Change block type to
5211 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
5212
5213 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
5214
5215 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
5216
5217 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
5218
5219 * fs/udf.c (grub_udf_read_block): Change block type to
5220 grub_disk_addr_t. Use type cast to avoid warning.
5221
5222 * fs/xfs.c (grub_xfs_read_block): Likewise.
5223
b7c6bed5 52242008-05-16 Christian Franke <franke@computer.org>
5225
5226 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
5227 to ensure that break with ESC will always work.
5228 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
5229 Remove ESC from keyboard queue.
5230
eedf167f 52312008-05-16 Christian Franke <franke@computer.org>
5232
5233 * util/biosdisk.c: [__CYGWIN__] Add includes.
5234 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
5235 (get_os_disk): Move variable declarations to OS specific
5236 parts to avoid warning.
5237 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
5238 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
5239 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
5240 Cygwin.
5241 * util/getroot.c: [__CYGWIN__] Add includes.
5242 (strip_extra_slashes): Fix "/" case.
5243 [__CYGWIN__] (get_win32_path): New function.
5244 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
5245 [__CYGWIN__] (find_root_device): Disable.
5246 [__CYGWIN__] (get_bootsec_serial): New function.
5247 [__CYGWIN__] (find_cygwin_root_device): Likewise.
5248 [__linux__] (grub_guess_root_device): Add early returns to simplify
5249 structure.
5250 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
5251 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
5252 check for Linux only.
5253
a079699e 52542008-05-15 Bean <bean123ch@gmail.com>
5255
5256 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
5257 keyboard hang problem in apple's intel mac.
5258
1cf4059a 52592008-05-09 Robert Millan <rmh@aybabtu.com>
5260
5261 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
5262 devices.
5263 * util/grub-mkdevicemap.c (get_virtio_disk_name)
5264 (make_device_map): Likewise.
5265 Reported by Aurelien Jarno <aurel32@debian.org>
5266
ed759390 52672008-05-07 Ian Campbell <ijc@hellion.org.uk>
5268
5269 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
5270 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
5271 (make_device_map): Output entries for xvd type disks.
5272
b56c4eaa 52732008-05-07 Robert Millan <rmh@aybabtu.com>
5274
5275 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
5276 devices.
5277 * util/grub-mkdevicemap.c (get_cciss_disk_name)
5278 (make_device_map): Likewise.
5279 Reported by Roland Dreier <rdreier@cisco.com>
5280
7f8866ed 52812008-05-07 Robert Millan <rmh@aybabtu.com>
5282
5283 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
5284 grub_strstr() call. Correct a few mistakes in failure path handling.
5285
b0346e0f 52862008-05-06 Robert Millan <rmh@aybabtu.com>
5287
5288 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5289 Do not print a trailing slash (therefore, the root directory is an
5290 empty string).
5291 (convert_system_path_to_grub_path): Do not remove trailing slash
5292 from make_system_path_relative_to_its_root() output.
5293
5294 * util/i386/pc/grub-install.in: Add trailing slash to output from
5295 make_system_path_relative_to_its_root().
5296
6cf12cbd 52972008-05-06 Robert Millan <rmh@aybabtu.com>
5298
5299 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
5300 ensures that output lines aren't intermangled with those sent to
5301 stderr (via grub_util_info()).
5302 * util/grub-probe.c (grub_refresh): Likewise.
5303 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
5304
0fbb3117 53052008-05-05 Christian Franke <franke@computer.org>
5306
5307 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
5308 Add Cygwin device names.
5309 (get_ide_disk_name) [__CYGWIN__]: Likewise.
5310 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
5311 (check_device): Return error instead of success on empty name.
5312 (make_device_map): Move label inside linux specific code to
5313 prevent compiler warning.
5314
8124cdb7 53152008-04-30 Robert Millan <rmh@aybabtu.com>
5316
5317 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
5318 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
5319 first boot option.
5320 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
5321
094c01d0 53222008-04-29 Robert Millan <rmh@aybabtu.com>
5323
5324 * docs/grub.cfg: New file (example GRUB configuration).
5325
f4b1fc02 53262008-04-26 Robert Millan <rmh@aybabtu.com>
5327
329ce2a5 5328 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
5329 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
5330 and `disk/ieee1275/nand.c'.
f4b1fc02 5331
25f16ec1 53322008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 5333
25f16ec1 5334 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
5335 i386-linuxbios.
5336
5337 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
5338 change the buffer size to 4096 for cdrom device.
5339
5340 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
5341 and nand.mod.
5342 (_linux_mod_SOURCES): New variable.
5343 (_linux_mod_CFLAGS): Likewise.
5344 (_linux_mod_LDFLAGS): Likewise.
5345 (linux_mod_SOURCES): Likewise.
5346 (linux_mod_CFLAGS): Likewise.
5347 (linux_mod_LDFLAGS): Likewise.
5348 (nand_mod_SOURCES): Likewise.
5349 (nand_mod_CFLAGS): Likewise.
5350 (nand_mod_LDFLAGS): Likewise.
5351
5352 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
5353 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
5354 type property. (nand device in olpc don't have this property)
5355
5356 * include/grub/disk.h (grub_disk_dev_id): New macro
5357 GRUB_DISK_DEVICE_NAND_ID.
5358
5359 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
5360 function prototype.
5361 (grub_rescue_cmd_initrd): Likewise.
5362
5363 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
5364 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
5365 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 5366
25f16ec1 5367 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
5368 GRUB_MACHINE_IEEE1275 is defined.
5369
5370 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
5371 Use NESTED_FUNC_ATTR attribute on the hook parameter.
5372
5373 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
5374 on nested function heap_init.
5375 (grub_upper_mem): New variable for i386-ieee1275.
5376 (grub_get_extended_memory): New function for i386-ieee1275.
5377 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
5378
5379 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
5380 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
5381 property.
f19dbdb7 5382
25f16ec1 5383 * loader/i386/ieee1275/linux.c: New file.
5384
5385 * loader/i386/ieee1275/linux_normal.c: New file.
5386
5387 * disk/ieee1275/nand.c: New file.
5388
e89d61e9 53892008-04-18 Thomas Schwinge <tschwinge@gnu.org>
5390
5391 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
5392 value.
5393 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
5394
602566f6 53952008-04-18 Robert Millan <rmh@aybabtu.com>
5396
5397 Restructures early code path on ieee1275 to unify grub_main() as
5398 the first C function that is executed in every platform.
5399
5400 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
5401 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
5402 cmain().
5403 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
5404 * kern/ieee1275/cmain.c (cmain): Rename to ...
5405 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
5406 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
5407 at the beginning.
5408
57490c2b 54092008-04-18 Robert Millan <rmh@aybabtu.com>
5410
5411 * util/update-grub.in: Fix syntax error when setting
5412 `GRUB_PRELOAD_MODULES'.
5413 Reported by Stephane Chazelas <stephane@artesyncp.com>
5414
1977517d 54152008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
5416
5417 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
5418 section into account, newer toolchains generate unique build ids
5419 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 5420 we want build ids to be preserved
1977517d 5421 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
5422 far from other sections don't cause the raw binary images grow
5423 size
5424
bfb1f1a2 54252008-04-15 Robert Millan <rmh@aybabtu.com>
5426
5427 * disk/lvm.c: Update copyright year.
5428 * kern/misc.c: Likewise.
5429
01979850 54302008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5431
5432 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 5433 there is no memory left for physical volume name.
01979850 5434
0a1150e2 54352008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5436
5437 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
5438 volume name mapping to support bigger than 9 character names properly.
5439
82ead3fe 54402008-04-13 Robert Millan <rmh@aybabtu.com>
5441
5442 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
5443 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
5444
e54a72f5 54452008-04-13 Christian Franke <franke@computer.org>
5446
5447 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
5448 to create a floppy emulation boot CD when non emulation mode
5449 does not work.
5450 Enable Joliet CD filesystem extension.
5451
9fe86034 54522008-04-13 Robert Millan <rmh@aybabtu.com>
5453
5454 * kern/misc.c (grub_strncat): Fix off-by-one error.
5455 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
5456
5457 * kern/env.c (grub_env_context_close): Clear current context, not
5458 previous one.
5459 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
5460
5461 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
5462
7ceeee39 54632008-04-13 Robert Millan <rmh@aybabtu.com>
5464
5465 Improve robustness when handling LVM.
5466
5467 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 5468 (and leave `*p' unmodified).
7ceeee39 5469 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
5470 through it.
5471 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
5472 iterating through it.
5473 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
5474 through it.
fe6b695a 5475 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 5476 when due) on each grub_lvm_getvalue() or grub_strstr() call.
5477 Don't assume `vg->pvs != NULL' when iterating through it.
5478
58cd3d85 54792008-04-13 Robert Millan <rmh@aybabtu.com>
5480
5481 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
5482 * genmk.rb (partmap): New variable.
5483 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
5484 (#{partmap}): New target rule.
5485 * genpartmaplist.sh: New file.
5486 * Makefile.in (pkglib_DATA): Add partmap.lst.
5487 (partmap.lst): New target rule.
5488 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
5489 modules (including all partition maps), instead of preloading them.
5490
78b51059 54912007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
5492
5493 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
5494 `linux-boot-prober' (if installed) to detect other operating
5495 systems which are installed on the computer and add them to
5496 the boot menu.
5497 * conf/common.rmk: Build and install 30_os-prober.
5498
a91627b4 54992008-04-12 Robert Millan <rmh@aybabtu.com>
5500
5501 * kern/powerpc/ieee1275/init.c: Move from here ...
5502 * kern/ieee1275/init.c: ... to here. Update all users.
5503
5504 * kern/powerpc/ieee1275/cmain.c: Move from here ...
5505 * kern/ieee1275/cmain.c: ... to here. Update all users.
5506
5507 * kern/powerpc/ieee1275/openfw.c: Move from here ...
5508 * kern/ieee1275/openfw.c: ... to here. Update all users.
5509
5510 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
5511 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
5512
322562ea 55132008-04-10 Pavel Roskin <proski@gnu.org>
5514
5515 * configure.ac: Always use "_cv_" in cache variables for
5516 compatibility with Autoconf 2.62.
5517
a02a73c5 55182008-04-07 Robert Millan <rmh@aybabtu.com>
5519
5520 Revert grub/machine/init.h addition by Pavel (since it breaks on
5521 i386-ieee1275 and others):
5522 * util/i386/pc/misc.c: Remove grub/machine/init.h.
5523 * util/powerpc/ieee1275/misc.c: Likewise.
5524
25c024b1 55252008-04-07 Robert Millan <rmh@aybabtu.com>
5526
5527 * util/grub-probe.c (probe): Improve error message.
5528
3cbd2f98 55292008-04-07 Robert Millan <rmh@aybabtu.com>
5530
5531 * util/biosdisk.c (read_device_map): Skip devices that don't exist
5532 (this prevents the presence of a bogus entry from ruining the whole
5533 thing).
5534
87a297bf 55352008-04-06 Pavel Roskin <proski@gnu.org>
5536
36747a62 5537 * util/biosdisk.c: Include grub/util/biosdisk.h.
5538 * util/grub-fstest.c (execute_command): Make static.
5539 * util/grub-mkdevicemap.c (check_device): Likewise.
5540 * util/i386/pc/misc.c: Include grub/machine/init.h.
5541 * util/powerpc/ieee1275/misc.c: Likewise.
5542 * util/lvm.c: Include grub/util/lvm.h.
5543 * util/misc.c: Include grub/kernel.h, grub/misc.h and
5544 grub/cache.h.
5545 * util/raid.c: Include grub/util/raid.h.
5546 (grub_util_getdiskname): Make static.
5547
87a297bf 5548 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
5549 grub_hostfs_fini(), as they are called from grub_init_all() and
5550 grub_fini_all() respectively. This fixes an infinite loop in
5551 grub-fstest due to double registration of hostfs.
5552 Reported by Christian Franke <Christian.Franke@t-online.de>
5553
f6ce7629 55542008-04-05 Pavel Roskin <proski@gnu.org>
5555
5556 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
5557 all 8 functions. Otherwise, probe function 0 only.
5558
070e49e4 55592008-04-04 Pavel Roskin <proski@gnu.org>
5560
8b088a4c 5561 * commands/lspci.c (grub_lspci_iter): Print the bus number
5562 correctly.
5563
4f657021 5564 * commands/lspci.c (grub_pci_classes): Fix typos.
5565 (grub_lspci_iter): Don't print func twice. Print vendor ID
5566 before device ID, as it's normally done.
5567
070e49e4 5568 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
5569 Fix signedness warnings.
5570 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
5571 Likewise.
5572 * util/ieee1275/get_disk_name.c: Include config.h so that
5573 _GNU_SOURCE is defined and getline() is declared. Mark an
5574 unused argument as such. Fix a signedness warning.
5575
ba7328dc 55762008-04-02 Pavel Roskin <proski@gnu.org>
5577
26887f22 5578 * genkernsyms.sh.in: Use more robust assignments for CC and
5579 srcdir. Quote srcdir.
5580 * gensymlist.sh.in: Likewise. Assert at the compile time that
5581 the symbol table is not empty.
5582
ba7328dc 5583 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
5584 * fs/cpio.c (grub_cpio_read): Likewise.
5585
0f582c6b 55862008-04-01 Pavel Roskin <proski@gnu.org>
5587
4b6e1995 5588 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
5589 * disk/host.c (grub_host_open): Likewise.
5590 * disk/loopback.c (grub_loopback_open): Likewise.
5591 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
5592 disk->id as in disk/host.c, not a multi-character constant.
5593
828a2768 5594 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
5595 later is obsolete, potentially dangerous and sets a bad example.
5596 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
5597 * util/misc.c (grub_util_get_image_size): Likewise.
5598
2bb4fb47 5599 * disk/loopback.c (options): Improve help for "--partitions".
5600
0f582c6b 5601 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
5602 options to align them with the short options, e.g. "echo -e".
5603
a33224e0 56042008-03-31 Bean <bean123ch@gmail.com>
5605
5606 * video/reader/png.c (grub_png_data): New member is_16bit and
5607 image_data.
5608 (grub_png_decode_image_header): Detect 16 bit png image.
5609 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
5610 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
5611 (grub_video_reader_png): Release memory occupied by image_data.
5612
5613 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
5614 4096 bytes.
5615 (grub_nfs_mount): Skip the test for sector per cluster.
5616
5617 * include/grub/ntfs.h (MAX_SPC): Removed.
5618
86cb4f54 56192008-03-31 Bean <bean123ch@gmail.com>
5620
5621 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
5622 (grub_probe_SOURCES): Add fs/afs.c.
5623 (grub_fstest_SOURCES): Likewise.
5624 (afs_mod_SOURCES): New variable.
5625 (afs_mod_CFLAGS): Likewise.
5626 (afs_mod_LDFLAGS): Likewise.
5627
5628 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
5629 (grub_emu_SOURCES): Likewise.
5630
5631 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5632
5633 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5634
5635 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5636
5637 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5638
5639 * fs/afs.c: New file.
5640
17c74c21 56412008-03-30 Pavel Roskin <proski@gnu.org>
5642
4cb68e89 5643 * disk/host.c: Include grub/misc.h to fix a warning.
5644 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
5645 warnings about implicit declarations.
5646
8790bb04 5647 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
5648 variable.
5649 * include/grub/i386/loader.h: Change declaration of
5650 grub_linux_boot() to match what grub_loader_set() expects.
5651 * util/getroot.c (grub_guess_root_device): Return const char* to
5652 fix a warning.
5653 * util/grub-probe.c (probe): Fix a warning about uninitialized
5654 abstraction_name variable.
5655 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
5656 second argument as unused to fix a warning.
5657
9a3f3296 5658 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
5659 missing grub_error() call.
5660
0ecef90d 5661 * util/update-grub_lib.in: Define datarootdir, since Autoconf
5662 2.60 and newer uses it to define datadir.
5663
0bf6d401 5664 * commands/sleep.c: Fix warning about implicit declaration.
5665 * disk/memdisk.c: Likewise.
5666 * loader/aout.c: Likewise.
5667 * loader/i386/bsd_normal.c: Likewise.
5668 * util/grub-probe.c: Likewise.
5669
7cdacf97 5670 * commands/i386/cpuid.c (has_longmode): Make static.
5671 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
5672 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
5673
17c74c21 5674 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
5675 GDT. This is more robust, as %ds can change.
5676 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
5677 calling real_to_prot().
5678 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
5679
80a3e68b 56802008-03-28 Pavel Roskin <proski@gnu.org>
5681
5682 * kern/i386/pc/startup.S: Assert that uncompressed functions
5683 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
5684 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
5685 code, as they push parts of the code (error handlers) beyond
5686 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
5687 code as correctness and size.
5688
77bcd272 56892008-03-28 Pavel Roskin <proski@gnu.org>
5690
5691 * kern/i386/pc/startup.S
5692 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
5693 data block address to the real mode, keep offset minimal. This
5694 works around a bug in AWARD BIOS on old Athlon systems, which
5695 makes CD detection hang.
5696
c5dfd43b 56972008-03-26 Pavel Roskin <proski@gnu.org>
5698
5699 * normal/color.c (grub_parse_color_name_pair): Make `name' a
5700 const.
5701 * include/grub/normal.h: Add grub_parse_color_name_pair()
5702 declaration.
5703
bf962df2 57042008-03-24 Bean <bean123ch@gmail.com>
5705
5706 * disk/i386/pc/biosdisk.c (cd_start): Removed.
5707 (cd_count): Removed.
5708 (cd_drive): New variable.
5709 (grub_biosdisk_get_drive): Don't check for (cdN) device.
5710 (grub_biosdisk_call_hook): Likewise.
5711 (grub_biosdisk_iterate): Change cdrom detection method.
5712 (grub_biosdisk_open): Replace cd_start with cd_drive.
5713 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
5714 detect cdrom device.
5715
5716 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
5717 Removed.
5718 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
5719 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
5720 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
5721 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
5722 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
5723 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
5724 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
5725 (grub_biosdisk_cdrp): New structure.
5726 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
5727
5728 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
5729
5730 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
5731 device.
5732
5733 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
5734 New function.
5735
68e7fc7a 57362008-03-20 Robert Millan <rmh@aybabtu.com>
5737
5738 Remove 2 TiB limit in ata.mod.
5739 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
5740 (grub_ata_dumpinfo): Print sector count with 0x%llx.
5741 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
5742 grub_uint64_t instead of grub_uint32_t.
5743
38ad2cf5 57442008-03-05 Bean <bean123ch@gmail.com>
5745
5746 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
5747 (grub_multiboot): Set boot device.
5748
5749 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
5750
2b89344e 57512008-03-02 Bean <bean123ch@gmail.com>
5752
5753 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
5754 symlink_buffer.
5755
87a95d1f 57562008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
5757
5758 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
5759 texinfo.tex.
5760
5761 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
5762 modified.
5763
5764 * docs/fdl.texi: New file.
f19dbdb7 5765
87a95d1f 5766 * docs/mdate-sh: New file. Copied from gnulib.
5767 * docs/texinfo.tex: Likewise.
5768
5769 * config.guess: Updated from gnulib.
5770 * install-sh: Likewise.
5771
7dc15d8e 57722008-02-28 Robert Millan <rmh@aybabtu.com>
5773
5774 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
5775 (aout_mod_SOURCES): New variable.
5776 (aout_mod_CFLAGS): Likewise.
5777 (aout_mod_LDFLAGS): Likewise.
5778
5779 * conf/i386-ieee1275.rmk: Likewise.
5780
b00ab696 57812008-02-28 Robert Millan <rmh@aybabtu.com>
5782
5783 * util/update-grub.in: Reorganise terminal validity check. Accept
5784 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
5785 Based on suggestion by Franklin PIAT.
5786
79ca2d78 57872008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
5788
5789 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
5790 function.
5791 * util/getroot.c (grub_util_check_block_device): New function that
5792 returns the given argument if it is a block device and returns NULL else.
5793 * util/grub-probe.c (argument_is_device): New variable.
5794 (probe): Promote device_name from a variable to an argument. Receive
5795 device_name from grub_util_check_block_device() if path is NULL and from
5796 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 5797 (options): Introduce new parameter '-d, --device'.
79ca2d78 5798 (main): Add description of the new parameter to the help screen.
5799 Rename path variable to argument. Set argument_is_device if the '-d'
5800 option is given. Pass argument to probe() depending on
5801 argument_is_device.
5802
0d16e571 58032008-02-24 Bean <bean123ch@gmail.com>
5804
5805 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
5806 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
5807 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
5808 (GRUB_ISO9660_VOLDESC_PART): Likewise.
5809 (GRUB_ISO9660_VOLDESC_END): Likewise.
5810 (grub_iso9660_primary_voldesc): New member escape.
5811 (grub_iso9660_data): New member joliet.
5812 (grub_iso9660_convert_string): New function.
5813 (grub_iso9660_mount): Detect joliet extension.
5814 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
5815 (grub_iso9660_iso9660_label): Likewise.
5816
5817 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
5818 (grub_setup_SOURCES): Add fs/udf.c.
5819 (grub_fstest_SOURCES): Likewise.
5820 (udf_mod_SOURCES): New variable.
5821 (udf_mod_CFLAGS): Likewise.
5822 (udf_mod_LDFLAGS): Likewise.
5823
5824 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
5825 (grub_emu_SOURCES): Likewise.
5826
5827 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5828
5829 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5830
5831 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5832
5833 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5834
5835 * fs/udf.c: New file.
5836
8a594a17 58372008-02-24 Robert Millan <rmh@aybabtu.com>
5838
5839 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
5840 (normal/lexer.c_DEPENDENCIES): New variables.
5841 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5842 (normal/lexer.c_DEPENDENCIES): Likewise.
5843 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
5844 (normal/lexer.c_DEPENDENCIES): Likewise.
5845 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
5846 (normal/lexer.c_DEPENDENCIES): Likewise.
5847 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5848 (normal/lexer.c_DEPENDENCIES): Likewise.
5849 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5850 (normal/lexer.c_DEPENDENCIES): Likewise.
5851
2dc33c03 58522008-02-23 Robert Millan <rmh@aybabtu.com>
5853
5854 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
5855 since they were intended to be in hex. This didn't break previously
5856 because of a bug in gpt_partition_map_iterate() (see below).
5857
5858 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
5859 when checking the validity of GPT header.
5860 Remove `partno', since it always provides the same information as `i'.
5861
f6f4cfb0 58622008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
5863
5864 * include/grub/efi/time.h: Fix a wrong comment.
5865
79ff665f 58662008-02-19 Pavel Roskin <proski@gnu.org>
5867
5868 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
5869 message.
5870
d38e24c2 58712008-02-19 Bean <bean123ch@gmail.com>
5872
5873 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
5874 (aout_mod_SOURCES): New variable.
5875 (aout_mod_CFLAGS): Likewise.
5876 (aout_mod_LDFLAGS): Likewise.
5877 (_bsd_mod_SOURCES): New variable.
5878 (_bsd_mod_CFLAGS): Likewise.
5879 (_bsd_mod_LDFLAGS): Likewise.
5880 (bsd_mod_SOURCES): New variable.
5881 (bsd_mod_CFLAGS): Likewise.
5882 (bsd_mod_LDFLAGS): Likewise.
5883
5884 * include/grub/aout.h: New file.
5885
5886 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
5887
5888 * include/grub/i386/bsd.h: New file.
5889
5890 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
5891 to make it public.
5892
5893 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
5894 function is called, so that it's possible to change it inside the hook.
5895 (grub_elf64_load): Likewise.
5896 (grub_elf_file): Don't close the file if elf header is not found.
5897 (grub_elf_close): Close the file if grub_elf_file fails (The new
5898 grub_elf_file won't close it).
5899 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
5900 (grub_elf64_size): Likewise.
5901
5902 * kern/i386/loader.S (grub_unix_real_boot): New function.
5903
5904 * loader/aout.c: New file.
5905
5906 * loader/i386/bsd.c: New file.
5907
5908 * loader/i386/bsd_normal.c: New file.
5909
5910 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
5911
5912 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 5913 can test other formats.
d38e24c2 5914
b93bdb0f 59152008-02-19 Robert Millan <rmh@aybabtu.com>
5916
5917 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
5918 (grub_gpt_partition_type_empty): Redefine with macro from
5919 `<grub/gpt_partition.h>'.
5920 (gpt_partition_map_iterate): Adjust partition type comparison.
5921
5922 Export `entry' as partmap-specific `part.data' struct.
5923 (grub_gpt_header, grub_gpt_partentry): Move from here ...
5924
5925 * include/grub/gpt_partition.h (grub_gpt_header)
5926 (grub_gpt_partentry): ... to here (new file).
5927
5928 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
5929
5930 (grub_gpt_partition_type_bios_boot): New const variable, defined
5931 with macro from `<grub/gpt_partition.h>'.
5932
5933 (setup): Replace `first_start' with `embed_region', which keeps
5934 track of the embed region (and is partmap-agnostic).
5935
5936 Replace find_first_partition_start() with find_usable_region(),
5937 which finds a usable region for embedding using partmap-specific
5938 knowledge (supports PC/MSDOS and GPT).
5939
5940 Fix all assumptions that the embed region start at sector 1, using
5941 `embed_region.start' from now on. Similarly, use `embed_region.end'
5942 rather than `first_start' to calculate available size.
5943
5944 In grub_util_info() message, replace "into after the MBR" with an
5945 indication of the specific sector our embed region starts at.
5946
66cb40f6 59472008-02-19 Robert Millan <rmh@aybabtu.com>
5948
5949 * DISTLIST: Replace `commands/ieee1275/halt.c' and
5950 `commands/ieee1275/reboot.c' with `commands/halt.c' and
5951 `commands/reboot.c'.
5952 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5953 (halt_mod_SOURCES): Likewise.
5954 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
5955 (halt_mod_SOURCES): Likewise.
5956
b7202015 59572008-02-17 Christian Franke <franke@computer.org>
5958
5959 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
5960
32b0fc49 59612008-02-17 Robert Millan <rmh@aybabtu.com>
5962
5963 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5964 set `first_start' to 0 for non-PC/MSDOS partition maps.
5965
aca63502 59662008-02-16 Robert Millan <rmh@aybabtu.com>
5967
5968 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
5969 do not assume partition map is PC/MSDOS before performing checks that
5970 are specific to that layout.
5971
0de8be86 59722008-02-13 Robert Millan <rmh@aybabtu.com>
5973
5974 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
5975 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
5976 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
5977
c3db8364 59782008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
5979
5980 * configure.ac: Only a cosmetic change on the handling of
5981 -fno-stack-protector.
5982
f714229e 59832008-02-12 Alexandre Boeglin <alex@boeglin.org>
5984
c3db8364 5985 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
5986 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
5987 reboot.c.
f714229e 5988 (grub_install_SOURCES): Add halt.mod and reboot.mod.
5989 (halt_mod_SOURCES): New variable.
5990 (halt_mod_CFLAGS): Likewise.
5991 (halt_mod_LDFLAGS): Likewise.
5992 (reboot_mod_SOURCES): Likewise.
5993 (reboot_mod_CFLAGS): Likewise.
5994 (reboot_mod_LDFLAGS): Likewise.
5995
c3db8364 5996 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
5997 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
5998 reboot.c.
f714229e 5999 (halt_mod_SOURCES): Likewise.
6000 (reboot_mod_SOURCES): Likewise.
6001
c3db8364 6002 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
6003 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 6004 (reboot_mod_SOURCES): Likewise.
6005
6006 * commands/i386/pc/reboot.c: merge this file ...
6007
6008 * commands/ieee1275/reboot.c: ... and this file ...
6009
6010 * commands/reboot.c: ... to this file.
c3db8364 6011 Add some precompiler directive to include the correct header for
6012 each machine.
f714229e 6013
6014 * commands/ieee1275/halt.c: move this file ...
6015
6016 * commands/halt.c: ... to here.
c3db8364 6017 Add some precompiler directive to include the correct header for
6018 each machine.
f714229e 6019
6020 * include/grub/efi/efi.h (grub_reboot): New function declaration.
6021 (grub_halt): Likewise.
6022
6023 * kern/efi/efi.c (grub_reboot): New function.
6024 (grub_halt): Likewise.
6025
c74493e0 60262008-02-12 Robert Millan <rmh@aybabtu.com>
6027
6028 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
6029 /dev (like it is done for /dev/mapper). This doesn't provide support
6030 for EVMS, but at least it is now easy to identify the problem when it
6031 arises.
6032
d0db4b04 60332008-02-11 Robert Millan <rmh@aybabtu.com>
6034
6035 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
6036 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
6037 comparing it with -1, not 0.
6038
bf748642 60392008-02-10 Robert Millan <rmh@aybabtu.com>
6040
6041 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
6042 `disk/lvm.c'.
6043 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6044 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
6045
6046 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
6047 `disk/lvm.c' to the end of the list.
6048 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6049 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6050
b5db202a 60512008-02-10 Robert Millan <rmh@aybabtu.com>
6052
6053 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
6054 grub_print_error() instead. This will let user know why we're entering
6055 rescue mode.
6056 Based on suggestions from Sam Morris.
6057
83abee31 60582008-02-10 Alexandre Boeglin <alex@boeglin.org>
6059
6060 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
6061 on remaining N args, instead of "--" arg N times.
6062
78d5a08b 60632008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
6064
6065 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
6066 (fill_with_default_glyph): Changed to use unknown_glyph for fill
6067 pattern for unknown glyphs.
6068
68807e5f 60692008-02-09 Robert Millan <rmh@aybabtu.com>
6070
6071 * configure.ac: Probe for `help2man'.
6072 * Makefile.in (builddir): New variable.
6073 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
6074 or otherwise add a few flags/options to it.
6075 (install-local): For every executable utility or script that is
6076 installed, invoke $(HELP2MAN) to install a manpage based on --help
6077 output.
6078
6079 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
6080 that it doesn't prevent --help from working in build tree.
6081
6082 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
6083 with `bug-grub@gnu.org'.
6084 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
6085 * util/update-grub.in (usage): New function.
6086 Implement proper argument check, with support for --help and --version
6087 (as well as existing -y).
6088
60892008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 6090
6091 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
6092 avoid overwriting previous output.
6093 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
6094
c1962162 60952008-02-09 Robert Millan <rmh@aybabtu.com>
6096
6097 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
6098 drawing the menu.
6099
3dac2e3f 61002008-02-09 Robert Millan <rmh@aybabtu.com>
6101
6102 * commands/sleep.c: New file.
6103 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
6104 (sleep_mod_SOURCES): New variable.
6105 (sleep_mod_CFLAGS): Likewise.
6106 (sleep_mod_LDFLAGS): Likewise.
6107
7a634e08 61082008-02-09 Robert Millan <rmh@aybabtu.com>
6109
6110 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
6111 situations in which we can deduce the RAID size and the superblock
6112 doesn't match it.
6113
b92f0c18 61142008-02-09 Robert Millan <rmh@aybabtu.com>
6115
6116 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
6117 and return a grub_diskmemberlist_t composed of LVM physical volumes.
6118 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
6119
6120 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
6121 and return a grub_diskmemberlist_t composed of physical array members.
6122 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
6123
6124 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
6125 prototype.
6126 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
6127 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
6128 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
6129
6130 * util/grub-probe.c (probe): Move partmap probing code from here ...
6131 (probe_partmap): ... to here.
6132 (probe): Use probe_partmap() once for the disk we're probing, and
6133 additionally, when such disk contains a memberlist() struct member,
6134 once for each disk that is contained in the structure returned by
6135 memberlist().
6136
91a4bf68 61372008-02-09 Robert Millan <rmh@aybabtu.com>
6138
6139 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
6140 environment variable to 'all' in order to obtain debug output from
6141 non-util/ code.
6142 * util/i386/pc/grub-setup.c (main): Likewise.
6143
a96f9caa 61442008-02-08 Robert Millan <rmh@aybabtu.com>
6145
6146 * disk/raid.c (grub_raid_scan_device): Check for
6147 `array->device[sb.this_disk.number]' rather than for
6148 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 6149 guaranteed to be accessible.
a96f9caa 6150
b37a9222 61512008-02-08 Robert Millan <rmh@aybabtu.com>
6152
6153 * disk/raid.c: Update copyright.
6154 * fs/cpio.c: Likewise.
6155 * include/grub/raid.h: Likewise.
6156 * loader/i386/pc/multiboot.c: Likewise.
6157 * util/hostfs.c: Likewise.
6158
5626aee1 61592008-02-08 Robert Millan <rmh@aybabtu.com>
6160
6161 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
6162 to a grub_disk_t array.
6163 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
6164 `device[x]'.
6165 (grub_raid_scan_device): Replace `device[x].name' accesses with
6166 `device[x]->name'. Simplify initialization of `array->device[x]'.
6167
554f0187 61682008-02-08 Robert Millan <rmh@aybabtu.com>
6169
6170 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
6171 grub_dprintf() calls.
6172 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
6173 error message.
6174
1ec8425d 61752008-02-07 Christian Franke <franke@computer.org>
6176
6177 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
6178 instead of fseek and ftell to support large files.
6179 (grub_hostfs_read): Likewise.
6180
f2156fda 61812008-02-07 Robert Millan <rmh@aybabtu.com>
6182
6183 Patch from Jeroen Dekkers.
6184 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 6185 failure, since successfully reading all array members might not be
f2156fda 6186 required.
6187
9216e0e7 61882008-02-06 Robert Millan <rmh@aybabtu.com>
6189
6190 * util/grub-probe.c (probe): Simplify partmap probing (with the
6191 assumption that the first word up to the underscore equals to
6192 the module name).
6193
b0dfd29a 61942008-02-06 Christian Franke <franke@computer.org>
6195
6196 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
6197 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
6198 last block of a cpio or tar stream.
6199 Check for "TRAILER!!!" instead of any empty data
6200 block to detect last block of a cpio stream.
6201 (grub_cpio_dir): Fix constness of variable np.
6202 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
6203 cpio or tar trailer is detected. This fixes a crash
6204 on open of a non existing file.
6205
c32865bf 62062008-02-05 Bean <bean123ch@gmail.com>
6207
6208 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
6209 address of entry.
6210 (grub_multiboot_load_elf64): Likewise.
6211 (grub_multiboot): Initialize mbi structure.
6212
6213 * util/grub-fstest.c: Don't include unused header file script.h.
6214
fe6b695a 6215 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 6216 of file.
6217 (grub_fstest_SOURCES): Likewise.
6218
409480b7 62192008-02-05 Robert Millan <rmh@aybabtu.com>
6220
6221 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
6222 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
6223 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
6224 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
6225
6226 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
6227 (translation_table): Replace hardcoded values with macros
6228 provided by `<grub/term.h>'.
6229
6230 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
6231 (keyboard_map): Correct/add a few values, with macros provided
6232 by `<grub/term.h>'.
6233 (keyboard_map_shift): Zero values that don't differ from their
6234 `keyboard_map' equivalents.
6235 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
6236 Discard the second scan code that is always sent by Caps lock.
6237 Only use `keyboard_map_shift' when it provides a non-zero value,
6238 otherwise fallback to `keyboard_map'.
6239
99fadbaa 62402008-02-04 Bean <bean123ch@gmail.com>
6241
6242 * Makefile.in (enable_grub_fstest): New variable.
6243
6244 * conf/common.rmk (grub_fstest_init.lst): New rule.
6245 (grub_fstest_init.h): Likewise.
6246 (grub_fstest_init.c): Likewise.
6247 (util/grub-fstest.c_DEPENDENCIES): New variable.
6248 (grub_fstest_SOURCES): Likewise.
6249
6250 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
6251
6252 * util/grub-fstest.c: New file.
6253
bf567c50 62542008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6255
6256 Make grub-setup handle a separate root device.
f19dbdb7 6257
bf567c50 6258 * util/i386/pc/grub-setup.c (setup): Always open the root device,
6259 so that the root device can be compared with the destination
6260 device.
6261 When embedding the core image, if the root and destination devices
6262 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
6263 0xFF.
6264 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 6265
9be6b98b 62662008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6267
6268 Add support for having a grub directory in a different drive. This
6269 is still only the data handling part.
f19dbdb7 6270
9be6b98b 6271 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
6272 (codestart): Save %dh in GRUB_ROOT_DRIVE.
6273 (grub_root_drive): New variable.
6274
6275 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
6276 instead of GRUB_BOOT_DRIVE to construct a device name. Set
6277 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
6278 as it was.
6279
6280 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
6281
6282 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
6283 macro.
6284 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
6285
6286 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
6287 is bogus, because PXE booting does not specify any drive
6288 correctly.
6289
6290 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
6291 am not sure if this is really correct.
6292
6293 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
6294 is always identical to the boot drive when booting from a CD.
6295
6296 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
6297 longer.
6298 (root_drive): New variable.
6299 (real_start): Unconditionally set %dh to ROOT_DRIVE.
6300 (setup_sectors): Push %dx right after popping it, because %dh will
6301 be modified later.
6302 (copy_buffer): Restore %dx.
6303
e0ca0677 63042008-02-03 Robert Millan <rmh@aybabtu.com>
6305
6306 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
6307 use `cdboot.img' for cdrom images.
6308
3b3f6629 63092008-02-03 Robert Millan <rmh@aybabtu.com>
6310
6311 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
6312 only setup gfxterm when `font' command has succeeded.
6313
d42b3672 63142008-02-03 Robert Millan <rmh@aybabtu.com>
6315
6316 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
6317 (grub_rescue_cmd_multiboot_loader)
6318 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
6319
fa370ea6 63202008-02-03 Pavel Roskin <proski@gnu.org>
6321
e0c5dacb 6322 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 6323 %edx and %esi from stack only after grub_gate_a20() is called.
6324 grub_gate_a20() clobbers %edx.
6325
f2a76e1d 63262008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6327
6328 * configure.ac (AC_INIT): Bumped to 1.96.
6329
6330 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
6331 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
6332 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
6333 video/readers/png.c.
6334
90fd32d1 63352008-02-03 Bean <bean123ch@gmail.com>
9be665dd 6336
6337 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
6338 (cdboot_img_SOURCES): New variable.
6339 (cdboot_img_ASFLAGS): New variable.
6340 (cdboot_img_LDFLAGS): New variable.
6341
6342 * boot/i386/pc/cdboot.S: New file.
6343
6344 * disk/i386/pc/biosdisk.c (cd_start): New variable.
6345 (cd_count): Likewise.
6346 (grub_biosdisk_get_drive): Add support for cd device.
6347 (grub_biosdisk_call_hook): Likewise.
6348 (grub_biosdisk_iterate): Likewise.
6349 (grub_biosdisk_open): Likewise.
6350 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
6351 (grub_biosdisk_rw): Support reading from cd device.
6352 (GRUB_MOD_INIT): Iterate cd devices.
6353
6354 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
6355 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
6356 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
6357
6358 * kern/i386/pc/init.c (make_install_device): Check for cd device.
6359
4020aa53 63602008-02-02 Robert Millan <rmh@aybabtu.com>
6361
6362 * commands/read.c: New file.
6363 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
6364 (read_mod_SOURCES): New variable.
6365 (read_mod_CFLAGS): Likewise.
6366 (read_mod_LDFLAGS): Likewise.
6367
e03a1132 63682008-02-02 Robert Millan <rmh@aybabtu.com>
6369
6370 * normal/main.c (grub_normal_execute): Check for `menu->size' when
6371 determining whether menu has to be displayed.
6372
58c69220 63732008-02-02 Marco Gerards <marco@gnu.org>
6374
6375 * bus/pci.c: New file.
6376
6377 * include/grub/pci.h: Likewise.
6378
6379 * include/grub/i386/pc/pci.h: Likewise.
6380
6381 * commands/lspci.c: Likewise.
6382
6383 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
6384 `lspci.mod'.
6385 (pci_mod_SOURCES): New variable.
6386 (pci_mod_CFLAGS): Likewise.
6387 (pci_mod_LDFLAGS): Likewise.
6388 (lspci_mod_SOURCES): Likewise.
6389 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 6390 (lspci_mod_LDFLAGS): Likewise.
58c69220 6391
c004e1b4 63922008-02-02 Bean <bean123ch@gmail.com>
6393
6394 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
6395 (grub_ufs_get_file_block): Fix indirect block calculation problem.
6396
6397 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
6398 (grub_xfs_btree_node): New structure.
6399 (grub_xfs_btree_root): New structure.
6400 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
6401 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
6402 (GRUB_XFS_EXTENT_BLOCK): Likewise.
6403 (GRUB_XFS_EXTENT_SIZE): Likewise.
6404 (grub_xfs_read_block): Support btree format type.
6405 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
6406 Use directory block as basic unit.
6407
6408 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
6409
6410 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
6411 __attribute__ ((__regparm__ (1))).
6412
f95562bf 64132008-02-01 Robert Millan <rmh@aybabtu.com>
6414
6415 Correct a mistake in previous commit.
6416
6417 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
6418 top.
6419 (normal/command.c_DEPENDENCIES): New variable.
6420
7d31f41f 64212008-02-01 Robert Millan <rmh@aybabtu.com>
6422
6423 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
6424 top.
6425 (normal/command.c_DEPENDENCIES): New variable.
6426 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
6427 * conf/i386-ieee1275.rmk: Likewise.
6428 * conf/i386-linuxbios.rmk: Likewise.
6429 * conf/i386-pc.rmk: Likewise.
6430 * conf/sparc64-ieee1275.rmk: Likewise.
6431 * conf/powerpc-ieee1275.rmk: Likewise.
6432 (grub_emu_SOURCES): Add `fs/fshelp.c'.
6433
6434 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
6435
60b6be74 64362008-02-01 Robert Millan <rmh@aybabtu.com>
6437
6438 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
6439 call at beginning of function.
6440
078522ab 64412008-01-31 Pavel Roskin <proski@gnu.org>
6442
6443 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 6444 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
6445 (grub_mkrescue_SOURCES): Likewise.
078522ab 6446 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
6447
ccaa8a5f 64482008-01-30 Robert Millan <rmh@aybabtu.com>
6449
6450 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
6451 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
6452 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
6453 (grub_probe_SOURCES): ... to here.
6454
6455 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
6456 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
6457 * conf/i386-ieee1275.rmk: Likewise.
6458 * conf/i386-linuxbios.rmk: Likewise.
6459 * conf/powerpc-ieee1275.rmk: Likewise.
6460
ae5a9cd7 64612008-01-30 Tristan Gingold <gingold@free.fr>
6462
6463 * kern/rescue.c: Silently accept empty lines.
6464
70bc2ef2 64652008-01-29 Bean <bean123ch@gmail.com>
6466
6467 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
6468 (real_code_2): Code cleanup and change comment style.
6469 (move_memory): Avoid using 32-bit address mode.
6470
6a4d50ea 64712008-01-29 Bean <bean123ch@gmail.com>
6472
6473 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
6474 (png_mod_SOURCES): New variable.
6475 (png_mod_CFLAGS): Likewise.
6476 (png_mod_LDFLAGS): Likewise.
6477
6478 * video/readers/png.c: New file.
6479
11cc30ac 64802008-01-28 Robert Millan <rmh@aybabtu.com>
6481
6482 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
6483 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
6484 `ifndef GRUB_MOD_GAP' hack.
6485 * util/elf/grub-mkimage.c (add_segments): Likewise.
6486
3abc589f 64872008-01-27 Robert Millan <rmh@aybabtu.com>
6488
6489 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
6490 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 6491 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 6492
e1907778 64932008-01-27 Robert Millan <rmh@aybabtu.com>
6494
6495 Get grub-emu to build again (including parallel builds).
6496
6497 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
6498 Split into ...
6499 (util/grub-emu.c_DEPENDENCIES): ... this, ...
6500 (normal/execute.c_DEPENDENCIES): ... this, ...
6501 (grub-emu_DEPENDENCIES): ... and this.
6502
6503 * conf/i386-efi.rmk: Likewise.
6504 * conf/i386-linuxbios.rmk: Likewise.
6505 * conf/i386-ieee1275.rmk: Likewise.
6506 * conf/powerpc-ieee1275.rmk: Likewise.
6507 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
6508
2216b101 65092008-01-27 Robert Millan <rmh@aybabtu.com>
6510
6511 * NEWS: Add a few items.
6512
f75172d9 65132008-01-27 Robert Millan <rmh@aybabtu.com>
6514
6515 Fix parallel builds with grub-emu. Based on earlier commit for
6516 grub-probe and grub-setup.
6517
6518 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6519 (util/grub-emu.c_DEPENDENCIES): ... this.
6520 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6521 (util/grub-emu.c_DEPENDENCIES): ... this.
6522 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6523 (util/grub-emu.c_DEPENDENCIES): ... this.
6524 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6525 (util/grub-emu.c_DEPENDENCIES): ... this.
6526 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6527 (util/grub-emu.c_DEPENDENCIES): ... this.
6528
3f51de77 65292008-01-27 Pavel Roskin <proski@gnu.org>
6530
6531 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
6532 to create a gap between _end and the modules added to the image
6533 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
6534 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
6535 * util/elf/grub-mkimage.c (add_segments): Likewise.
6536
2033f53e 65372008-01-26 Pavel Roskin <proski@gnu.org>
6538
6539 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
6540 just return an error.
6541
22da1f6f 65422008-01-26 Bean <bean123ch@gmail.com>
6543
6544 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
6545 (grub_reiserfs_get_item): Save offset of the next item.
6546 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
6547
2a9525e6 65482008-01-25 Robert Millan <rmh@aybabtu.com>
6549
6550 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
6551 make all filesystem sources appear together (possibly fixing omissions
6552 while at it).
6553 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6554 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6555 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6556 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6557
6558 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
6559 add `kern/file.c'.
6560 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
6561 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6562 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
6563 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6564
6565 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
6566 (probe): Add a sanity check to make sure of our ability to read
6567 requested files when probing for filesystem type.
6568
6569 * genmk.rb: Update copyright year (2007).
6570
6571 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
6572 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
6573 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
6574 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
6575 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
6576 : Remove function prototypes.
6577
b95f71b5 65782008-01-25 Robert Millan <rmh@aybabtu.com>
6579
6580 Revert my previous commits (based on wrong assumption of how grub_errno
6581 works).
6582
fe6b695a 6583 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 6584 * kern/file.c (grub_file_open): Likewise.
6585
d08bbb49 65862008-01-24 Pavel Roskin <proski@gnu.org>
6587
6588 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
6589 that hang if GRUB tries to setup colors.
6590 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
6591 colors for firmwares that don't support it.
6592 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
6593 Recognize Open Hack'Ware, set flags to work around its
6594 limitations.
6595
605e36ed 65962008-01-24 Robert Millan <rmh@aybabtu.com>
6597
6598 * kern/file.c (grub_file_open): Do not account previous failures of
6599 unrelated functions when grub_errno is checked for.
6600 Reported by Oleg Strikov.
6601
bac332a1 66022008-01-24 Bean <bean123ch@gmail.com>
6603
6604 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
6605 (grub_ufs_sblock): New member volume name.
6606 (grub_ufs_find_file): Fix string copy bug.
6607 (grub_ufs_label): Implement this function properly.
6608
6609 * fs/hfs.c (grub_hfs_cnid_type): New enum.
6610 (grub_hfs_iterate_records): Use the correct file number for extents
6611 and catalog file. Fix problem in next index calculation.
6612 (grub_hfs_find_node): Replace recursive function call with loop.
6613 (grub_hfs_iterate_dir): Replace recursive function call with loop.
6614
15c80c09 66152008-01-23 Robert Millan <rmh@aybabtu.com>
6616
6617 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
6618 `<grub/symbol.h>' and `<grub/multiboot.h>'.
6619 (grub_multiboot2_real_boot): New function prototype.
6620
6621 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
6622 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
6623
6624 * kern/i386/ieee1275/init.c (grub_os_area_addr)
6625 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
6626
305338fd 66272008-01-23 Robert Millan <rmh@aybabtu.com>
6628
6629 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
6630 #ifdef'ed out grub_printf().
6631
3ea52685 66322008-01-23 Robert Millan <rmh@aybabtu.com>
6633
6634 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
6635 grub_dprintf calls, since they make "debug=all" mode unusable.
6636 (grub_console_checkkey): Likewise.
6637
5882ae4b 66382008-01-23 Robert Millan <rmh@aybabtu.com>
6639
6640 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
6641 `term/i386/pc/at_keyboard.c'.
6642 (pkglib_MODULES): Add `serial.mod'.
6643 (serial_mod_SOURCES): New variable.
6644 (serial_mod_CFLAGS): Likewise.
6645 (serial_mod_LDFLAGS): Likewise.
6646
6647 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
6648 `<grub/powerpc/ieee1275/console.h>'.
6649 (grub_keyboard_controller_init): New function prototype.
6650 (grub_console_checkkey): Likewise.
6651 (grub_console_getkey): Likewise.
6652
6653 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
6654 keyboard on i386.
6655
6656 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
6657 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
6658
06ab5303 66592008-01-23 Robert Millan <rmh@aybabtu.com>
6660
6661 * kern/i386/pc/init.c (make_install_device): When memdisk image is
6662 present, "(memdisk)/boot/grub" becomes the default prefix.
6663
6664 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
6665 a memdisk tarball with all the modules. Add --overlay=DIR option that
6666 allows users to overlay additional files into the image.
6667
dbb475a4 66682008-01-23 Robert Millan <rmh@aybabtu.com>
6669
6670 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
6671 and `machine/memory.h'.
6672 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
6673 (_multiboot_mod_SOURCES): New variable.
6674 (_multiboot_mod_CFLAGS): Likewise.
6675 (_multiboot_mod_LDFLAGS): Likewise.
6676 (multiboot_mod_SOURCES): Likewise.
6677 (multiboot_mod_CFLAGS): Likewise.
6678 (multiboot_mod_LDFLAGS): Likewise.
6679
6680 * include/grub/i386/ieee1275/loader.h: New file.
6681
6682 * include/grub/i386/ieee1275/machine.h: Likewise.
6683
6684 * include/grub/i386/ieee1275/memory.h: Likewise.
6685
6686 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
6687 variable declaration.
6688 (grub_os_area_size): Likewise.
6689
6690 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
6691 (grub_lower_mem, grub_upper_mem): New variables.
6692 (grub_stop_floppy): New function (just to make
6693 grub_multiboot2_real_boot() happy).
6694
6695 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
6696 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
6697 (grub_stop): New function.
6698 Include `"../realmode.S"' and `"../loader.S"'.
6699
6700 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
6701 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
6702
6703 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
6704 rely on grub_multiboot2_real_boot() for final boot.
6705
25638629 67062008-01-22 Robert Millan <rmh@aybabtu.com>
6707
6708 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
6709 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
6710 device that doesn't look like an SD card.
6711 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6712 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
6713 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
6714 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
6715 found.
6716
9dad816d 67172008-01-22 Robert Millan <rmh@aybabtu.com>
6718
6719 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
6720 avoid claiming over our own code.
6721
34842f2d 67222008-01-22 Bean <bean123ch@gmail.com>
6723
6724 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
6725 (jpeg_mod_SOURCES): New variable.
6726 (jpeg_mod_CFLAGS): Likewise.
6727 (jpeg_mod_LDFLAGS): Likewise.
6728
6729 * video/readers/jpeg.c : New file.
6730
44023a28 67312008-01-22 Bean <bean123ch@gmail.com>
6732
6733 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
6734 there are no more items.
6735
bc2d8ac6 67362008-01-21 Robert Millan <rmh@aybabtu.com>
6737
6738 * kern/mm.c (grub_mm_init_region): Improve debug message.
6739
261bd4bc 67402008-01-21 Robert Millan <rmh@aybabtu.com>
6741
6742 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
6743 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
6744 address.
6745 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
6746 a C macro.
6747 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
6748 Indicates start of upper memory.
6749 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
6750 (generate_image): Abort when image size is big enough to corrupt
6751 upper memory.
6752
6753 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
6754 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
6755 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6756 instead of hardcoding 0xA0000.
6757 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
6758 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6759 instead of hardcoding 0xA0000.
6760
f970b55e 67612008-01-21 Robert Millan <rmh@aybabtu.com>
6762
6763 * disk/memdisk.c (memdisk_size): New variable.
6764 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
6765 `memdisk_size'.
6766 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
6767 image to dynamic memory.
6768 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
6769 `memdisk_size'. Free memdisk block.
6770
1a8b0526 67712008-01-21 Robert Millan <rmh@aybabtu.com>
6772
6773 Fix detection of very small filesystems (like tar).
6774
6775 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
6776 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
6777 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
6778 a problem with this disk).
6779
6e9b4aab 67802008-01-21 Robert Millan <rmh@aybabtu.com>
6781
6782 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
6783 on grub_biosdisk_rw_standard() error.
6784
0d8837b2 67852008-01-21 Robert Millan <rmh@aybabtu.com>
6786
6787 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
6788 recent changes.
6789 * kern/elf.c: Likewise.
6790 * kern/ieee1275/ieee1275.c: Likewise.
6791 * kern/powerpc/ieee1275/openfw.c: Likewise.
6792 * term/ieee1275/ofconsole.c: Likewise.
6793
ffd36e34 67942008-01-21 Robert Millan <rmh@aybabtu.com>
6795
6796 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
6797
3f0093d0 6798 * include/grub/kernel.h (grub_arch_memdisk_addr)
6799 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 6800
3f0093d0 6801 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
6802 (grub_arch_memdisk_size): ... to here.
ffd36e34 6803
6c391b21 68042008-01-21 Robert Millan <rmh@aybabtu.com>
6805
6806 Mostly based on bugfix from Bean.
6807
6808 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
6809 attribute with hook() parameter.
6810 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
6811 declaration.
6812 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
6813 attribute with hook() parameter.
6814 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
6815 declaration.
6816
55a581dc 68172008-01-21 Robert Millan <rmh@aybabtu.com>
6818
6819 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
6820 (pkglib_MODULES): Add `memdisk.mod'.
6821 (memdisk_mod_SOURCES): New variable.
6822 (memdisk_mod_CFLAGS): Likewise.
6823 (memdisk_mod_LDFLAGS): Likewise.
6824
6825 * disk/memdisk.c: New file.
6826
6827 * include/grub/disk.h (grub_disk_dev_id): Add
6828 `GRUB_DISK_DEVICE_MEMDISK_ID'.
6829
6830 * include/grub/i386/pc/kernel.h
6831 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
6832 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
6833 (grub_kernel_image_size): New variable declaration.
6834 (grub_total_module_size): Likewise.
6835 (grub_memdisk_image_size): Likewise.
6836
6837 * include/grub/i386/pc/memory.h
6838 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
6839
6840 * include/grub/kernel.h: Include `<grub/symbol.h>'.
6841 (grub_arch_memdisk_addr): New variable declaration.
6842 (grub_arch_memdisk_size): Likewise.
6843
6844 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
6845 (grub_arch_memdisk_size): Likewise.
6846
6847 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
6848 (codestart): Replace hardcoded `0x100000' with
6849 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
6850
6851 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
6852 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
6853 not NULL, append the contents of the file it refers to, at the end of
6854 the compressed kernel image. Initialize `grub_memdisk_image_size'
6855 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
6856 (options): Add "memdisk"|'m' option.
6857 (main): Parse --memdisk|-m option, and pass user-provided path as
6858 parameter to generate_image().
6859
3d7f54c9 68602008-01-20 Robert Millan <rmh@aybabtu.com>
6861
6862 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
6863 grub_dprintf() calls from here ...
6864 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
6865
0bf74728 68662008-01-20 Robert Millan <rmh@aybabtu.com>
6867
6868 Fix detection of "real mode" when /options/real-mode? doesn't exist.
6869
6870 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
6871 declaration.
6872 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
6873 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
6874 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 6875 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 6876 property).
6877 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
6878 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
6879
33bf70a7 68802008-01-19 Robert Millan <rmh@aybabtu.com>
6881
fe6b695a 6882 Get rid of confusing function (superseded by
33bf70a7 6883 `grub_ieee1275_get_integer_property')
6884 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
6885 prototype.
6886 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
6887 function.
6888 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
6889 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 6890 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 6891
e2da7d26 68922008-01-19 Robert Millan <rmh@aybabtu.com>
6893
6894 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
6895 command after "shut-down", since implementations differ on which
6896 the command for halt is.
6897
59f1fd8d 68982008-01-19 Robert Millan <rmh@aybabtu.com>
6899
6900 * include/grub/i386/linuxbios/console.h: Add header protection.
6901 (grub_keyboard_controller_init): New function prototype.
6902 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
6903 (KEYBOARD_COMMAND_READ): Likewise.
6904 (KEYBOARD_COMMAND_WRITE): Likewise.
6905 (KEYBOARD_SCANCODE_SET1): Likewise.
6906 (grub_keyboard_controller_write): New function.
6907 (grub_keyboard_controller_read): Likewise.
6908 (grub_keyboard_controller_init): Likewise.
6909
6910 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
6911 (grub_console_init): On coreboot/LinuxBIOS, call
6912 grub_keyboard_controller_init().
6913
5f5a7c15 69142008-01-19 Robert Millan <rmh@aybabtu.com>
6915
6916 PowerPC changes provided by Pavel Roskin.
6917
6918 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
6919 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
6920 don't rely on cmain() doing it.
6921 * kern/i386/ieee1275/startup.S (_start): Store %eax in
6922 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
6923
1210e168 69242008-01-16 Robert Millan <rmh@aybabtu.com>
6925
6926 * include/grub/i386/linuxbios/memory.h
6927 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
6928 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
6929 receive `table_header' as argument. Instead, probe for it in the
6930 known memory ranges where it can be present.
6931 (grub_available_iterate): Do not pass a fixed `table_header' address
6932 to grub_linuxbios_table_iterate().
6933
3d04eab8 69342008-01-15 Robert Millan <rmh@aybabtu.com>
6935
6936 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
6937 * conf/i386-ieee1275.rmk: New file.
6938 * include/grub/i386/ieee1275/console.h: Likewise.
6939 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
6940 * include/grub/i386/ieee1275/kernel.h: Likewise.
6941 * include/grub/i386/ieee1275/time.h: Likewise.
6942 * kern/i386/ieee1275/init.c: Likewise.
6943 * kern/i386/ieee1275/startup.S: Likewise.
6944
d1bc1b73 69452008-01-15 Robert Millan <rmh@aybabtu.com>
6946
6947 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
6948 when pointers are 32-bit (but still do set it to one when they are
6949 64-bit).
6950
66a65807 69512008-01-15 Robert Millan <rmh@aybabtu.com>
6952
6953 * include/grub/ieee1275/ieee1275.h
6954 (grub_ieee1275_get_integer_property): New function prototype.
6955
6956 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
6957 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 6958 grub_ieee1275_get_property() to handle endianness.
66a65807 6959
6960 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
6961 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 6962 where appropriate.
66a65807 6963 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
6964 (grub_map): Likewise.
6965 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
6966
a83ccafd 69672008-01-15 Bean <bean123ch@gmail.com>
6968
6969 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
6970 (grub_script_execute_cmdline): Reset grub_errno.
6971
6972 * normal/main.c (read_config_file): Reset grub_errno.
6973
6974 * normal/parse.y (script_init): New.
6975 (script): Move function and menuentry here.
6976 (delimiter): New.
6977 (command): Add delimiter at the end of command.
6978 (commands): Adjust to match the new command.
6979 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 6980 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 6981 (if): Use the new commands.
6982
6983 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
6984
df6ecfc6 69852008-01-15 Robert Millan <rmh@aybabtu.com>
6986
6987 * normal/menu.c (run_menu): Move timeout message from here ...
6988 (print_timeout): ... to here.
6989 (run_menu): Use print_timeout() once during initial draw to print
6990 the whole message, and again in every clock tick to update only
6991 the number of seconds.
6992
87ae25eb 69932008-01-15 Robert Millan <rmh@aybabtu.com>
6994
6995 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
6996 actual size of `available' from grub_ieee1275_get_property(), and
6997 restrict parsing to that bound.
6998
47bf09a4 69992008-01-15 Christian Franke <franke@computer.org>
7000
7001 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
7002 (argp_program_version): Remove variable.
7003 (argp_program_bug_address): Likewise.
7004 (options): Convert from struct argp_option to struct option.
7005 (struct arguments): Remove.
7006 (parse_opt): Remove.
7007 (usage): New function.
7008 (main): Replace struct args members by simple variables.
7009 Replace argp_parse() by getopt_long().
7010 Add switch to evaluate options.
7011 Add missing "(...)" around root_dev in prefix string.
7012
c86f1469 70132008-01-14 Robert Millan <rmh@aybabtu.com>
7014
7015 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
7016 for grub_ieee1275_exit(), in order to improve portability.
7017
e622c559 70182008-01-14 Robert Millan <rmh@aybabtu.com>
7019
7020 * util/grub.d/10_linux.in (prefix): Define.
7021 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
7022
44cb1ec8 70232008-01-13 Pavel Roskin <proski@gnu.org>
7024
7025 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
7026 grub_errno if no errors have been detected.
7027
1eb8c802 70282008-01-12 Robert Millan <rmh@aybabtu.com>
7029
7030 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
7031 (grub_util_get_dev_abstraction): New function prototype.
7032
7033 * util/getroot.c: Include `<grub/util/getroot.h>'
7034 (grub_util_get_grub_dev): Move detection of abstraction type to ...
7035 (grub_util_get_dev_abstraction): ... here (new function).
7036
7037 * util/grub-probe.c: Convert PRINT_* to an enum. Add
7038 `PRINT_ABSTRACTION'.
7039 (probe): Probe for abstraction type when requested.
7040 (main): Understand `--target=abstraction'.
7041
7042 * util/i386/efi/grub-install.in: Add abstraction module to core
7043 image when it is found to be necessary.
7044 * util/i386/pc/grub-install.in: Likewise.
7045 * util/powerpc/ieee1275/grub-install.in: Likewise.
7046
7047 * util/update-grub_lib.in (font_path): Return system path without
7048 converting to GRUB path.
7049 * util/update-grub.in: Convert system path returned by font_path()
7050 to a GRUB path. Use `grub-probe -t abstraction' to determine what
7051 abstraction module is needed for loading fonts (if any). Export
7052 that as `GRUB_PRELOAD_MODULES'.
7053 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
7054 insmod commands).
7055
52bd3de9 70562008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
7057
7058 Remove some unused code from reiserfs.
f19dbdb7 7059
52bd3de9 7060 * fs/reiserfs.c (struct grub_reiserfs_key)
7061 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
7062 (struct grub_reiserfs_node_body): Removed.
7063 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
7064 Likewise.
7065 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7066 Likewise.
7067 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7068 Likewise.
7069 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7070 Likewise.
7071 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
7072 Likewise.
7073 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
7074 Likewise.
7075 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7076 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7077 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7078
2f80039d 70792008-01-10 Robert Millan <rmh@aybabtu.com>
7080
7081 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
7082 Determines if a file is garbage left by packaging systems, etc.
7083 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
7084 for processing /etc/grub.d scripts.
7085 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
7086 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
7087 as a condition for processing Linux images.
7088
87888032 70892008-01-10 Pavel Roskin <proski@gnu.org>
7090
7091 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
7092 to compile reiserfs.c on PowerPC.
7093
7e54fced 70942008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 7095
7096 * kern/device.c (grub_device_iterate): Do not abort device iteration
7097 when one of the devices cannot be opened.
7098 * kern/disk.c (grub_disk_open): Do not account previous failures of
7099 unrelated functions when grub_errno is checked for.
7100
5aa541e6 71012008-01-08 Robert Millan <rmh@aybabtu.com>
7102
7103 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
7104 `! grub_linux_is_bzimage', change order of address comparison to make
7105 it more intuitive, and improve "too big zImage" error message.
7106
7076340d 71072008-01-08 Robert Millan <rmh@aybabtu.com>
7108
7109 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
7110 `$(update-grub_DATA)'.
7111 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
7112 targets.
7113
9ca70333 71142008-01-07 Robert Millan <rmh@aybabtu.com>
7115
7116 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
7117 which instruction is modified by grub-setup during installation
7118 (since it wasn't obvious by only looking at this file).
7119
38ccf575 71202008-01-07 Robert Millan <rmh@aybabtu.com>
7121
7122 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
7123 listing actual TODO items.
7124
f5db4291 71252008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7126
868967cf 7127 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
7128 correctly.
7129 (grub_reiserfs_get_key_offset): Likewise.
7130 (grub_reiserfs_set_key_offset): Likewise.
7131 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 7132 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 7133
7134 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
7135 better to remove the bitfield version completely.
f19dbdb7 7136
868967cf 71372008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7138
f5db4291 7139 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
7140 allocated from the heap, due to the fshelp implementation.
7141 (grub_reiserfs_dir): Free NODE, due to the same reason.
7142
492e6d9d 71432008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7144
7145 Mostly from Vincent Pelletier:
f19dbdb7 7146
492e6d9d 7147 * fs/reiserfs.c: New file.
f19dbdb7 7148
492e6d9d 7149 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
7150 (reiserfs_mod_SOURCES): New variable.
7151 (reiserfs_mod_CFLAGS): Likewise.
7152 (reiserfs_mod_LDFLAGS): Likewise.
7153
7154 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
7155 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
7156 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
7157 normal/color.c.
7158
9ce3e7c1 71592008-01-06 Robert Millan <rmh@aybabtu.com>
7160
7161 * normal/color.c: Remove `<grub/env.h>'.
7162
f3b58148 71632008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
7164
7165 * include/grub/normal.h: Include <grub/env.h>.
7166
7ac3bcfa 71672008-01-05 Robert Millan <rmh@aybabtu.com>
7168
7169 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
7170 usage example with `(hd0,1)'.
fb358190 7171 Reported by Samuel Thibault.
7ac3bcfa 7172
c8ee99d7 71732008-01-05 Robert Millan <rmh@aybabtu.com>
7174
7175 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
7176 (grub_linux_boot_zimage): Rename to ...
7177 (grub_linux_boot): ... this.
7178 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
7179 (grub_linux_boot_zimage): Conditionalize zImage copy.
7180
7181 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
7182 (grub_linux_boot_bzimage): Remove prototype.
7183 (grub_linux_boot_zimage): Rename to ...
7184 (grub_linux_boot): ... this.
7185
7186 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
7187 (grub_linux_boot): Remove function.
7188
0ece25b1 71892008-01-05 Robert Millan <rmh@aybabtu.com>
7190
7191 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
7192 (grub_env_write_color_highlight): Likewise.
7193 (grub_wait_after_message): Likewise.
7194
7195 * normal/color.c: New file.
7196
7197 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7198 (normal_mod_DEPENDENCIES): Likewise.
7199
7200 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7201 (normal_mod_DEPENDENCIES): Likewise.
7202
7203 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7204 (normal_mod_DEPENDENCIES): Likewise.
7205
7206 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7207 (normal_mod_DEPENDENCIES): Likewise.
7208
7209 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
7210 for waiting after a message is printed.
7211 * normal/main.c (read_config_file): Likewise.
7212 (grub_normal_init): Register grub_env_write_color_normal() and
7213 grub_env_write_color_highlight() hooks. Mark `color_normal' and
7214 `color_highlight' variables as global.
7215
7216 * normal/menu.c (grub_wait_after_message): New function.
7217 (grub_color_menu_normal): New variable. Replaces ...
7218 (GRUB_COLOR_MENU_NORMAL): ... this macro.
7219 (grub_color_menu_highlight): New variable. Replaces ...
7220 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
7221 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
7222 `GRUB_TERM_COLOR_STANDARD'.
7223 (print_message): Use `grub_setcolorstate' to reload colors. Rename
7224 `normal_code' and `highlight_code' to `old_color_normal' and
7225 `old_color_highlight', respectively.
7226 (grub_menu_init_page): Update colors when drawing the menu, based on
7227 `menu_color_normal' and `menu_color_highlight' variables.
7228 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
7229 a message is printed.
7230
182dd4e5 72312008-01-05 Robert Millan <rmh@aybabtu.com>
7232
7233 * kern/env.c (grub_env_context_open): Propagate hooks for global
7234 variables to new context.
7235
7236 * kern/main.c (grub_set_root_dev): Export `root' variable.
7237
ddf8f6ad 72382008-01-05 Robert Millan <rmh@aybabtu.com>
7239
7240 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 7241 discs unconditionally, since udev and others have options to provide
ddf8f6ad 7242 them.
7243
d8b43d9b 72442008-01-05 Robert Millan <rmh@aybabtu.com>
7245
7246 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
7247
2bff2de3 72482008-01-04 Christian Franke <franke@computer.org>
7249
7250 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
7251 of eisa_mmap.
7252
97eab917 72532008-01-03 Pavel Roskin <proski@gnu.org>
7254
7255 * kern/i386/linuxbios/init.c: Put "void" to all function
7256 declarations with no arguments.
7257 * kern/powerpc/ieee1275/init.c: Likewise.
7258 * term/i386/pc/at_keyboard.c: Likewise.
7259 * term/i386/pc/vga_text.c: Likewise.
7260 * util/grub-mkdevicemap.c: Likewise.
7261
b9416d00 72622008-01-02 Robert Millan <rmh@aybabtu.com>
7263
7264 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
7265 message when loaded image is out of bounds.
7266 (grub_multiboot_load_elf64): Likewise.
7267
92695df9 72682008-01-02 Pavel Roskin <proski@gnu.org>
7269
7270 * util/grub.d/10_linux.in: Try version without ".old" when
7271 looking for initrd. It's better to use initrd from the newer
7272 kernel of the same version than no initrd at all.
7273
d98d9cad 72742008-01-01 Robert Millan <rmh@aybabtu.com>
7275
7276 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
7277
dbfdce36 72782008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
7279
f19dbdb7 7280 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 7281 grub_video_get_active_render_target.
7282 (grub_video_adapter): Added unmap_color and get_active_render_target.
7283
f19dbdb7 7284 * video/video.c: Added grub_video_unmap_color and
dbfdce36 7285 grub_video_get_active_render_target.
7286 (grub_video_get_info): Changed method to accept NULL pointer as an
7287 argument to allow detection of active video adapter.
7288
7289 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
7290 grub_video_vbe_unmap_color_int.
7291 Added grub_video_vbe_unmap_color and
7292 grub_video_vbe_get_active_render_target.
7293 (grub_video_vbe_adapter): Added unmap_color and
7294 get_active_render_target.
7295
f19dbdb7 7296 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 7297 with grub_video_vbe_unmap_color_int.
7298
7299 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
7300 (DEFAULT_NORMAL_COLOR): Likewise.
7301 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
7302 (DEFAULT_FG_COLOR): Removed.
7303 (DEFAULT_BG_COLOR): Likewise.
7304 (DEFAULT_CURSOR_COLOR): Changed value.
7305 (grub_virtual_screen): Added standard_color_setting,
7306 normal_color_setting, highlight_color_setting and term_color.
7307 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
7308 (bitmap_width): Added.
7309 (bitmap_height): Likewise.
7310 (bitmap): Likewise.
7311 (set_term_color): Likewise.
7312 (grub_virtual_screen_setup): Changed to use new terminal coloring
7313 settings.
7314 (grub_gfxterm_init): Added init for bitmap.
7315 (grub_gfxterm_fini): Added destroy for bitmap.
7316 (redraw_screen_rect): Updated to use background bitmap and new
7317 terminal coloring.
7318 (scroll_up): Added optimization for case when there is no bitmap.
7319 (grub_gfxterm_cls): Fixed to use correct background color.
7320 (grub_virtual_screen_setcolorstate): Changed to use new terminal
7321 coloring.
7322 (grub_virtual_screen_setcolor): Likewise.
7323 (grub_virtual_screen_getcolor): Added.
7324 (grub_gfxterm_background_image_cmd): Likewise.
7325 (grub_video_term): Added setcolor and getcolor.
7326 (MOD_INIT): Added registration of background_image command.
7327 (MOD_TERM): Added unregistration for background_image command.
7328
c3c20931 73292007-12-30 Pavel Roskin <proski@gnu.org>
7330
7331 * loader/multiboot_loader.c: Fix multiboot command
7332 unregistration. Fix all typos in the word "multiboot".
7333
df266716 73342007-12-29 Pavel Roskin <proski@gnu.org>
94239199 7335
7336 * util/grub.d/10_linux.in: Refactor search for initrd. Add
7337 support for initrd names used in Fedora.
7338
fc6e896c 73392007-12-26 Bean <bean123ch@gmail.com>
7340
7341 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
7342 (cpio_mod_SOURCES): New variable.
7343 (cpio_mod_CFLAGS): Likewise.
7344 (cpio_mod_LDFLAGS): Likewise.
7345
7346 * fs/cpio.c: New file.
7347
7348 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
7349
7350 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7351
7352 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7353
7354 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7355
533110ad 73562007-12-25 Robert Millan <rmh@aybabtu.com>
7357
7358 * include/grub/term.h (struct grub_term): Add `getcolor' function.
7359 (grub_getcolor): New function.
7360
7361 * kern/term.c (grub_getcolor): New function.
7362 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
7363 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
7364 (print_entry): Set normal and highlight colors to
7365 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
7366 respectively, before printing and restore them to old
7367 values afterwards.
7368 (grub_menu_init_page): Likewise. Fill an additional colored space
7369 that would otherwise be left blank.
7370
7371 * term/efi/console.c (grub_console_getcolor): New function.
7372 (struct grub_console_term.getcolor): New variable.
7373 * term/i386/pc/console.c (grub_console_getcolor): New function.
7374 (struct grub_console_term.getcolor): New variable.
7375 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
7376 (struct grub_console_term.getcolor): New variable.
7377
7378 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
7379 (struct grub_console_term.setcolor): Remove variable.
7380 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
7381 (struct grub_console_term.setcolor): Remove variable.
7382 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
7383 (struct grub_console_term.setcolor): Remove variable.
7384 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
7385 (struct grub_console_term.setcolor): Remove variable.
7386
4931827f 73872007-12-25 Robert Millan <rmh@aybabtu.com>
7388
7389 * configure.ac: Search for possible unifont.hex locations, and
7390 define UNIFONT_HEX if found.
7391
7392 * Makefile.in (UNIFONT_HEX): Define variable.
7393 (DATA): Rename to ...
7394 (PKGLIB): ... this. Update all users.
7395 (PKGDATA): New variable.
7396 (pkgdata_IMAGES): Rename to ...
7397 (pkglib_IMAGES): ... this. Update all users.
7398 (pkgdata_MODULES): Rename to ...
7399 (pkglib_MODULES): ... this. Update all users.
7400 (pkgdata_PROGRAMS): Rename to ...
7401 (pkglib_PROGRAMS): ... this. Update all users.
7402 (pkgdata_DATA): Rename to ...
7403 (pkglib_DATA): ... this. Update all users.
7404 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
7405 (unicode.pff, ascii.pff): New rules.
7406 (all-local): Add `$(PKGDATA)' dependency.
7407 (install-local): Process `$(PKGDATA)'.
7408
7409 * util/update-grub_lib.in (font_path): Search for *.pff files in
7410 a few more locations, including `${pkgdata}'.
7411
57e57e31 74122007-12-23 Robert Millan <rmh@aybabtu.com>
7413
7414 Patch from Bean <bean123ch@gmail.com>:
7415 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
7416 `size'.
7417
4bc72aa9 74182007-12-21 Bean <bean123ch@gmail.com>
7419
7420 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
7421 (ntfscomp_mod_SOURCES): New variable.
7422 (ntfscomp_mod_CFLAGS): Likewise.
7423 (ntfscomp_mod_LDFLAGS): Likewise.
7424
7425 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
7426 (grub_probe_SOURCES): Likewise.
7427 (grub_emu_SOURCES): Likewise.
7428
7429 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7430 (grub_emu_SOURCES): Likewise.
7431
7432 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7433 (grub_emu_SOURCES): Likewise.
7434
7435 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7436 (grub_emu_SOURCES): Likewise.
7437
7438 * fs/ntfs.c (grub_ntfscomp_func): New variable.
7439 (read_run_list): Renamed to grub_ntfs_read_run_list.
7440 (decomp_nextvcn): Moved to ntfscomp.c.
7441 (decomp_getch): Likewise.
7442 (decomp_get16): Likewise.
7443 (decomp_block): Likewise.
7444 (read_block): Likewise.
7445 (read_data): Partially moved to ntfscomp.c.
7446 (fixup): Change unsigned to grub_uint16_t.
7447 (read_mft): Change unsigned long to grub_uint32_t.
7448 (read_attr): Likewise.
7449 (read_data): Likewise.
7450 (read_run_data): Likewise.
7451 (read_run_list): Likewise.
7452 (read_mft): Likewise.
7453
7454 * fs/ntfscomp.c: New file.
7455
7456 * include/grub/ntfs.h: New file.
7457
af680a87 74582007-12-16 Robert Millan <rmh@aybabtu.com>
7459
7460 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
7461 IDE disk check, since Linux is known to support 20 IDE disks.
7462 Reported by Colin Watson.
7463
84be7599 74642007-12-15 Bean <bean123ch@gmail.com>
7465
7466 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
7467 (lnxboot_img_SOURCES): New variable.
7468 (lnxboot_img_ASFLAGS): Likewise.
7469 (lnxboot_img_LDFLAGS): Likewise.
7470
7471 * boot/i386/pc/lnxboot.S: New file.
7472
6af9db01 74732007-11-24 Pavel Roskin <proski@gnu.org>
7474
7475 * configure.ac: Test if '--build-id=none' is supported by the
7476 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
7477 objcopy to generate incorrect binary files (binutils
7478 2.17.50.0.18-1 as shipped by Fedora 8).
7479 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
7480 linking, so that build ID doesn't break the test.
7481
7361cfe6 74822007-11-24 Pavel Roskin <proski@gnu.org>
7483
7484 * include/grub/i386/time.h: use "void" in the argument list
7485 of grub_cpu_idle().
7486 * include/grub/powerpc/time.h: Likewise.
7487 * include/grub/sparc64/time.h: Likewise.
7488
1593e10c 74892007-11-18 Christian Franke <franke@computer.org>
7490
7491 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
7492 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
7493 This fixes the problem that function keys did not work in grub-emu.
7494
3b8db1a8 74952007-11-18 Christian Franke <franke@computer.org>
7496
7497 * disk/host.c (grub_host_open): Remove attribute unused from
7498 name parameter. Add check for "host". This fixes the problem
7499 that grub-emu does not find partitions.
7500
2e29408d 75012007-11-18 Christian Franke <franke@computer.org>
7502
7503 * util/hostfs.c (is_dir): New function.
7504 (grub_hostfs_dir): Handle missing dirent.d_type case.
7505 (grub_hostfs_read): Add missing fseek().
7506 (grub_hostfs_label): Clear label pointer. This fixes a crash
7507 of grub-emu on "ls (host)".
7508
398cd047 75092007-11-18 Christian Franke <franke@computer.org>
7510
7511 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
7512 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
7513 to 64 bit boundary by default.
7514
c405c391 75152007-11-18 Bean <bean123ch@gmail.com>
7516
7517 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
7518 (hexdump_mod_SOURCES): New variable.
7519 (hexdump_mod_CFLAGS): Likewise.
7520 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 7521
c405c391 7522 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7523
7524 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7525
7526 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7527
7528 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7529
7530 * include/grub/hexdump.h: New file.
7531
7532 * commands/hexdump.c: New file.
7533
5cced7fd 75342007-11-10 Robert Millan <rmh@aybabtu.com>
7535
7536 * commands/i386/pc/play.c (beep_off): Switch order of arguments
7537 in grub_outb() calls.
7538 (beep_on): Likewise.
7539
8b714eb0 75402007-11-10 Christian Franke <franke@computer.org>
7541
7542 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
7543 (grub_menu_run): Likewise.
7544
ce0f1839 75452007-11-10 Robert Millan <rmh@aybabtu.com>
7546
7547 * include/grub/i386/efi/machine.h: New file.
7548 * include/grub/i386/linuxbios/machine.h: Likewise.
7549 * include/grub/i386/pc/machine.h: Likewise.
7550 * include/grub/powerpc/ieee1275/machine.h: Likewise.
7551 * include/grub/sparc64/ieee1275/machine.h: Likewise.
7552
7553 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
7554 (serial_hw_io_addr): New variable.
7555 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
7556 instead of `(unsigned short *) 0x400'.
7557
270c237d 75582007-11-10 Bean <bean123ch@gmail.com>
7559
7560 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
7561
a87783bf 75622007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7563
7564 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
7565 (vga_mod_SOURCES): Added.
7566 (vga_mod_CFLAGS): Likewise.
7567 (vga_mod_LDFLAGS): Likewise.
7568
7569 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
7570 grub_outb() calls.
7571 (set_map_mask): Likewise.
7572 (set_read_map): Likewise.
7573 (set_read_address): Likewise.
7574 (vga_font): Removed variable.
7575 (get_vga_glyph): Removed function.
7576 (invalidate_char): Likewise.
7577 (write_char): Changed to use grub_font_get_glyph() for font
7578 information.
7579 (grub_vga_putchar): Likewise.
7580 (grub_vga_getcharwidth): Likewise.
7581
6433b448 75822007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7583
7584 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
7585 flags.
7586 (pxeboot_img_LDFLAGS): Likewise.
7587 (diskboot_img_LDFLAGS): Likewise.
7588 (kernel_img_LDFLAGS): Likewise.
7589
49178511 75902007-11-06 Robert Millan <rmh@aybabtu.com>
7591
7592 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
7593 in grub_outb() calls.
7594 (serial_hw_init): Likewise.
7595
53b052de 75962007-11-05 Robert Millan <rmh@aybabtu.com>
7597
7598 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
7599 spaces. Skip non-regular files.
7600
5ab33bba 76012007-11-05 Robert Millan <rmh@aybabtu.com>
7602
7603 * kern/disk.c (grub_disk_firmware_fini)
7604 (grub_disk_firmware_is_tainted): New variables.
7605
7606 * include/grub/disk.h (grub_disk_firmware_fini)
7607 (grub_disk_firmware_is_tainted): Likewise.
7608
7609 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
7610 (grub_disk_biosdisk_fini): ... to here.
7611 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
7612 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
7613 is set. Register grub_disk_biosdisk_fini() in
7614 `grub_disk_firmware_fini'.
7615
7616 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
7617 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
7618 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
7619 to finish existing firmware disk interface.
7620
7621 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
7622 (ata_mod_SOURCES): New variable.
7623 (ata_mod_CFLAGS): Likewise.
7624 (ata_mod_LDFLAGS): Likewise.
7625
0149ab7c 76262007-11-05 Robert Millan <rmh@aybabtu.com>
7627
7628 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
7629 (grub_ata_wait): Reimplement using grub_millisleep().
7630
7631 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
7632 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
7633
be7ac41e 76342007-11-03 Marco Gerards <marco@gnu.org>
7635
7636 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
7637 (CRTC_ADDR_PORT): New macro.
7638 (CRTC_DATA_PORT): Likewise.
7639 (CRTC_CURSOR): Likewise.
7640 (CRTC_CURSOR_ADDR_HIGH): Likewise.
7641 (CRTC_CURSOR_ADDR_LOW): Likewise.
7642 (update_cursor): New function.
7643 (grub_console_real_putchar): Call `update_cursor'.
7644 (grub_console_gotoxy): Likewise.
7645 (grub_console_cls): Set the default color when clearing the
7646 screen.
7647 (grub_console_setcursor): Implemented.
7648
bb06ab2e 76492007-11-03 Marco Gerards <marco@gnu.org>
7650
7651 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
7652 become activate.
7653 (grub_ata_pio_write): Likewise.
7654
7655 (grub_atapi_identify): Wait after issuing an ATA command.
7656 (grub_atapi_packet): Likewise.
7657 (grub_ata_identify): Likewise.
7658 (grub_ata_readwrite): Likewise.
7659
cf8f780b 76602007-11-03 Marco Gerards <marco@gnu.org>
7661
7662 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
7663 (grub_ata_pio_write): Likewise.
7664 (grub_ata_readwrite): Use `grub_error', instead of
7665 returning `grub_errno'.
7666
ed649e54 76672007-11-03 Marco Gerards <marco@gnu.org>
7668
7669 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
7670 grub_ata_pio_write once for every single sector, instead of for
7671 multiple sectors.
7672
ca25d8f0 76732007-10-31 Robert Millan <rmh@aybabtu.com>
7674
7675 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
7676
7677 * conf/i386-linuxbios.rmk: New file.
7678
7679 * kern/i386/pc/hardware.c: Likewise.
7680 * term/i386/pc/at_keyboard.c: Likewise.
7681 * term/i386/pc/vga_text.c: Likewise.
7682
7683 * include/grub/i386/linuxbios/boot.h: Likewise.
7684 * include/grub/i386/linuxbios/console.h: Likewise.
7685 * include/grub/i386/linuxbios/init.h: Likewise.
7686 * include/grub/i386/linuxbios/kernel.h: Likewise.
7687 * include/grub/i386/linuxbios/loader.h: Likewise.
7688 * include/grub/i386/linuxbios/memory.h: Likewise.
7689 * include/grub/i386/linuxbios/serial.h: Likewise.
7690 * include/grub/i386/linuxbios/time.h: Likewise.
7691
7692 * kern/i386/linuxbios/init.c: Likewise.
7693 * kern/i386/linuxbios/startup.S: Likewise.
7694 * kern/i386/linuxbios/table.c: Likewise.
7695
e911ecc1 76962007-10-31 Marco Gerards <marco@gnu.org>
7697
7698 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
7699 (ata_mod_SOURCES): New variable.
7700 (ata_mod_CFLAGS): Likewise.
7701 (ata_mod_LDFLAGS): Likewise.
7702
7703 * disk/ata.c: New file.
7704
7705 * include/grub/disk.h (grub_disk_dev_id): Add
7706 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 7707
7f66d0e0 77082007-10-31 Robert Millan <rmh@aybabtu.com>
7709
7710 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
7711 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
7712
7713 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
7714 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
7715
7716 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
7717 `<grub/types.h>'.
7718
7719 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
7720
5cd7dd46 77212007-10-27 Robert Millan <rmh@aybabtu.com>
7722
3236ca65 7723 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 7724
2ebfc90f 77252007-10-22 Robert Millan <rmh@aybabtu.com>
7726
7727 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
7728 `"../realmode.S"'.
7729 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
7730
73fcb0f3 77312007-10-22 Robert Millan <rmh@aybabtu.com>
7732
7733 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
7734 (pkgdata_MODULES): Add `biosdisk.mod'.
7735 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
7736 variables.
7737
7738 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
7739 (grub_biosdisk_init): Replace with ...
7740 (GRUB_MOD_INIT(biosdisk)): ... this.
7741 (grub_biosdisk_fini): Replace with ...
7742 (GRUB_MOD_FINI(biosdisk)): ... this.
7743
7744 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
7745 (grub_machine_init): Remove call to grub_biosdisk_init().
7746 (grub_machine_fini): Remove call to grub_machine_fini().
7747
7748 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
7749
3381d274 77502007-10-22 Robert Millan <rmh@aybabtu.com>
7751
7752 * include/grub/time.h: New file.
7753 * include/grub/i386/time.h: Likewise.
7754 * include/grub/powerpc/time.h: Likewise.
7755 * include/grub/sparc64/time.h: Likewise.
7756
7757 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
7758 instances to ...
7759 (KERNEL_MACHINE_TIME_HEADER): ... this.
7760 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7761 instances to ...
7762 (KERNEL_MACHINE_TIME_HEADER): ... this.
7763 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7764 instances to ...
7765 (KERNEL_MACHINE_TIME_HEADER): ... this.
7766
7767 * kern/i386/efi/init.c: Include `<grub/time.h>'.
7768 (grub_millisleep): New function.
7769 * kern/i386/pc/init.c: Include `<grub/time.h>'.
7770 (grub_millisleep): New function.
7771 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
7772 Remove `grub/machine/time.h' include.
7773 (grub_millisleep): New function.
7774 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
7775 Remove `grub/machine/time.h' include.
7776 (grub_millisleep): New function.
7777
7778 * include/grub/misc.h (grub_div_roundup): New function.
7779
7780 * kern/misc.c: Include `<grub/time.h>'.
7781 (grub_millisleep_generic): New function.
7782
7783 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
7784 Add `time.h'.
7785 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
7786 Add `time.h'.
7787 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
7788 `machine/time.h'. Add `time.h'.
7789 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
7790
a39a0312 77912007-10-21 Robert Millan <rmh@aybabtu.com>
7792
7793 * include/grub/misc.h (grub_max): New function.
7794
2aad70e2 77952007-10-21 Robert Millan <rmh@aybabtu.com>
7796
7797 * util/misc.c (grub_util_info): Call fflush() before returning.
7798
54b71c4b 77992007-10-20 Robert Millan <rmh@aybabtu.com>
7800
7801 * genmk.rb (Image): Copy `extra_flags' from here ...
7802 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
7803
7804 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
7805 to `argc' and `args' arguments.
7806
a979f513 78072007-10-17 Robert Millan <rmh@aybabtu.com>
7808
7809 * kern/i386/loader.S: New file.
7810
7811 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
7812 * kern/i386/loader.S (grub_linux_prot_size)... to here.
7813 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
7814 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
7815 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
7816 * kern/i386/loader.S (grub_linux_real_addr)... to here.
7817 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
7818 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
7819 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
7820 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
7821 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
7822 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
7823 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
7824 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
7825
7826 * kern/i386/realmode.S: New file.
7827
7828 * kern/i386/pc/startup.S (protstack): Moved from here ...
7829 * kern/i386/realmode.S (protstack)... to here.
7830 * kern/i386/pc/startup.S (gdt): Moved from here ...
7831 * kern/i386/realmode.S (gdt)... to here.
7832 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
7833 * kern/i386/realmode.S (prot_to_real)... to here.
7834
7835 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
7836 `kern/i386/realmode.S'.
7837
825fc8fd 78382007-10-17 Robert Millan <rmh@aybabtu.com>
7839
7840 * include/grub/i386/loader.h: New file.
7841
7842 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
7843 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7844 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7845 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7846 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
7847 * include/grub/i386/loader.h (grub_linux_prot_size)
7848 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7849 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7850 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7851 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
7852
7853 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
7854
e179b2f4 78552007-10-15 Robert Millan <rmh@aybabtu.com>
7856
7857 * normal/misc.c (grub_normal_print_device_info): Do not probe for
7858 filesystem when dev->disk is unset.
7859 Do probe for filesystem even when dev->disk->has_partitions is set.
7860 In case a filesystem is found, always report it.
7861 In case it isn't, if dev->disk->has_partitions is set, report that
7862 a partition table was found instead of reporting that no filesystem
7863 could be identified.
7864
5db82af6 78652007-10-12 Robert Millan <rmh@aybabtu.com>
7866
7867 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
7868 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
7869
68f6ac74 7870 * include/grub/types.h (grub_host_to_target16): New macro.
7871 (grub_host_to_target32): Likewise.
7872 (grub_host_to_target64): Likewise.
7873 (grub_target_to_host16): Likewise.
7874 (grub_target_to_host32): Likewise.
7875 (grub_target_to_host64): Likewise.
5db82af6 7876
7877 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
7878 Renamed from to ...
7879 (GRUB_MOD_ALIGN): ...this. Update all users.
7880
68f6ac74 7881 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
7882 grub_host_to_target32.
7883 Replace grub_be_to_cpu32 with grub_target_to_host32.
7884 (load_modules): Likewise.
7885 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
7886 Replace grub_be_to_cpu32 with grub_target_to_host32.
7887 Replace grub_cpu_to_be16 with grub_host_to_target16.
7888 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 7889
3cf497cc 78902007-10-12 Robert Millan <rmh@aybabtu.com>
7891
7892 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
7893 * util/elf/grub-mkimage.c: ... here.
7894
7895 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
7896 `util/powerpc/ieee1275/grub-mkimage.c'.
7897
c8cc3692 78982007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 7899
c8cc3692 7900 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
7901 and make it easier to figure out.
7902 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
7903 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
7904 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
7905 leave us with less than HEAP_MIN_SIZE total heap.
7906 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 7907
5c58b791 79082007-10-03 Robert Millan <rmh@aybabtu.com>
7909
7910 * include/grub/i386/io.h: New file.
7911 * commands/i386/pc/play.c (inb): Removed.
7912 (outb): Removed.
7913 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7914 with grub_outb().
afcd2ef8 7915 * term/i386/pc/serial.c (inb): Removed.
7916 (outb): Removed.
7917 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7918 with grub_outb().
7919 * term/i386/pc/vga.c (inb): Removed.
7920 (outb): Removed.
7921 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
7922 with grub_outb().
5c58b791 7923
1a477ed6 79242007-10-02 Robert Millan <rmh@aybabtu.com>
7925
7926 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
7927 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7928 Reported by Marcin Kurek.
7929
6b5d80fa 79302007-09-07 Robert Millan <rmh@aybabtu.com>
7931
7932 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
7933 SmartFirmware version updates (as released by Sven Luther), and avoid
7934 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
7935 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
7936 known broken.
7937
5618afbf 79382007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7939
7940 From Hitoshi Ozeki:
7941 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
7942 when merging two regions.
7943
6139dcd9 79442007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7945
508e39ee 7946 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
7947 * normal/completion.c (grub_normal_do_completion): Likewise.
7948 Reported by Hitoshi Ozeki.
7949
79502007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7951
6139dcd9 7952 Do not use devices at boot in chainloading.
f19dbdb7 7953
6139dcd9 7954 * loader/i386/pc/chainloader.c (boot_drive): New variable.
7955 (boot_part_addr): Likewise.
7956 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
7957 with BOOT_DRIVE and BOOT_PART_ADDR.
7958 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
7959 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
7960
38da6516 79612007-08-29 Robert Millan <rmh@aybabtu.com>
7962
7963 Patch from Simon Peter <dn.tlp@gmx.net>:
7964 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
7965 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
7966 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
7967 util/i386/pc/grub-setup.c_DEPENDENCIES.
7968 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
7969 util/grub-probe.c_DEPENDENCIES.
7970 * conf/powerpc-ieee1275.rmk: Likewise.
7971
29d0928c 79722007-08-28 Robert Millan <rmh@aybabtu.com>
7973
7974 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
7975 to tell grub-mkdevicemap how to name devices.
7976 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
7977 feature).
7978
7979 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
7980 util/i386/get_disk_name.c.
7981 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
7982 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
7983 util/ieee1275/get_disk_name.c.
7984
7985 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
7986
7987 * DISTLIST: Add util/i386/get_disk_name.c and
7988 util/ieee1275/get_disk_name.c.
7989
7990 * util/grub-mkdevicemap.c: Replace device naming logic with
7991 grub_util_get_disk_name() calls.
7992
5a0d3cca 79932007-08-20 Robert Millan <rmh@aybabtu.com>
7994
7995 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
7996 (so that it works for both plural and singular quantities).
7997
8b72db2f 79982007-08-05 Robert Millan <rmh@aybabtu.com>
7999
8000 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
8001 so that [xz] isn't taken into account when determining order.
8002
352466bf 80032007-08-02 Marco Gerards <marco@gnu.org>
8004
8005 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
8006 `include/multiboot2.h', `include/grub/elfload.h',
8007 `include/multiboot.h', `include/grub/multiboot.h',
8008 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
8009 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
8010 `kern/elf.c', `loader/multiboot_loader.c',
8011 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
8012 `loader/i386/pc/multiboot2.c',
8013 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
8014 `util/i386/pc/grub-mkrescue.in'. Remove
8015 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
8016 `include/grub/i386/pc/util/biosdisk.h' and
8017 `include/grub/powerpc/ieee1275/multiboot.h'.
8018
8f096014 80192007-08-02 Bean <bean123ch@gmail.com>
8020
8021 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
8022 (ntfs_mod_SOURCES): New variable.
8023 (ntfs_mod_CFLAGS): Likewise.
8024 (ntfs_mod_LDFLAGS): Likewise.
8025
8026 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
8027 (grub_probe_SOURCES): Likewise.
8028 (grub_emu_SOURCES): Likewise.
8029
8030 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
8031 (grub_emu_SOURCES): Likewise.
8032
8033 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
8034 (grub_emu_SOURCES): Likewise.
f19dbdb7 8035
8f096014 8036 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
8037
8038 * fs/ntfs.c: New file.
8039
9959f7db 80402007-08-02 Bean <bean123ch@gmail.com>
8041
8042 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
8043
8044 * file.h (grub_file): Likewise.
8045
8046 * fshelp.h (grub_fshelp_read_file): Likewise.
8047
8048 * util/i386/pc/grub-setup.c (setup): Likewise.
8049 (save_first_sector): Likewise.
8050 (save_blocklists): Likewise.
f19dbdb7 8051
9959f7db 8052 * fs/affs.c (grub_affs_read_file): Likewise.
8053
8054 * fs/ext2.c (grub_ext2_read_file): Likewise.
8055
8056 * fs/fat.c (grub_fat_read_data): Likewise.
8057
8058 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
8059
8060 * fs/hfs.c (grub_hfs_read_file): Likewise.
8061
8062 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
8063
8064 * fs/jfs.c (grub_jfs_read_file): Likewise.
8065
8066 * fs/minix.c (grub_minix_read_file): Likewise.
8067
8068 * fs/sfs.c (grub_sfs_read_file): Likewise.
8069
8070 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 8071
9959f7db 8072 * fs/xfs.c (grub_xfs_read_file): Likewise.
8073
8074 * command/blocklist.c (read_blocklist): Likewise.
8075 (print_blocklist): Likewise.
8076
0a203f83 80772007-08-02 Marco Gerards <marco@gnu.org>
8078
8079 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
8080 `util/hostfs.c'.
8081
8082 * disk/host.c: New file.
8083
8084 * util/hostfs.c: Likewise.
8085
8086 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
8087 return `GRUB_ERR_BAD_FS'.
8088 * fs/sfs.c (grub_sfs_mount): Likewise.
8089 * fs/xfs.c (grub_xfs_mount): Likewise.
8090
8091 * include/grub/disk.h (enum grub_disk_dev_id): Add
8092 `GRUB_DISK_DEVICE_HOST_ID'.
8093
8094 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
8095
e5dfe777 80962007-07-24 Jerone Young <jerone@gmail.com>
8097
f19dbdb7 8098 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 8099 modules for compilation.
8100 * conf/powerpc-ieee1275.rmk: Likewise.
8101
8102 * include/multiboot.h: Move multiboot definitions to one file. Rename
8103 many definitions to not get grub specific.
8104 * include/multiboot2.h: Create header with multiboot 2 definitions.
8105 * include/grub/multiboot.h: Header for grub specific function
8106 prototypes and definitions.
8107 * include/grub/multiboot2.h: Likewise.
8108 * include/grub/multiboot_loader.h: Likewise.
8109 * include/grub/i386/pc/multiboot.h: Removed.
8110 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
8111
8112 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
8113 and 2 to allow for one multiboot and module commands.
8114 * loader/multiboot2.c: Add multiboot2 functionality.
8115 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
8116 and definition names.
8117 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
8118 2 functions.
8119 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
8120 ieee1275 specific multiboot2 code.
8121
8122 * kern/i386/pc/startup.S: Change headers and definition names for
8123 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
8124
daf0f0ba 81252007-07-22 Robert Millan <rmh@aybabtu.com>
8126
8127 * geninitheader.sh: Process file specified in first parameter rather
8128 than hardcoding grub_modules_init.lst.
fe6b695a 8129 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 8130 than hardcoding grub_modules_init.h.
8131
8132 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
8133 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
8134 grub_probe_init.[ch] and grub_setup_init.[ch].
8135
8136 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
8137 grub_modules_init.h with grub_emu_init.h.
8138 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
8139 grub_probe_init.[ch] files.
8140 * conf/i386-efi.rmk: Likewise.
8141 * conf/i386-pc.rmk: Likewise.
8142 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
8143 grub_setup_init.[ch] files.
8144
8145 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
8146 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
8147 to initialize modules rather than a list of hardcoded functions.
8148 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
8149 grub_init_all() to initialize modules rather than a list of hardcoded
8150 functions.
8151
54cdc1cc 81522007-07-22 Robert Millan <rmh@aybabtu.com>
8153
8154 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
8155 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
8156
ad0686cc 81572007-07-22 Robert Millan <rmh@aybabtu.com>
8158
8159 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
8160 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
8161 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
8162 flag when running on SmartFirmware.
8163 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
8164 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
8165 was set.
8166
8167 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
8168 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
8169 rather than decreasing it.
8170
8171 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
8172 there's not enough space to do it, fail in the same way as when it
8173 can't be done because there are no partitions.
8174
8175 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
8176 when nvsetenv failed.
8177
969c02ec 81782007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8179
8180 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
8181 because this rule is automatically generated.
8182 (grub-mkrescue): Removed for the same reason as above.
8183
5a79f472 81842007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8185
8186 Migrate to GNU General Public License Version 3.
f19dbdb7 8187
5a79f472 8188 * COPYING: Replaced with the plain text version of GPLv3.
8189
8190 * config.guess: Updated from gnulib.
8191 * config.sub: Likewise.
8192
8193 * geninit.sh: Output a GPLv3 copyright notice.
8194 * geninitheader.sh: Likewise.
8195 * genmodsrc.sh: Likewise.
8196 * gensymlist.sh.in: Likewise.
8197
8198 * boot/i386/pc/boot.S: Upgraded to GPLv3.
8199 * boot/i386/pc/diskboot.S: Likewise.
8200 * boot/i386/pc/pxeboot.S: Likewise.
8201 * commands/blocklist.c: Likewise.
8202 * commands/boot.c: Likewise.
8203 * commands/cat.c: Likewise.
8204 * commands/cmp.c: Likewise.
8205 * commands/configfile.c: Likewise.
8206 * commands/echo.c: Likewise.
8207 * commands/help.c: Likewise.
8208 * commands/ls.c: Likewise.
8209 * commands/search.c: Likewise.
8210 * commands/terminal.c: Likewise.
8211 * commands/test.c: Likewise.
8212 * commands/videotest.c: Likewise.
8213 * commands/i386/cpuid.c: Likewise.
8214 * commands/i386/pc/halt.c: Likewise.
8215 * commands/i386/pc/play.c: Likewise.
8216 * commands/i386/pc/reboot.c: Likewise.
8217 * commands/i386/pc/vbeinfo.c: Likewise.
8218 * commands/i386/pc/vbetest.c: Likewise.
8219 * commands/ieee1275/halt.c: Likewise.
8220 * commands/ieee1275/reboot.c: Likewise.
8221 * commands/ieee1275/suspend.c: Likewise.
8222 * disk/loopback.c: Likewise.
8223 * disk/lvm.c: Likewise.
8224 * disk/raid.c: Likewise.
8225 * disk/efi/efidisk.c: Likewise.
8226 * disk/i386/pc/biosdisk.c: Likewise.
8227 * disk/ieee1275/ofdisk.c: Likewise.
8228 * font/manager.c: Likewise.
8229 * fs/affs.c: Likewise.
8230 * fs/ext2.c: Likewise.
8231 * fs/fat.c: Likewise.
8232 * fs/fshelp.c: Likewise.
8233 * fs/hfs.c: Likewise.
8234 * fs/hfsplus.c: Likewise.
8235 * fs/iso9660.c: Likewise.
8236 * fs/jfs.c: Likewise.
8237 * fs/minix.c: Likewise.
8238 * fs/sfs.c: Likewise.
8239 * fs/ufs.c: Likewise.
8240 * fs/xfs.c: Likewise.
8241 * hello/hello.c: Likewise.
8242 * include/grub/acorn_filecore.h: Likewise.
8243 * include/grub/arg.h: Likewise.
8244 * include/grub/bitmap.h: Likewise.
8245 * include/grub/boot.h: Likewise.
8246 * include/grub/cache.h: Likewise.
8247 * include/grub/device.h: Likewise.
8248 * include/grub/disk.h: Likewise.
8249 * include/grub/dl.h: Likewise.
8250 * include/grub/elfload.h: Likewise.
8251 * include/grub/env.h: Likewise.
8252 * include/grub/err.h: Likewise.
8253 * include/grub/file.h: Likewise.
8254 * include/grub/font.h: Likewise.
8255 * include/grub/fs.h: Likewise.
8256 * include/grub/fshelp.h: Likewise.
8257 * include/grub/gzio.h: Likewise.
8258 * include/grub/hfs.h: Likewise.
8259 * include/grub/kernel.h: Likewise.
8260 * include/grub/loader.h: Likewise.
8261 * include/grub/lvm.h: Likewise.
8262 * include/grub/misc.h: Likewise.
8263 * include/grub/mm.h: Likewise.
8264 * include/grub/net.h: Likewise.
8265 * include/grub/normal.h: Likewise.
8266 * include/grub/parser.h: Likewise.
8267 * include/grub/partition.h: Likewise.
8268 * include/grub/pc_partition.h: Likewise.
8269 * include/grub/raid.h: Likewise.
8270 * include/grub/rescue.h: Likewise.
8271 * include/grub/script.h: Likewise.
8272 * include/grub/setjmp.h: Likewise.
8273 * include/grub/symbol.h: Likewise.
8274 * include/grub/term.h: Likewise.
8275 * include/grub/terminfo.h: Likewise.
8276 * include/grub/tparm.h: Likewise.
8277 * include/grub/types.h: Likewise.
8278 * include/grub/video.h: Likewise.
8279 * include/grub/efi/api.h: Likewise.
8280 * include/grub/efi/chainloader.h: Likewise.
8281 * include/grub/efi/console.h: Likewise.
8282 * include/grub/efi/console_control.h: Likewise.
8283 * include/grub/efi/disk.h: Likewise.
8284 * include/grub/efi/efi.h: Likewise.
8285 * include/grub/efi/pe32.h: Likewise.
8286 * include/grub/efi/time.h: Likewise.
8287 * include/grub/i386/linux.h: Likewise.
8288 * include/grub/i386/setjmp.h: Likewise.
8289 * include/grub/i386/types.h: Likewise.
8290 * include/grub/i386/efi/kernel.h: Likewise.
8291 * include/grub/i386/efi/loader.h: Likewise.
8292 * include/grub/i386/efi/time.h: Likewise.
8293 * include/grub/i386/pc/biosdisk.h: Likewise.
8294 * include/grub/i386/pc/boot.h: Likewise.
8295 * include/grub/i386/pc/chainloader.h: Likewise.
8296 * include/grub/i386/pc/console.h: Likewise.
8297 * include/grub/i386/pc/init.h: Likewise.
8298 * include/grub/i386/pc/kernel.h: Likewise.
8299 * include/grub/i386/pc/loader.h: Likewise.
8300 * include/grub/i386/pc/memory.h: Likewise.
8301 * include/grub/i386/pc/multiboot.h: Likewise.
8302 * include/grub/i386/pc/serial.h: Likewise.
8303 * include/grub/i386/pc/time.h: Likewise.
8304 * include/grub/i386/pc/vbe.h: Likewise.
8305 * include/grub/i386/pc/vbeblit.h: Likewise.
8306 * include/grub/i386/pc/vbefill.h: Likewise.
8307 * include/grub/i386/pc/vbeutil.h: Likewise.
8308 * include/grub/i386/pc/vga.h: Likewise.
8309 * include/grub/ieee1275/ieee1275.h: Likewise.
8310 * include/grub/ieee1275/ofdisk.h: Likewise.
8311 * include/grub/powerpc/libgcc.h: Likewise.
8312 * include/grub/powerpc/setjmp.h: Likewise.
8313 * include/grub/powerpc/types.h: Likewise.
8314 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
8315 * include/grub/powerpc/ieee1275/console.h: Likewise.
8316 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
8317 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
8318 * include/grub/powerpc/ieee1275/loader.h: Likewise.
8319 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
8320 * include/grub/powerpc/ieee1275/time.h: Likewise.
8321 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
8322 * include/grub/sparc64/libgcc.h: Likewise.
8323 * include/grub/sparc64/setjmp.h: Likewise.
8324 * include/grub/sparc64/types.h: Likewise.
8325 * include/grub/sparc64/ieee1275/console.h: Likewise.
8326 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
8327 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
8328 * include/grub/sparc64/ieee1275/time.h: Likewise.
8329 * include/grub/util/biosdisk.h: Likewise.
8330 * include/grub/util/getroot.h: Likewise.
8331 * include/grub/util/lvm.h: Likewise.
8332 * include/grub/util/misc.h: Likewise.
8333 * include/grub/util/raid.h: Likewise.
8334 * include/grub/util/resolve.h: Likewise.
8335 * io/gzio.c: Likewise.
8336 * kern/device.c: Likewise.
8337 * kern/disk.c: Likewise.
8338 * kern/dl.c: Likewise.
8339 * kern/elf.c: Likewise.
8340 * kern/env.c: Likewise.
8341 * kern/err.c: Likewise.
8342 * kern/file.c: Likewise.
8343 * kern/fs.c: Likewise.
8344 * kern/loader.c: Likewise.
8345 * kern/main.c: Likewise.
8346 * kern/misc.c: Likewise.
8347 * kern/mm.c: Likewise.
8348 * kern/parser.c: Likewise.
8349 * kern/partition.c: Likewise.
8350 * kern/rescue.c: Likewise.
8351 * kern/term.c: Likewise.
8352 * kern/efi/efi.c: Likewise.
8353 * kern/efi/init.c: Likewise.
8354 * kern/efi/mm.c: Likewise.
8355 * kern/i386/dl.c: Likewise.
8356 * kern/i386/efi/init.c: Likewise.
8357 * kern/i386/efi/startup.S: Likewise.
8358 * kern/i386/pc/init.c: Likewise.
8359 * kern/i386/pc/lzo1x.S: Likewise.
8360 * kern/i386/pc/startup.S: Likewise.
8361 * kern/ieee1275/ieee1275.c: Likewise.
8362 * kern/powerpc/cache.S: Likewise.
8363 * kern/powerpc/dl.c: Likewise.
8364 * kern/powerpc/ieee1275/cmain.c: Likewise.
8365 * kern/powerpc/ieee1275/crt0.S: Likewise.
8366 * kern/powerpc/ieee1275/init.c: Likewise.
8367 * kern/powerpc/ieee1275/openfw.c: Likewise.
8368 * kern/sparc64/cache.S: Likewise.
8369 * kern/sparc64/dl.c: Likewise.
8370 * kern/sparc64/ieee1275/init.c: Likewise.
8371 * kern/sparc64/ieee1275/openfw.c: Likewise.
8372 * loader/efi/chainloader.c: Likewise.
8373 * loader/efi/chainloader_normal.c: Likewise.
8374 * loader/i386/efi/linux.c: Likewise.
8375 * loader/i386/efi/linux_normal.c: Likewise.
8376 * loader/i386/pc/chainloader.c: Likewise.
8377 * loader/i386/pc/chainloader_normal.c: Likewise.
8378 * loader/i386/pc/linux.c: Likewise.
8379 * loader/i386/pc/linux_normal.c: Likewise.
8380 * loader/i386/pc/multiboot.c: Likewise.
8381 * loader/i386/pc/multiboot_normal.c: Likewise.
8382 * loader/powerpc/ieee1275/linux.c: Likewise.
8383 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
8384 * normal/arg.c: Likewise.
8385 * normal/cmdline.c: Likewise.
8386 * normal/command.c: Likewise.
8387 * normal/completion.c: Likewise.
8388 * normal/execute.c: Likewise.
8389 * normal/function.c: Likewise.
8390 * normal/lexer.c: Likewise.
8391 * normal/main.c: Likewise.
8392 * normal/menu.c: Likewise.
8393 * normal/menu_entry.c: Likewise.
8394 * normal/misc.c: Likewise.
8395 * normal/parser.y: Likewise.
8396 * normal/script.c: Likewise.
8397 * normal/i386/setjmp.S: Likewise.
8398 * normal/powerpc/setjmp.S: Likewise.
8399 * normal/sparc64/setjmp.S: Likewise.
8400 * partmap/acorn.c: Likewise.
8401 * partmap/amiga.c: Likewise.
8402 * partmap/apple.c: Likewise.
8403 * partmap/gpt.c: Likewise.
8404 * partmap/pc.c: Likewise.
8405 * partmap/sun.c: Likewise.
8406 * term/gfxterm.c: Likewise.
8407 * term/terminfo.c: Likewise.
8408 * term/efi/console.c: Likewise.
8409 * term/i386/pc/console.c: Likewise.
8410 * term/i386/pc/serial.c: Likewise.
8411 * term/i386/pc/vesafb.c: Likewise.
8412 * term/i386/pc/vga.c: Likewise.
8413 * term/ieee1275/ofconsole.c: Likewise.
8414 * util/biosdisk.c: Likewise.
8415 * util/console.c: Likewise.
8416 * util/genmoddep.c: Likewise.
8417 * util/getroot.c: Likewise.
8418 * util/grub-emu.c: Likewise.
8419 * util/grub-mkdevicemap.c: Likewise.
8420 * util/grub-probe.c: Likewise.
8421 * util/lvm.c: Likewise.
8422 * util/misc.c: Likewise.
8423 * util/raid.c: Likewise.
8424 * util/resolve.c: Likewise.
8425 * util/update-grub.in: Likewise.
8426 * util/update-grub_lib.in: Likewise.
8427 * util/grub.d/00_header.in: Likewise.
8428 * util/grub.d/10_hurd.in: Likewise.
8429 * util/grub.d/10_linux.in: Likewise.
8430 * util/i386/efi/grub-install.in: Likewise.
8431 * util/i386/efi/grub-mkimage.c: Likewise.
8432 * util/i386/pc/grub-install.in: Likewise.
8433 * util/i386/pc/grub-mkimage.c: Likewise.
8434 * util/i386/pc/grub-mkrescue.in: Likewise.
8435 * util/i386/pc/grub-setup.c: Likewise.
8436 * util/i386/pc/misc.c: Likewise.
8437 * util/powerpc/ieee1275/grub-install.in: Likewise.
8438 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
8439 * util/powerpc/ieee1275/misc.c: Likewise.
8440 * video/bitmap.c: Likewise.
8441 * video/video.c: Likewise.
8442 * video/i386/pc/vbe.c: Likewise.
8443 * video/i386/pc/vbeblit.c: Likewise.
8444 * video/i386/pc/vbefill.c: Likewise.
8445 * video/i386/pc/vbeutil.c: Likewise.
8446 * video/readers/tga.c: Likewise.
8447
3572d015 84482007-07-02 Robert Millan <rmh@aybabtu.com>
8449
8450 * conf/i386-efi.rmk: Replace obsolete reference to
8451 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
8452 with util/getroot.c.
8453 * conf/powerpc-ieee1275.rmk: Likewise.
8454 * conf/sparc64-ieee1275.rmk: Likewise.
8455
8456 * util/grub-emu.c (main): Fix unchecked pointer handling.
8457
2c2a681b 84582007-07-02 Robert Millan <rmh@aybabtu.com>
8459
8460 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
8461 invocation to fail, in order to support partition-less media.
8462
8463 * util/i386/pc/grub-install.in: Likewise.
8464
8465 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
8466 which fs or partmap modules are needed (akin to its sister scripts).
8467
8468 Also use grub-probe to get rid of unportable /proc/mounts check.
8469
8470 Print the same informational message that the other scripts do, before
fe6b695a 8471 exiting.
2c2a681b 8472
6193defe 84732007-06-23 Robert Millan <rmh@aybabtu.com>
8474
fe6b695a 8475 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 8476 a font file can be found and, if so, echo the GRUB path to it.
8477
8478 * util/update-grub.in: Handle multiple terminals depending on user
8479 input, platform availability and font file presence. Propagate
8480 variables of our findings to /etc/grub.d/ children.
8481
8482 * util/grub.d/00_header.in: Handle multiple terminals, based on
8483 environment setup by update-grub.
8484
eface1dc 84852007-06-23 Robert Millan <rmh@aybabtu.com>
8486
ba50d28f 8487 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 8488
bf697e28 84892007-06-21 Robert Millan <rmh@aybabtu.com>
8490
8491 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
8492 indicate end of data section in kernel image.
8493 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
8494 GRUB_KERNEL_MACHINE_DATA_END.
8495
8496 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
8497 space for it.
8498 * kern/i386/efi/startup.S: Likewise.
8499
8500 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
8501 during image generation. Implement --prefix option to override this
8502 patch.
8503 * util/i386/efi/grub-mkimage.c: Likewise.
8504
8505 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
8506 code to make path relative to its root into a separate function.
8507
8508 * util/i386/pc/grub-install.in: Use newly provided
8509 make_system_path_relative_to_its_root() to convert ${grubdir}, then
8510 pass the result to grub-install --prefix.
8511
baa574b4 85122007-06-13 Robert Millan <rmh@aybabtu.com>
8513
8514 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
8515 DEFAULT_DEVICE_MAP.
8516 * util/grub-emu.c: Use above definitions from misc.h instead of
8517 defining them.
8518 * util/grub-mkdevicemap.c: Likewise.
8519 * util/i386/pc/grub-setup.c: Likewise.
8520 * util/grub-probe.c: Likewise.
8521 (probe): Abort with grub_util_error() when either
8522 grub_guess_root_device or grub_util_get_grub_dev fails.
8523
0215dcbf 85242007-06-12 Robert Millan <rmh@aybabtu.com>
8525
8526 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
8527 "pager" assignment.
8528 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
8529 "pcdata".
8530 * util/grub-probe.c (probe): Likewise for "drive_name".
8531
8af2ab7b 85322007-06-11 Robert Millan <rmh@aybabtu.com>
8533
8534 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
8535 not just the cdrom one.
8536
59d31694 85372007-06-11 Robert Millan <rmh@aybabtu.com>
8538
8539 * util/i386/pc/grub-mkrescue.in: Add "set -e".
8540 Add --pkglibdir=DIR option to override pkglibdir.
8541 Mention --image-type=TYPE in help output.
8542 Fix --grub-mkimage (it was a no-op).
fe6b695a 8543 Abort gracefully when no parameter is given.
59d31694 8544
7ee367e4 85452007-06-11 Robert Millan <rmh@aybabtu.com>
8546
8547 * util/i386/pc/grub-mkrescue.in: New file.
8548 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
8549 * Makefile.in: Handle bin_SCRIPTS.
8550
29b0ed46 85512007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
8552
8553 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
8554 list of video modes.
8555
c0f90770 85562007-06-06 Robert Millan <rmh@aybabtu.com>
8557
8558 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
8559 file doesn't exist, or if it is in a filesystem grub can't read.
8560
8561 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
8562 not abort if GRUB_DRIVE could not be defined. Rearrange generated
8563 header comment to fit in 80 columns when the variables are resolved.
8564
8565 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
8566 could be identified by update-grub. Remove redundant check for
fe6b695a 8567 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 8568 handles that).
8569
fb36dc26 85702007-06-04 Robert Millan <rmh@aybabtu.com>
8571
8572 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
8573
8574 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
8575
8576 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
8577
0c68c93e 85782007-06-04 Robert Millan <rmh@aybabtu.com>
8579
8580 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
8581
8582 * include/grub/partition.h: Declare grub_apple_partition_map_init and
8583 grub_apple_partition_map_fini.
8584
8585 * util/biosdisk.c
8586 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
8587 to access >2 TiB disks).
8588
8589 Print disk->total_sectors with %llu instead of %lu, since this
8590 variable is always 64-bit (prevents wrong disk size from being displayed
8591 on either >2 TiB disk or big-endian CPU).
8592
8593 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
8594 into a generic case that supports all (sane) partition maps.
8595
8596 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
8597 breaks big-endian.
8598
8599 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
8600 and grub_apple_partition_map_fini() after that.
8601
0f23eb74 86022007-06-01 Robert Millan <rmh@aybabtu.com>
8603
8604 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
8605
8606 * util/grub.d/00_header.in: Only enable gfxterm when
8607 convert_system_path_to_grub_path() succeeds.
8608
42c71976 86092007-05-20 Robert Millan <rmh@aybabtu.com>
8610
8611 * util/update-grub_lib.in: New file.
8612 * DISTLIST: Add update-grub_lib.in.
8613 * conf/common.rmk: Generate update-grub_lib and install it in
8614 $(lib_DATA).
8615 * Makefile.in: Add install routine for $(lib_DATA).
8616
8617 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
8618 function provided by update-grub_lib to support arbitrary paths of
8619 unifont.pff.
8620 * util/update-grub.in: Use convert_system_path_to_grub_path() to
8621 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
8622
5beb2291 86232007-05-19 Robert Millan <rmh@aybabtu.com>
8624
8625 * commands/i386/cpuid.c: New module.
8626 * DISTLIST: Add it.
8627 * conf/i386-efi.rmk: Enable cpuid.mod.
8628 * conf/i386-pc.rmk: Likewise.
8629
7262eca1 86302007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8631
8632 * kern/disk.c (grub_disk_read): Check return value of
8633 grub_realloc().
8634
260ba823 86352007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8636
8637 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
8638 arrays.
8639 * disk/raid.c (grub_raid_open): Likewise.
8640
1ecb6cf2 86412007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8642
8643 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
8644 stack instead of on the heap.
8645
8646 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
8647 before doing a read on it.
8648
8649 * configure.ac: Only use -fno-stack-protector for the target
8650 environment.
f19dbdb7 8651
21c8cbb1 86522007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8653
8654 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
8655 __attribute_ ((unused)) to mode_type argument.
8656
8657 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 8658
21c8cbb1 8659 * kern/misc.c (memcmp): Fix prototype.
8660
8661 * include/grub/partition.h [GRUB_UTIL]
8662 (grub_gpt_partition_map_init): Add prototype.
8663 (grub_gpt_partition_map_fini): Likewise.
8664
8665 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
8666 at the right place.
8667
8668 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
8669 (grub_fat_read_data): Likewise.
8670 (grub_fat_find_dir): Likewise.
8671
8672 * font/manager.c (find_glyph): Make table a const.
8673 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 8674
849d55d3 86752007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
8676
8677 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
8678 code, first search for device in /dev/mapper, then in /dev.
8679 (grub_util_get_grub_dev): New function.
8680 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
8681 prototype.
8682 * util/grub-probe.c (probe): Remove check for RAID, call
8683 grub_util_get_grub_dev() instead of
8684 grub_util_biosdisk_get_grub_dev().
8685 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
8686 grub_util_biosdisk_get_grub_dev().
8687 * util/i386/pc/grub-setup.c (main): Likewise.
8688
8fff7c2f 86892007-05-16 Robert Millan <rmh@aybabtu.com>
8690
8691 * DISTLIST: Update for the latest changes.
8692 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
8693 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
8694 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
8695 grub/util/biosdisk.h.
8696 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
8697 grub/util/biosdisk.h.
8698
48e12b52 86992007-05-16 Robert Millan <rmh@aybabtu.com>
8700
8701 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
8702
46b9d128 87032007-05-16 Robert Millan <rmh@aybabtu.com>
8704
8705 * util/i386/efi/grub-install.in: New.
8706 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
8707 newly added grub-install.
8708 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
8709 include.
8710 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
8711 grub/util/biosdisk.h.
8712 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
8713 grub/util/biosdisk.h.
8714
2d1a40a9 87152007-05-16 Robert Millan <rmh@aybabtu.com>
8716
8717 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
8718 * include/grub/util/biosdisk.h: ... here.
8719 * util/i386/pc/biosdisk.c: Moved to ...
8720 * util/biosdisk.c: ... here.
8721 * util/i386/pc/getroot.c: Moved to ...
8722 * util/getroot.c: ... here.
8723 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
8724 * util/grub-mkdevicemap.c: ... here.
8725 * util/i386/pc/grub-probe.c: Moved to ...
8726 * util/grub-probe.c: ... here.
8727
9e26e3bc 87282007-05-15 Robert Millan <rmh@aybabtu.com>
8729
8730 * util/update-grub.in: Remove duplicated line in grub.cfg header
8731 message.
8732
57f96397 87332007-05-13 Robert Millan <rmh@aybabtu.com>
8734
8735 * util/update-grub.in: Fix a few assumptions about the devices holding
8736 /, /boot and /boot/grub being the same.
8737 * util/grub.d/00_header.in: Likewise.
8738 * util/grub.d/10_hurd.in: Likewise.
8739 * util/grub.d/10_linux.in: Likewise.
8740
8741 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
8742 patterns. Use that to define the `.old' suffix as older than `'.
8743
8744 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
8745
8746 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
8747 the grub.cfg header message.
8748
2e610d62 87492007-05-11 Robert Millan <rmh@aybabtu.com>
8750
8751 * util/update-grub.in: Create device.map if it doesn't already exist,
8752 before attempting to run grub-probe.
8753 Check for grub-probe and grub-mkdevicemap with the same code
8754 grub-install is using.
8755 Remove test mode.
8756
3f6a10ef 87572007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
8758
8759 * Makefile.in: Add the datarootdir autoconf variable.
8760
02e7b75e 87612007-05-09 Robert Millan <rmh@aybabtu.com>
8762
8763 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 8764 fail gracefully if dev->disk->partition == NULL.
02e7b75e 8765
75f396cc 87662007-05-07 Robert Millan <rmh@aybabtu.com>
8767
8768 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
8769 determine partition map module.
8770 * util/i386/pc/grub-install.in: Use this feature to decide which
8771 partition module to load, instead of hardcoding pc and gpt.
8772
da65cb36 87732007-05-07 Robert Millan <rmh@aybabtu.com>
8774
8775 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
8776 source directory differs from build directory.
8777
b57d6a91 87782007-05-05 Robert Millan <rmh@aybabtu.com>
8779
8780 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
8781 initialisation.
8782
509d00f1 87832007-05-05 Robert Millan <rmh@aybabtu.com>
8784
8785 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
8786
c48f23ef 87872007-05-05 Robert Millan <rmh@aybabtu.com>
8788
8789 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
8790 command-line arguments via ${GRUB_CMDLINE_LINUX}.
8791
20b97658 87922007-05-05 Robert Millan <rmh@aybabtu.com>
8793
8794 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
8795 (grub_probe_SOURCES): Likewise.
8796 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
8797 GPT and initialize dos_part and bsd_part accordingly.
8798 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
8799 install_bsd_part.
8800 (main): Activate gpt module for use during partition identification,
8801 and deactivate it afterwards.
8802 * util/i386/pc/grub-install.in: Add gpt module to core.img.
8803 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
8804 partition identification, and deactivate it afterwards.
8805
99123174 88062007-05-05 Robert Millan <rmh@aybabtu.com>
8807
8808 * term/i386/pc/console.c (grub_console_fini): Call
8809 grub_term_set_current() before grub_term_unregister().
8810
ebd97f6e 88112007-05-04 Robert Millan <rmh@aybabtu.com>
8812
8813 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
8814 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
8815 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
8816 and update-grub_DATA.
8817 * conf/common.rmk: Build and install update-grub components.
8818 * conf/common.mk: Regenerate.
8819 * util/update-grub.in: New. Core of update-grub.
8820 * util/grub.d/00_header.in: New. Generates grub.cfg header.
8821 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
8822 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
8823 * util/grub.d/README: New. Document grub.d directory layout.
8824
b06a264d 88252007-05-01 Robert Millan <rmh@aybabtu.com>
8826
8827 * util/grub-emu.c: Move initialization functions
8828 grub_util_biosdisk_init() and grub_init_all() before
8829 grub_util_biosdisk_get_grub_dev(), which relies on them.
8830
41f0050e 88312007-04-19 Robert Millan <rmh@aybabtu.com>
8832
8833 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
8834 it is used later.
8835
04582bb3 88362007-04-18 Jerone Young <jerone@gmail.com>
8837
f19dbdb7 8838 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 8839 stanza.
8840
08db4632 88412007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 8842
08db4632 8843 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
8844 continue on and look for device node with real device name.
8845
801b76be 88462007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 8847
fe6b695a 8848 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 8849 ability.
8850 * Makefile.in: Add autoconf package transformation code.
8851 * util/i386/pc/grub-install.in: Likewise.
8852 * util/powerpc/ieee1275/grub-install.in: Likewise.
8853
6795c4e1 88542007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
8855
8856 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
8857 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
8858 (EXT2_REVISION): Likewise.
8859 (EXT2_INODE_SIZE): Likewise.
8860 (struct grub_ext2_block_group): Added a missing member
8861 "used_dirs".
8862 (grub_ext2_read_inode): Divide by the inode size in a superblock
8863 instead of 128 to obtain INODES_PER_BLOCK.
8864 Use the macro EXT2_INODE_SIZE instead of directly using
8865 SBLOCK->INODE_SIZE.
8866
d70af616 88672007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
8868
8869 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
8870 superblock instead of the structure size to compute an
8871 offset. This fixes the problem that GRUB could not read a
8872 filesystem when inode size is different from 128-byte.
8873
3b801603 88742007-03-05 Marco Gerards <marco@gnu.org>
8875
8876 * normal/main.c (read_config_file): When "menu" is not set, create
8877 an initial context.
8878
4785bfe4 88792007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8880
8881 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
8882 (HEAP_LIMIT): New macro.
8883 (grub_claim_heap): Claim memory up to `heaplimit'.
8884
a0cbb023 88852007-02-21 Hollis Blanchard <hollis@penguinppc.org>
8886
8887 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
8888 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
8889 (_start): Likewise.
8890 (grub_arch_modules_addr): Return address after `_end'.
8891 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
8892 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
8893 (add_segments): Calculate `_end' from phdr size and location.
8894 (ALIGN_UP): Moved to ...
8895 * include/grub/misc.h: here.
8896 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
8897 New macro.
8898 (GRUB_IEEE1275_MODULE_BASE): Removed.
8899
fd7d8eba 89002007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8901
8902 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
8903 loop boundary.
8904
9b09e6fc 89052007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8906
8907 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
8908 All users updated.
8909 (grub_elf64_load_hook_t): Likewise.
8910 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
8911 debug output.
8912
3ce27299 89132007-02-20 Hollis Blanchard <hollis@penguinppc.org>
8914
8915 * kern/mm.c: Update copyright.
8916 (grub_mm_debug): Correct syntax error.
8917 (grub_mm_dump_free): New function.
8918 (grub_debug_free): Call `grub_free'.
8919 * include/grub/mm.h: Update copyright.
8920 (grub_mm_dump_free): Add declaration.
8921
077d5fee 89222007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8923
8924 * include/grub/ieee1275/ieee1275.h: Update copyright.
8925 * kern/powerpc/ieee1275/init.c: Likewise.
8926 * kern/powerpc/ieee1275/openfw.c: Likewise.
8927
8928 * loader/powerpc/ieee1275/linux.c: Likewise.
8929 * include/grub/elfload.h: Likewise.
8930 * kern/elf.c: Likewise.
8931 (grub_elf32_load): Pass `base' and `size' parameters. Update all
8932 callers.
8933 (grub_elf64_load): Likewise.
8934 (grub_elf32_load_segment): Move to a nested function.
8935 (grub_elf64_load_segment): Likewise.
8936
dc946850 89372007-02-12 Hollis Blanchard <hollis@penguinppc.org>
8938
8939 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
8940 prototype.
8941 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
8942 (grub_heap_len): Likewise.
8943 (HEAP_SIZE): New macro.
8944 (grub_claim_heap): New function.
8945 (grub_machine_init): Don't claim heap directly. Call
8946 `grub_claim_heap'.
8947 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
8948 (grub_available_iterate): New function.
8949
baa2a121 89502007-02-03 Thomas Schwinge <tschwinge@gnu.org>
8951
8952 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
8953 * configure.ac: Use it for testing the HOST and TARGET compilers.
8954
4fe9862e 89552006-12-13 Thomas Schwinge <tschwinge@gnu.org>
8956
8957 * Makefile.in (enable_grub_emu): New variable.
8958 * configure.ac (--enable-grub-emu): New option.
8959 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
8960 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
8961 * conf/i386-pc.rmk: Likewise.
8962 * conf/powerpc-ieee1275.rmk: Likewise.
8963 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
8964
a8aa5762 89652006-12-12 Marco Gerards <marco@gnu.org>
8966
8967 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
8968
8969 * kern/env.c (grub_env_unset): Don't free the member `value' when
8970 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
8971 pointer.
8972
8973 * normal/main.c (current_menu): Removed.
8974 (free_menu): Unset the `menu' environment variable.
8975 (grub_normal_menu_addentry): Make use of the environment variable
8976 `menu', instead of using the global `current_menu'. Allocate
8977 memory for the sourcecode of this entry.
8978 (read_config_file): New argument `nested', changed all callers.
8979 Only in the case of a new context, initialize a new menu. Set the
8980 `menu' environment variable.
8981 (grub_normal_execute): Don't set and unset the environment
8982 variable `menu' here anymore. Only free the menu when leaving the
8983 context.
8984
8985 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
8986 leak.
8987
957b3a3e 89882006-12-11 Marco Gerards <marco@gnu.org>
8989
8990 * normal/menu_entry.c (run): Fix off by one bug so the last line
8991 is executed. Move the loader check to outside the loop.
8992
ef875714 89932006-12-08 Hollis Blanchard <hollis@penguinppc.org>
8994
8995 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
8996
4e739985 89972006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
8998
8999 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
9000 the number of sectors. Reported by Andrey Shuvikov
9001 <mr_hyro@yahoo.com>.
f19dbdb7 9002
790707f2 90032006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
9004
9005 * kern/disk.c (grub_disk_read): When there is a read error, always
9006 try to read only the necessary data.
f19dbdb7 9007
790707f2 9008 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
9009 disk/raid.c.
9010 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
9011 prototype.
9012 [GRUB_UTIL] (grub_raid_fini): Likewise.
9013 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 9014 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 9015 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
9016 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
9017 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
9018 and grub_raid_fini().
f19dbdb7 9019
03e58196 90202006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
9021
9022 * include/grub/types.h (__unused): Rename to UNUSED.
9023 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
9024 (grub_elf64_size): Likewise.
f19dbdb7 9025
ae4f23bf 90262006-11-03 Hollis Blanchard <hollis@penguinppc.org>
9027
9028 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
9029 grub_error_push and grub_error_pop in the error-handling path.
9030 (grub_elf32_load_segment): Only call grub_file_read with non-zero
9031 length.
9032
2166cc83 90332006-11-03 Hollis Blanchard <hollis@penguinppc.org>
9034
9035 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
9036 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
9037 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9038 (kernel_elf_SOURCES): Likewise.
9039 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
9040 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
9041 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9042 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9043 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
9044 (elf_mod_SOURCES): New variable.
9045 (elf_mod_CFLAGS): Likewise.
9046 (elf_mod_LDFLAGS): Likewise.
9047 * include/grub/types.h (__unused): New macro.
9048 * include/grub/elfload.h: New file.
9049 * kern/elf.c: Likewise.
9050 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
9051 (ELF32_LOADMASK): New macro.
9052 (ELF64_LOADMASK): Likewise.
9053 (vmlinux): Removed.
9054 (grub_linux_load32): New function.
9055 (grub_linux_load64): Likewise.
9056 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
9057 Use grub_elf_t instead of grub_file_t.
9058
a09d5aa5 90592006-11-02 Hollis Blanchard <hollis@penguinppc.org>
9060
9061 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
9062 `catch_result' to struct set_color_args.
9063
d976fc51 90642006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
9065
9066 * normal/menu.c: Include grub/script.h.
9067 * normal/menu_entry.c: Likewise.
9068 * include/grub/normal.h: Do not include grub/script.h.
9069
67507549 90702006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9071
9072 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
9073
69203a99 90742006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9075
9076 * kern/disk.c (grub_disk_open): Print debug messages when opening a
9077 disk.
9078 (grub_disk_close): Print debug messages when closing a disk.
9079 (grub_disk_read): Print debug messages when disk read fails.
9080 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
9081 filesystem type.
9082 * kern/partition.c: Include misc.h.
9083 (grub_partition_iterate): Print debug messages when detecting
9084 partition type.
9085
e2b8278c 90862006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9087
9088 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
9089 is negative.
9090 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
9091
97b2f2ff 90922006-10-26 Hollis Blanchard <hollis@penguinppc.org>
9093
9094 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
9095 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
9096
6555d655 90972006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
9098
9099 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
9100 instead of sizeof(lv). Patch by Michael Guntsche.
9101
4d42b77f 91022006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
9103
9104 * disk/lvm.c: Rename VGS to VG_LIST.
9105 (grub_lvm_iterate): Change VGS->LV to VG-LV.
9106 (grub_lvm_open): Likewise.
9107 Thanks to Michael Guntsche for finding this bug.
9108
5d74d927 91092006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9110
9111 * configure.ac (AC_INIT): Bumped to 1.95.
9112
a1bb27e4 91132006-10-14 Robert Millan <rmh@aybabtu.com>
9114
9115 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
9116 with "/dev/.static/dev/md".
9117
e0994b8b 91182006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9119
9120 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
9121 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
9122 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
9123 DRIVE_NAME are always freed.
9124
9125 * util/i386/pc/biosdisk.c (make_device_name): Add one into
9126 DOS_PART, as a DOS partition is counted from one instead of zero
9127 now. Reported by Robert Millan.
9128
ddd5cee9 91292006-10-14 Robert Millan <rmh@aybabtu.com>
9130
9131 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
9132 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
9133 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
9134 string returned by grub_guess_root_device.
9135 * util/i386/pc/grub-setup.c: Likewise.
9136 * util/i386/pc/grub-probefs.c: Likewise.
9137
9138 * util/i386/pc/grub-probefs.c: Rename to ...
9139 * util/i386/pc/grub-probe.c: ... this.
9140 * DISTLIST: Remove grub-probefs, add grub-probe.
9141 * conf/i386-efi.rmk: Likewise.
9142 * conf/i386-pc.rmk: Likewise.
9143 * util/i386/pc/grub-install.in: Likewise.
9144
9145 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
9146 choose which information we want to print.
9147
2b002173 91482006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9149
9150 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
9151 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
9152 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
9153 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
9154 video/readers/tga.c and video/i386/pc/vbeutil.c.
9155
91562006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
9157
9158 Added support for RAID and LVM.
f19dbdb7 9159
2b002173 9160 * disk/lvm.c: New file.
9161 * disk/raid.c: Likewise.
9162 * include/grub/lvm.h: Likewise.
f19dbdb7 9163 * include/grub/raid.h: Likewise.
2b002173 9164 * include/grub/util/lvm.h: Likewise.
9165 * include/grub/util/raid.h: Likewise.
9166 * util/lvm.c: Likewise.
9167 * util/raid.c: Likewise.
9168
9169 * include/grub/disk.h (grub_disk_dev_id): Add
9170 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
9171 (grub_disk_get_size): New prototype.
9172 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
9173 returns a partition.
9174 (grub_disk_get_size): New function.
f19dbdb7 9175
2b002173 9176 * kern/i386/pc/init.c (make_install_device): Copy the prefix
9177 verbatim if grub_install_dos_part is -2.
9178
9179 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
9180 and LVM devices.
9181
9182 * util/i386/pc/grub-setup.c (setup): New argument
9183 MUST_EMBED. Force embedding of GRUB when the argument is
9184 true. Close FILE before returning.
9185 (main): Add support for RAID and LVM.
f19dbdb7 9186
2b002173 9187 * conf/common.rmk: Add RAID and LVM modules.
9188 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
9189 util/lvm.c.
9190 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
9191
9192 * kern/misc.c (grub_strstr): New function.
9193 * include/grub/misc.h (grub_strstr): New prototype.
9194
050548d0 91952006-10-10 Tristan Gingold <tristan.gingold@bull.net>
9196
9197 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
9198
da849d2d 91992006-10-05 Tristan Gingold <tristan.gingold@bull.net>
9200
9201 * kern/misc.c (grub_strtoull): Guess the base only if not
9202 specified.
9203
97b2f2ff 92042006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 9205
9206 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
9207 PowerMac support.
9208
97b2f2ff 92092006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 9210
9211 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
9212
9213 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
9214 Remove `flags' argument. All callers changed.
9215 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
9216 (IEEE1275_IHANDLE_INVALID): New variable.
9217 (IEEE1275_CELL_INVALID): New variable.
9218 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
9219 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
9220 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
9221 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
9222 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
9223 codes from Open Firmware. All callers updated.
9224 (grub_ieee1275_next_property): Directly return Open Firmware return
9225 code.
9226 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
9227 Standardize error checking from `grub_ieee1275_get_property'.
9228 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
9229 `devalias' to `aliases'. Correct comments. Consolidate error paths.
9230
97b2f2ff 92312006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 9232
9233 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
9234 `instance_to_package_args' to `instance_to_path_args'.
9235
9236 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
9237 `grub_ieee1275_chosen'.
9238
9239 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
9240 `grub_ieee1275_interpret'.
9241
97b2f2ff 92422006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 9243
9244 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
9245
97b2f2ff 92462006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 9247
9248 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
9249 (__cmpdi): Likewise.
9250
9251 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
9252 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
9253 `grub_ssize_t'.
9254
02bb8acc 9255 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 9256
9257 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
9258 to type `grub_ssize_t'.
9259 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
9260
7f9a8531 92612006-09-22 Marco Gerards <marco@gnu.org>
9262
9263 * normal/script.c (grub_script_create_cmdmenu): Skip leading
9264 newlines.
9265
b5ef1102 92662006-09-22 Marco Gerards <marco@gnu.org>
9267
9268 * commands/echo.c: New file.
9269
9270 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
9271
9272 * conf/common.rmk (echo_mod_SOURCES): New variable.
9273 (echo_mod_CFLAGS): Likewise.
9274 (echo_mod_LDFLAGS): Likewise.
9275
2cff3677 92762006-09-22 Marco Gerards <marco@gnu.org>
9277
9278 * normal/main.c (get_line): Malloc memory instead of using
9279 preallocated memory. Removed the arguments `cmdline' and
9280 `max_len'. Updated all callers.
9281
6ba4688b 92822006-09-22 Marco Gerards <marco@gnu.org>
9283
9284 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
9285 (normal_mod_DEPENDENCIES): Likewise.
9286
9287 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
9288 (normal_mod_DEPENDENCIES): Likewise.
9289
9290 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
9291
e02ac02c 92922006-09-22 Johan Rydberg <jrydberg@gnu.org>
9293
9294 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
9295 programs.
9296 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
9297 (normal_mod_DEPENDENCIES): Likewise.
9298 * conf/i386-pc.mk: Regenerate.
9299 * conf/i386-efi.mk: Likewise
9300 * conf/common.mk: Likewise.
9301 * conf/powerpc-ieee1275.mk: Likewise.
9302 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9303
8d252e44 93042006-09-22 Robert Millan <rmh@aybabtu.com>
9305
9306 Sync with i386 version.
9307 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
9308 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
9309
209bf7ac 93102006-09-21 Robert Millan <rmh@aybabtu.com>
9311
9312 Import from GRUB Legacy (lib/device.c):
9313 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
9314 (init_device_map) [__linux__]: Add support for I2O devices.
9315
6b146090 93162006-09-14 Marco Gerards <marco@gnu.org>
9317
9318 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
9319 `-melf_i386'.
9320
e38600a8 93212006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 9322
9323 * util/i386/pc/grub-install.in: Skip menu.lst when removing
9324 /boot/grub/*.lst.
78fa1790 9325
2952da5d 9326 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 9327
2952da5d 9328 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
9329 before adding it to device.map.
9330
01b82a64 93312006-08-15 Johan Rydberg <jrydberg@gnu.org>
9332
fe6b695a 9333 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 9334 compiles a file; using the -MD option.
9335 * conf/common.mk: Regenerate.
9336 * conf/i386-pc.mk: Likewise.
9337 * conf/i386-efi.mk: Likewise.
9338 * conf/powerpc-ieee1275.mk: Likewise.
9339 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9340
1064790d 93412006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
9342
9343 Move the prototypes of grub_setjmp and grub_longjmp to
9344 cpu/setjmp.h, so that each architecture may specify different
9345 attributes.
f19dbdb7 9346
1064790d 9347 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
9348 (grub_longjmp): Likewise.
9349 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
9350 (grub_longjmp): Likewise.
9351 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
9352 (grub_longjmp): Likewise.
9353
9354 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
9355 [!GRUB_UTIL] (grub_longjmp): Removed.
9356
29dda3ed 93572006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
9358
9359 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
9360 "color!" method does not return any value.
9361
ad2a06ed 93622006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9363
9364 * include/grub/bitmap.h: New file.
9365
9366 * include/grub/i386/pc/vbeutil.h: Likewise.
9367
9368 * video/bitmap.c: Likewise.
9369
9370 * video/readers/tga.c: Likewise.
9371
9372 * video/i386/pc/vbeutil.c: Likewise.
9373
9374 * commands/videotest.c: Code cleanup and updated to reflect to new
9375 video API.
9376
9377 * term/gfxterm.c: Likewise.
9378
9379 * video/video.c: Likewise.
9380
9381 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
9382 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
9383 (bitmap_mod_SOURCES): New entry.
9384 (bitmap_mod_CFLAGS): Likewise.
9385 (bitmap_mod_LDFLAGS): Likewise.
9386 (tga_mod_SOURCES): Likewise.
9387 (tga_mod_CFLAGS): Likewise.
9388 (tga_mod_LDFLAGS): Likewise.
9389
9390 * include/grub/video.h (grub_video_blit_operators): New enum type.
9391 (grub_video_render_target): Changed as forward declaration and moved
9392 actual definition to be video driver specific.
9393 (grub_video_adapter.blit_bitmap): Added blitting operator.
9394 (grub_video_adapter.blit_render_target): Likewise.
9395 (grub_video_blit_bitmap): Likewise.
9396 (grub_video_blit_render_target): Likewise.
9397
9398 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
9399 driver specific render target definition.
9400 (grub_video_vbe_map_rgba): Added driver internal helper.
9401 (grub_video_vbe_unmap_color): Updated to use
9402 grub_video_i386_vbeblit_info.
9403 (grub_video_vbe_get_video_ptr): Likewise.
9404
9405 * include/grub/i386/pc/vbeblit.h
9406 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
9407 grub_video_i386_vbeblit_info.
9408 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
9409 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
9410 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
9411 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
9412 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
9413 (grub_video_i386_vbeblit_index_index): Likewise.
9414 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
9415 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
9416 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
9417 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
9418 operator.
9419 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
9420 operator.
9421
9422 * video/i386/pc/vbeblit.c: Updated to reflect changes on
9423 include/grub/i386/pc/vbeblit.h.
9424
9425 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
9426 Updated to use grub_video_i386_vbeblit_info.
9427 (grub_video_i386_vbefill_R8G8B8): Likewise.
9428 (grub_video_i386_vbefill_index): Likewise.
9429 (grub_video_i386_vbefill): Added generic filler.
9430
9431 * video/i386/pc/vbefill.c: Updated to reflect changes on
9432 include/grub/i386/pc/vbefill.h.
9433
9434 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
9435 grub_video_i386_vbeblit_info.
9436 (grub_video_vbe_unmap_color): Likewise.
9437 (grub_video_vbe_blit_glyph): Likewise.
9438 (grub_video_vbe_scroll): Likewise.
9439 (grub_video_vbe_draw_pixel): Removed function.
9440 (grub_video_vbe_get_pixel): Likewise.
9441 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
9442 updated code to use it.
9443 (common_blitter): Added common blitter for render target and bitmap.
9444 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
9445 (grub_video_vbe_blit_render_target): Likewise.
9446
bc8c036d 94472006-07-30 Johan Rydberg <jrydberg@gnu.org>
9448
9449 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
9450 is in text mode if there is no console control protocol instance
9451 available.
9452
684a8eff 94532006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9454
9455 * include/grub/video.h: Code cleanup.
9456
9457 * include/grub/i386/pc/vbe.h: Likewise.
9458
9459 * video/i386/pc/vbe.c: Likewise.
9460
9461 * video/i386/pc/vbeblit.c: Likewise.
9462
9463 * video/i386/pc/vbefill.c: Likewise.
9464
9465 * video/video.c: Likewise. Also added more comments.
9466
5915059b 94672006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9468
9469 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
9470 (struct grub_biosdisk_dap): Likewise.
9471
9472 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
9473 linkage settings for all functions.
9474
90ce5d56 94752006-07-12 Marco Gerards <marco@gnu.org>
9476
9477 * configure.ac (--enable-mm-debug): Fix typo.
9478
9479 * genkernsyms.sh.in: Use proper quoting for `CC'.
9480
43e7f879 94812006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
9482
9483 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
9484 (normal_mod_ASFLAGS): Remove "-m32".
9485
4889bdec 94862006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
9487
9488 * util/misc.c: Include config.h.
9489 [!HAVE_MEMALIGN]: Do not include malloc.h.
9490 (grub_memalign): Use posix_memalign, if present. Then, use
9491 memalign, if present. Otherwise, emit an error.
9492
9493 * util/grub-emu.c: Do not include malloc.h.
9494
9495 * include/grub/util/misc.h: Include unistd.h. This is required for
9496 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
9497 D. Eades III <hde@foobar-qux.org>.
9498
9499 * configure.ac (AC_GNU_SOURCE): Added.
9500 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
9501 type.
9502
fd39d4da 95032006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
9504
9505 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
9506 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
9507
b786f3b5 95082006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
9509
9510 * include/grub/types.h (grub_host_addr_t): Rename to
9511 grub_target_addr_t.
9512 (grub_host_off_t): Rename to grub_target_off_t.
9513 (grub_host_size_t): Rename to grub_target_size_t.
9514 (grub_host_ssize_t): Rename to grub_target_ssize_t.
9515 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
9516
9517 * include/grub/kernel.h (struct grub_module_header): Change type
9518 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
9519 (grub_module_info): Likewise.
f19dbdb7 9520
051988bb 95212006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9522
9523 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
9524 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
9525 Velazquez <jesus.velazquez@gmail.com>.
9526
deae281b 95272006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9528
9529 Count partitions from 1 instead of 0 in the string representation
9530 of partitions. Still use 0-based internally.
f19dbdb7 9531
deae281b 9532 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
9533 (sun_partition_map_iterate): Use grub_partition_t instead of
9534 struct grub_partition *. Cast DESC->START_CYLINDER to
9535 grub_uint64_t after converting the endian.
9536 (sun_partition_map_probe): Subtract 1 for PARTNUM.
9537 (sun_partition_map_get_name): Add 1 to P->INDEX.
9538
9539 * partmap/pc.c (grub_partition_parse): Subtract 1 for
9540 PCDATA->DOS_PART.
9541 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
9542
9543 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
9544 zero instead of one.
9545 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
9546 (gpt_partition_map_get_name): Add 1 into P->INDEX.
9547
9548 * partmap/apple.c (apple_partition_map_iterate): Change the type
9549 of POS to unsigned.
9550 (apple_partition_map_probe): Subtract 1 for PARTNUM.
9551 (apple_partition_map_get_name): Add 1 into P->INDEX.
9552
9553 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
9554 of POS to unsigned.
9555 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
9556 calculate the offset of a partition.
9557 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
9558 (amiga_partition_map_get_name): Add 1 into P->INDEX.
9559
9560 * partmap/acorn.c (acorn_partition_map_find): Change the type of
9561 SECTOR to grub_disk_addr_t.
9562 (acorn_partition_map_iterate): Likewise.
9563 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
9564 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
9565 top.
9566 (acorn_partition_map_get_name): Add 1 into P->INDEX.
9567
9568 * kern/i386/pc/init.c (make_install_device): Add 1 into
9569 GRUB_INSTALL_DOS_PART.
9570
9571 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
9572 conditional.
9573
524a1e6a 95742006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9575
9576 Clean up the code to support 64-bit addressing in disks and
9577 files. This change is not enough for filesystems yet.
f19dbdb7 9578
524a1e6a 9579 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
9580 type of "start" to grub_uint64_t.
9581 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
9582 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
9583 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
9584 convert addresses.
9585
9586 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
9587 to grub_disk_addr_t.
9588
9589 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
9590 string.
9591
9592 * partmap/pc.c (pc_partition_map_iterate): Likewise.
9593
9594 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
9595 to char *.
9596
9597 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
9598
9599 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
9600
9601 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
9602
9603 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
9604 to grub_off_t, to detect an error from grub_file_seek.
9605 (grub_multiboot_load_elf32): Likewise.
9606
9607 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
9608 maximum unsigned long value when an overflow is detected.
9609 (grub_strtoull): New function.
9610 (grub_divmod64): Likewise.
9611 (grub_lltoa): use grub_divmod64.
9612
9613 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
9614 grub_disk_addr_t.
9615 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
9616 the pointer to next character. Use grub_strtoull instead of
9617 grub_strtoul.
9618 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
9619 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
9620 respectively.
9621
fe6b695a 9622 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 9623 return value is signed.
9624 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
9625 test if OFFSET is less than zero, as OFFSET is unsigned now.
9626
9627 * kern/disk.c (struct grub_disk_cache): Change the type of
9628 "sector" to grub_disk_addr_t.
9629 (grub_disk_cache_get_index): Change the type of SECTOR to
9630 grub_disk_addr_t. Calculate the hash with SECTOR casted to
9631 unsigned after shifting.
9632 (grub_disk_cache_invalidate): Change the type of SECTOR to
9633 grub_disk_addr_t.
9634 (grub_disk_cache_unlock): Likewise.
9635 (grub_disk_cache_store): Likewise.
9636 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
9637 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
9638 grub_disk_addr_t and grub_uint64_t, respectively.
9639 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
9640 body, as the value of OFFSET is tweaked by
9641 grub_disk_check_range. Change the types of START_SECTOR, LEN and
9642 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
9643 respectively.
9644 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
9645 body, as the value of OFFSET is tweaked by
9646 grub_disk_check_range. Change the types of LEN and N to
9647 grub_size_t.
9648
9649 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
9650 and "saved_offset" to grub_off_t.
9651 (test_header): Cast BUF to char *.
9652 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
9653 to char *.
9654 (grub_gzio_read): Change the types of OFFSET and SIZE to
9655 grub_off_t and grub_size_t, respectively.
9656
9657 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
9658 Removed.
9659 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
9660 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
9661 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
9662 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
9663 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
9664
9665 * include/grub/types.h (grub_off_t): Unconditionally set to
9666 grub_uint64_t.
9667 (grub_disk_addr_t): Changed to grub_uint64_t.
9668
9669 * include/grub/partition.h (struct grub_partition): Change the
9670 types of "start", "len" and "offset" to grub_disk_addr_t,
9671 grub_uint64_t and grub_disk_addr_t, respectively.
9672 (grub_partition_get_start): Return grub_disk_addr_t.
9673 (grub_partition_get_len): Return grub_uint64_t.
9674
9675 * include/grub/misc.h (grub_strtoull): New prototype.
9676 (grub_divmod64): Likewise.
9677
9678 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
9679 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
9680 grub_off_t, respectively.
9681 All callers and references changed.
9682
9683 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
9684 grub_size_t in "read".
9685 All callers and references changed.
9686
9687 * include/grub/file.h (struct grub_file): Change the types of
9688 "offset" and "size" to grub_off_t and grub_off_t,
9689 respectively. Change the type of SECTOR to grub_disk_addr_t in
9690 "read_hook".
9691 (grub_file_read): Change the type of LEN to grub_size_t.
9692 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
9693 grub_off_t.
9694 (grub_file_size): Return grub_off_t.
9695 (grub_file_tell): Likewise.
9696 All callers and references changed.
9697
9698 * include/grub/disk.h (struct grub_disk_dev): Change the types of
9699 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
9700 "write".
9701 (struct grub_disk): Change the type of "total_sectors" to
9702 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 9703 "read_hook".
524a1e6a 9704 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
9705 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
9706 (grub_disk_write): Likewise.
9707 All callers and references changed.
9708
9709 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
9710 char * for grub_strncmp to silence gcc.
9711 (grub_iso9660_mount): Likewise.
9712 (grub_iso9660_mount): Likewise.
9713 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
9714 return statement.
9715 (grub_iso9660_iterate_dir): Likewise.
9716 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
9717
9718 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
9719 LEN to grub_disk_addr_t and grub_size_t, respectively.
9720
9721 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
9722
9723 * fs/jfs.c (grub_jfs_read_file): Likewise.
9724
9725 * fs/minix.c (grub_jfs_read_file): Likewise.
9726
9727 * fs/sfs.c (grub_jfs_read_file): Likewise.
9728
9729 * fs/ufs.c (grub_jfs_read_file): Likewise.
9730
9731 * fs/xfs.c (grub_jfs_read_file): Likewise.
9732
9733 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
9734 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
9735 respectively.
9736
9737 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
9738 BLKNR to -1 instead of returning GRUB_ERRNO.
9739 (grub_ext2_read_file): Change the types of SECTOR and
9740 LEN to grub_disk_addr_t and grub_size_t, respectively.
9741
9742 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
9743 LEN to grub_disk_addr_t and grub_size_t, respectively.
9744
9745 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
9746 grub_file_read.
9747
9748 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
9749 string. Do not cast SECTOR explicitly.
9750
9751 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
9752 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
9753 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
9754 grub_disk_addr_t and grub_size_t, respectively. If the sector is
9755 over 2TB and LBA mode is not supported, raise an error.
9756 (get_safe_sectors): New function.
9757 (grub_biosdisk_read): Use get_safe_sectors.
9758 (grub_biosdisk_write): Likewise.
9759
9760 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
9761 (grub_efidisk_write): Likewise.
9762
9763 * disk/loopback.c (delete_loopback): Cosmetic changes.
9764 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
9765 correctly.
9766 (grub_loopback_open): Likewise.
9767 (grub_loopback_read): Likewise. Also, change the type of POS to
9768 grub_off_t, and fix the usage of grub_memset.
9769
9770 * commands/i386/pc/play.c: Include grub/machine/time.h.
9771
9772 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
9773 print FILE->SIZE.
9774
9775 * commands/configfile.c: Include grub/env.h.
9776
9777 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
9778 GRUB_ERRNO directly instead. Change the type of POS to
9779 grub_off_t. Follow the coding standard.
9780
9781 * commands/blocklist.c: Include grub/partition.h.
9782 (grub_cmd_blocklist): Return an error if the underlying device is
9783 not a disk. Take the starting sector of a partition into account,
9784 if a partition is used.
9785
9786 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
9787 a length field.
9788 (lba_mode): Support 64-bit addresses.
9789 (chs_mode): Likewise.
9790 (copy_buffer): Adapted to the new offsets of a length field and a
9791 segment field.
9792 (blocklist_default_start): Allocate 64-bit space.
9793
9794 * boot/i386/pc/boot.S (force_lba): Removed.
9795 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 9796 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 9797 space.
9798 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
9799 is useless.
9800 (lba_mode): Refactored to support a 64-bit address. More size
9801 optimization.
9802 (setup_sectors): Likewise.
9803
53af98ad 98042006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9805
9806 * DISTLIST: Added include/grub/i386/linux.h. Removed
9807 include/grub/i386/pc/linux.h
9808
9809 * configure.ac (AC_INIT): Bumped to 1.94.
9810
9811 * config.guess: Updated from gnulib.
9812 * config.sub: Likewise.
9813 * install-sh: Likewise.
9814 * mkinstalldirs: Likewise.
9815
b4c1940a 98162006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9817
9818 * conf/common.rmk (grub_modules_init.lst): Depended on
9819 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
9820 MODSRCFILES.
9821
9822 * genmk.rb (PModule::rule): Reverted the previous change.
9823
cfca1cfd 98242006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9825
9826 * conf/common.rmk (grub_modules_init.lst): Depends on
9827 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
9828 that the target does not exist before producing.
9829 (grub_modules_init.h): Remove the target before generating.
9830 (grub_emu_init.c): Likewise.
9831
9832 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
9833
aa6d7826 98342006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
9835
9836 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
9837 for the target-specific tests. Make sure that we also have the
9838 up-to-date target variables for those tests.
9839
26c607b9 98402006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9841
9842 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
9843 (PModule::rule): Likewise.
9844
0162321a 98452006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9846
9847 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
9848 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
9849 target-specific flags should be prefixed.
9850 (PModule::rule): Likewise.
9851
6c826348 98522006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
9853
9854 * configure.ac (CMP): Check if cmp is available explicitly.
9855
b977bf01 98562006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
9857
9858 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
9859 (target_cpu): New variable.
9860 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 9861
b977bf01 9862 * util/i386/pc/grub-install.in (host_cpu): Removed.
9863 (target_cpu): New variable.
9864 (pkglibdir): Use target_cpu instead of host_cpu.
9865
9866 * util/genmoddep.c: Removed.
f19dbdb7 9867
b977bf01 9868 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
9869 instead of GRUB_HOST_SIZEOF_VOID_P.
9870 * kern/dl.c: Likewise.
9871
9872 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
9873 ...
9874 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9875 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9876 (GRUB_TARGET_SIZEOF_LONG): ... this.
9877 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9878 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9879 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9880 to ...
9881 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9882 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9883 (GRUB_TARGET_SIZEOF_LONG): ... this.
9884 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9885 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9886 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
9887 to ...
9888 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
9889 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
9890 (GRUB_TARGET_SIZEOF_LONG): ... this.
9891 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
9892 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
9893
9894 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
9895 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
9896 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
9897 instead of GRUB_HOST_SIZEOF_LONG.
9898 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
9899 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
9900 GRUB_CPU_WORDS_BIGENDIAN.
9901 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
9902 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
9903 grub_host_ssize_t.
9904
9905 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
9906 (genmoddep_SOURCES): Likewise.
9907 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
9908 (genmoddep_SOURCES): Likewise.
9909 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
9910 (genmoddep_SOURCES): Likewise.
9911 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
9912 Likewise.
9913 (genmoddep_SOURCES): Likewise.
9914
9915 * genmoddep.awk: New file.
9916
9917 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
9918 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
9919 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
9920 (PModule::rule): Likewise.
9921 (Program::rule): Likewise.
9922 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
9923 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
9924 respectively.
9925
9926 * configure.ac: Rewritten intensively to use host and target
9927 instead of build and host, respectively.
9928
9929 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
9930 (host_cpu): Removed.
9931 (target_cpu): New variable.
9932 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
9933 (BUILD_CC): Removed.
9934 (BUILD_CFLAGS): Likewise.
9935 (BUILD_CPPFLAGS): Likewise.
9936 (TARGET_CC): New variable.
9937 (TARGET_CFLAGS): Likewise.
9938 (TARGET_CPPFLAGS): Likewise.
9939 (TARGET_LDFLAGS): Likewise.
9940 (AWK): Likewise.
9941 (include): Use target_cpu instead of host_cpu.
9942 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 9943
b977bf01 9944 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
9945
f09771a1 99462006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
9947
9948 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
9949 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
9950 field 'false' to 'exec_on_false'.
9951 (grub_script_create_cmdif): Renamed argument names to reflect above
9952 changes.
9953
9954 * normal/execute.c (grub_script_execute_cmdif): Likewise.
9955
9956 * normal/script.c (grub_script_create_cmdif): Likewise.
9957
118f4fb3 99582006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
9959
9960 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
9961 top.
9962 (grub_hfsplus_btree_recptr): Likewise.
9963 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
9964 FILEBLOCK both to pass a block number and store next block
9965 number.
9966 (grub_hfsplus_read_block): Rewritten heavily to support an extent
9967 overflow file correctly. Specify errors appropriately, because
9968 fshelp expects that GRUB_ERRNO is set when fails. Reuse
9969 grub_hfsplus_btree_recptr to get the pointer to a found key.
9970 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
9971 is found.
9972
9973 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
9974 linux.mod.
9975 (_linux_mod_SOURCES): New variable.
9976 (_linux_mod_CFLAGS): Likewise.
9977 (_linux_mod_LDFLAGS): Likewise.
9978 (linux_mod_SOURCES): Likewise.
9979 (linux_mod_CFLAGS): Likewise.
9980 (linux_mod_LDFLAGS): Likewise.
9981
9982 * DISTLIST: Added loader/i386/efi/linux.c,
9983 loader/i386/efi/linux_normal.c and
9984 include/grub/i386/efi/loader.h.
9985
9986 * loader/i386/efi/linux.c: New file.
9987 * loader/i386/efi/linux_normal.c: Likewise.
9988 * include/grub/i386/efi/loader.h: Likewise.
9989
89a7d726 99902006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
9991
9992 * commands/blocklist.c: New file.
9993
9994 * DISTLIST: Added commands/blocklist.c.
9995
9996 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 9997 color for the background, and a darker color for the foreground.
89a7d726 9998 (grub_console_checkkey): Return READ_KEY.
9999 (grub_console_cls): Set the background to
10000 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
10001
10002 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
10003
10004 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
10005 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
10006
10007 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
10008 prototype.
10009
10010 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
10011 BG. The spec is wrong again.
10012
10013 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
10014 prototype.
10015 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
10016
10017 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
10018 commands/blocklist.c.
10019 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 10020
89a7d726 10021 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
10022 (blocklist_mod_SOURCES): New variable.
10023 (blocklist_mod_CFLAGS): Likewise.
10024 (blocklist_mod_LDFLAGS): Likewise.
10025
75c8f258 100262006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
10027
10028 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
10029 duplication.
10030 (lba_mode): Use %eax more intensively to reduce the code size.
10031
da2eb181 100322006-05-20 Marco Gerards <marco@gnu.org>
10033
10034 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
10035
10036 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
10037 for `menuentry'.
10038 (script): Accept leading newlines.
10039 (newlines): New rule to describe 0 or more newlines.
10040 (commands): Accept `command' with trailing newline. Fixed the
10041 order in which arguments were passed to `grub_script_add_cmd'.
10042 Accept commands separated by newlines.
10043 (function): Changed to accept newlines.
10044 (menuentry) Rewritten.
10045
10046 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
10047 front of the list, instead of to the end.
10048
577b4050 100492006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
10050
10051 * util/i386/pc/grub-install.in (bindir): New variable.
10052 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
10053 Shaver <lbgwjl@gmail.com>.
10054
0d6e1189 100552006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
10056
10057 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
10058 grub/machine/linux.h
10059 * loader/i386/pc/linux.c: Likewise.
10060
10061 * include/grub/i386/pc/linux.h: Moved to ...
10062 * include/grub/i386/linux.h: ... here.
10063
10064 * include/grub/i386/linux.h (struct linux_kernel_params): New
10065 struct.
f19dbdb7 10066
31b86e9f 100672006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
10068
10069 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
10070 checking.
10071 (grub_video_vbe_blit_glyph): Likewise.
10072 (grub_video_vbe_blit_bitmap): Likewise.
10073 (grub_video_vbe_blit_render_target): Likewise.
10074
83b984de 100752006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
10076
10077 * configure.ac (--with-platform): Properly quote the square
10078 brackets.
10079
5f0413bd 100802006-05-08 Marco Gerards <marco@gnu.org>
10081
10082 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
10083 this...
10084 (kernel_elf_HEADERS): ...to this. Updated all users.
10085 (grubof_symlist.c): Renamed from this...
10086 (kernel_elf_symlist.c): ...to this. Updated all users.
10087 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10088 (grubof_SOURCES): Renamed from this...
10089 (kernel_elf_SOURCES): ...to this.
10090 (grubof_HEADERS): Renamed from this...
10091 (kernel_elf_HEADERS): ...to this.
10092 (grubof_CFLAGS): Renamed from this...
10093 (kernel_elf_CFLAGS): ...to this.
10094 (grubof_ASFLAGS): Renamed from this...
10095 (kernel_elf_ASFLAGS): ...to this.
10096 (grubof_LDFLAGS): Renamed from this...
10097 (kernel_elf_LDFLAGS): ...to this.
10098
10099 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
10100 this...
10101 (kernel_elf_HEADERS): ...to this. Updated all users.
10102 (grubof_symlist.c): Renamed from this...
10103 (kernel_elf_symlist.c): ...to this. Updated all users.
10104 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10105 (grubof_SOURCES): Renamed from this...
10106 (kernel_elf_SOURCES): ...to this.
10107 (grubof_HEADERS): Renamed from this...
10108 (kernel_elf_HEADERS): ...to this.
10109 (grubof_CFLAGS): Renamed from this...
10110 (kernel_elf_CFLAGS): ...to this.
10111 (grubof_ASFLAGS): Renamed from this...
10112 (kernel_elf_ASFLAGS): ...to this.
10113 (grubof_LDFLAGS): Renamed from this...
10114 (kernel_elf_LDFLAGS): ...to this.
10115
10116 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
10117 `kernel.elf' instead of `grubof'.
10118
05568c2e 101192006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
10120
10121 Add --with-platform to configure. Use pkglibdir instead of
10122 pkgdatadir. This is reported by Roger Leigh.
10123
10124 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
10125 (host_vendor): Likewise.
10126 (host_os): Likewise.
10127 (pkgdatadir): Likewise.
10128 (platform): New variable.
10129 (pkglibdir): Likewise.
10130 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 10131
05568c2e 10132 * util/i386/pc/grub-install.in (datadir): Removed.
10133 (host_vendor): Likewise.
10134 (host_os): Likewise.
10135 (pkgdatadir): Likewise.
10136 (platform): New variable.
10137 (pkglibdir): Likewise.
10138 Use PKGLIBDIR instead of PKGDATADIR.
10139
10140 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
10141 instead of GRUB_DATADIR.
10142 (main): Likewise.
10143 * util/i386/pc/grub-mkimage.c (usage): Likewise.
10144 (main): Likewise.
10145 * util/i386/efi/grub-mkimage.c (usage): Likewise.
10146 (main): Likewise.
10147
10148 * configure.ac (--with-platform): New option.
10149 Use PLATFORM instead of HOST_VENDOR to specify a platform.
10150
10151 * Makefile.in: Include a makefile based on PLATFORM instead of
10152 HOST_VENDOR.
10153 (pkgdatadir): Not appended by the machine type.
10154 (pkglibdir): Appended by the machine type.
10155 (host_vendor): Removed.
10156 (platform): New variable.
10157 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
10158 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
10159 (uninstall): Likewise.
10160
4e93851c 101612006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
10162
10163 Use the environment context in the menu. Remove the commands
10164 "default" and "timeout", and use variables instead.
f19dbdb7 10165
4e93851c 10166 * normal/menu.c: Include grub/env.h.
10167 (print_entry): Cast TITLE to silence gcc.
10168 (get_timeout): New function.
10169 (set_timeout): Likewise.
10170 (get_entry_number): Likewise.
10171 (run_menu): Use a default entry, a fallback entry and a timeout
10172 in the environment variables "default", "fallback" and
10173 "timeout". Also, tweak the default entry if it is not within the
10174 current menu entries.
10175 (grub_menu_run): Use a fallback entry in the environment variable
10176 "fallback".
10177
10178 * normal/main.c (read_config_file): Do not initialize
10179 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
10180 NEWMENU->TIMEOUT.
10181 (grub_normal_execute): Use a data slot to store the menu.
10182
10183 * include/grub/normal.h (struct grub_menu): Removed default_entry,
10184 fallback_entry and timeout.
10185 (struct grub_menu_list): Removed.
10186 (grub_menu_list_t): Likewise.
10187 (struct grub_context): Likewise.
10188 (grub_context_t): Likewise.
10189 (grub_context_get): Likewise.
10190 (grub_context_get_current_menu): Likewise.
10191 (grub_context_push_menu): Likewise.
10192 (grub_context_pop_menu): Likewise.
10193 (grub_default_init): Likewise.
10194 (grub_default_fini): Likewise.
10195 (grub_timeout_init): Likewise.
10196 (grub_timeout_fini): Likewise.
10197
10198 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
10199 and timeout.mod.
10200 (normal_mod_SOURCES): Removed normal/context.c.
10201
10202 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
10203 commands/default.c, commands/timeout.c and normal/context.c.
10204 (normal_mod_SOURCES): Removed normal/context.c.
10205
10206 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
10207 commands/timeout.c and normal/context.c.
10208 (normal_mod_SOURCES): Removed normal/context.c.
10209
10210 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
10211 commands/default.c, commands/timeout.c and normal/context.c.
10212 (normal_mod_SOURCES): Removed normal/context.c.
10213
10214 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
10215 timeout.mod.
10216 (default_mod_SOURCES): Removed.
10217 (default_mod_CFLAGS): Likewise.
10218 (default_mod_LDFLAGS): Likewise.
10219 (timeout_mod_SOURCES): Removed.
10220 (timeout_mod_CFLAGS): Likewise.
10221 (timeout_mod_LDFLAGS): Likewise.
10222
10223 * DISTLIST: Removed commands/default.c, commands/timeout.c and
10224 normal/context.c.
10225
10226 * commands/default.c: Removed.
10227 * commands/timeout.c: Likewise.
10228 * normal/context.c: Likewise.
10229
1eb9cc1d 102302006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
10231
10232 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
10233
385bd9c1 102342006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
10235
10236 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
10237 "next" to "prev" for readability.
10238 (struct grub_env_sorted_var): New struct.
10239 (grub_env_context): Renamed to ...
10240 (initial_context): ... this.
10241 (grub_env_var_context): Renamed to ...
10242 (current_context): ... this.
10243 (grub_env_find): Look only at CURRENT_CONTEXT.
10244 (grub_env_context_open): Rewritten to copy exported variables from
10245 previous context.
10246 (grub_env_context_close): Rewritten according to the new
10247 scheme. Also, add an assertion to prevent the initial context from
10248 removed.
10249 (grub_env_insert): Removed the code for the sorted list.
10250 (grub_env_remove): Likewise.
10251 (grub_env_export): Simply mark the variable with
10252 GRUB_ENV_VAR_GLOBAL.
10253 (grub_env_set): A cosmetic change for naming consistency.
10254 (grub_env_get): Likewise.
10255 (grub_env_unset): Likewise.
10256 (grub_env_iterate): Rewritten to sort variables within this
10257 function.
10258 (grub_register_variable_hook): Fixed for naming consistency. Call
10259 grub_env_find again, only if NAME is not found at the first time.
10260 (mangle_data_slot_name): New function.
10261 (grub_env_set_data_slot): Likewise.
10262 (grub_env_get_data_slot): Likewise.
10263 (grub_env_unset_data_slot): Likewise.
10264
10265 * include/grub/env.h (grub_env_var_type): New enum.
10266 (GRUB_ENV_VAR_LOCAL): New constant.
10267 (GRUB_ENV_VAR_GLOBAL): Likewise.
10268 (GRUB_ENV_VAR_DATA): Likewise.
10269 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
10270 "type".
10271 (grub_env_set): Replace VAR with NAME for consistency.
10272 (grub_register_variable_hook): Likewise.
10273 (grub_env_export): Specify the name of the argument.
10274 (grub_env_set_data_slot): New prototype.
10275 (grub_env_get_data_slot): Likewise.
10276 (grub_env_unset_data_slot): Likewise.
10277
7f362539 102782006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10279
10280 Extend the loader so that GRUB can accept a loader which comes
10281 back to GRUB when a loaded image exits. Also, this change adds
10282 support for a chainloader on EFI.
f19dbdb7 10283
7f362539 10284 * term/efi/console.c: Include grub/misc.h.
10285 (grub_console_checkkey): Display a scan code on the top for
10286 debugging. This will be removed once the EFI port gets stable.
10287 Correct the scan code mapping.
10288
10289 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
10290 allocate memory from larger regions, in order to reduce the number
10291 of allocated regions. Otherwise, the MacOSX loader panics.
10292 (filter_memory_map): Avoid less than 1MB for compatibility with
10293 other loaders.
10294 (add_memory_regions): Allocate from the tail of a region, if
10295 possible, to avoid allocating a region near to 1MB, for the MacOSX
10296 loader.
10297
10298 * kern/efi/init.c (grub_efi_set_prefix): Specify
10299 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
10300
10301 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
10302 argument IMAGE_HANDLE and specify it to get a loaded image.
10303 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
10304 grub_efi_get_loaded_image.
fe6b695a 10305 (grub_efi_get_filename): Divide the length by the size of
7f362539 10306 grub_efi_char16_t.
10307 (grub_efi_get_device_path): New function.
10308 (grub_efi_print_device_path): Print End Device Path nodes. Divide
10309 the length by the size of grub_efi_char16_t for a file path device
10310 path node.
10311
10312 * kern/loader.c (grub_loader_noreturn): New variable.
10313 (grub_loader_set): Accept a new argument NORETURN. Set
10314 GRUB_LOADER_NORETURN to NORETURN.
10315 All callers changed.
10316 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
10317 grub_machine_fini.
10318
10319 * include/grub/efi/efi.h (grub_efi_get_device_path): New
10320 prototype.
10321 (grub_efi_get_loaded_image): Take an argument to specify an image
10322 handle.
10323
10324 * include/grub/loader.h (grub_loader_set): Added one more argument
10325 NORETURN.
10326
10327 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
10328 instead of grub_efi_open_protocol.
10329 (grub_efidisk_get_device_name): Likewise.
10330 (grub_efidisk_close): Print a newline.
10331 (grub_efidisk_get_device_handle): Fixed to use
10332 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
10333 GRUB_EFI_DEVICE_PATH_TYPE.
10334
10335 * disk/efi/efidisk.c (device_path_guid): Moved to ...
10336 * kern/efi/efi.c (device_path_guid): ... here.
10337
10338 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
10339 chain.mod.
10340 (kernel_mod_HEADERS): Added efi/disk.h.
10341 (_chain_mod_SOURCES): New variable.
10342 (_chain_mod_CFLAGS): Likewise.
10343 (_chain_mod_LDFLAGS): Likewise.
10344 (chain_mod_SOURCES): Likewise.
10345 (chain_mod_CFLAGS): Likewise.
10346 (chain_mod_LDFLAGS): Likewise.
10347
10348 * DISTLIST: Added include/grub/efi/chainloader.h,
10349 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
10350
10351 * include/grub/efi/chainloader.h: New file.
10352 * loader/efi/chainloader.c: Likewise.
10353 * loader/efi/chainloader_normal.c: Likewise.
10354
c0111d6e 103552006-04-30 Marco Gerards <marco@gnu.org>
10356
10357 * commands/configfile.c (grub_cmd_source): New function.
10358 (GRUB_MOD_INIT): Register the commands `source' and `.'.
10359 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
10360
df5341da 103612006-04-30 Marco Gerards <marco@gnu.org>
10362
10363 * normal/execute.c (grub_script_execute_cmd): Change the return
10364 type to `grub_err_t'. Correctly return the error.
10365 (grub_script_execute_cmdline): In case a command line is not a
10366 command or a function, try to interpret it as an assignment.
10367
f85934bd 103682006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10369
10370 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
10371 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
10372 skip a node whose name is obviously invalid as UTF-16,
10373 i.e. contains a NUL character. Stop the iteration when the last
10374 directory entry is found. Instead of using the return value of
10375 grub_hfsplus_btree_iterate_node, store the value in RET and use
10376 it, because the iterator can be stopped by the last directory
10377 entry.
10378
8f8a2cf8 103792006-04-30 Marco Gerards <marco@gnu.org>
10380
10381 * include/grub/env.h (grub_env_export): New prototype. Reported
10382 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
10383
a27e84ce 103842006-04-30 Marco Gerards <marco@gnu.org>
10385
10386 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
10387 size of the extents in a catalog file record.
10388
eaef0553 103892006-04-29 Marco Gerards <marco@gnu.org>
10390
10391 * commands/configfile.c (grub_cmd_configfile): Execute the
10392 configfile within its own context.
10393
10394 * include/grub/env.h (grub_env_context_open): New prototype.
10395 (grub_env_context_close): Likewise.
10396
10397 * kern/env.c (grub_env): Removed.
10398 (grub_env_sorted): Likewise.
10399 (grub_env_context): New variable.
10400 (grub_env_var_context): Likewise.
10401 (grub_env_find): Search both the active context and the global
10402 context.
10403 (grub_env_context_open): New function.
10404 (grub_env_context_close): Likewise.
10405 (grub_env_insert): Likewise.
10406 (grub_env_remove): Likewise.
10407 (grub_env_export): Likewise.
10408 (grub_env_set): Changed to use helper functions to avoid code
10409 duplication.
10410 (grub_env_iterate): Rewritten so both the current context and the
10411 global context are being used.
10412
10413 * normal/command.c (export_command): New function.
10414 (grub_command_init): Register the `export' function.
10415
7b455f4d 104162006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
10417
10418 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
10419 explicitly to suppress gcc's warnings.
10420 * fs/fat.c (grub_fat_find_dir): Likewise.
10421 (grub_fat_label): Likewise.
10422 * fs/xfs.c (grub_xfs_read_inode): Likewise.
10423 (grub_xfs_mount): Likewise.
10424 (grub_xfs_label): Likewise.
10425 * fs/affs.c (grub_affs_mount): Likewise.
10426 (grub_affs_label): Likewise.
10427 (grub_affs_iterate_dir): Likewise.
10428 * fs/sfs.c (grub_sfs_mount): Likewise.
10429 (grub_sfs_iterate_dir): Likewise.
10430 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
10431 * fs/hfs.c (grub_hfs_mount): Likewise.
10432 (grub_hfs_cmp_catkeys): Likewise.
10433 (grub_hfs_find_dir): Likewise.
10434 (grub_hfs_dir): Likewise.
10435 (grub_hfs_label): Likewise.
10436 * fs/jfs.c (grub_jfs_mount): Likewise.
10437 (grub_jfs_opendir): Likewise.
10438 (grub_jfs_getent): Likewise.
10439 (grub_jfs_lookup_symlink): Likewise.
10440 (grub_jfs_label): Likewise.
10441 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
10442 (grub_hfsplus_iterate_dir): Likewise.
10443 (grub_hfsplus_btree_iterate_node): Made static.
10444
10445 * util/grub-emu.c (prefix): New variable.
10446 (grub_machine_set_prefix): New function.
10447 (main): Do not set the environment variable "prefix" here. Only
10448 set PREFIX, which is used later by grub_machine_set_prefix.
10449
10450 * include/grub/video.h: Do not include grub/symbol.h.
10451 (grub_video_register): Not exported. This symbol is not defined in
10452 the kernel.
10453 (grub_video_unregister): Likewise.
10454 (grub_video_iterate): Likewise.
10455 (grub_video_setup): Likewise.
10456 (grub_video_restore): Likewise.
10457 (grub_video_get_info): Likewise.
10458 (grub_video_get_blit_format): Likewise.
10459 (grub_video_set_palette): Likewise.
10460 (grub_video_get_palette): Likewise.
10461 (grub_video_set_viewport): Likewise.
10462 (grub_video_get_viewport): Likewise.
10463 (grub_video_map_color): Likewise.
10464 (grub_video_map_rgb): Likewise.
10465 (grub_video_map_rgba): Likewise.
10466 (grub_video_fill_rect): Likewise.
10467 (grub_video_blit_glyph): Likewise.
10468 (grub_video_blit_bitmap): Likewise.
10469 (grub_video_blit_render_target): Likewise.
10470 (grub_video_scroll): Likewise.
10471 (grub_video_swap_buffers): Likewise.
10472 (grub_video_create_render_target): Likewise.
10473 (grub_video_delete_render_target): Likewise.
10474 (grub_video_set_active_render_target): Likewise.
10475
10476 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
10477 Undefined.
10478 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
10479
10480 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
10481 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10482 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10483 instead of $(srcdir)/genkernsyms.sh.
10484
10485 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
10486 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10487 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10488 instead of $(srcdir)/genkernsyms.sh.
10489
10490 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
10491 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10492 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10493 instead of $(srcdir)/genkernsyms.sh.
10494
10495 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
10496 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10497 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10498 instead of $(srcdir)/genkernsyms.sh.
10499
10500 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
10501 genkernsyms.sh.
10502
10503 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
10504 genkernsyms.sh.
10505 (gensymlist.sh): New target.
10506 (genkernsyms.sh): Likewise.
10507
10508 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
10509 genkernsyms.sh.in and gensymlist.sh.in.
10510
10511 * genkernsyms.sh: Removed.
10512 * gensymlist.sh: Likewise.
f19dbdb7 10513
7b455f4d 10514 * genkernsyms.sh.in: New file.
10515 * gensymlist.sh.in: Likewise.
10516
1885bb27 105172006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10518
10519 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
10520 clobber "prefix", since we may have already set it manually.
10521
71538dff 105222006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10523
10524 * kern/misc.c (abort): New alias for grub_abort.
10525
2965c7cc 105262006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
10527
10528 A new machine-specific function "grub_machine_set_prefix" is
10529 defined. This is called after loading modules, so that a prefix
10530 initialization can use modules. Also, this change adds an
10531 intensive debugging feature for the memory manager via the
10532 configure option "--enable-mm-debug".
f19dbdb7 10533
2965c7cc 10534 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
10535 PART.LEN.
10536
10537 * kern/sparc64/ieee1275/init.c (abort): Removed.
10538 (grub_stop): Likewise.
10539 (grub_exit): New function.
10540 (grub_set_prefix): Renamed to ...
10541 (grub_machine_set_prefix): ... this.
10542 (grub_machine_init): Do not call grub_set_prefix.
10543
10544 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
10545 (grub_machine_set_prefix): ... this.
10546 (grub_machine_init): Do not call grub_set_prefix.
10547
10548 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
10549 (grub_machine_init): Do not set the prefix here.
10550
10551 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
10552
10553 * kern/efi/init.c: Include grub/mm.h.
10554 (grub_efi_set_prefix): New function.
10555
10556 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
10557 (grub_efi_get_filename): New function.
10558 (grub_print_device_path): Renamed to ...
10559 (grub_efi_print_device_path): ... this.
10560
10561 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
10562 [MM_DEBUG] (grub_realloc): Likewise.
10563 [MM_DEBUG] (grub_free): Likewise.
10564 [MM_DEBUG] (grub_memalign): Likewise.
10565 [MM_DEBUG] (grub_mm_debug): New variable.
10566 [MM_DEBUG] (grub_debug_malloc): New function.
10567 [MM_DEBUG] (grub_debug_free): New function.
10568 [MM_DEBUG] (grub_debug_realloc): New function.
10569 [MM_DEBUG] (grub_debug_memalign): New function.
10570
10571 * kern/misc.c (grub_abort): Print a newline to distinguish
10572 the message.
10573
10574 * kern/main.c (grub_main): Call grub_machine_set_prefix and
10575 grub_set_root_dev after loading modules. This is necessary when
10576 setting a prefix depends on modules.
10577
10578 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
10579 (grub_efi_print_device_path): ... this.
10580 (grub_efi_get_filename): New prototype.
10581 (grub_efi_set_prefix): Likewise.
10582
10583 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
10584 and grub/disk.h.
10585 (grub_efidisk_get_device_handle): New prototype.
10586 (grub_efidisk_get_device_name): Likewise.
10587
10588 * include/grub/mm.h: Include config.h.
10589 (MM_DEBUG): Removed.
10590 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
10591 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
10592 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
10593 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
10594 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
10595 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
10596 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
10597 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
10598 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
10599
10600 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
10601
10602 * disk/efi/efidisk.c: Include grub/partition.h.
10603 (iterate_child_devices): New function.
10604 (add_device): First, compare only last device path nodes, so that
10605 devices are sorted by the types.
10606 (grub_efidisk_get_device_handle): New function.
10607 (grub_efidisk_get_device_name): Likewise.
10608
10609 * configure.ac (--enable-mm-debug): New option to enable the
10610 memory manager debugging feature. This makes the binary much
10611 bigger, so is disabled by default.
10612
9cacaa17 106132006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
10614
10615 Use grub_abort instead of grub_stop, and grub_exit must be
10616 define in each architecture now. Also, this change adds support
10617 for EFI disks.
f19dbdb7 10618
9cacaa17 10619 * util/i386/pc/grub-probefs.c: Include grub/term.h.
10620 (grub_getkey): New function.
10621 (grub_term_get_current): Likewise.
10622
10623 * util/i386/pc/grub-setup.c: Include grub/term.h.
10624 (grub_getkey): New function.
10625 (grub_term_get_current): Likewise.
10626
10627 * util/misc.c (grub_stop): Renamed to ...
10628 (grub_exit): ... this.
10629
10630 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
10631 (grub_exit): ... this.
10632 (grub_machine_init): Use grub_abort instead of abort.
10633 (grub_stop): Removed.
10634
10635 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
10636 abort.
10637
10638 * kern/i386/pc/startup.S (grub_exit): New function.
10639 (cold_reboot): New label.
10640
10641 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
10642 (grub_efi_init): Call grub_efidisk_init.
10643 (grub_efi_fini): Call grub_efidisk_fini.
10644
10645 * kern/efi/efi.c: Include grub/mm.h.
10646 (grub_efi_console_control_guid): Renamed to ...
10647 (console_control_guid): ... this.
10648 (grub_efi_loaded_image_guid): Renamed to ...
10649 (loaded_image_guid): ... this.
10650 (grub_efi_locate_handle): New function.
10651 (grub_efi_open_protocol): Likewise.
10652 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
10653 GRUB_EFI_CONSOLE_CONTROL_GUID.
10654 (grub_efi_exit): Removed.
10655 (grub_stop): Likewise.
10656 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
10657 (grub_exit): New function.
10658 (grub_print_device_path): Likewise.
10659
10660 * kern/rescue.c (grub_rescue_cmd_exit): New function.
10661 (grub_enter_rescue_mode): Register "exit".
10662
10663 * kern/misc.c (grub_real_dprintf): A cosmetic change.
10664 (grub_abort): New function.
10665
10666 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
10667
10668 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
10669
10670 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
10671
10672 * include/grub/efi/efi.h (grub_efi_exit): Removed.
10673 (grub_print_device_path): New prototype.
10674 (grub_efi_locate_handle): Likewise.
10675 (grub_efi_open_protocol): Likewise.
10676
10677 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
10678 * disk/efi/efidisk.c: Likewise.
10679
10680 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
10681
10682 * include/grub/efi/console_control.h
10683 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
10684
10685 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
10686 last 8 bytes as an array.
10687 (GRUB_EFI_DISK_IO_GUID): New macro.
10688 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
10689 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
10690 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
10691 grub_uint8_t.
10692 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
10693 (struct grub_efi_device_path): Rename the member "sub_type" to
10694 "subtype".
10695 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
10696 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
10697 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
10698 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
10699 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
10700 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
10701 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
10702 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
10703 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
10704 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
10705 (struct grub_efi_pci_device_path): New structure.
10706 (grub_efi_pci_device_path_t): New type.
10707 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
10708 (struct grub_efi_pccard_device_path): New structure.
10709 (grub_efi_pccard_device_path_t): New type.
10710 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
10711 (struct grub_efi_memory_mapped_device_path): New structure.
10712 (grub_efi_memory_mapped_device_path_t): New type.
10713 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
10714 (struct grub_efi_vendor_device_path): New structure.
10715 (grub_efi_vendor_device_path_t): New type.
10716 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
10717 (struct grub_efi_controller_device_path): New structure.
10718 (grub_efi_controller_device_path_t): New type.
10719 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
10720 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
10721 (struct grub_efi_acpi_device_path): New structure.
10722 (grub_efi_acpi_device_path_t): New type.
10723 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
10724 (struct grub_efi_expanded_acpi_device_path): New structure.
10725 (grub_efi_expanded_acpi_device_path_t): New type.
10726 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
10727 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
10728 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
10729 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
10730 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
10731 (struct grub_efi_atapi_device_path): New structure.
10732 (grub_efi_atapi_device_path_t): New type.
10733 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
10734 (struct grub_efi_fibre_channel_device_path): New structure.
10735 (grub_efi_fibre_channel_device_path_t): New type.
10736 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
10737 (struct grub_efi_1394_device_path): New structure.
10738 (grub_efi_1394_device_path_t): New type.
10739 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
10740 (struct grub_efi_usb_device_path): New structure.
10741 (grub_efi_usb_device_path_t): New type.
10742 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
10743 (struct grub_efi_usb_class_device_path): New structure.
10744 (grub_efi_usb_class_device_path_t): New type.
10745 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
10746 (struct grub_efi_i2o_device_path): New structure.
10747 (grub_efi_i2o_device_path_t): New type.
10748 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
10749 (struct grub_efi_mac_address_device_path): New structure.
10750 (grub_efi_mac_address_device_path_t): New type.
10751 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
10752 (struct grub_efi_ipv4_device_path): New structure.
10753 (grub_efi_ipv4_device_path_t): New type.
10754 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
10755 (struct grub_efi_ipv6_device_path): New structure.
10756 (grub_efi_ipv6_device_path_t): New type.
10757 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
10758 (struct grub_efi_infiniband_device_path): New structure.
10759 (grub_efi_infiniband_device_path_t): New type.
10760 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
10761 (struct grub_efi_uart_device_path): New structure.
10762 (grub_efi_uart_device_path_t): New type.
10763 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
10764 (struct grub_efi_vendor_messaging_device_path): New structure.
10765 (grub_efi_vendor_messaging_device_path_t): New type.
10766 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
10767 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
10768 (struct grub_efi_hard_drive_device_path): New structure.
10769 (grub_efi_hard_drive_device_path_t): New type.
10770 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
10771 (struct grub_efi_cdrom_device_path): New structure.
10772 (grub_efi_cdrom_device_path_t): New type.
10773 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
10774 (struct grub_efi_vendor_media_device_path): New structure.
10775 (grub_efi_vendor_media_device_path_t): New type.
10776 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
10777 (struct grub_efi_file_path_device_path): New structure.
10778 (grub_efi_file_path_device_path_t): New type.
10779 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
10780 (struct grub_efi_protocol_device_path): New structure.
10781 (grub_efi_protocol_device_path_t): New type.
10782 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
10783 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
10784 (struct grub_efi_bios_device_path): New structure.
10785 (grub_efi_bios_device_path_t): New type.
10786 (struct grub_efi_disk_io): New structure.
10787 (grub_efi_disk_io_t): New type.
10788 (struct grub_efi_block_io_media): New structure.
10789 (grub_efi_block_io_media_t): New type.
10790 (struct grub_efi_block_io): New structure.
10791 (grub_efi_block_io_t): New type.
10792
10793 * include/grub/misc.h (grub_stop): Removed.
10794 (grub_exit): New prototype.
10795 (grub_abort): Likewise.
10796
10797 * include/grub/disk.h (enum grub_disk_dev_id): Added
10798 GRUB_DISK_DEVICE_EFIDISK_ID.
10799
10800 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
10801 disk/efi/efidisk.c.
10802 (kernel_syms.lst): Remove the target if an error occurs.
10803
49986a9f 108042006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
10805
10806 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
10807 as it was simply too buggy.
10808
970d3b8a 108092006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
10810
10811 * kern/misc.c (grub_lltoa): New function.
10812 (grub_vsprintf): Added support for the long long suffix,
10813 i.e. "ll".
10814
ff04ec24 108152006-04-20 Hollis Blanchard <hollis@penguinppc.org>
10816
10817 * Makefile.in (LDFLAGS): Add variable.
10818 (LD): Remove variable.
10819 * configure.ac: Add -m32 to LDFLAGS.
10820 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
10821 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
10822 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
10823 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
10824 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
10825 variables.
10826 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
10827 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
10828 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
10829
37e5e1a4 108302006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
10831
10832 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
10833 length for unknown glyph.
10834
c352d8dd 108352006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
10836
2eab1c0d 10837 Add support for pre-loaded modules into the EFI port.
f19dbdb7 10838
2eab1c0d 10839 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
10840 completely. Accept one more argument DIR. The caller has changed.
10841
10842 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
10843
10844 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
10845 (grub_efi_loaded_image_guid): New variable.
10846 (grub_efi_get_loaded_image): New function.
10847 (grub_arch_modules_addr): Likewise.
10848
10849 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
10850 prototype.
10851
10852 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
10853 (struct grub_efi_loaded_image): New structure.
10854 (grub_efi_loaded_image_t): New type.
10855
108562006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 10857
c352d8dd 10858 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
10859 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
10860 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
10861
6d01d6b4 108622006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
10863
10864 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
10865
976a4ea0 108662006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
10867
10868 * DISTLIST: Added include/grub/efi/console.h,
10869 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
10870 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10871
10872 * include/grub/efi/console.h: New file.
10873 * include/grub/efi/time.h: Likewise.
10874 * include/grub/i386/efi/kernel.h: Likewise.
10875 * kern/efi/init.c: Likewise.
10876 * kern/efi/mm.c: Likewise.
10877 * term/efi/console.c: Likewise.
f19dbdb7 10878
976a4ea0 10879 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
10880 (grub_stop): Removed.
10881 (grub_get_rtc): Likewise.
10882 (grub_machine_init): Simply call grub_efi_init.
10883 (grub_machine_fini): Call grub_efi_fini.
10884
10885 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
10886 (grub_efi_output_string): Removed.
10887 (grub_efi_stall): New function.
10888 (grub_stop): Likewise.
10889 (grub_get_rtc): Likewise.
10890
10891 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
10892 (grub_efi_stall): New prototype.
10893 (grub_efi_allocate_pages): Likewise.
10894 (grub_efi_free_pages): Likewise.
10895 (grub_efi_get_memory_map): Likewise.
10896 (grub_efi_mm_init): Likewise.
10897 (grub_efi_mm_fini): Likewise.
10898 (grub_efi_init): Likewise.
10899 (grub_efi_fini): Likewise.
10900
10901 * include/grub/i386/efi/time.h: Do not include
10902 grub/symbol.h. Include grub/efi/time.h.
10903 (GRUB_TICKS_PER_SECOND): Removed.
10904 (grub_get_rtc): Likewise.
10905
10906 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
10907 Added padding. The EFI spec is buggy.
10908 (GRUB_EFI_BLACK): New macro.
10909 (GRUB_EFI_BLUE): Likewise.
10910 (GRUB_EFI_GREEN): Likewise.
10911 (GRUB_EFI_CYAN): Likewise.
10912 (GRUB_EFI_RED): Likewise.
10913 (GRUB_EFI_MAGENTA): Likewise.
10914 (GRUB_EFI_BROWN): Likewise.
10915 (GRUB_EFI_LIGHTGRAY): Likewise.
10916 (GRUB_EFI_BRIGHT): Likewise.
10917 (GRUB_EFI_DARKGRAY): Likewise.
10918 (GRUB_EFI_LIGHTBLUE): Likewise.
10919 (GRUB_EFI_LIGHTGREEN): Likewise.
10920 (GRUB_EFI_LIGHTCYAN): Likewise.
10921 (GRUB_EFI_LIGHTRED): Likewise.
10922 (GRUB_EFI_LIGHTMAGENTA): Likewise.
10923 (GRUB_EFI_YELLOW): Likewise.
10924 (GRUB_EFI_WHITE): Likewise.
10925 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
10926 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
10927 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
10928 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
10929 (GRUB_EFI_BACKGROUND_RED): Likewise.
10930 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
10931 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
10932 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
10933 (GRUB_EFI_TEXT_ATTR): Likewise.
10934
10935 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
10936 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
10937 (kernel_mod_HEADERS): Added efi/time.h.
10938
83709125 109392006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
10940
10941 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
10942 include/grub/efi/api.h, include/grub/efi/console_control.h,
10943 include/grub/efi/efi.h, include/grub/efi/pe32.h,
10944 include/grub/i386/efi/time.h, kern/efi/efi.c,
10945 kern/i386/efi/init.c, kern/i386/efi/startup.S,
10946 and util/i386/efi/grub-mkimage.c.
10947
10948 * Makefile.in (RMKFILES): Added i386-efi.rmk.
10949
10950 * genmk.rb (PModule#rule): Do not export symbols if
10951 #{prefix}_EXPORTS is set to "no".
10952
10953 * conf/i386-efi.mk: New file.
10954 * conf/i386-efi.rmk: Likewise.
10955 * include/grub/efi/api.h: Likewise.
10956 * include/grub/efi/console_control.h: Likewise.
10957 * include/grub/efi/efi.h: Likewise.
10958 * include/grub/efi/pe32.h: Likewise.
10959 * include/grub/i386/efi/time.h: Likewise.
10960 * kern/efi/efi.c: Likewise.
10961 * kern/i386/efi/init.c: Likewise.
10962 * kern/i386/efi/startup.S: Likewise.
10963 * util/i386/efi/grub-mkimage.c: Likewise.
10964
109652006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 10966
10967 * include/grub/script.h: Include <grub/parser.h> and
10968 "grub_script.tab.h".
10969 (struct grub_lexer_param): New struct.
10970 (struct grub_parser_param): Likewise.
10971 (grub_script_create_arglist): Pass the state in an argument.
10972 (grub_script_add_arglist): Likewise.
10973 (grub_script_create_cmdline): Likewise.
10974 (grub_script_create_cmdblock): Likewise.
10975 (grub_script_create_cmdif): Likewise.
10976 (grub_script_create_cmdmenu): Likewise.
10977 (grub_script_add_cmd): Likewise.
10978 (grub_script_arg_add): Likewise.
10979 (grub_script_lexer_ref): Likewise.
10980 (grub_script_lexer_deref): Likewise.
10981 (grub_script_lexer_record_start): Likewise.
10982 (grub_script_lexer_record_stop): Likewise.
10983 (grub_script_mem_record): Likewise.
10984 (grub_script_mem_record_stop): Likewise.
10985 (grub_script_malloc): Likewise.
10986 (grub_script_yylex): Likewise.
10987 (grub_script_yyparse): Likewise.
10988 (grub_script_yyerror): Likewise.
10989 (grub_script_yylex): Likewise.
10990 (grub_script_lexer_init): Return the state.
10991
10992 * normal/lexer.c (grub_script_lexer_state): Removed variable.
10993 (grub_script_lexer_done): Likewise.
10994 (grub_script_lexer_getline): Likewise.
10995 (grub_script_lexer_refs): Likewise.
10996 (script): Likewise.
10997 (newscript): Likewise.
10998 (record): Likewise.
10999 (recording): Likewise.
11000 (recordpos): Likewise.
11001 (recordlen): Likewise.
11002 (grub_script_lexer_init): Return the state instead of setting
11003 global variables.
11004 (grub_script_lexer_ref): Use the newly added argument for state
11005 instead of globals.
11006 (grub_script_lexer_deref): Likewise.
11007 (grub_script_lexer_record_start): Likewise.
11008 (grub_script_lexer_record_stop): Likewise.
11009 (recordchar): Likewise.
11010 (nextchar): Likewise.
11011 (grub_script_yylex2): Likewise.
11012 (grub_script_yylex): Likewise.
11013 (grub_script_yyerror): Likewise.
11014
11015 * normal/parser.y (func_mem): Removed variable.
11016 (menu_entry): Likewise.
11017 (err): Likewise.
11018 (%lex-param): New parser option.
11019 (%parse-param): Likewise.
11020 (script): Always return the AST.
11021 (argument): Pass the state around.
11022 (arguments): Likewise.
11023 (grubcmd): Likewise.
11024 (commands): Likewise.
11025 (function): Likewise.
11026 (menuentry): Likewise.
11027 (if_statement): Likewise.
11028 (if): Likewise.
11029
11030 * normal/script.c (grub_script_memused): Removed variable.
11031 (grub_script_parsed): Likewise.
11032 (grub_script_malloc): Added a state argument. Use that instead of
11033 global variables.
11034 (grub_script_mem_record): Likewise.
11035 (grub_script_mem_record_stop): Likewise.
11036 (grub_script_arg_add): Likewise.
11037 (grub_script_add_arglist): Likewise.
11038 (grub_script_create_cmdline): Likewise.
11039 (grub_script_create_cmdif): Likewise.
11040 (grub_script_create_cmdmenu): Likewise.
11041 (grub_script_add_cmd): Likewise.
11042 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 11043
e2a8c904 110442006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 11045
11046 * normal/command.c (grub_command_init): Remove the title command.
11047
11048 * normal/lexer.c (grub_script_yylex): Renamed from this...
11049 (grub_script_yylex2): ... to this.
11050 (grub_script_yylex): New function. Temporary
11051 introduced to filter some tokens.
11052 (grub_script_yyerror): Print a newline.
11053
11054 * normal/main.c (read_config_file): Output information about the
11055 lines that contain errors. Wait for a key after all lines have
11056 been processed. Don't return an empty menu.
11057
11058 * normal/parser.y (func_mem): Don't initialize.
11059 (menu_entry): Likewise.
11060 (err): New variable.
11061 (script): Don't return anything when an error was encountered.
11062 (ws, returns): Removed rules.
11063 (argument): Disabled concatenated variable support.
11064 (arguments): Remove explicit separators.
11065 (grubcmd): Likewise.
11066 (function): Likewise.
11067 (menuentry): Likewise.
11068 (if): Likewise.
11069 (commands): Likewise. Add error handling.
11070
11071 * normal/script.c (grub_script_create_cmdline): If
11072 `grub_script_parsed' is 0, assume the parser encountered an error.
11073
c9a86192 110742006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
11075
11076 * configure.ac: Add support for EFI. Fix the typo
11077 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
11078
70f3b243 110792006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11080
11081 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
11082 foreign multibyte characters should be shown correctly.
11083
65f201ad 110842006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11085
11086 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
11087 calculation.
11088 (read_config_file): Made it to close file before returning.
11089
b4b93674 110902006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
11091
11092 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
11093 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
11094 video/i386/pc/vbefill.c.
11095
11096 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
11097 video/i386/pc/vbefill.c.
11098
11099 * include/grub/video.h (grub_video_blit_format): New enum.
11100 (grub_video_mode_info): Added new member blit_format.
11101 (grub_video_get_blit_format): New function prototype.
11102
11103 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
11104 function prototype.
11105 (grub_video_vbe_map_rgb): Likewise.
11106 (grub_video_vbe_unmap_color): Likewise.
11107
11108 * include/grub/i386/pc/vbeblit.h: New file.
11109
11110 * include/grub/i386/pc/vbefill.h: New file.
11111
11112 * video/video.c (grub_video_get_blit_format): New function.
11113 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
11114 (grub_video_vbe_map_rgb): Likewise.
11115 (grub_video_vbe_unmap_color): Likewise.
11116
11117 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
11118 optimized fills.
11119 (grub_video_vbe_blit_render_target): Changed to use more optimized
11120 blits.
11121 (grub_video_vbe_setup): Added detection for optimized settings.
11122 (grub_video_vbe_create_render_target): Likewise.
11123
11124 * video/i386/pc/vbeblit.c: New file.
11125
11126 * video/i386/pc/vbefill.c: New file.
11127
c2379b9c 111282006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
11129
11130 * font/manager.c (grub_font_get_glyph): Removed font fixup from
11131 here...
11132
11133 * util/unifont2pff.rb: ... and moved it to here. Improved argument
11134 parsing to support both hex and dec ranges. If filename was missing
11135 show usage information.
11136
bd0d7896 111372006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
11138
11139 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
11140 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
11141
11142 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
11143 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
11144 (video_mod_SOURCES): Added.
11145 (video_mod_CFLAGS): Likewise.
11146 (video_mod_LDFLAGS): Likewise.
11147 (gfxterm_mod_SOURCES): Likewise.
11148 (gfxterm_mod_CFLAGS): Likewise.
11149 (gfxterm_mod_LDFLAGS): Likewise.
11150 (videotest_mod_SOURCES): Likewise.
11151 (videotest_mod_CFLAGS): Likewise.
11152 (videotest_mod_LDFLAGS): Likewise.
11153 (vesafb_mod_SOURCES): Removed.
11154 (vesafb_mod_CFLAGS): Likewise.
11155 (vesafb_mod_LDFLAGS): Likewise.
11156 (vga_mod_SOURCES): Likewise.
11157 (vga_mod_CFLAGS): Likewise.
11158 (vga_mod_LDFLAGS): Likewise.
11159
11160 * commands/videotest.c: New file.
11161
11162 * font/manager.c (fill_with_default_glyph): Modified to use
11163 grub_font_glyph.
11164 (grub_font_get_glyph): Likewise.
11165 (fontmanager): Renamed from this...
11166 (font_manager): ... to this.
11167
11168 * include/grub/font.h (grub_font_glyph): Added new structure.
11169 (grub_font_get_glyph): Modified to use grub_font_glyph.
11170
11171 * include/grub/misc.h (grub_abs): Added as inline function.
11172
11173 * include/grub/video.h: New file.
11174
11175 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
11176 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
11177 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
11178 (grub_vbe_get_controller_info): Renamed from this...
11179 (grub_vbe_bios_get_controller_info): ... to this.
11180 (grub_vbe_get_mode_info): Renamed from this...
11181 (grub_vbe_bios_get_mode_info): ... to this.
11182 (grub_vbe_set_mode): Renamed from this...
11183 (grub_vbe_bios_set_mode): ... to this.
11184 (grub_vbe_get_mode): Renamed from this...
11185 (grub_vbe_bios_get_mode): ... to this.
11186 (grub_vbe_set_memory_window): Renamed from this...
11187 (grub_vbe_bios_set_memory_window): ... to this.
11188 (grub_vbe_get_memory_window): Renamed from this...
11189 (grub_vbe_bios_get_memory_window): ... to this.
11190 (grub_vbe_set_scanline_length): Renamed from this...
11191 (grub_vbe_set_scanline_length): ... to this.
11192 (grub_vbe_get_scanline_length): Renamed from this...
11193 (grub_vbe_bios_get_scanline_length): ... to this.
11194 (grub_vbe_set_display_start): Renamed from this...
11195 (grub_vbe_bios_set_display_start): ... to this.
11196 (grub_vbe_get_display_start): Renamed from this...
11197 (grub_vbe_bios_get_display_start): ... to this.
11198 (grub_vbe_set_palette_data): Renamed from this...
11199 (grub_vbe_bios_set_palette_data): ... to this.
11200 (grub_vbe_set_pixel_rgb): Removed.
11201 (grub_vbe_set_pixel_index): Likewise.
11202
11203 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
11204 from this...
11205 (grub_vbe_bios_get_controller_info): ... to this.
11206 (grub_vbe_get_mode_info): Renamed from this...
11207 (grub_vbe_bios_get_mode_info): ... to this.
11208 (grub_vbe_set_mode): Renamed from this...
11209 (grub_vbe_bios_set_mode): ... to this.
11210 (grub_vbe_get_mode): Renamed from this...
11211 (grub_vbe_bios_get_mode): ... to this.
11212 (grub_vbe_set_memory_window): Renamed from this...
11213 (grub_vbe_bios_set_memory_window): ... to this.
11214 (grub_vbe_get_memory_window): Renamed from this...
11215 (grub_vbe_bios_get_memory_window): ... to this.
11216 (grub_vbe_set_scanline_length): Renamed from this...
11217 (grub_vbe_set_scanline_length): ... to this.
11218 (grub_vbe_get_scanline_length): Renamed from this...
11219 (grub_vbe_bios_get_scanline_length): ... to this.
11220 (grub_vbe_set_display_start): Renamed from this...
11221 (grub_vbe_bios_set_display_start): ... to this.
11222 (grub_vbe_get_display_start): Renamed from this...
11223 (grub_vbe_bios_get_display_start): ... to this.
11224 (grub_vbe_set_palette_data): Renamed from this...
11225 (grub_vbe_bios_set_palette_data): ... to this.
11226 (grub_vbe_bios_get_controller_info): Fixed problem with registers
11227 getting corrupted after calling it. Added more pushes and pops.
11228 (grub_vbe_bios_set_mode): Likewise.
11229 (grub_vbe_bios_get_mode): Likewise.
11230 (grub_vbe_bios_get_memory_window): Likewise.
11231 (grub_vbe_bios_set_scanline_length): Likewise.
11232 (grub_vbe_bios_get_scanline_length): Likewise.
11233 (grub_vbe_bios_get_display_start): Likewise.
11234 (grub_vbe_bios_set_palette_data): Likewise.
11235
11236 * normal/cmdline.c (cl_set_pos): Refresh the screen.
11237 (cl_insert): Likewise.
11238 (cl_delete): Likewise.
11239
11240 * term/gfxterm.c: New file.
11241
11242 * term/i386/pc/vesafb.c: Removed file.
11243
11244 * video/video.c: New file.
11245
11246 * video/i386/pc/vbe.c (real2pm): Added new function.
11247 (grub_video_vbe_draw_pixel): Likewise.
11248 (grub_video_vbe_get_video_ptr): Likewise.
11249 (grub_video_vbe_get_pixel): Likewise
11250 (grub_video_vbe_init): Likewise.
11251 (grub_video_vbe_fini): Likewise.
11252 (grub_video_vbe_setup): Likewise.
11253 (grub_video_vbe_get_info): Likewise.
11254 (grub_video_vbe_set_palette): Likewise.
11255 (grub_video_vbe_get_palette): Likewise.
11256 (grub_video_vbe_set_viewport): Likewise.
11257 (grub_video_vbe_get_viewport): Likewise.
11258 (grub_video_vbe_map_color): Likewise.
11259 (grub_video_vbe_map_rgb): Likewise.
11260 (grub_video_vbe_map_rgba): Likewise.
11261 (grub_video_vbe_unmap_color): Likewise.
11262 (grub_video_vbe_fill_rect): Likewise.
11263 (grub_video_vbe_blit_glyph): Likewise.
11264 (grub_video_vbe_blit_bitmap): Likewise.
11265 (grub_video_vbe_blit_render_target): Likewise.
11266 (grub_video_vbe_scroll): Likewise.
11267 (grub_video_vbe_swap_buffers): Likewise.
11268 (grub_video_vbe_create_render_target): Likewise.
11269 (grub_video_vbe_delete_render_target): Likewise.
11270 (grub_video_vbe_set_active_render_target): Likewise.
11271 (grub_vbe_set_pixel_rgb): Remove function.
11272 (grub_vbe_set_pixel_index): Likewise.
11273 (index_color_mode): Remove static variable.
11274 (active_mode): Likewise.
11275 (framebuffer): Likewise.
11276 (bytes_per_scan_line): Likewise.
11277 (grub_video_vbe_adapter): Added new static variable.
11278 (framebuffer): Likewise.
11279 (render_target): Likewise.
11280 (initial_mode): Likewise.
11281 (mode_in_use): Likewise.
11282 (mode_list): Likewise.
11283
5f97350b 112842006-03-10 Marco Gerards <marco@gnu.org>
11285
11286 * configure.ac (AC_INIT): Bumped to 1.93.
11287
11288 * DISTLIST: Added `include/grub/hfs.h'.
11289
a3c5c6f8 112902006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
11291
11292 * boot/i386/pc/boot.S (general_error): Before looping, try INT
11293 18H, which might help the BIOS falling back to next boot media.
11294
6de53d26 112952006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
11296
11297 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
11298 Poe Chen <poe.poechen@gmail.com>.
11299
77c4a393 113002006-01-17 Marco Gerards <marco@gnu.org>
11301
11302 * include/grub/normal.h: Include <grub/script.h>.
11303 (grub_command_list): Removed struct.
11304 (grub_command_list_t): Removed type.
11305 (grub_menu_entry): Remove members `num' and `command_list'. Add
11306 members `commands' and `sourcecode'.
11307 * include/grub/script.h: Add inclusion guards.
11308 (grub_script_cmd_menuentry): New struct.
11309 (grub_script_execute_menuentry): New prototype.
11310 (grub_script_lexer_record_start): Likewise.
11311 (grub_script_lexer_record_stop): Likewise.
11312 * normal/execute.c (grub_script_execute_menuentry): New function.
11313 * normal/lexer.c (record, recording, recordpos, recordlen): New
11314 variables.
11315 (grub_script_lexer_record_start): New function.
11316 (grub_script_lexer_record_stop): Likewise.
11317 (recordchar): Likewise.
11318 (nextchar): Likewise.
11319 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
11320 2048 as the buffer size. Add the tokens `menuentry' and `@'.
11321 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
11322 (current_menu): New variable.
11323 (free_menu): Mainly rewritten.
11324 (grub_normal_menu_addentry): New function.
11325 (read_config_file): Rewritten.
11326 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 11327 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 11328 the menu entry.
11329 (run): Mainly rewritten.
11330 * normal/parser.y (menu_entry): New variable.
11331 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
11332 (menuentry): New rule.
11333 (command): Add `menuentry'.
11334 (if_statement): Allow additional returns before `fi'.
11335 * normal/script.c (grub_script_create_cmdmenu): New function.
11336
144f1f98 113372006-01-03 Marco Gerards <marco@gnu.org>
11338
11339 * INSTALL: GNU Bison is required.
11340 * configure.ac: Rewritten the test to detect Bison.
11341 * Makefile.in (YACC): New variable. Reported by Xun Sun
11342 <xun.sun.cn@gmail.com>.
11343
af4b2d89 113442006-01-03 Marco Gerards <marco@gnu.org>
11345
11346 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
11347 the HFS+ filesystem to filesystem blocks.
11348 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
11349 GCC warning is silenced.
11350
15643b71 113512006-01-03 Marco Gerards <marco@gnu.org>
11352
11353 * partmap/apple.c (apple_partition_map_iterate): Convert the data
11354 read from disk from big endian to host byte order.
11355
00905879 113562006-01-03 Hollis Blanchard <hollis@penguinppc.org>
11357
11358 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
11359 documentation.
11360 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
11361 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
11362 embedded HFS+ filesystem.
11363 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
11364 (grub_hfs_sblock): Move from here...
11365 * include/grub/hfs.h: To here... New file.
11366 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
11367 documentation.
11368 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
11369 New macros.
11370 (grub_hfsplus_volheader): Change type of member `magic' to
11371 `grub_uint16_t'.
11372 (grub_hfsplus_data): Add new member `embedded_offset'.
11373 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
11374 returned block.
11375 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
11376 Calculate the offset.
11377
8899bc3e 113782005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11379
11380 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
11381 Removed.
11382 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
11383
ae8c0277 113842005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11385
11386 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
11387 ENV->NAME is NULL after allocating ENV->VALUE.
11388
07084456 113892005-12-25 Marco Gerards <marco@gnu.org>
11390
11391 * kern/env.c (grub_env_set): Rewritten the error handling code.
11392
4750f5f1 113932005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11394
11395 * geninit.sh: Made more robust, and more portable.
11396
50214199 113972005-12-25 Marco Gerards <marco@gnu.org>
11398
11399 Add support for Apple HFS+ filesystems.
f19dbdb7 11400
50214199 11401 * fs/hfsplus.c: New file.
11402
11403 * DISTLIST: Added `fs/hfsplus.c'.
11404
11405 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
11406 (hfsplus_mod_SOURCES): New variable.
11407 (hfsplus_mod_CFLAGS): Likewise.
11408 (hfsplus_mod_LDFLAGS): Likewise.
11409 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
11410 (grub_setup_SOURCES): Likewise.
11411 (grub_mkdevicemap_SOURCES): Likewise.
11412 (grub_emu_SOURCES): Likewise.
11413 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11414
11415 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
11416
11417 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
11418
befaed6c 114192005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11420
11421 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
11422 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
11423 include/grub/parser.h, include/grub/script.h, kern/parser.c,
11424 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
11425 normal/lexer.c, normal/parser.y, normal/script.c, and
11426 partmap/gpt.c.
11427 Removed kern/sparc64/cache.c.
11428
11429 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
11430 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
11431 grub_emu_init.c.
11432
11433 * configure.ac (AC_INIT): Bumped to 1.92.
11434
6a124103 114352005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
11436
11437 * kern/err.c (grub_error_push): Added new function to support error
11438 stacks.
11439 (grub_error_pop): Likewise.
11440 (grub_error_stack_items): New local variable to support error stacks.
11441 (grub_error_stack_pos): Likewise.
11442 (grub_error_stack_assert): Likewise.
11443 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
11444 stack depth.
11445 (grub_print_error): Added support to print errors from error stack.
11446
11447 * include/grub/err.h (grub_error_push): Added function prototype.
11448 (grub_error_pop): Likewise.
11449
be973c1b 114502005-12-09 Hollis Blanchard <hollis@penguinppc.org>
11451
11452 * configure.ac: Accept `powerpc64' as host_cpu.
11453 (amd64): Rename to `biarch32'.
11454
11455 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
11456 non-cacheline-aligned addresses.
11457
11458 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
11459 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
11460 if `size' is non-zero.
11461
b04216ab 114622005-12-03 Marco Gerards <mgerards@xs4all.nl>
11463
11464 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
11465 and `cd' to make sure the filename is not prefixed with a
11466 directory name.
11467 (pkgdata_MODULES): Add `gpt.mod'.
11468 (gpt_mod_SOURCES): New variable.
11469 (gpt_mod_CFLAGS): Likewise.
11470 (gpt_mod_LDFLAGS): Likewise.
11471
11472 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
11473
11474 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
11475 New macro.
11476
11477 * partmap/gpt.c: New file.
11478
11479 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
11480 GPT partition map is detected.
11481
41730ed9 114822005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
11483
11484 * commands/i386/pc/play.c: New file.
11485 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
11486 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
11487 macros.
f19dbdb7 11488
95dc3643 114892005-11-27 Marco Gerards <mgerards@xs4all.nl>
11490
11491 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
11492 ((unused))' to silence gcc warning.
11493
1569ec51 114942005-11-26 Hollis Blanchard <hollis@penguinppc.org>
11495
11496 * configure.ac: Correct `AC_PROG_YACC' test.
11497
9abde152 114982005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11499
11500 * util/powerpc/ieee1275/grub-install.in: Run the mount point
11501 check before installing files.
11502
44b83271 115032005-11-22 Mike Small <smallm@panix.com>
11504
11505 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
11506 number regex so multidigit numbers are recognized correctly.
11507
115082005-11-22 Mike Small <smallm@panix.com>
11509
11510 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
11511 debugging message before attempting to claim memory.
11512 (grub_rescue_cmd_initrd): Add a claim debugging message and try
11513 multiple addresses in case of failure.
11514
9c12956b 115152005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11516
11517 * term/tparm.c (get_space): Remove empty `if' statement.
11518
11519 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
11520
11521 * kern/parser.c (check_varstate): Rename `state' to 's'.
11522
aeaf81d9 115232005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11524
11525 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
11526 variable definitions to the beginning of each function. Sort stack
11527 variables by size.
11528 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
11529 `buf' argument to `char *'.
11530
79bbb63f 115312005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11532
11533 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
11534 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11535 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 11536 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11537 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11538 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11539 configfile.mod, search.mod, gzio.mod and test.mod.
11540 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11541 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11542 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11543 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11544 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11545 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11546 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11547 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11548 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11549 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11550 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11551 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11552 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11553 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11554 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11555 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11556 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11557 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11558 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11559 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11560 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11561 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11562 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
11563
11564 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
11565 `grep --include'.
11566 (pkgdata_MODULES): Add test.mod.
11567
233b1628 115682005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11569
11570 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
11571 appending to variables with "+=".
11572 (PModule): Use full pathname to generate *.lst filenames.
11573
11574 * Makefile.in: Fixed list rules moved from genmk.rb.
11575 (.DELETE_ON_ERROR): New special target.
11576 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
11577
11578 * conf/i386-pc.rmk: Include conf/common.mk.
11579 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11580 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 11581 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11582 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11583 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11584 configfile.mod, search.mod, gzio.mod and test.mod.
11585 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11586 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11587 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11588 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11589 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11590 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11591 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11592 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11593 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11594 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11595 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11596 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11597 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11598 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11599 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11600 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11601 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11602 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11603 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11604 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11605 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11606 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11607 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
11608 here...
11609 * conf/common.rmk: ... to here. New file.
11610
11611 * conf/common.mk: New file.
11612
16f820c8 116132005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
11614
11615 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
11616 (grub_script.tab.c): ... here.
11617
11618 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
11619 (grub_script.tab.c): ... here.
11620
11621 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
11622 (grub_script.tab.c): ... here.
11623
11624 * normal/command.c (grub_command_find): Fixed a memory leak of
11625 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
11626
63ba1554 116272005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11628
11629 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
11630 "@" which marks the start of a comment on ARM.
11631 (VARIABLE): Likewise.
11632
7f67dc13 116332005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11634
79bbb63f 11635 Add support for Linux/ADFS partition tables.
7f67dc13 11636
11637 * partmap/acorn.c: New file.
11638
11639 * include/grub/acorn_filecore.h: Likewise.
11640
11641 * DISTLIST: Added `partmap/acorn.c' and
11642 `include/grub/acorn_filecore.h'.
f19dbdb7 11643
7f67dc13 11644 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11645 `partmap/acorn.c'.
11646 (pkgdata_MODULES): Add `acorn.mod'.
11647 (acorn_mod_SOURCES): New variable.
11648 (acorn_mod_CFLAGS): Likewise.
11649
11650 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11651 `partmap/acorn.c'.
11652 (pkgdata_MODULES): Add `acorn.mod'.
11653 (acorn_mod_SOURCES): New variable.
11654 (acorn_mod_CFLAGS): Likewise.
11655
11656 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
11657 (pkgdata_MODULES): Add `acorn.mod'.
11658 (acorn_mod_SOURCES): New variable.
11659 (acorn_mod_CFLAGS): Likewise.
11660 (acorn_mod_LDFLAGS): Likewise.
11661
11662 * include/types.h (grub_disk_addr_t): New typedef.
11663
6d099807 116642005-11-13 Marco Gerards <mgerards@xs4all.nl>
11665
11666 * geninit.sh: New file.
11667
11668 * geninitheader.sh: Likewise.
11669
11670 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
11671 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
11672 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
11673 * commands/configfile.c (grub_configfile_init)
11674 (grub_configfile_fini): Likewise.
11675 * commands/default.c (grub_default_init, grub_default_fini):
11676 Likewise.
11677 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
11678 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
11679 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
11680 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
11681 Likewise.
11682 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
11683 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
11684 Likewise.
11685 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 11686 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 11687 Likewise.
11688 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
11689 Likewise.
fe6b695a 11690 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 11691 Likewise.
11692 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
11693 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
11694 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
11695 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
11696 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
11697 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
11698 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
11699 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
11700 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
11701 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
11702 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
11703 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
11704 * partmap/amiga.c (grub_amiga_partition_map_init)
11705 (grub_amiga_partition_map_fini): Likewise.
11706 * partmap/apple.c (grub_apple_partition_map_init)
11707 (grub_apple_partition_map_fini): Likewise.
11708 * partmap/pc.c (grub_pc_partition_map_init)
11709 (grub_pc_partition_map_fini): Likewise.
11710 * partmap/sun.c (grub_sun_partition_map_init,
11711 grub_sun_partition_map_fini): Likewise.
11712 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
11713 Likewise.
11714
11715 * util/grub-emu.c: Include <grub_modules_init.h>.
11716 (main): Don't initialize and de-initialize any modules directly,
11717 use `grub_init_all' and `grub_fini_all' instead.
11718
11719 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
11720 `grub_vesafb_mod_init'.
11721 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
11722 all users.
11723 * term/i386/pc/vga.c (grub_vga_init): Renamed to
11724 `grub_vga_mod_init'. Updated all users.
11725 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 11726
6d099807 11727 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
11728 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
11729 rules.
11730
11731 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
11732 Generate a function to initialize the module in utilities.
11733 Updated all callers.
11734 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
11735 initialize the module in utilities. Updated all callers.
11736
9046bcf0 117372005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11738
11739 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
11740 escape sequence and a literal ^L to clear the screen.
11741
11742 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
11743 when returning from Open Firmware.
11744
d13ea639 117452005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11746
11747 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
11748 (grub_ofconsole_height): Likewise.
11749 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
11750 manually insert a '\n'.
11751 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
11752 `grub_ofconsole_height'. Return early if these are already set.
11753
a8fcf206 117542005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
11755
11756 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11757 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
11758 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
11759 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
11760 and `normal/script.c'.
11761 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11762 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11763 (test_mod_SOURCES): New variable.
11764 (test_mod_CFLAGS): Likewise.
11765 (test_mod_LDFLAGS): Likewise.
11766 (pkgdata_MODULES): Add `test.mod'.
11767 (grub_script.tab.c): New rule.
11768 (grub_script.tab.h): Likewise.
11769
b6b32745 117702005-11-07 Marco Gerards <mgerards@xs4all.nl>
11771
11772 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11773 `commands/test.c', `normal/execute.c', `normal/lexer.c',
11774 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11775 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11776 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11777 (test_mod_SOURCES): New variable.
11778 (test_mod_CFLAGS): Likewise.
11779 (pkgdata_MODULES): Add `test.mod'.
11780 (grub_script.tab.c): New rule.
11781 (grub_script.tab.h): Likewise.
11782
daac212a 117832005-11-06 Marco Gerards <mgerards@xs4all.nl>
11784
11785 Add initial scripting support.
11786
11787 * commands/test.c: New file.
11788 * include/grub/script.h: Likewise.
11789 * normal/execute.c: Likewise.
11790 * normal/function.c: Likewise.
11791 * normal/lexer.c: Likewise.
11792 * normal/parser.y: Likewise.
11793 * normal/script.c: Likewise.
11794
11795 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 11796
daac212a 11797 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
11798 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
11799 `normal/function.c' and `normal/script.c'.
11800 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11801 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 11802 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
11803 variables.
daac212a 11804 (pkgdata_MODULES): Add `test.mod'.
11805 (grub_script.tab.c): New rule.
11806 (grub_script.tab.h): Likewise.
11807
11808 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
11809
11810 * include/grub/normal.h (grub_test_init): New prototype.
11811 (grub_test_fini): Likewise.
f19dbdb7 11812
daac212a 11813 * normal/command.c: Include <grub/script.h>.
11814 (grub_command_execute): Rewritten.
f19dbdb7 11815
daac212a 11816 * util/grub-emu.c (main): Call `grub_test_init' and
11817 `grub_test_fini'.
11818
77500b2b 118192005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11820
11821 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
11822 to 0.
11823 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
11824 there are no pending characters.
11825
e45deb9e 118262005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11827
11828 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
11829 `grub_strndup' to drop device arguments. Replace unnecessary
11830 `grub_strndup' with `grub_strdup'.
11831
4ce32619 118322005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11833
11834 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
11835 `debug' environment variable has been set.
11836
118372005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11838
4ce32619 11839 * Makefile.in (install-local): Use $(DATA).
11840 (uninstall): Likewise.
11841 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
11842 (sbin_UTILITIES): ... to here.
11843 (sbin_SCRIPTS): New variable.
11844 (grub_install_SOURCES): New variable.
11845 * util/powerpc/ieee1275/grub-install.in: New file.
11846 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
11847 variable.
11848 (add_segments): Call `grub_util_get_path'.
11849
25fe6f03 118502005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
11851
11852 From Timothy Baldwin:
11853 * commands/ls.c (grub_ls_list_files): Close FILE with
11854 grub_file_close.
11855 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
11856
04ccf3ec 118572005-10-24 Marco Gerards <mgerards@xs4all.nl>
11858
11859 * include/grub/parser.h: New file.
11860
11861 * kern/parser.c: Likewise.
11862
11863 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
11864 (grub_setup_SOURCES): Likewise.
11865 (grub_probefs_SOURCES): Likewise.
11866 (grub_emu_SOURCES): Likewise.
11867 (kernel_img_HEADERS): Add `parser.h'.
11868
11869 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11870 (grub_emu_SOURCES): Add `kern/parser.c'.
11871 (grubof_SOURCES): Likewise.
11872
11873 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
11874 (grubof_SOURCES): Add `kern/parser.c'.
11875
11876 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
11877
11878 * kern/misc.c (grub_split_cmdline): Removed function.
11879
11880 * kern/rescue.c: Include <grub/parser.h>.
11881 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
11882 of `grub_split_cmdline'.
11883
11884 * normal/command.c: Include <grub/parser.h>.
11885 (grub_command_execute): Use `grub_parser_split_cmdline' instead
11886 of `grub_split_cmdline'.
11887
11888 * normal/completion.c: Include <grub/parser.h>.
11889 (cmdline_state): New variable.
11890 (iterate_dir): End the filename with a quote depending on the
11891 command line state.
11892 (get_state): new function.
11893 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
11894 split the arguments and determine the current argument. When the
11895 argument string is not quoted, escape all spaces.
11896
6d8f4b0e 118972005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11898
11899 * normal/sparc64/setjmp.S: New file.
11900
15cf03ed 119012005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11902
11903 * include/grub/sparc64/libgcc.h: New file.
11904 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
11905 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
11906 normal/sparc64/setjmp.c.
11907
03e8661a 119082005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
11909
11910 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
11911 * kern/sparc64/cache.S: New file.
11912 * kern/sparc64/cache.c: Removed.
11913 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
11914 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
11915 -mtune=ultrasparc.
11916 (COMMON_LDFLAGS): Add -melf64_sparc.
11917 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
11918 (grubof_SOURCES): Use cache.S instead of cache.c.
11919 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
11920 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
11921 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
11922 commented though.
11923 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
11924 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
11925 (linux_mod_CFLAGS): Commented out.
11926 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
11927 out because module isn't built.
11928 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
11929 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
11930 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
11931 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
11932 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
11933 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
11934 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
11935 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
11936 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
11937 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
11938 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11939 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11940 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
11941 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
11942
34eeec8a 119432005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
11944
11945 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
11946 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
11947 longer, because HFS should not be used on PC.
11948
708367a3 119492005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11950
11951 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
11952 consistently within the loop.
11953
6fa1251a 119542005-10-15 Marco Gerards <mgerards@xs4all.nl>
11955
11956 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
11957 directory can not be read.
11958
4801580b 119592005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11960
11961 * configure.ac (AC_INIT): Increase the version number to 1.91.
11962
11963 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
11964 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
11965 term/i386/pc/serial.c.
11966
219ad426 119672005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11968
11969 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
11970 file size must be permitted.
11971
11972 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
11973 between %ah and %al.
11974
688e5699 119752005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11976
11977 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
11978 grub_uint64_t.
11979 Call the hook with a NUL-terminated filename.
11980 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
11981 grub_cpu_to_be32.
11982
11983 * kern/term.c (cursor_state): New variable.
11984 (grub_term_set_current): Reset the cursor state on a new
11985 terminal.
11986 (grub_setcursor): Rewritten to use CURSOR_STATE.
11987 (grub_getcursor): New function.
11988
11989 * include/grub/term.h (grub_getcursor): New prototype.
11990
11991 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
11992 integers on ARM. Reported by Timothy Baldwin
11993 <T.E.Baldwin99@members.leeds.ac.uk>.
11994
bb34586c 119952005-10-11 Marco Gerards <mgerards@xs4all.nl>
11996
11997 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
11998 allocated.
11999 (grub_sfs_dir): Likewise.
12000
9a909877 120012005-10-09 Marco Gerards <mgerards@xs4all.nl>
12002
12003 Add support for the SFS filesystem.
12004
12005 * fs/sfs.c: New file.
12006
12007 * DISTLIST: Added `fs/sfs.c'.
12008
12009 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
12010 (grub_probefs_SOURCES): Likewise.
12011 (grub_emu_SOURCES): Likewise.
12012 (pkgdata_MODULES): Add `sfs.mod'.
12013 (sfs_mod_SOURCES): New variable.
12014 (sfs_mod_CFLAGS): Likewise.
12015 (sfs_mod_LDFLAGS): Likewise.
12016
12017 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
12018 (pkgdata_MODULES): Add `sfs.mod'.
12019 (sfs_mod_SOURCES): New variable.
12020 (sfs_mod_CFLAGS): Likewise.
12021
12022 * util/grub-emu.c (main): Call `grub_sfs_init' and
12023 `grub_sfs_fini'.
12024
12025 * include/grub/fs.h (grub_sfs_init): New prototype.
12026 (grub_sfs_fini): Likewise.
12027
57bdbde3 120282005-10-07 Marco Gerards <mgerards@xs4all.nl>
12029
12030 Add support for the AFFS filesystem.
12031
12032 * fs/affs.c: New file.
12033
12034 * DISTLIST: Added `fs/affs.c'.
12035
12036 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
12037 (grub_probefs_SOURCES): Likewise.
12038 (grub_emu_SOURCES): Likewise.
12039 (pkgdata_MODULES): Add `affs.mod'.
12040 (affs_mod_SOURCES): New variable.
12041 (affs_mod_CFLAGS): Likewise.
12042 (affs_mod_LDFLAGS): Likewise.
12043
12044 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
12045 (pkgdata_MODULES): Add `affs.mod'.
12046 (affs_mod_SOURCES): New variable.
12047 (affs_mod_CFLAGS): Likewise.
12048
12049 * util/grub-emu.c (main): Call `grub_affs_init' and
12050 `grub_affs_fini'.
12051
12052 * include/grub/fs.h (grub_affs_init): New prototype.
12053 (grub_affs_fini): Likewise.
12054
047b67e0 120552005-10-01 Marco Gerards <mgerards@xs4all.nl>
12056
12057 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
12058
59b8208a 120592005-10-01 Marco Gerards <mgerards@xs4all.nl>
12060
12061 * configure.ac: Accept `x86_64' as host_cpu. In that case add
12062 `-m32' to CFLAGS.
12063
12064 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
12065 linking.
f19dbdb7 12066
59b8208a 12067 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
12068 (COMMON_LDFLAGS): New variable.
12069 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
12070 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
12071 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
12072 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
12073 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
12074 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
12075 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
12076 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
12077 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
12078 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
12079 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
12080 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
12081 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
12082 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
12083 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
12084 variables.
12085 (normal_mod_ASFLAGS): Add `-m32'.
12086
12087 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
12088 (grub_host_size_t, grub_host_ssize_t): New types.
12089 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 12090 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 12091 `GRUB_HOST_SIZEOF_VOID_P'.
12092
12093 * include/grub/kernel.h (struct grub_module_header): Type of
12094 member offset changed to `grub_host_off_t'. Type of member size
12095 changed to `grub_host_size_t'.
12096 (struct grub_module_info): Type of member offset changed to
12097 `grub_host_off_t'. Type of member size changed to
12098 `grub_host_size_t'.
12099
b4093103 121002005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
12101
12102 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 12103
b4093103 12104 * kern/i386/pc/startup.S (multiboot_header): New label.
12105 (multiboot_entry): Likewise.
12106 (multiboot_trampoline): Likewise.
12107
12108 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
12109 Increased to 0x4A0.
12110
12111 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
12112 put parentheses after a question mark.
12113 [!GRUB_UTIL] (my_mod): New variable.
12114
12115 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
12116
b2499b29 121172005-09-28 Marco Gerards <mgerards@xs4all.nl>
12118
12119 Adds support for the XFS filesystem. Btrees are not supported
12120 yet.
12121
12122 * fs/xfs.c: New file.
12123
12124 * DISTLIST: Added `fs/xfs.c'.
12125
12126 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
12127 (grub_probefs_SOURCES): Likewise.
12128 (grub_emu_SOURCES): Likewise.
12129 (pkgdata_MODULES): Add `xfs.mod'.
12130 (xfs_mod_SOURCES): New variable.
12131 (xfs_mod_CFLAGS): Likewise.
12132
12133 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
12134 (pkgdata_MODULES): Add `xfs.mod'.
12135 (xfs_mod_SOURCES): New variable.
12136 (xfs_mod_CFLAGS): Likewise.
12137
12138 * util/grub-emu.c (main): Call `grub_xfs_init' and
12139 `grub_xfs_fini'.
12140
12141 * include/grub/fs.h (grub_xfs_init): New prototype.
12142 (grub_xfs_fini): Likewise.
12143
f19dbdb7 12144
83d37a62 121452005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
12146
12147 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
12148 color modes, allow greater than 16 colors to be configured as
12149 a default palette.
12150
47d2d65e 121512005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
12152
12153 * normal/completion.c (complete_arguments): Add the qualifier
12154 const into OPTIONS.
12155
12156 From Omniflux <omniflux+lists@omniflux.com>:
12157 * include/grub/terminfo.h: New file.
12158 * include/grub/tparm.h: Likewise.
12159 * include/grub/i386/pc/serial.h: Likewise.
12160 * term/terminfo.c: Likewise.
12161 * term/tparm.c: Likewise.
12162 * term/i386/pc/serial.c: Likewise.
12163 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
12164 serial.mod.
12165 (terminfo_mod_SOURCES): New variable.
12166 (terminfo_mod_CFLAGS): Likewise.
12167 (serial_mod_SOURCES): Likewise.
12168 (serial_mod_CFLAGS): Likewise.
12169
48b671ff 121702005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
12171
12172 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
12173 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
12174 and kern/powerpc/ieee1275/cmain.c, respectively.
12175
12176 * boot/powerpc/ieee1275/crt0.S: Moved to ...
12177 * kern/powerpc/ieee1275/crt0.S: ... here.
12178
12179 * boot/powerpc/ieee1275/cmain.c: Moved to ...
12180 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 12181
48b671ff 12182 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
12183 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
12184 instead of boot/powerpc/ieee1275/crt0.S and
12185 boot/powerpc/ieee1275/cmain.c, respectively.
12186
12187 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
12188 sectors. It was not used anyway.
12189
09fc77a7 121902005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12191
12192 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
12193 `unused parameter' warning.
12194
003789c7 121952005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12196
12197 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
12198 function.
12199 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
12200 getcharwidth.
12201
67f44c86 122022005-08-28 Marco Gerards <metgerards@student.han.nl>
12203
12204 * include/grub/normal.h (enum grub_completion_type): Added
12205 `GRUB_COMPLETION_TYPE_ARGUMENT'.
12206
12207 * normal/cmdline.c (print_completion): Handle
12208 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
12209 * normal/menu_entry.c (store_completion): Likewise.
12210
12211 * normal/completion.c (complete_arguments): New function.
12212 (grub_normal_do_completion): Call `complete_arguments' when the
12213 current words start with a dash.
12214
0b5abe02 122152005-08-27 Marco Gerards <metgerards@student.han.nl>
12216
12217 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
12218 `gzio.mod' instead of `io.mod').
12219
d9864ee1 122202005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
12221
12222 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
12223 (DISTDIRS): Added io and video.
12224 Rewrite the search routine to make an output consistently.
12225
12226 * DISTLIST: Added conf/sparc64-ieee1275.mk,
12227 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
12228 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
12229 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
12230 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
12231 util/powerpc/ieee1275/misc.c.
f19dbdb7 12232
d9864ee1 12233 * include/grub/gzio.h: New file.
12234 * io/gzio.c: Likewise.
f19dbdb7 12235
d9864ee1 12236 * kern/file.c (grub_file_close): Call grub_device_close only if
12237 FILE->DEVICE is not NULL.
12238
12239 * include/grub/mm.h [!NULL] (NULL): New macro.
12240
12241 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
12242
12243 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
12244 (pkgdata_MODULES): Added gzio.mod.
12245 (gzio_mod_SOURCES): New variable.
12246 (gzio_mod_CFLAGS): Likewise.
12247
12248 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
12249 (pkgdata_MODULES): Added gzio.mod.
12250 (gzio_mod_SOURCES): New variable.
12251 (gzio_mod_CFLAGS): Likewise.
12252
12253 * commands/cat.c: Include grub/gzio.h.
12254 (grub_cmd_cat): Use grub_gzfile_open instead of
12255 grub_file_open.
f19dbdb7 12256
d9864ee1 12257 * commands/cmp.c: Include grub/gzio.h.
12258 (grub_cmd_cmp): Use grub_gzfile_open instead of
12259 grub_file_open.
12260
12261 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
12262 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
12263 grub_file_open.
12264 (grub_rescue_cmd_module): Likewise.
12265
fa46f4b5 122662005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12267
12268 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
12269 kern/sparc64/ieee1275/init.c because it contains _start.
12270 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
12271
e9211b5d 122722005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12273
12274 * configure.ac: Add support for sparc64 host with ieee1275
12275 firmware.
12276 * configure: Generated from configure.ac.
12277 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
12278 instead of int.
12279 (grub_ofdisk_read): Likewise.
12280 (grub_ofdisk_open): Use %p to print pointer values, and cast the
12281 pointers as (void *) to remove a warning.
12282 (grub_ofdisk_close): Likewise.
12283 (grub_ofdisk_read): Likewise.
12284 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
12285 returns, so make it return void to remove a warning.
12286 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
12287 Corresponding prototype change.
12288 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
12289 values, and cast the pointers as (void *) to remove a warning.
12290 (grub_mm_dump): Likewise.
12291 * conf/sparc64-ieee1275.mk: New file.
12292 * conf/sparc64-ieee1275.rmk: Likewise.
12293 * include/grub/sparc64/setjmp.h: Likewise.
12294 * include/grub/sparc64/types.h: Likewise.
12295 * include/grub/sparc64/ieee1275/console.h: Likewise.
12296 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
12297 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
12298 * include/grub/sparc64/ieee1275/time.h: Likewise.
12299 * kern/sparc64/cache.c: Likewise.
12300 * kern/sparc64/dl.c: Likewise.
12301 * kern/sparc64/ieee1275/init.c: Likewise.
12302 * kern/sparc64/ieee1275/openfw.c: Likewise.
12303
385c6a92 123042005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12305
12306 * util/console.c (grub_ncurses_putchar): If C is greater than
12307 0x7f, set C to a question mark.
12308 (grub_ncurses_getcharwidth): New function.
12309 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
12310 getcharwidth.
12311
12312 * normal/menu.c (print_entry): Made aware of Unicode. First,
12313 convert TITLE to UCS-4, and predict the cursor position by
12314 grub_getcharwidth.
12315
12316 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
12317 const to SRC.
12318 * kern/misc.c (grub_utf16_to_utf8): Likewise.
12319
16ccb8b1 123202005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12321
12322 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
12323 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12324 grub_strcat.
12325
12326 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
12327 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12328 grub_strcpy and grub_strlen. Take it into account that a space
12329 character is inserted as a delimiter.
12330
6a85ce79 123312005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12332
12333 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 12334 invalid magic in the error.
6a85ce79 12335
12336 * commands/search.c: New file.
f19dbdb7 12337
6a85ce79 12338 * util/grub-emu.c (main): Call grub_search_init and
12339 grub_search_fini.
12340
12341 * kern/rescue.c (grub_rescue_print_disks): Removed.
12342 (grub_rescue_print_devices): New function.
12343 (grub_rescue_cmd_ls): Use grub_device_iterate with
12344 grub_rescue_print_devices instead of grub_disk_dev_iterate with
12345 grub_rescue_print_disks.
12346
12347 * kern/partition.c (grub_partition_iterate): Return the result of
12348 PARTMAP->ITERATE instead of GRUB_ERRNO.
12349
12350 * kern/device.c: Include grub/partition.h.
12351 (grub_device_iterate): New function.
12352
12353 * include/grub/partition.h (grub_partition_iterate): Return int
12354 instead of grub_err_t.
12355
12356 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
12357 prototype.
12358 [GRUB_UTIL] (grub_search_fini): Likewise.
12359
12360 * include/grub/device.h (grub_device_iterate): New prototype.
12361
12362 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12363 commands/search.c.
12364 (pkgdata_MODULES): Added search.mod.
12365 (search_mod_SOURCES): New variable.
12366 (search_mod_CFLAGS): Likewise.
12367
12368 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
12369 (pkgdata_MODULES): Added search.mod.
12370 (search_mod_SOURCES): New variable.
12371 (search_mod_CFLAGS): Likewise.
12372
12373 * commands/ls.c (grub_ls_list_disks): Renamed to ...
12374 (grub_ls_list_devices): ... this, and use grub_device_iterate.
12375 All callers changed.
12376
12377 * DISTLIST: Added commands/search.c.
12378
ef095434 123792005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12380
12381 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
12382 conversion.
12383 (grub_getcharwidth): New function.
12384
12385 * kern/misc.c (grub_utf8_to_ucs4): New function.
12386
12387 * include/grub/term.h (struct grub_term): Added a new member
12388 "getcharwidth".
12389 (grub_getcharwidth): New prototype.
12390
12391 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
12392
12393 * term/i386/pc/console.c (map_char): New function. Segregated from
12394 grub_console_putchar.
12395 (grub_console_putchar): Use map_char.
12396 (grub_console_getcharwidth): New function.
12397 (grub_console_term): Specified grub_console_getcharwidth as
12398 getcharwidth.
12399
12400 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
12401 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
12402
12403 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
12404 GRUB_ERRNO.
12405 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
12406 on grub_strtoul completely.
12407 (write_char): Declare local variables in the beginning of the
12408 function.
12409 (grub_vesafb_getcharwidth): New function.
12410 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
12411 getcharwidth.
12412
1f0a95e4 124132005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
12414
12415 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
12416 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
12417 commands/i386/pc/vbetest.c.
12418
12419 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
12420 call grub_vbe_get_controller_info again, because the returned
12421 information is volatile.
12422 (grub_vbe_set_video_mode): Mostly rewritten.
12423 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
12424 grub_vbe_status_t correctly.
12425 (grub_vbe_get_video_mode_info): Likewise.
12426 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
12427 several if statements.
12428
12429 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
12430 * commands/i386/pc/vbeinfo.c: ... this.
12431
12432 * commands/i386/pc/vbe_test.c: Renamed to ...
12433 * commands/i386/pc/vbetest.c: ... this.
12434
12435 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
12436 ...
12437 (grub_cmd_vbeinfo): ... this. Save video modes before
12438 iterating. Skip a video mode, if it is not available, not enough
12439 information is given or it is monochrome. Show the memory
12440 model. Leave the interpretation of MODEVAR to grub_strtoul
12441 completely.
12442 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
12443 (GRUB_MOD_FINI): Likewise.
12444
12445 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
12446 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
12447 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
12448 duplicated grub_env_get. Leave the interpretation of MODEVAR to
12449 grub_strtoul completely.
12450 (real2pm): Removed.
12451 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
12452 (GRUB_MOD_FINI): Likewise.
12453
12454 * normal/misc.c: Include grub/mm.h.
12455
12456 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
12457 vbe_list_modes with vbetest.mod and vbeinfo.mod.
12458 (vbe_list_modes_mod_SOURCES): Removed.
12459 (vbe_list_modes_mod_CFLAGS): Likewise.
12460 (vbe_test_mod_SOURCES): Likewise.
12461 (vbe_test_mod_CFLAGS): Likewise.
12462 (vbeinfo_mod_SOURCES): New variable.
12463 (vbeinfo_mod_CFLAGS): Likewise.
12464 (vbetest_mod_SOURCES): Likewise.
12465 (vbetest_mod_CFLAGS): Likewise.
12466
992ffbbe 124672005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
12468
12469 * normal/misc.c: New file.
12470
12471 * DISTLIST: Added normal/misc.c.
f19dbdb7 12472
992ffbbe 12473 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
12474 DISK to HOOK. Call HOOK with DISK.
12475 * partmap/apple.c (apple_partition_map_iterate): Likewise.
12476 * partmap/pc.c (pc_partition_map_iterate): Likewise.
12477 * partmap/sun.c (sun_partition_map_iterate): Likewise.
12478
12479 * normal/menu_entry.c (struct screen): Added a new member
12480 "completion_shown".
12481 (completion_buffer): New global variable.
12482 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
12483 (store_completion): New function.
12484 (complete): Likewise.
12485 (clear_completions): Likewise.
12486 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
12487 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
12488 a tab, call complete.
12489
12490 * normal/completion.c (disk_dev): Removed.
12491 (print_simple_completion): Likewise.
12492 (print_partition_completion): Likewise.
12493 (print_func): New global variable.
12494 (add_completion): Do not take the arguments WHAT or PRINT any
12495 longer. Added a new argument TYPE. Instead of printing directly,
12496 call PRINT_FUNC if not NULL.
12497 All callers changed.
12498 (complete_device): Use a local variable DEV instead of
12499 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
12500 (grub_normal_do_completion): Take a new argument HOOK. Do not
12501 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
12502 empty string, return NULL instead.
12503 All callers changed.
12504
12505 * normal/cmdline.c (print_completion): New function.
12506
12507 * kern/partition.c (grub_partition_iterate): Add an argument DISK
12508 to HOOK.
12509 All callers changed.
12510
12511 * kern/disk.c (grub_print_partinfo): Removed.
12512
12513 * include/grub/partition.h (struct grub_partition_map): Add a new
12514 argument DISK into HOOK of ITERATE.
12515 (grub_partition_iterate): Add a new argument DISK to HOOK.
12516
12517 * include/grub/normal.h (enum grub_completion_type): New enum.
12518 (grub_completion_type_t): New type.
12519 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
12520 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
12521 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
12522 (GRUB_COMPLETION_TYPE_FILE): Likewise.
12523 (grub_normal_do_completion): Added a new argument HOOK.
12524 (grub_normal_print_device_info): New prototype.
12525
12526 * include/grub/disk.h (grub_print_partinfo): Removed.
12527
12528 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
12529 (normal_mod_SOURCES): Likewise.
12530 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12531 (normal_mod_SOURCES): Likewise.
12532
12533 * commands/ls.c (grub_ls_list_disks): Use
12534 grub_normal_print_device_info instead of grub_print_partinfo. Free
12535 PNAME.
12536 (grub_ls_list_files): Use grub_normal_print_device_info instead of
12537 duplicating the code.
12538
0bd41162 125392005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12540
12541 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 12542 follow GCS more precisely.
12543 * commands/i386/pc/vbe_test.c: Likewise.
12544 * include/grub/i386/pc/vbe.h: Likewise.
12545 * term/i386/pc/vesafb.c: Likewise.
12546 * video/i386/pc/vbe.c: Likewise.
0bd41162 12547
6323696a 125482005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12549
12550 * DISTLIST: Added term/i386/pc/vesafb.c
12551 DISTLIST: Added video/i386/pc/vbe.c
12552 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
12553 DISTLIST: Added commands/i386/pc/vbe_test.c.
12554 * commands/i386/pc/vbe_list_modes.c: New file.
12555 * commands/i386/pc/vbe_test.c: Likewise.
12556 * term/i386/pc/vesafb.c: Likewise.
12557 * video/i386/pc/vbe.c: Likewise.
12558 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
12559 (grub_vbe_probe) Added prototype.
12560 (grub_vbe_set_video_mode) Likewise.
12561 (grub_vbe_get_video_mode) Likewise.
12562 (grub_vbe_get_video_mode_info) Likewise.
12563 (grub_vbe_set_pixel_rgb) Likewise.
12564 (grub_vbe_set_pixel_index) Likewise.
12565 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
12566 (pkgdata_MODULES): Added vesafb.mod.
12567 (pkgdata_MODULES): Added vbe_list_modes.mod.
12568 (pkgdata_MODULES): Added vbe_test.mod.
12569 (vbe_mod_SOURCES): Added.
12570 (vbe_mod_CFLAGS): Likewise.
12571 (vesafb_mod_SOURCES): Likewise.
12572 (vesafb_mod_CFLAGS): Likewise.
12573 (vbe_list_modes_mod_SOURCES): Likewise.
12574 (vbe_list_modes_mod_CFLAGS): Likewise.
12575 (vbe_test_mod_SOURCES): Likewise.
12576 (vbe_test_mod_CFLAGS): Likewise.
12577
0a74e62f 125782005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
12579
0a74e62f 12580 * normal/command.c (grub_command_execute): If INTERACTIVE is
12581 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
12582 CMDLINE. Disable the pager if INTERACTIVE is true.
12583 All callers are changed.
12584
12585 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
12586 before reading a config file.
12587 * normal/main.c (read_config_file): Even if a command is not
12588 found, register it if it is within an entry.
12589
12590 * util/grub-emu.c: Include sys/types.h and unistd.h.
12591 (options): Added --hold.
12592 (struct arguments): Added a new member "hold".
12593 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
12594 missing.
12595 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
12596 cleared by a debugger, if it is not zero.
12597
12598 * include/grub/normal.h (grub_command_execute): Add an argument
12599 INTERACTIVE.
12600
e51f85ae 126012005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
12602
12603 * DISTLIST: Added include/grub/i386/pc/vbe.h.
12604
e9c6f39b 126052005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
12606
12607 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
12608 program with another one, because the old one didn't detect a bug
12609 in gcc-3.4. Always use regparm 2, because the new test is still
12610 not enough for gcc-4.0. Someone must investigate a simple test
12611 case which detects a bug in gcc-4.0.
12612
8de3495c 126132005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
12614
12615 * DISTLIST: Added normal/completion.c.
12616
12617 * normal/completion.c: New file.
f19dbdb7 12618
8de3495c 12619 * term/i386/pc/console.c (grub_console_getwh): New function.
12620 (grub_console_term): Assign grub_console_getwh to getwh.
12621
12622 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
12623 function is defined in normal/completion.c as
12624 grub_normal_do_completion.
12625 (grub_cmdline_get): Use grub_normal_do_completion instead of
12626 grub_tab_complete.
12627
12628 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
12629 returns non-zero, otherwise return 0.
12630 (grub_partition_iterate): First, probe the partition map. Then,
12631 call ITERATE only for this partition map.
12632
12633 * kern/misc.c (grub_strncmp): Rewritten.
12634
12635 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
12636 returns non-zero. Otherwise return 0.
12637
12638 * include/grub/partition.h (grub_partition_map_iterate): Return
12639 int instead of void.
12640
12641 * include/grub/normal.h (grub_normal_do_completion): New prototype.
12642
12643 * include/grub/misc.h (grub_strncmp): Change the type of N to
12644 grub_size_t.
12645
12646 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
12647 of void.
12648
12649 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 12650 unsigned explicitly before comparing it with I.
8de3495c 12651
12652 * kern/main.c (grub_env_write_root): Add the attribute unused into
12653 VAR.
12654
12655 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12656 normal/completion.c.
12657 (normal_mod_SOURCES): Likewise.
12658 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
12659 (normal_mod_SOURCES): Likewise.
12660
12661 * normal/command.c (grub_iterate_commands): If ITERATE returns
12662 non-zero, return one immediately.
12663
e85e144b 126642005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
12665
12666 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
12667 * kern/i386/pc/startup.S: Updated Global Descriptor table's
12668 descriptions.
12669 (grub_vbe_get_controller_info): New function.
12670 (grub_vbe_get_mode_info): Likewise.
12671 (grub_vbe_set_mode): Likewise.
12672 (grub_vbe_get_mode): Likewise.
12673 (grub_vbe_set_memory_window): Likewise.
12674 (grub_vbe_get_memory_window): Likewise.
12675 (grub_vbe_set_scanline_length): Likewise.
12676 (grub_vbe_get_scanline_length): Likewise.
12677 (grub_vbe_set_display_start): Likewise.
12678 (grub_vbe_get_display_start): Likewise.
12679 (grub_vbe_set_palette_data): Likewise.
12680 * include/grub/i386/pc/vbe.h: New file.
12681
c46153d2 126822005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12683
12684 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12685 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
12686 * DISTLIST: Likewise.
12687 * kern/ieee1275/of.c: Moved to ...
12688 * kern/ieee1275/ieee1275.c: ... here.
12689
0cb90c45 126902005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12691
12692 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
12693 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
12694 Pass 0 as `end' parameter to grub_strtoul().
12695
a19fb360 126962005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12697
12698 * include/grub/powerpc/ieee1275/console.h: Do not include
12699 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
12700 ifdef.
12701 (grub_console_cur_color): Remove i386-specific prototype.
12702 (grub_console_real_putchar): Likewise.
12703 (grub_console_checkkey): Likewise.
12704 (grub_console_getkey): Likewise.
12705 (grub_console_getxy): Likewise.
12706 (grub_console_gotoxy): Likewise.
12707 (grub_console_cls): Likewise.
12708 (grub_console_setcursor): Likewise.
12709 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
12710 Include <grub/machine/console.h>.
12711 * term/ieee1275/ofconsole.c: Likewise.
12712
4ac9bd04 127132005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
12714
12715 * Makefile.in (LIBLZO): New variable.
12716
12717 * configure.ac: Check for LZO version 2.
12718
12719 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
12720 lzo/lzo1x.h instead of lzo1x.h.
12721
12722 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
12723 of -llzo.
12724
12725 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
12726 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
12727
12728 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
12729 copying the data from PARTITION to P.
12730
f4917dfd 127312005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12732
12733 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
12734 negative, unload the module.
12735
12736 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
12737 map is "pc_partition_map" but not "pc".
12738 (usage): Fix the description. The options are --boot-image and
12739 --core-image but not --boot-file or --core-file.
12740 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
12741 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
12742 DEFAULT_DIRECTORY.
12743
12744 * util/i386/pc/grub-install.in: Do not specify --boot-file or
12745 --core-file. Specify INSTALL_DEVICE as an argument.
12746
12747 * util/console.c: Include config.h.
12748 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
12749 [HAVE_NCURSES_H]: Include ncurses.h.
12750 [HAVE_CURSES_H]: Include curses.h.
12751 [!A_NORMAL] (A_NORMAL): Defined as zero.
12752 [!A_STANDOUT] (A_STANDOUT): Likewise.
12753
12754 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
12755 -lncurses.
12756 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
12757
12758 * configure.ac: Check for curses libraries and headers.
12759
12760 * Makefile.in (LIBCURSES): New variable.
12761
12762 * genmk.rb (Script::rule): Set the executable bits.
12763
12764 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
12765 name of the PC partition map is "pc_partition_map" but not "pc".
12766
0e143073 127672005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12768
12769 * util/i386/pc/grub-install.in (grub_probefs): New variable.
12770 (modules): Likewise.
12771 (usage): Added descriptions for --modules and --grub-probefs.
12772 Handle --modules and --grub-probefs. Save the arguments in MODULES
12773 and GRUB_PROBEFS, respectively.
12774 Auto-detect a filesystem module against GRUBDIR. If the result is
12775 empty and modules are not specified explicitly, abort the
12776 installation. Add the result to MODULES.
12777
12778 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
12779 disk/powerpc/ieee1275/ofdisk.c,
12780 include/grub/powerpc/ieee1275/init.h and
12781 term/powerpc/ieee1275/ofconsole.c.
12782 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
12783 term/ieee1275/ofconsole.c.
12784
12785 * include/grub/powerpc/ieee1275/console.h: Resurrected.
12786
12787 * COPYING: Upgraded to the latest version. Only the address of the
12788 FSF office has changed.
f19dbdb7 12789
efd6e6d5 127902005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12791
12792 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12793 kern/ieee1275.c with kern/ieee1275/of.c.
12794
12795 * kern/ieee1275.c: Moved to ...
12796 * kern/ieee1275/of.c: ... here.
12797
8ceafda2 127982005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
12799
12800 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 12801 readability.
8ceafda2 12802
12803 * config.guess: Updated to the latest version from gnulib.
12804 * config.sub: Likewise.
12805 * install.sh: Likewise.
12806 * mkinstalldirs: Likewise.
12807
12808 * include/grub/console.h: Removed. This file is arch-specific. Do
12809 not put this in include/grub.
12810
12811 * include/grub/i386/pc/console.h: Resurrected.
12812
12813 * util/console.c: Include grub/machine/console.h instead of
12814 grub/console.h.
12815 * util/grub-emu.c: Likewise.
12816
267f6cd9 128172005-08-04 Marco Gerards <metgerards@student.han.nl>
12818
12819 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
12820 hardcoded value.
f19dbdb7 12821
267f6cd9 12822 From Vincent Pelletier <subdino2004@yahoo.fr>
12823 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
12824 Redefined to use grub_getwh.
12825 (grub_term): New member named getwh.
12826 (grub_getwh): New prototype.
12827 * kern/term.c (grub_getwh): New function.
12828 * term/i386/pc/console.c (grub_console_getwh): New function.
12829 (grub_console_term): New member `getwh'.
12830 * term/i386/pc/vga.c (grub_vga_getwh): New function.
12831 (grub_vga_term): New member `getwh'.
0b5abe02 12832 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 12833 grub_ssize_t.
12834 (grub_ofconsole_getw): New function.
12835 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
12836 (grub_ofconsole_term): New field named getwh and new initial
12837 value.
12838
3be7266d 128392005-08-03 Hollis Blanchard <hollis@penguinppc.org>
12840
12841 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
12842 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
12843 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
12844 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
12845 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
12846 of <grub/machine/ieee1275.h>.
12847 * commands/ieee1275/reboot.c: Likewise.
12848 * boot/powerpc/ieee1275/ieee1275.c: Move ...
12849 * kern/ieee1275.c: ... to here. All users updated. Change all
12850 parameter structs to use new type `grub_ieee1275_cell_t'.
12851 * term/powerpc/ieee1275/ofconsole.c: Move ...
12852 * term/ieee1275/ofconsole.c: ... to here. All users updated.
12853 * disk/powerpc/ieee1275/ofdisk.c: Move ...
12854 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
12855 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
12856 to return int.
12857 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
12858 Remove unused prototypes. All users updated.
12859 * include/grub/powerpc/ieee1275/console.h: Removed.
12860 * include/grub/powerpc/ieee1275/ieee1275.h: Define
12861 `grub_ieee1275_cell_t'.
12862 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
12863 Cast comparisons with -1 to the correct type.
12864 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
12865 type to match `grub_ieee1275_entry_fn'.
12866
8b5f3938 128672005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
12868
12869 * DISTLIST: Added util/i386/pc/grub-probefs.c.
12870
12871 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
12872 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
12873 partmap/sun.c.
12874 (grub_probefs_SOURCES): New variable.
12875
12876 * util/i386/pc/grub-probefs.c: New file.
12877
12878 * util/i386/pc/grub-setup.c (main): Call
12879 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
12880 grub_hfs_init and grub_jfs_init to initialize the system. Call
12881 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
12882 grub_pc_partition_map_fini to finish the system.
12883
ea409713 128842005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
12885
12886 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
12887 function.
12888 (grub_multiboot_load_elf32): Likewise.
12889 (grub_multiboot_is_elf64): Likewise.
12890 (grub_multiboot_load_elf64): Likewise.
12891 (grub_multiboot_load_elf): Likewise.
12892 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
12893 an ELF32 or ELF64 file.
12894 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
12895
12896 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
12897 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
12898 NULL before calling FS->LABEL.
12899 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
12900 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
12901 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
12902 before calling FS->LABEL.
12903
141a288b 129042005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
12905
12906 * util/i386/pc/grub-install.in (datadir): New variable.
12907 (libdir): Removed.
12908 (pkgdatadir): New variable.
12909 (pkglibdir): Removed.
12910
0d5f8a54 129112005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
12912
12913 * DISTLIST: Added util/i386/pc/grub-install.in.
12914
12915 * util/i386/pc/grub-install.in: New file.
12916
12917 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
12918 (grub_install_SOURCES): Likewise.
12919
12920 * genmk.rb: Added support for scripts.
12921 (Script): New class.
12922 (scripts): New variable.
12923
12924 * Makefile.in (install-local): Install sbin_SCRIPTS by
12925 INSTALL_SCRIPT.
12926 (uninstall): Remove sbin_SCRIPTS.
12927
12928 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
12929 device, try to get a GRUB device by
12930 grub_util_biosdisk_get_grub_dev.
12931 Free DEST_DEV.
12932
12933 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
12934 description for --device-map.
12935
5f968e1e 129362005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12937
12938 Change the semantics of variable hooks. They now return strings
12939 instead of error values.
f19dbdb7 12940
5f968e1e 12941 * util/i386/pc/grub-setup.c: Include grub/env.h.
12942 (setup): Use grub_device_set_root instead of grub_env_set.
12943
12944 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
12945 grub_env_get instead of grub_device_set_root and
12946 grub_device_get_root, respectively.
12947
12948 * kern/main.c (grub_env_write_root): New function.
12949 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
12950 grub_env_set instead of grub_device_set_root.
12951
12952 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
12953 many variables.
12954 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
12955 rather than calling ENV->WRITE_HOOK afterwards.
12956 (grub_env_get): Return the result of ENV->READ_HOOK rather than
12957 passing a pointer of a pointer.
12958 (grub_register_variable_hook): Change the types of "read_hook" and
12959 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
12960 respectively.
12961 Allocate the default empty string on the heap, because this string
12962 may be freed later.
12963
12964 * kern/device.c: Include grub/env.h.
12965 (grub_device_set_root): Removed.
12966 (grub_device_get_root): Likewise.
12967 (grub_device_open): Use grub_env_get instead of
12968 grub_device_get_root.
12969
12970 * include/grub/env.h (grub_env_read_hook_t): New type.
12971 (grub_env_write_hook_t): Likewise.
12972 (grub_env_var): Change the types of "read_hook" and "write_hook"
12973 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
12974 (grub_register_variable_hook): Likewise.
12975
12976 * include/grub/device.h (grub_device_set_root): Removed.
12977 (grub_device_set_root): Likewise.
12978
12979 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
12980 make sure that DIRNAME terminates with '/', so that
12981 grub_fat_find_dir will fail if PATH is not a directory.
12982
12983 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
12984 from DIRNAME.
12985 Use the qualifier auto for print_files and print_files_long.
12986 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
12987 as a regular file.
12988 Put a newline only if there is no error.
12989 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
12990 used.
12991
896f0afd 129922005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
12993
12994 * kern/partition.c (grub_partition_probe): Initialize PART to
12995 NULL. Otherwise, when no partition map is registered, this returns
12996 a garbage.
12997
b28b81b2 129982005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
12999
13000 * partmap/apple.c (apple_partition_map_iterate): Check if POS
13001 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
13002 valid.
13003
5f3607e0 130042005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
13005
13006 * commands/ls.c (grub_ls_list_disks): Print the filesystem
13007 information on each device, if it does not have partitions. Print
13008 "Device" instead of "Disk", because this function is not specific
13009 to disk devices.
13010
13011 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
13012 static to ensure that it is put on the memory rather than a
13013 register.
13014
502c87e8 130152005-07-17 Yoshinori Okuji <okuji@enbug.org>
13016
13017 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
13018 (grub_cat_init): Likewise.
13019 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
13020 (options): Likewise.
13021 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
13022 (grub_configfile_init): Likewise.
13023 * font/manager.c (GRUB_MOD_INIT): Likewise.
13024 * commands/help.c (GRUB_MOD_INIT): Likewise.
13025 (grub_help_init): Likewise.
13026 * normal/command.c (grub_command_init): Likewise.
13027 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
13028 * disk/loopback.c (grub_loop_init): Likewise.
13029 (GRUB_MOD_INIT): Likewise.
13030 * commands/ls.c (grub_ls_init): Likewise.
13031 (GRUB_MOD_INIT): Likewise.
13032 (options): Likewise.
13033 * commands/boot.c (grub_boot_init): Likewise.
13034 (GRUB_MOD_INIT): Likewise.
13035 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
13036 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
13037 (GRUB_MOD_INIT): Likewise.
13038 * commands/cmp.c (grub_cmp_init): Likewise.
13039 (GRUB_MOD_INIT): Likewise.
13040
13041 * normal/arg.c: Use <> instead of "" to include header files.
13042 (SHORT_ARG_HELP): New macro.
13043 (SHORT_ARG_USAGE): Likewise.
13044 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
13045 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
13046 descriptions.
13047 (find_short): Check if C is 'h' or 'u' explicitly.
13048 (grub_arg_show_help): Use space characters instead of tabs. Treat
13049 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
13050 are shown with --help and --usage only if they are not used for
13051 the command itself.
13052 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
13053 'h' and 'u'.
13054
13055 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
13056 const into "longarg". Change the type of "shortarg" to int.
13057
f806d18e 130582005-07-17 Yoshinori Okuji <okuji@enbug.org>
13059
13060 * boot/i386/pc/boot.S (boot_drive_check): New label.
13061
13062 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
13063 macro.
13064
13065 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
13066 which do not pass a boot drive correctly. Copied from GRUB Legacy.
13067
e293232b 130682005-07-17 Yoshinori Okuji <okuji@enbug.org>
13069
13070 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
13071 When turning off Gate A20, skip the check and return immediately,
13072 because this is not fatal usually.
13073
ebedfd00 130742005-07-17 Yoshinori Okuji <okuji@enbug.org>
13075
13076 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
13077 be 0x7C00 instead of 0x8000.
13078
13079 * boot/i386/pc/pxeboot.S: Rewritten.
13080
13081 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
13082 EXT_C.
13083 (gate_a20_check_state): Read a byte from 0x108000. Invert the
13084 result.
13085
654fc59f 130862005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
13087
13088 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
13089 robustness. This routine now supports a BIOS call and System
13090 Control Port A to modify the gate A20.
13091
13092 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
13093 Increased to 0x440.
13094
09f9923f 130952005-07-12 Hollis Blanchard <hollis@penguinppc.org>
13096
13097 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
13098 device path and resulting ihandle.
13099 (grub_ofdisk_close): dprintf the ihandle being closed.
13100 (grub_ofdisk_read): dprintf function parameters.
13101 * kern/mm.c (grub_mm_init_region): Likewise.
13102 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
13103 (grub_linux_boot): dprintf the Linux entry point, initrd address and
13104 size, and boot arguments.
13105 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
13106 before loading into memory.
13107 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
13108 before loading into memory.
13109
7ef504d8 131102005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
13111
13112 * kern/mm.c: Added much documentation.
13113 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
13114 8, set to 5 instead of 8.
13115
e0f050c2 131162005-07-10 Yoshinori Okuji <okuji@enbug.org>
13117
13118 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
13119
13120 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
13121 (grub_mkdevicemap_SOURCES): New variable.
13122
13123 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
13124 lib/device.c of GRUB Legacy.
13125
7224189a 131262005-07-10 Yoshinori Okuji <okuji@enbug.org>
13127
13128 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
13129 instead of PATH is NULL.
13130
68c864eb 131312005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
13132
13133 * commands/cmp.c (BUFFER_SIZE): New macro.
13134 (grub_cmd_cmp): Close the right file at the right time. Compare
13135 only data just read. Don't report files of different size as
13136 identical. Dynamically allocate buffers. Move variable
13137 declarations at the beginning of function.
13138
e6f3e614 131392005-07-09 Yoshinori Okuji <okuji@enbug.org>
13140
13141 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
13142 reverse.
13143
f8f1559a 131442004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
13145
13146 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
13147 when backspace is pressed at beginning of line.
13148
39c9d41d 131492005-07-03 Yoshinori Okuji <okuji@enbug.org>
13150
13151 * DISTLIST: Added genfslist.sh.
13152
13153 * normal/main.c (fs_module_list): New variable.
13154 (autoload_fs_module): New function.
13155 (read_fs_list): Likewise.
13156 (grub_normal_execute): Call read_fs_list.
13157
13158 * kern/fs.c (grub_fs_autoload_hook): New variable.
13159 (grub_fs_probe): Added support for auto-loading.
13160
13161 * include/grub/normal.h (struct grub_fs_module_list): New struct.
13162 (grub_fs_module_list_t): New type.
13163
13164 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
13165 (grub_fs_autoload_hook): New prototype.
13166
13167 * genfslist.sh: New file.
f19dbdb7 13168
39c9d41d 13169 * genmk.rb: Added a rule to generate a filesystem list.
13170
121c1d83 131712005-06-30 Marco Gerards <metgerards@student.han.nl>
13172
13173 * configure.ac: Fix the test for cross-compiling.
13174
13175 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
13176 define GRUB_UTIL anymore.
13177
13178 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
13179 so this function works on other systems than just big endian.
13180 (load_modules): Likewise.
13181 (add_segments): Likewise.
13182
e75d76e1 131832005-06-23 Hollis Blanchard <hollis@penguinppc.org>
13184
13185 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
13186 contains `l' modifier, get a long from va_arg().
13187
50b5a0a7 131882005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
13189
13190 * kern/mm.c (grub_free): If the next free block which is being
13191 merged is the first free block, set the first block to the block
13192 being freed.
13193 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
13194
89371b20 131952005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13196
13197 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
13198 `grub_ieee1275_chosen'.
13199
168d6e58 132002005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13201
13202 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
13203 (grub_ieee1275_chosen): New variable.
13204 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
13205 `chosen'.
13206 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
13207 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
13208 Rename first argument to `phandle' for consistency.
13209 (grub_ieee1275_get_property_length): Likewise.
13210 (grub_ieee1275_next_property): Likewise. Change type of first argument
13211 to grub_ieee1275_phandle_t.
13212 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
13213 Move export next to declaration.
13214 (grub_ieee1275_chosen): New variable.
13215 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
13216 Correct cosmetic typo.
13217 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
13218 `grub_ieee1275_chosen'.
13219 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
13220 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
13221 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
13222 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
13223 `grub_ieee1275_chosen'.
13224
ca5baa3f 132252005-05-10 Hollis Blanchard <hollis@penguinppc.org>
13226
13227 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
13228 /chosen/bootargs.
13229 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
13230 /chosen/bootargs as "variable=value" pairs.
13231
708b345f 132322005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
13233
13234 * include/grub/misc.h (grub_dprintf): New macro.
13235 (grub_real_dprintf): New prototype.
13236 (grub_strword): Likewise.
13237 (grub_iswordseparator): Likewise.
13238 * kern/misc.c (grub_real_dprintf): New function.
13239 (grub_strword): Likewise.
13240 (grub_iswordseparator): Likewise.
13241
f4c5e67c 132422005-04-30 Hollis Blanchard <hollis@penguinppc.org>
13243
13244 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
13245 (roundup): Remove macro.
13246 (grub_ieee1275_flags): Make static.
13247 (grub_ieee1275_realmode): Remove.
13248 (grub_ieee1275_test_flag): New function.
13249 (grub_ieee1275_set_flag): Likewise.
13250 (find_options): Rename to `grub_ieee1275_find_options'; update
13251 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
13252 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
13253 (cmain): New prototype.
13254 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
13255 `grub_ieee1275_flags' directly.
13256 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
13257 machine/biosdisk.h.
13258 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
13259 Don't include grub/machine/init.h.
13260 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
13261 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
13262 Remove prototype.
13263 (grub_ieee1275_realmode): Likewise.
13264 (grub_ieee1275_flag): New enum.
13265 (grub_ieee1275_test_flag): New prototype.
13266 (grub_ieee1275_set_flag): New prototype.
13267 * include/grub/powerpc/ieee1275/init.h: Remove file.
13268 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
13269 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
13270 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
13271 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
13272 comment.
13273 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
13274 `grub_ieee1275_test_flag'.
13275 (grub_ieee1275_encode_devname): Likewise.
13276
ed16607e 132772005-04-21 Hollis Blanchard <hollis@penguinppc.org>
13278
13279 * include/grub/powerpc/ieee1275/ieee1275.h
13280 (grub_ieee1275_encode_devname): New prototype.
13281 (grub_ieee1275_get_filename): Likewise.
13282 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
13283 function.
13284 (grub_set_prefix): Likewise.
13285 (grub_machine_init): Call grub_set_prefix.
13286 * kern/powerpc/ieee1275/openfw.c: Fix typos.
13287 (grub_parse_type): New enum.
13288 (grub_ieee1275_get_devargs): New function.
13289 (grub_ieee1275_get_devname): Likewise.
13290 (grub_ieee1275_parse_args): Likewise.
13291 (grub_ieee1275_get_filename): Likewise.
13292 (grub_ieee1275_encode_devname): Likewise.
13293
be369920 132942005-03-30 Marco Gerards <metgerards@student.han.nl>
13295
13296 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
13297 `grub_loader_unset'.
13298
a5ce3a4a 132992005-03-26 Hollis Blanchard <hollis@penguinppc.org>
13300
13301 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
13302 instead of grub_ieee1275_interpret.
13303 (grub_halt_init): New function.
13304 (grub_halt_fini): Likewise.
13305 (GRUB_MOD_INIT): Correct message grammar.
13306 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
13307 instead of grub_ieee1275_interpret.
13308 (grub_reboot_init): New function.
13309 (grub_reboot_fini): Likewise.
13310 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
13311 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
13312 util/i386/pc/misc.c with commands/ieee1275/halt.c,
13313 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
13314 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
13315 function.
13316 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
13317 Add prototype.
13318 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
13319 prototype.
13320 (grub_halt): Likewise.
13321 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
13322 (cmain): Remove __attribute__((unused)).
13323 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
13324 (grub_heap_len): Likewise.
13325 (grub_machine_fini): New function.
13326 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
13327 (grub_halt): Likewise.
13328 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
13329 function.
13330 * util/powerpc/ieee1275/misc.c: New file.
13331
0058f771 133322005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
13333
13334 * DISTLIST: New file.
13335 * gendistlist.sh: Likewise.
f19dbdb7 13336
0058f771 13337 * Makefile.in (COMMON_DISTFILES): Removed.
13338 (BOOT_DISTFILES): Likewise.
13339 (CONF_DISTFILES): Likewise.
13340 (DISK_DISTFILES): Likewise.
13341 (FS_DISTFILES): Likewise.
13342 (INCLUDE_DISTFILES): Likewise.
13343 (KERN_DISTFILES): Likewise.
13344 (LOADER_DISTFILES): Likewise.
13345 (TERM_DISTFILES): Likewise.
13346 (UTIL_DISTFILES): Likewise.
13347 (DISTFILES): Likewise.
13348 (uninstall): Uninstall files in $(pkgdata_DATA).
13349 (DISTLIST): New target.
13350 (distdir): Use the contents of the file DISTLIST to get a list of
13351 distributed files.
13352
46b3b8a5 133532005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
13354
13355 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
13356 descriptor. This is ported from GRUB Legacy.
13357
13358 * gencmdlist.sh: Added an extra semicolon to make it work with
13359 old sed versions. Reported by Robert Bihlmeyer
13360 <robbe@orcus.priv.at>.
13361
5822ff87 133622005-03-08 Yoshinori Okuji <okuji@enbug.org>
13363
13364 Automatic loading of commands is supported.
f19dbdb7 13365
5822ff87 13366 * normal/main.c (read_command_list): New function.
13367 (grub_normal_execute): Call read_command_list.
13368
13369 * normal/command.c (grub_register_command): Return zero or CMD.
13370 Allocate CMD->NAME from the heap.
13371 Initialize CMD->MODULE_NAME to zero.
13372 Find the same name as well. If the same command is found and it is
13373 a dummy command, overwrite members. If it is not a dummy command,
13374 return zero.
13375 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
13376 (grub_command_find): If a dummy command is found, load a module
13377 and retry to find a command only once.
13378
13379 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
13380 make sure that each command is loaded.
13381
13382 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
13383 macro.
13384 (struct grub_command): Remove const from the member `name'.
13385 Add a new member `module_name'.
13386 (grub_register_command): Return grub_command_t.
13387
13388 * commands/help.c (grub_cmd_help): Call grub_command_find to make
13389 sure that each command is loaded.
13390
13391 * genmk.rb (PModule::rule): Specify a module name without the
13392 suffix ".mod" to gencmdlist.sh.
13393
7b1f4b57 133942005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13395
13396 * gencmdlist.sh: New file.
f19dbdb7 13397
7b1f4b57 13398 * genmk.rb (PModule::rule): Generate a rule for a command list.
13399 Clean command.lst.
13400 Generate command.lst from $(COMMANDFILES).
13401
13402 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
13403 (DATA): Added $(pkgdata_DATA).
13404 (install-local): Install files in $(pkgdata_DATA).
13405
062aaf39 134062005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13407
13408 * term/i386/pc/vga.c (debug_command): Removed.
13409 (GRUB_MOD_INIT): Do not register the command "debug".
13410
13411 From Hollis Blanchard:
13412 * commands/configfile.c: New file.
13413 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13414 commands/configfile.c.
13415 (pkgdata_MODULES): Added configfile.mod.
13416 (configfile_mod_SOURCES): New variable.
13417 (configfile_mod_CFLAGS): Likewise.
13418 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
13419 commands/configfile.c.
13420 (pkgdata_MODULES): Added configfile.mod.
13421 (configfile_mod_SOURCES): New variable.
13422 (configfile_mod_CFLAGS): Likewise.
13423 * util/grub-emu.c (main): Call grub_configfile_init and
13424 grub_configfile_fini.
13425 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
13426 prototype.
13427 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 13428
cee01aa6 134292005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13430
13431 * normal/arg.c (grub_arg_show_help): Do not show the bug report
13432 address.
13433
13434 * commands/help.c (grub_cmd_help): Do not print newlines after
13435 the last command in print_command_help.
13436
93f3a1d8 134372005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13438
13439 * commands/default.h: New file.
13440 * commands/timeout.h: Likewise.
13441 * normal/context.c: Likewise.
f19dbdb7 13442
93f3a1d8 13443 * util/misc.c: Do not include sys/times.h.
13444 Include sys/time.h and grub/machine/time.h.
13445 (grub_get_rtc): Rewritten with gettimeofday.
13446
13447 * util/grub-emu.c (main): Call grub_default_init and
13448 grub_timeout_init before grub_normal_init, and call
13449 grub_timeout_fini and grub_default_fini after grub_main.
13450
13451 * util/console.c (grub_ncurses_checkkey): Return the read
13452 character or -1.
13453
13454 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
13455 timeouts.
13456
13457 * normal/main.c (read_config_file): Push MENU. If this fails,
13458 print an error and wait for a user input.
13459 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
13460 If a menu is empty or an error occurs, pop MENU.
13461 (grub_normal_execute): Pop and free MENU after grub_menu_run
13462 returns.
13463
13464 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
13465
13466 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
13467 include time.h.
13468 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13469 without GRUB_UTIL.
13470 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
13471 time.h.
13472 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13473 without GRUB_UTIL.
13474
13475 * include/grub/normal.h (struct grub_menu_list): New struct.
13476 (grub_menu_list_t): New type.
13477 (struct grub_context): New struct.
13478 (grub_context_t): New type.
13479 (grub_register_command): Got rid of EXPORT_FUNC.
13480 (grub_unregister_command): Likewise.
13481 (grub_context_get): New prototype.
13482 (grub_context_get_current_menu): Likewise.
13483 (grub_context_push_menu): Likewise.
13484 (grub_context_pop_menu): Likewise.
13485 [GRUB_UTIL] (grub_default_init): Likewise.
13486 [GRUB_UTIL] (grub_default_fini): Likewise.
13487 [GRUB_UTIL] (grub_timeout_init): Likewise.
13488 [GRUB_UTIL] (grub_timeout_fini): Likewise.
13489
13490 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
13491 commands/timeout.c and normal/context.c.
13492 (pkgdata_MODULES): Added default.mod and timeout.mod.
13493 (normal_mod_SOURCES): Added normal/context.c.
13494 (default_mod_SOURCES): New variable.
13495 (default_mod_CFLAGS): Likewise.
13496 (timeout_mod_SOURCES): Likewise.
13497 (timeout_mod_CFLAGS): Likewise.
13498 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
13499 conf/i386-pc.rmk.
13500 (pkgdata_MODULES): Added default.mod and timeout.mod.
13501 (normal_mod_SOURCES): Added normal/context.c.
13502 (default_mod_SOURCES): New variable.
13503 (default_mod_CFLAGS): Likewise.
13504 (timeout_mod_SOURCES): Likewise.
13505 (timeout_mod_CFLAGS): Likewise.
13506
13507 * Makefile.in (all-local): Added $(MKFILES).
13508
4ed2e1dd 135092005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
13510
13511 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
13512 (grub_emu_SOURCES): Likewise.
13513 (pkgdata_MODULES): Add `sun.mod'.
13514 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13515 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13516 `partmap/sun.c'.
13517 (pkgdata_MODULES): Add `sun.mod'.
13518 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13519 * include/grub/partition.h (grub_sun_partition_map_init): New
13520 prototype.
13521 (grub_sun_partition_map_fini): Likewise.
13522 * partmap/sun.c: New file.
13523 * util/grub-emu.c (main): Initialize and de-initialize the sun
13524 partitionmap support.
13525
4d4e372e 135262005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
13527
13528 This implements an Emacs-like menu entry editor.
f19dbdb7 13529
4d4e372e 13530 * normal/menu_entry.c: New file.
f19dbdb7 13531
4d4e372e 13532 * util/console.c (grub_ncurses_putchar): Translate some Unicode
13533 characters to ASCII.
13534 (saved_char): New variable.
13535 (grub_ncurses_checkkey): Rewritten completely.
13536 (grub_ncurses_getkey): Likewise.
13537 (grub_ncurses_init): Call raw instead of cbreak.
13538
13539 * normal/menu.c (print_entry): Do not put a space.
13540 (init_page): Renamed to ...
13541 (grub_menu_init_page): ... this. All callers changed.
13542 (edit_menu_entry): Removed.
13543 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
13544
13545 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
13546
13547 * kern/misc.c (grub_vprintf): Call grub_refresh.
13548
13549 * normal/menu.c (DISP_LEFT): Renamed to ...
13550 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
13551 * normal/menu.c (DISP_UP): Renamed to ...
13552 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
13553 * normal/menu.c (DISP_RIGHT): Renamed to ...
13554 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
13555 * normal/menu.c (DISP_DOWN): Renamed to ...
13556 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
13557 * normal/menu.c (DISP_HLINE): Renamed to ...
13558 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
13559 * normal/menu.c (DISP_VLINE): Renamed to ...
13560 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
13561 * normal/menu.c (DISP_UL): Renamed to ...
13562 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
13563 * normal/menu.c (DISP_UR): Renamed to ...
13564 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
13565 * normal/menu.c (DISP_LL): Renamed to ...
13566 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
13567 * normal/menu.c (DISP_LR): Renamed to ...
13568 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
13569 * normal/menu.c (TERM_WIDTH): Renamed to ...
13570 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
13571 * normal/menu.c (TERM_HEIGHT): Renamed to ...
13572 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
13573 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
13574 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
13575 * normal/menu.c (TERM_MARGIN): Renamed to ...
13576 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
13577 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
13578 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
13579 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
13580 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
13581 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
13582 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
13583 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
13584 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
13585 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
13586 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
13587 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
13588 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
13589 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
13590 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
13591 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
13592 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
13593 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
13594 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
13595 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
13596 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
13597 All callers changed.
13598
13599 * include/grub/normal.h: New prototype.
13600
13601 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13602 normal/menu_entry.c.
13603 (normal_mod_SOURCES): Likewise.
13604 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13605 (normal_mod_SOURCES): Likewise.
13606
e6b92c8a 136072005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
13608
13609 * include/grub/normal.h (grub_halt_init): New prototype.
13610 (grub_halt_fini): Likewise.
13611 (grub_reboot_init): Likewise.
13612 (grub_reboot_fini): Likewise.
13613
13614 * util/grub-emu.c: Include signal.h.
13615 (main_env): New global variable.
13616 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
13617 catch C-c.
13618 (grub_machine_fini): New function.
13619 (main): Call grub_halt_init and grub_reboot_init before
13620 grub_main, and grub_reboot_fini and grub_halt_fini after it.
13621 Call setjmp with MAIN_ENV to go back afterwards.
13622 Call grub_machine_fini right before return.
13623
13624 * include/grub/util/misc.h: Include setjmp.h.
13625 (main_env): New prototype.
13626
13627 * include/grub/kernel.h (grub_machine_fini): New prototype.
13628 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
13629 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
13630
13631 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
13632 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
13633 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 13634
e6b92c8a 13635 * util/i386/pc/misc.c: New file.
f19dbdb7 13636
e6b92c8a 13637 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13638 util/i386/pc/misc.c, commands/i386/pc/halt.c and
13639 commands/i386/pc/reboot.c.
13640
c642636f 136412005-02-14 Guillem Jover <guillem@hadrons.org>
13642
13643 * include/grub/dl.h (grub_dl_check_header): New prototype.
13644 (grub_arch_dl_check_header): Change return type to grub_err_t,
13645 remove size parameter and export function. Update all callers.
13646 * kern/dl.c (grub_dl_check_header): New function.
13647 (grub_dl_load_core): Use `grub_dl_check_header' instead of
13648 `grub_arch_dl_check_header'. Check ELF type. Check if sections
13649 are inside the core.
13650 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
13651 independent ELF header checks.
13652 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13653 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
13654 `grub_dl_check_header' instead of explicit checks. Check for the
13655 ELF type.
13656 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
13657 `grub_dl_check_header' instead of explicit checks. Remove arch
13658 specific ELF header checks.
13659
e6b92c8a 13660 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
13661 argument SIZE.
13662
5eabe94b 136632005-02-13 Hollis Blanchard <hollis@penguinppc.org>
13664
13665 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
13666 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
13667
1b14a681 136682005-02-12 Hollis Blanchard <hollis@penguinppc.org>
13669
13670 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 13671 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 13672 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 13673 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 13674 * partmap/amiga.c (amiga_partition_map_iterate): Return
13675 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
13676 * partmap/apple.c (apple_partition_map_iterate): Likewise.
13677
aca108aa 136782005-02-01 Guillem Jover <guillem@hadrons.org>
13679
13680 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
13681 help info.
13682
c9f9c556 136832005-01-31 Marco Gerards <metgerards@student.han.nl>
13684
13685 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
13686 Removed prototype.
13687 (grub_rescue_cmd_linux): New prototype.
13688 (grub_rescue_cmd_initrd): Likewise.
13689 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
13690 `bi_rec'.
13691 (grub_linux_release_mem): Release the memory for the initrd.
13692 (grub_load_linux): Renamed from this...
13693 (grub_rescue_cmd_linux): ...To this. Changed all callers.
13694 Changed `entry' not to be static. Loop over memory regions to
13695 find another one when the default fails.
13696 (grub_rescue_cmd_initrd): New function.
13697 (grub_linux_init): Remove function.
13698 (grub_linux_fini): Likewise.
13699 (GRUB_MOD_INIT): Register `initrd'.
13700 (GRUB_MOD_FINI): Unregister `initrd'.
13701 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
13702 Function removed.
13703 (grub_linux_normal_fini): Likewise.
13704 (GRUB_MOD_INIT): Register `initrd'.
13705 (GRUB_MOD_FINI): Unregister `initrd'.
13706
990cf3aa 137072005-01-31 Marco Gerards <metgerards@student.han.nl>
13708
13709 * commands/help.c: New file.
13710 * normal/arg.c (show_help): Renamed to...
13711 (grub_arg_show_help): ... this.
13712 * commands/i386/pc/halt.c: New file.
13713 * commands/i386/pc/reboot.c: Likewise.
13714 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
13715 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
13716 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
13717 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
13718 variables.
13719 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13720 `commands/help.c'.
13721 (pkgdata_MODULES): Add `help.mod'.
13722 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
13723 * grub/i386/pc/init.h (grub_reboot): New prototype.
13724 (grub_halt): Likewise.
13725 * include/grub/normal.h (grub_arg_show_help): New prototype.
13726 (grub_help_init): Likewise.
13727 (grub_help_fini): Likewise.
13728 * util/grub-emu.c (main): Initialize and deinitialize the help
13729 command.
13730
13731 * normal/cmdline.c (grub_cmdline_get): Doc fix.
13732
13733 * normal/command.c (grub_command_init): Fixed the description of
13734 the `set' and `unset' commands.
13735
137362005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 13737
13738 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
13739 function.
13740 * commands/ieee1275/halt.c: New file.
13741 * commands/ieee1275/reboot.c: Likewise.
13742 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
13743 `__attribute__ ((unused))'. Some GCS related fixed.
13744 (grub_suspend_init) [GRUB_UTIL]: Function removed.
13745 (grub_suspend_fini): Likewise.
13746 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
13747 and `halt.mod'.
13748 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
13749 (halt_mod_CFLAGS): New variables.
13750 * include/grub/powerpc/ieee1275/ieee1275.h
13751 (grub_ieee1275_interpret): New prototype.
13752
1ab09cc7 137532005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
13754
13755 * include/grub/misc.h (memmove): New prototype.
13756 (memcpy): Likewise.
13757
8b8cbdb2 137582005-01-22 Hollis Blanchard <hollis@penguinppc.org>
13759
13760 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
13761 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
13762
e3741a27 137632005-01-22 Marco Gerards <metgerards@student.han.nl>
13764
13765 * kern/misc.c (grub_strndup): Function rewritten.
13766
776bd780 137672005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
13768
13769 * normal/menu.c (TERM_WIDTH): Macro redefined.
13770 (TERM_TOP_BORDER_Y): Likewise.
13771 (draw_border): Replaced while-loop by a for-loop. Make the number
13772 of lines consistent with the number of lines displayed in
13773 print_entries. Added a margin below the rectangle.
13774 (print_entry): Make the entry fit in the rectangle.
13775 (print_entries): Display the scroll arrows next to the right
13776 border.
13777
78026bce 137782005-01-21 Marco Gerards <metgerards@student.han.nl>
13779
13780 * fs/minix.c (grub_minix_find_file): Reserve more space for
13781 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
13782 `grub_strncpy' to copy `path' into it.
13783
67bbaf0f 137842005-01-21 Marco Gerards <metgerards@student.han.nl>
13785
13786 Add the loopback device, a device via which files can be accessed
13787 as devices.
f19dbdb7 13788
67bbaf0f 13789 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
13790 (pkgdata_MODULES): Add loopback.mod.
13791 (loopback_mod_SOURCES): New variable.
13792 (loopback_mod_CFLAGS): Likewise.
13793 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13794 `disk/loopback.c'.
13795 (pkgdata_MODULES): Add loopback.mod.
13796 (loopback_mod_SOURCES): New variable.
13797 (loopback_mod_CFLAGS): Likewise.
13798 * disk/loopback.c: new file.
13799 * include/grub/normal.h (grub_loop_init): New prototype.
13800 (grub_loop_fini): New prototype.
13801 * util/grub-emu.c (main): Initialize and de-initialize loopback
13802 support.
13803 * include/grub/disk.h (grub_disk_dev_id): Add
13804 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
13805
6f1c18bd 138062005-01-20 Hollis Blanchard <hollis@penguinppc.org>
13807
13808 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
13809 function.
13810 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
13811 (suspend_mod_SOURCES): New variable.
13812 (suspend_mod_CFLAGS): Likewise.
13813 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
13814 New prototype.
13815 * commands/ieee1275/suspend.c: New file.
13816
b38551da 138172005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13818
13819 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 13820 ((unused))' to `__attribute__ ((used))'.
b38551da 13821 (GRUB_MOD_FINI): Likewise.
13822 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
13823 * genmk.rb (PModule): Assign space to common symbols when linking
13824 modules.
13825
777aff39 138262005-01-20 Marco Gerards <metgerards@student.han.nl>
13827
13828 * include/grub/mm.h (grub_mm_init_region): Change the type of the
13829 `unsigned' arguments to `grub_size_t'.
13830 (grub_malloc): Likewise.
13831 (grub_realloc): Likewise.
13832 (grub_memalign): Likewise.
13833 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
13834 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13835 * util/misc.c (grub_malloc): Likewise.
13836 (grub_realloc): Likewise.
13837 * kern/mm.c (get_header_from_pointer): Change the casts to
13838 `unsigned' into a cast to `grub_size_t'.
13839
13840 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
13841 point to `currnode' when `currnode' is changed.
13842
13843 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
13844 Schottelius <nico-linux@schottelius.org>.
13845
d0ff18e1 138462005-01-09 Hollis Blanchard <hollis@penguinppc.org>
13847
13848 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
13849 (note_path): Remove variable.
13850 (GRUB_IEEE1275_NOTE_NAME): New macro.
13851 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
13852 (grub_ieee1275_note_hdr): New structure.
13853 (grub_ieee1275_note_desc): Likewise.
13854 (grub_ieee1275_note): Likewise.
13855 (load_note): Remove `dir' argument. All callers updated. Remove
13856 `note_img' and `path'. Do not load a file from `note_path'.
13857 Initialize a struct grub_ieee1275_note and write that to `out'.
13858 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
13859
4ca7004c 138602005-01-05 Marco Gerards <metgerards@student.han.nl>
13861
13862 * util/misc.c (grub_util_read_image): Revert last change. It
13863 called `grub_util_read_at', which seeks from the beginning of the
13864 file.
13865
0b412211 138662005-01-04 Hollis Blanchard <hollis@penguinppc.org>
13867
13868 * TODO: Add note about endianness in grub-mkimage.
13869 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
13870 section.
13871 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
13872 (grub_mkimage_SOURCES): New target.
13873 * include/grub/kernel.h (grub_start_addr): Remove variable.
13874 (grub_end_addr): Likewise.
13875 (grub_total_module_size): Likewise.
13876 (grub_kernel_image_size): Likewise.
13877 (GRUB_MODULE_MAGIC): New constant.
13878 (grub_module_info): New structure.
13879 (grub_arch_modules_addr): New prototype.
13880 (grub_get_end_addr): Remove prototype.
13881 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
13882 * include/grub/powerpc/ieee1275/kernel.h: New file.
13883 * include/grub/util/misc.h (grub_util_get_fp_size): New
13884 prototype.
13885 (grub_util_read_at): Likewise.
13886 (grub_util_write_image_at): Likewise.
13887 * kern/main.c (grub_get_end_addr): Remove function.
13888 (grub_load_modules): Call grub_arch_modules_addr instead of using
13889 grub_end_addr. Look for a grub_module_info struct in memory. Use
13890 the grub_module_info fields instead of calling grub_get_end_addr
13891 as loop conditions. Move grub_add_unused_region code here.
13892 (grub_add_unused_region): Remove function.
13893 * kern/i386/pc/init.c: Include grub/cache.h.
13894 (grub_machine_init): Remove call to grub_get_end_addr. Remove
13895 one call to add_mem_region.
13896 (grub_arch_modules_addr): New function.
13897 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
13898 (grub_total_module_size): Likewise.
13899 Include grub/machine/kernel.h.
13900 (grub_arch_modules_addr): New function.
13901 * util/grub-emu.c (grub_end_addr): Remove variable.
13902 (grub_total_module_size): Likewise.
13903 (grub_arch_modules_addr): New function.
13904 * util/misc.c: Include unistd.h.
13905 (grub_util_get_fp_size): New function.
13906 (grub_util_read_at): Likewise.
13907 (grub_util_write_image_at): Likewise.
13908 (grub_util_read_image): Call grub_util_read_at.
13909 (grub_util_write_image): Call grub_util_write_image_at.
13910 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
13911 additional memory in kernel_img for a struct grub_module_info.
13912 Fill in that grub_module_info.
13913 * util/powerpc/ieee1275/grub-mkimage.c: New file.
13914
458786f8 139152005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13916
13917 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
13918 New function.
13919 * include/grub/powerpc/ieee1275/ieee1275.h
13920 (grub_ieee1275_milliseconds): New prototype.
13921 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
13922 Change to 1000.
13923 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
13924 grub_ieee1275_milliseconds.
13925
ac507d1b 139262005-01-03 Hollis Blanchard <hollis@penguinppc.org>
13927
13928 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
13929 variable.
13930 (find_options): New function.
13931 (cmain): Call find_options.
13932 * include/grub/powerpc/ieee1275/ieee1275.h
13933 (grub_ieee1275_realmode): New extern variable.
13934 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
13935 grub_map if grub_ieee1275_realmode is false.
13936
6b8fd1c4 139372004-12-29 Marco Gerards <metgerards@student.han.nl>
13938
13939 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
13940 lines are inserted and make it work like readline. Reported by
13941 Vincent Pelletier <subdino2004@yahoo.fr>.
13942
8514a1e0 139432004-12-28 Marco Gerards <metgerards@student.han.nl>
13944
13945 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
13946
13947 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
13948 `kern/powerpc/cache.S'.
13949
924b6140 139502004-12-27 Marco Gerards <metgerards@student.han.nl>
13951
13952 * genmk.rb: Handle the `Program' class in the main loop. Written
13953 by Johan Rydberg <jrydberg@gnu.org>.
13954 (Program): New class.
13955 (programs): New variable.
13956 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
13957 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
13958 instead of "grub/kernel.h". Include <grub/machine/init.h>.
13959 (help_arch): Function removed.
13960 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
13961 `powerpc/libgcc.h' and `loader.h'.
13962 (pkgdata_PROGRAMS): New variable.
13963 (sbin_UTILITIES): Variable removed.
13964 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
13965 (grubof_SOURCES): Variable re-defined so it only includes the
13966 core functionality.
13967 (grubof_CFLAGS): Remove `-DGRUBOF'.
13968 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
13969 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
13970 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
13971 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
13972 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
13973 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
13974 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
13975 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
13976 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
13977 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
13978 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13979 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
13980 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
13981 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
13982 (pc_mod_CFLAGS): New variables.
13983 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
13984 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
13985 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
13986 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
13987 Moved from here...
13988 * include/grub/i386/pc/init.h (grub_os_area_addr)
13989 (rub_os_area_size): ... to here.
13990 * include/grub/powerpc/ieee1275/ieee1275.h
13991 (grub_ieee1275_entry_fn): Export symbol.
13992 * include/grub/powerpc/ieee1275/init.h: New file.
13993 * include/grub/powerpc/libgcc.h: Likewise.
13994 * include/grub/cache.h: Likewise.
13995 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
13996 <hollis@penguinppc.org>.
13997 * kern/dl.c: Include <grub/cache.h>.
13998 (grub_dl_flush_cache): New function.
13999 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
14000 for this module.
14001 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
14002 (grub_console_init): Removed prototypes.
14003 (grub_machine_init): Don't initialize the modules anymore.
14004 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
14005 static.
14006 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
14007 Macro undef removed.
14008 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
14009 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
14010 relocation `R_PPC_REL32'. Return an error when the relocation is
14011 unknown.
14012 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
14013 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
14014 * util/misc.c (grub_arch_sync_caches): Likewise.
14015
e4b47e0c 140162004-12-19 Marco Gerards <metgerards@student.han.nl>
14017
14018 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
14019 `symlist.c', add `grubof_symlist.c'.
14020 (symlist.c): Variable removed.
14021 (grubof_HEADERS): Variable added.
14022 (grubof_symlist.c): New target.
14023 (kernel_syms.lst): Use `grubof_HEADERS' instead of
14024 `kernel_img_HEADERS'.
14025 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
14026 * kern/powerpc/dl.c: New file.
14027 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
14028 Function removed.
14029 (grub_arch_dl_relocate_symbols): Likewise.
14030 (grub_register_exported_symbols): Likewise.
14031
4ceb3636 140322004-12-13 Marco Gerards <metgerards@student.han.nl>
14033
14034 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
14035 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
14036 to fail instead. Reported by Vincent Pelletier
14037 <subdino2004@yahoo.fr>.
14038
14039 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
14040 it is not allocated. Reported by Vincent Pelletier
14041 <subdino2004@yahoo.fr>.
14042
14043 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
14044 output so the output looks better.
f19dbdb7 14045
3f1578fe 140462004-12-04 Marco Gerards <metgerards@student.han.nl>
14047
14048 Modulize the partition map support and add support for the amiga
14049 partition map.
f19dbdb7 14050
3f1578fe 14051 * commands/ls.c: Include <grub/partition.h> instead of
14052 <grub/machine/partition.h>.
14053 * kern/disk.c: Likewise.
14054 * kern/rescue.c: Likewise.
14055 * loader/i386/pc/chainloader.c: Likewise.
14056 * normal/cmdline.c: Likewise.
14057 * kern/powerpc/ieee1275/init.c: Likewise.
14058 (grub_machine_init): Call `grub_pc_partition_map_init',
14059 `grub_amiga_partition_map_init' and
14060 `grub_apple_partition_map_init'.
14061 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
14062 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
14063 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
14064 `partition.h' and `pc_partition.h'.
14065 (grub_setup_SOURCES): Remove
14066 `disk/i386/pc/partition.c'. Add `kern/partition.c',
14067 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14068 (grub_emu_SOURCES): Likewise.
14069 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
14070 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
14071 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
14072 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14073 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
14074 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14075 (grubof_SOURCES): Likewise.
14076 * disk/i386/pc/partition.c: File removed.
14077 * disk/powerpc/ieee1275/partition.c: Likewise.
14078 * include/grub/powerpc/ieee1275/partition.h: Likewise.
14079 * include/grub/i386/pc/partition.h: Likewise.
14080 * kern/partition.c: New file.
14081 * partmap/amiga.c: Likewise.
14082 * partmap/apple.c: Likewise.
14083 * partmap/pc.c: Likewise.
14084 * include/grub/partition.h: Likewise..
14085 * include/grub/pc_partition.h: Likewise.
14086 * util/grub-emu.c: Include <grub/partition.h> instead of
14087 <grub/machine/partition.h>.
14088 (main): Call `grub_pc_partition_map_init',
14089 `grub_amiga_partition_map_init' and
14090 `grub_apple_partition_map_init' and deinitialize afterwards.
14091 * util/i386/pc/biosdisk.c: Include `#include
14092 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14093 `<grub/machine/partition.h>'.
14094 * util/i386/pc/grub-setup.c: Likewise.
14095 * util/i386/pc/biosdisk.c: Likewise.
14096 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
14097 partition information in case of a PC partition.
14098 * util/i386/pc/grub-setup.c: Include `#include
14099 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14100 `<grub/machine/partition.h>'.
14101 (setup): Only access the PC specific partition information in case
14102 of a PC partition.
14103
0ef4ced9 141042004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 14105
0ef4ced9 14106 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
14107 (grub_longjmp): Likewise.
14108 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
14109 20.
14110 * normal/powerpc/setjmp.S: New file.
14111 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14112 `normal/powerpc/setjmp.S'.
14113 (grubof_CFLAGS): Add `-DGRUBOF'.
14114 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
14115 [GRUB_UTIL && !GRUBOF].
f19dbdb7 14116
19950e29 141172004-11-16 Marco Gerards <metgerards@student.han.nl>
14118
14119 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
14120 property named `name'. Correctly handle the error returned by
14121 `grub_ieee1275_finddevice' if a device can not be opened.
14122
a2fea427 141232004-11-02 Hollis Blanchard <hollis@penguinppc.org>
14124
14125 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
14126 `actual' for negativity.
14127 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14128 kern/fshelp.c.
14129
41ea0ea3 141302004-11-01 Marco Gerards <metgerards@student.han.nl>
14131
14132 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
14133 (PAGE_OFFSET): New macro.
14134 (CRTC_ADDR_PORT): Likewise.
14135 (CRTC_DATA_PORT): Likewise.
14136 (START_ADDR_HIGH_REGISTER): Likewise.
14137 (START_ADDR_LOW_REGISTER): Likewise.
14138 (GRAPHICS_ADDR_PORT): Likewise.
14139 (GRAPHICS_DATA_PORT): Likewise.
14140 (READ_MAP_REGISTER): Likewise.
14141 (INPUT_STATUS1_REGISTER): Likewise.
14142 (INPUT_STATUS1_VERTR_BIT): Likewise.
14143 (page): New variable.
14144 (wait_vretrace): New function.
14145 (set_read_map): Likewise.
14146 (set_start_address): Likewise.
14147 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
14148 the right page.
14149 (check_vga_mem): Take the page into account.
14150 (write_char): Likewise.
14151 (write_cursor): Likewise.
14152 (scroll_up): Likewise. Copy the page to the page that is not
14153 shown and switch between both pages.
14154 (grub_vga_putchar): Fix off by one error.
14155 (grub_vga_cls): Wait for the vertical retrace. Take the page into
14156 account.
14157
ad0bd20b 141582004-11-01 Marco Gerards <metgerards@student.han.nl>
14159
14160 Add support for iso9660 (including rockridge).
f19dbdb7 14161
ad0bd20b 14162 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14163 (iso9660_mod_SOURCES): New variable.
14164 (iso9660_mod_CFLAGS): Likewise.
14165 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14166 * include/grub/fs.h (grub_iso9660_init): New prototype.
14167 * util/grub-emu.c (main): Call `grub_iso9660_init'.
14168 * fs/iso9660.c: New file.
14169
14170 * include/grub/misc.h (grub_strncat): New prototype.
14171 * kern/misc.c (grub_strncat): New function.
f19dbdb7 14172
ad0bd20b 14173 * fs/hfs.c (grub_hfs_mount): Translate the error
14174 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
14175 * fs/jfs.c (grub_jfs_mount): Likewise.
14176 * fs/ufs.c (grub_ufs_mount): Likewise.
14177
a5477a59 141782004-10-28 Hollis Blanchard <hollis@penguinppc.org>
14179
14180 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
14181 which initialized BAT registers.
14182 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
14183 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14184 Move from here...
14185 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
14186 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14187 ... to here.
14188 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
14189 (grub_mapclaim): Likewise.
14190 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
14191 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
14192 hand.
14193
9304c1f8 141942004-10-19 Hollis Blanchard <hollis@penguinppc.org>
14195
14196 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
14197 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
14198 -ffreestanding and -msoft-float.
14199
86f4ae25 142002004-10-15 Hollis Blanchard <hollis@penguinppc.org>
14201
14202 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
14203 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
14204 set in grub_ieee1275_flags.
14205
38912228 142062004-10-14 Hollis Blanchard <hollis@penguinppc.org>
14207
14208 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
14209 prototype.
14210 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
14211 grub_console_init first.
14212 Change the memory range used for grub_ieee1275_claim and
14213 grub_mm_init_region.
14214 Print an error message if the claim fails.
14215 Include <grub/misc.h>.
14216
d1923dc8 142172004-10-13 Hollis Blanchard <hollis@penguinppc.org>
14218
14219 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
14220 Call grub_children_iterate for device nodes of type `scsi',
14221 `ide', or `ata'.
14222 (grub_ofdisk_open): Remove manual device alias resolution.
14223 Fix memory leak when device cannot be opened.
f19dbdb7 14224 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 14225 (grub_children_iterate): New prototype.
14226 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
14227 New function.
14228 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
14229 Return -1 if args.size was -1.
14230
4512e4f3 142312004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14232
14233 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
14234 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
14235 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
14236 Open Firmware's memory for it; claim memory from _start to _end.
14237 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
14238 (_end): New extern.
14239 (_start): Zero BSS from __bss_start to _end.
14240 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
14241 New extern.
14242 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
14243
4d61feb0 142442004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14245
ad0bd20b 14246 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
14247 -1 if args.base was -1.
4d61feb0 14248
026fa2f9 142492004-10-08 Hollis Blanchard <hollis@penguinppc.org>
14250
14251 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
14252 escape sequence instead of a literal ^L. Also call
14253 grub_ofconsole_gotoxy.
14254
9f2220ef 142552004-10-03 Hollis Blanchard <hollis@penguinppc.org>
14256
14257 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
14258 void * arguments to grub_addr_t. All callers updated. Also make
14259 the `result' argument optional.
14260 (grub_ieee1275_release): change void * arguments to grub_addr_t.
14261 All callers updated.
14262
8a572cd7 142632004-09-22 Hollis Blanchard <hollis@penguinppc.org>
14264
14265 * commands/ls.c (grub_ls_list_files): Use the string following the
14266 initial ')', if present, as the filesystem path.
14267 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
14268
14269 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
14270
18aa81f2 142712004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
14272
14273 Make the source code of the menu interface more readable.
f19dbdb7 14274
18aa81f2 14275 * normal/menu.c: Include grub/mm.h.
14276 (TERM_WIDTH): New macro.
14277 (TERM_HEIGHT): Likewise.
14278 (TERM_INFO_HEIGHT): Likewise.
14279 (TERM_MARGIN): Likewise.
14280 (TERM_SCROLL_WIDTH): Likewise.
14281 (TERM_TOP_BORDER_Y): Likewise.
14282 (TERM_LEFT_BORDER_X): Likewise.
14283 (TERM_BORDER_WIDTH): Likewise.
14284 (TERM_MESSAGE_HEIGHT): Likewise.
14285 (TERM_BORDER_HEIGHT): Likewise.
14286 (TERM_NUM_ENTRIES): Likewise.
14287 (TERM_FIRST_ENTRY_Y): Likewise.
14288 (TERM_ENTRY_WIDTH): Likewise.
14289 (TERM_CURSOR_X): Likewise.
14290 (draw_border): Use macros instead of magic numbers.
14291 (print_entry): Likewise.
14292 (print_entries): Likewise.
14293 (run_menu): Likewise. Also, handle the key 'e'.
14294 (run_menu_entry): Ignore empty command lines.
14295 (print_message): Added a new argument EDIT. If EDIT is true,
14296 print a different message.
14297 (init_page): Likewise.
14298 (edit_menu_entry): New function. Not implemented yet.
14299
b47efe30 143002004-09-17 Marco Gerards <metgerards@student.han.nl>
14301
14302 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
14303 can be loaded from normal mode.
f19dbdb7 14304
b47efe30 14305 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
14306 `multiboot.mod'.
14307 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
14308 (multiboot_mod_CFLAGS): New variables.
14309 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 14310 * loader/i386/pc/multiboot_normal.c: Likewise.
14311
b47efe30 14312 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
14313 attribute `unused'.
f19dbdb7 14314
b47efe30 14315 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
14316 `fdiro' to read the mode information from instead of `diro'.
14317
14318 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
14319 looking up a symlink.
14320
14321 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
14322 macro.
14323 * normal/command.c (grub_command_execute): Don't parse the
14324 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
14325 flags of the command.
14326
14327 * normal/menu.c (grub_menu_run): Fix typo.
14328
da75ac71 143292004-09-14 Hollis Blanchard <hollis@penguinppc.org>
14330
14331 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
14332
14333 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
14334 `y + 1' instead of `y - 1'.
14335
14336 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 14337
062b24c2 143382004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
14339
14340 From Hollis Blanchard <hollis@penguinppc.org>:
14341 * kern/misc.c (memmove): New alias for grub_memmove.
14342 (memcmp): New alias for grub_memcmp.
14343 (memset): New alias for grub_memset.
f19dbdb7 14344 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 14345 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 14346 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 14347 (grub_ieee1275_get_property): Likewise.
f19dbdb7 14348
8ddad845 143492004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
14350
14351 Added normal mode command `chainloader' as module chain.mod, which
14352 depends on normal.mod and _chain.mod.
f19dbdb7 14353
8ddad845 14354 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
14355 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
14356 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
14357 Deleted prototype.
14358 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
14359 but arguments parsing moved to ...
14360 (grub_chainloader_cmd): ... here. New function.
14361 * include/grub/i386/pc/chainloader.h: New file.
14362 * loader/i386/pc/chainloader_normal.c: Likewise.
14363
2c1f4ce3 143642004-09-11 Marco Gerards <metgerards@student.han.nl>
14365
14366 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
14367 (grub_mkimage_LDFLAGS): Likewise.
14368 (grub_emu_SOURCES): Likewise.
14369 (kernel_img_HEADERS): Added fshelp.h.
14370 * fs/ext2.c: Include <grub/fshelp.h>.
14371 (FILETYPE_REG): New macro.
14372 (FILETYPE_INO_REG): Likewise.
14373 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
14374 Changed all users.
14375 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
14376 all users.
14377 (grub_fshelp_node): New struct.
14378 (grub_ext2_data): Added member `diropen'. Changed member `inode'
14379 to a pointer.
14380 (grub_ext2_get_file_block): Removed function.
14381 (grub_ext2_read_block): New function.
14382 (grub_ext2_read_file): Replaced parameter `data' by `node'.
14383 This function was written.
14384 (grub_ext2_mount): Read the root inode. Create a diropen struct.
14385 (grub_ext2_find_file): Removed function.
14386 (grub_ext2_read_symlink): New function.
14387 (grub_ext2_iterate_dir): Likewise.
14388 (grub_ext2_open): Rewritten.
14389 (grub_ext2_dir): Rewritten.
14390 * include/grub/fshelp.h: New file.
14391 * fs/fshelp.c: Likewise.
14392
3c52136a 143932004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
14394
14395 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
14396 (print_message): Add a missing newline.
14397 (run_menu): Added timeout support.
14398 (run_menu_entry): New local function.
14399 (grub_menu_run): Added support for booting.
14400
14401 * kern/loader.c (grub_loader_is_loaded): New function.
14402
14403 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
14404 (grub_get_rtc): Exported.
14405
14406 * include/grub/i386/pc/time.h: Include grub/symbol.h.
14407 (grub_get_rtc): Exported.
14408
14409 * include/grub/normal.h (struct grub_command_list): Remove
14410 constant from the member `command'.
14411
14412 * include/grub/loader.h (grub_loader_is_loaded): Declared.
14413
14414 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
14415
14416 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
14417
aa033560 144182004-08-28 Marco Gerards <metgerards@student.han.nl>
14419
14420 Add support for the JFS filesystem.
14421
14422 * fs/jfs.c: New file.
14423 * include/grub/fs.h (grub_jfs_init): New prototype.
14424 (grub_jfs_fini): New prototype.
14425 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
14426 (grub_emu_SOURCES): Likewise.
14427 (pkgdata_MODULES): Add jfs.mod.
14428 (jfs_mod_SOURCES): New variable.
14429 (jfs_mod_CFLAGS): Likewise.
14430 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
14431 (grubof_SOURCES): Likewise.
14432 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
14433
14434 * fs/fat.c (grub_fat_find_dir): Convert the filename little
14435 endian to the host endian.
14436 (grub_fat_utf16_to_utf8): Move function from there...
14437 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 14438 the endianness of the source string anymore.
aa033560 14439 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
14440
94bc45af 144412004-08-24 Marco Gerards <metgerards@student.han.nl>
14442
14443 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
14444 (grub_boot_fini) [GRUB_UTIL]: Likewise.
14445 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
14446 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 14447
94bc45af 14448 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
14449 (grub_hfs_iterate_dir): Make the function static. Add prototypes
14450 for `node_found' and `it_dir'.
14451 (grub_hfs_dir): Add prototype for `dir_hook'.
14452
14453 * fs/minix.c (grub_minix_get_file_block): Add prototype for
14454 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
14455 and `indir32' to silence a gcc warning.
14456
14457 * include/grub/fs.h (grub_hfs_init): New prototype.
14458 (grub_hfs_fini): Likewise.
f19dbdb7 14459
14460
97543f08 144612004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14462
14463 Each disk device has its own id now. This is useful to make use
14464 of multiple disk devices.
f19dbdb7 14465
97543f08 14466 * include/grub/disk.h (grub_disk_dev_id): New enum.
14467 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
14468 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
14469
14470 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
14471 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14472
14473 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
14474 GRUB_DISK_DEVICE_OFDISK_ID as an id.
14475
14476 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
14477 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14478
14479 * include/grub/disk.h (struct grub_disk_dev): Added a new member
14480 "id" which is used by the cache manager.
14481
14482 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
14483 of just "GRUB".
14484
64372eb4 144852004-08-18 Marco Gerards <metgerards@student.han.nl>
14486
14487 * fs/hfs.c: New file.
14488 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
14489 (grub_emu_SOURCES): Likewise.
14490 (pkgdata_MODULES): Add hfs.mod.
14491 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
14492 (grubof_SOURCES): Likewise.
14493 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
14494
14495 * include/grub/misc.h (grub_strncasecmp): Add prototype.
14496 * kern/misc.c (grub_strncasecmp): Add function.
14497
cc61b58f 144982004-08-14 Marco Gerards <metgerards@student.han.nl>
14499
14500 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
14501 with parentheses.
14502
14503 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
14504 (grub_ext2_dir): In case the directory entry type is unknown, read
14505 it from the inode.
14506
0ef123f6 145072004-08-02 Peter Bruin <pjbruin@dds.nl>
14508
14509 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
14510 grub_load_linux instead of grub_rescue_cmd_linux as second
14511 argument of grub_rescue_register_command.
14512
14513 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
14514
a447c5df 145152004-07-27 Marco Gerards <metgerards@student.han.nl>
14516
14517 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
14518 function.
14519 * commands/boot.c: Remove the check for `GRUB_UTIL'.
14520 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14521 `loader/powerpc/ieee1275/linux.c',
14522 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
14523 * include/grub/powerpc/ieee1275/ieee1275.h
14524 (grub_ieee1275_release): New prototype.
14525 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
14526 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
14527 normal, boot, linux and linux_normal.
14528 * loader/powerpc/ieee1275/linux.c: New file.
14529 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
14530
5a9e3546 145312004-07-12 Marco Gerards <metgerards@student.han.nl>
14532
14533 * normal/arg.c (grub_arg_parse): Correct error handling after
14534 reallocating the argumentlist (check if `argl' is not null instead
14535 of checking if `args' is not null).
14536 * kern/mm.c (grub_realloc): Return the same pointer when using the
14537 same region, instead of returning the header address.
14538
e15199cb 145392004-07-11 Marco Gerards <metgerards@student.han.nl>
14540
14541 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
14542 one block instead of two when looking for the initial partition.
14543 (grub_partition_probe): Initialize the local variable `p' with 0.
14544 Use base 10 for the grub_strtoul call.
14545 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
14546 need for one local variable.
14547 (grub_strtoul): Don't add the new value to `num', instead of that
14548 just assign it.
14549
020616c2 145502004-07-11 Marco Gerards <metgerards@student.han.nl>
14551
14552 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
14553 (pxeboot_img_SOURCES): New variable.
14554 (pxeboot_img_ASFLAGS): Likewise.
14555 (pxeboot_img_LDFLAGS): Likewise.
14556 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
14557 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
14558 <lode_leroy@hotmail.com>.
14559
6c51eb64 145602004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14561
14562 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
14563 there was no input.
14564
cfb12aff 145652004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14566
14567 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
14568 the history buffer logic.
14569
6eabba74 145702004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14571
14572 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
14573 (FILETYPE_INO_SYMLINK): New macros.
14574 (grub_ext2_find_file): Check if the node is a directory using the
14575 inode stat information instead of using the filetype in the
14576 dirent. Exclude the first character of an absolute symlink.
14577 (grub_ext2_dir): Mask out the filetype part of the mode member of
14578 the inode.
14579
66e19ef8 145802004-05-24 Marco Gerards <metgerards@student.han.nl>
14581
14582 Add support for UFS version 1 and 2. Add support for the minix
14583 filesystem version 1 and 2, both the variants with 14 and 30 long
14584 filenames.
f19dbdb7 14585
66e19ef8 14586 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
14587 fs/minix.c.
14588 (grub_emu_SOURCES): Likewise.
14589 (pkgdata_MODULES): Add ufs.mod and minix.mod.
14590 (ufs_mod_SOURCES): New variable.
14591 (ufs_mod_CFLAGS): Likewise.
14592 (minix_mod_SOURCES): Likewise.
14593 (minix_mod_CFLAGS): Likewise.
14594 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
14595 fs/minix.c.
14596 (grubof_SOURCES): Likewise.
14597 * fs/ufs.c: New file.
14598 * fs/minix.c: New file.
14599 * include/grub/fs.h (grub_ufs_init): New prototype.
14600 (grub_ufs_fini): Likewise.
14601 (grub_minix_init): Likewise.
14602 (grub_minix_fini): Likewise.
14603 * util/grub-emu.c (main): Initialize and deinitialize UFS and
14604 minix fs.
14605
cc2e748a 146062004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
14607
14608 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
14609 commands/ls.c, commands/terminal.c, commands/boot.c,
14610 commands/cmp.c and commands/cat.c.
14611 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
14612
14613 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
14614 "env.h"
14615
4b13b216 146162004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14617
14618 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
14619 and grub_, respectively. Because the conversion is trivial and
14620 mechanical, I omit the details here. Please refer to the CVS
14621 if you need more information.
14622
6a142551 146232004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14624
14625 * include/pupa: Renamed to ...
14626 * include/grub: ... this.
14627 * util/i386/pc/pupa-mkimage.c: Renamed to ...
14628 * util/i386/pc/grub-mkimage.c: ... this.
14629 * util/i386/pc/pupa-setup.c: Renamed to ...
14630 * util/i386/pc/grub-setup.c: ... this.
14631 * util/pupa-emu.c: Renamed to ...
14632 * util/grub-emu.c: ... this.
14633
e56cdf21 146342004-03-29 Marco Gerards <metgerards@student.han.nl>
14635
14636 Add support for the newworld apple macintosh (PPC). This has been
14637 tested on the powerbook 2000 only. It only adds support for
14638 generic ieee1275 functions, console and disk support. This should
14639 be easy to port to other architectures with support for Open
14640 Firmware.
f19dbdb7 14641
e56cdf21 14642 * configure.ac: Accept the powerpc as host_cpu. In the case of
14643 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
14644 specific tests are only executed while building for the i386.
14645 Inverse test for crosscompile.
14646 * genmk.rb (Utility): Allow assembler files.
14647 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
14648 * conf/powerpc-ieee1275.rmk: New file.
14649 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
14650 * disk/powerpc/ieee1275/partition.c: Likewise.
14651 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
14652 * include/pupa/powerpc/ieee1275/console.h: Likewise.
14653 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
14654 * include/pupa/powerpc/ieee1275/time.h: Likewise.
14655 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
14656 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
14657 * include/pupa/powerpc/ieee1275/loader.h
14658 * include/pupa/powerpc/setjmp.h: Likewise.
14659 * include/pupa/powerpc/types.h: Likewise.
14660 * kern/powerpc/ieee1275/init.c: Likewise.
14661 * kern/powerpc/ieee1275/openfw.c: Likewise.
14662 * term/powerpc/ieee1275/ofconsole.c: Likewise.
14663
14664 These files were written by Johan Rydberg
14665 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 14666
e56cdf21 14667 * boot/powerpc/ieee1275/cmain.c: New file.
14668 * boot/powerpc/ieee1275/crt0.S: Likewise.
14669 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
14670 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
14671
8c8cc205 146722004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
14673
14674 * Makefile.in: Update copyright.
14675 * genmodsrc.sh: Likewise.
14676 * gensymlist.sh: Likewise.
14677 * term/i386/pc/vga.c: Indent correctly.
14678
14679 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
14680 bugreporting address.
14681 * util/i386/pc/pupa-setup.c (usage): Likewise,
14682 (main): Call pupa_ext2_init and pupa_ext2_fini.
14683
f19dbdb7 14684 * fs/fat.c (log2): Renamed to ...
8c8cc205 14685 (fat_log2): ... this.
14686 All callers changed.
14687 * kern/misc.c (memcpy): Alias to pupa_memmove.
14688 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
14689 lvalue cast.
14690 * util/console.c (pupa_ncurses_fini): Return 0.
14691
14692 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
14693 Move fail label here.
14694 [__GNU__]: Don't warn when using stat.
14695 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
14696 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
14697 long int. Use strtol instead of strtoul.
f19dbdb7 14698
db1771cf 146992004-03-14 Marco Gerards <metgerards@student.han.nl>
14700
14701 * commands/boot.c: New file.
14702 * commands/cat.c: Likewise.
14703 * commands/cmp.c: Likewise.
14704 * commands/ls.c: Likewise.
14705 * commands/terminal.c: Likewise.
14706 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
14707 (pupa_register_command): Changed interface to match the new
14708 argument parser.
14709 (pupa_command_execute): Changed (almost rewritten) so it uses
14710 pupa_split_command. Added support for setting variables using the
14711 syntax `foo=bar'.
14712 (rescue_command): Changed to work with the new argument parser.
14713 (terminal_command): Moved from here to commands/terminal.c.
14714 (set_command): New function.
14715 (unset_command): New function.
14716 (insmod_command): New function.
14717 (rmmod_command): New function.
14718 (lsmod_command): New function.
14719 (pupa_command_init): Don't initialize the command terminal
14720 anymore. Initialize the commands set, unset, insmod, rmmod and
14721 lsmod.
14722 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
14723 (kernel_img_HEADERS): Add arg.h and env.h.
14724 (pupa_mkimage_LDFLAGS): Add kern/env.c.
14725 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
14726 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
14727 normal/arg.c.
14728 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
14729 terminal.mod.
14730 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
14731 (boot_mod_SOURCES): New variable.
14732 (terminal_mod_SOURCES): Likewise.
14733 (ls_mod_SOURCES): Likewise.
14734 (cmp_mod_SOURCES): Likewise.
14735 (cat_mod_SOURCES): Likewise.
14736
14737 * normal/arg.c: New file.
14738 * kern/env.c: Likewise.
14739 * include/pupa/arg.h: Likewise.
14740 * include/pupa/env.h: Likewise.
14741 * font/manager.c (font_command): Changed to match argument parsing
14742 interface changes.
14743 (PUPA_MOD_INIT): Likewise.
14744 * hello/hello.c (pupa_cmd_hello): Likewise.
14745 (PUPA_MOD_INIT): Likewise.
14746 * include/pupa/disk.h: Include <pupa/device.h>.
14747 (pupa_print_partinfo): New prototype.
14748 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
14749 (pupa_dl_get_prefix): Likewise.
14750 * include/pupa/misc.h: Include <pupa/err.h>.
14751 (pupa_isgraph): New prototype.
14752 (pupa_isdigit): Likewise.
14753 (pupa_split_cmdline): Likewise.
14754 * include/pupa/normal.h: Include <pupa/arg.h>.
14755 (pupa_command): Changed the prototype of the member `func' to
14756 match the argument parsing interface. Added member `options'.
14757 (pupa_register_command): Updated to match function.
14758 (pupa_arg_parse): New prototype.
14759 (pupa_hello_init) [PUPA_UTIL]: New prototype.
14760 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
14761 (pupa_ls_init) [PUPA_UTIL]: Likewise.
14762 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
14763 (pupa_cat_init) [PUPA_UTIL]: Likewise.
14764 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
14765 (pupa_boot_init) [PUPA_UTIL]: Likewise.
14766 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
14767 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
14768 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
14769 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
14770 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
14771 * kern/disk.c: Include <pupa/file.h>.
14772 (pupa_print_partinfo): New function.
14773 * kern/dl.c: Include <pupa/env.h>.
14774 (pupa_dl_dir): Variable removed.
14775 (pupa_dl_load): Use the environment variable `prefix' instead of
14776 the variable pupa_dl_dir.
14777 (pupa_dl_set_prefix): Function removed.
14778 (pupa_dl_get_prefix): Likewise.
14779 * kern/i386/pc/init.c: Include <pupa/env.h>.
14780 (pupa_machine_init): Use the environment variable `prefix' instead of
14781 using pupa_dl_set_prefix to set the prefix.
14782 * kern/main.c: Include <pupa/env.h>.
14783 (pupa_set_root_dev): Use the environment variable `prefix' instead of
14784 using pupa_dl_get_prefix to get the prefix.
14785 * kern/misc.c: Include <pupa/env.h>.
14786 (pupa_isdigit): New function.
14787 (pupa_isgraph): Likewise.
14788 (pupa_ftoa): Likewise.
14789 (pupa_vsprintf): Added support for printing values of the type
14790 `double'. Make it possible to format variable output when using
14791 formatting like `%1.2%f'.
14792 (pupa_split_cmdline): New function.
14793 * kern/rescue.c: Include <pupa/env.h>.
14794 (next_word): Removed function.
14795 (pupa_rescue_cmd_prefix): Likewise.
14796 (pupa_rescue_cmd_set): New function.
14797 (pupa_rescue_cmd_unset): New function.
14798 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
14799 split the command line instead of splitting it here. Added
14800 support for setting variables using the syntax `foo=bar'. Don't
14801 initialize the prefix command anymore. Initialized the set and
14802 unset commands.
14803 * normal/cmdline.c: Include <pupa/env.h>.
14804 (pupa_tab_complete): Added prototypes for print_simple_completion,
14805 print_partition_completion, add_completion, iterate_commands,
14806 iterate_dev, iterate_part and iterate_dir. Moved code to print
14807 partition information from here to kern/disk.c.
fe6b695a 14808 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 14809 * normal/main.c: Include <pupa/env.h>.
14810 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
14811 instead of using pupa_dl_get_prefix to get the prefix.
14812 * term/i386/pc/vga.c: Include <pupa/arg.h>.
14813 (check_vga_mem): Cast pointers to `void *' to silence a gcc
14814 warning.
14815 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
14816 (pupa_vga_setcolor): Declare unused variables with `__attribute__
14817 ((unused))' to silence a gcc warning.
14818 (pupa_vga_setcolor): Likewise.
14819 (debug_command): Changed to match argument parsing
14820 interface changes.
14821 * util/pupa-emu.c: Include <pupa/env.h>.
14822 (options): Added 0's for unused fields to silence a gcc warning.
14823 (argp): Likewise.
14824 (main): Use the environment variable `prefix' instead of using
14825 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
14826 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
14827 and terminal.
14828
14829 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
14830 * util/misc.c: Include <malloc.h>.
14831 (pupa_malloc): Rewritten so errors are correctly reported.
14832 (pupa_realloc): Likewise.
14833 (pupa_memalign): Likewise.
14834 (pupa_mm_init_region): Declare unused variables with
14835 `__attribute__ ((unused))' to silence a gcc warning.
14836 * normal/i386/setjmp.S: Remove tab at the end of the file to
14837 silence a gcc warning.
14838 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
14839 variables with `__attribute__ ((unused))' to silence a gcc
14840 warning.
14841 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
14842 local variable i unsigned to silence a gcc warning.
14843
14844 * kern/term.c: Include <pupa/misc.h>.
14845 (pupa_more_lines): New variable.
14846 (pupa_more): Likewise.
14847 (pupa_putcode): When the pager is active pause at the end of every
14848 screen.
14849 (pupa_set_more): New function.
14850 * include/pupa/term.h (pupa_set_more): New prototype.
14851
14852
3b1139cb 148532004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
14854
14855 Now this project is GRUB 2 rather than PUPA. The location of
14856 the CVS repository was moved to GRUB's.
f19dbdb7 14857
3b1139cb 14858 * configure.ac: Use bug-grub as the reporting address.
14859 Use GRUB instead of PUPA.
14860 Change the version number to 1.90.
14861
8367695c 148622004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
14863
14864 * genkernsyms.sh: Updated copyright information.
14865 * genmk.rb: Likewise.
14866 * genmodsrc.sh: Likewise.
14867 * gensymlist.sh: Likewise.
14868 * boot/i386/pc/boot.S: Likewise.
14869 * boot/i386/pc/diskboot.S: Likewise.
14870 * disk/i386/pc/biosdisk.c: Likewise.
14871 * disk/i386/pc/partition.c: Likewise.
14872 * font/manager.c: Likewise.
14873 * fs/ext2.c: Likewise.
14874 * fs/fat.c: Likewise.
14875 * include/pupa/boot.h: Likewise.
14876 * include/pupa/device.h: Likewise.
14877 * include/pupa/disk.h: Likewise.
14878 * include/pupa/dl.h: Likewise.
14879 * include/pupa/elf.h: Likewise.
14880 * include/pupa/err.h: Likewise.
14881 * include/pupa/file.h: Likewise.
14882 * include/pupa/font.h: Likewise.
14883 * include/pupa/fs.h: Likewise.
14884 * include/pupa/kernel.h: Likewise.
14885 * include/pupa/loader.h: Likewise.
14886 * include/pupa/misc.h: Likewise.
14887 * include/pupa/mm.h: Likewise.
14888 * include/pupa/net.h: Likewise.
14889 * include/pupa/normal.h: Likewise.
14890 * include/pupa/rescue.h: Likewise.
14891 * include/pupa/setjmp.h: Likewise.
14892 * include/pupa/symbol.h: Likewise.
14893 * include/pupa/term.h: Likewise.
14894 * include/pupa/types.h: Likewise.
14895 * include/pupa/i386/setjmp.h: Likewise.
14896 * include/pupa/i386/types.h: Likewise.
14897 * include/pupa/i386/pc/biosdisk.h: Likewise.
14898 * include/pupa/i386/pc/boot.h: Likewise.
14899 * include/pupa/i386/pc/console.h: Likewise.
14900 * include/pupa/i386/pc/init.h: Likewise.
14901 * include/pupa/i386/pc/kernel.h: Likewise.
14902 * include/pupa/i386/pc/linux.h: Likewise.
14903 * include/pupa/i386/pc/loader.h: Likewise.
14904 * include/pupa/i386/pc/memory.h: Likewise.
14905 * include/pupa/i386/pc/multiboot.h: Likewise.
14906 * include/pupa/i386/pc/partition.h: Likewise.
14907 * include/pupa/i386/pc/time.h: Likewise.
14908 * include/pupa/i386/pc/vga.h: Likewise.
14909 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
14910 * include/pupa/util/getroot.h: Likewise.
14911 * include/pupa/util/misc.h: Likewise.
14912 * include/pupa/util/resolve.h: Likewise.
14913 * kern/device.c: Likewise.
14914 * kern/disk.c: Likewise.
14915 * kern/dl.c: Likewise.
14916 * kern/err.c: Likewise.
14917 * kern/file.c: Likewise.
14918 * kern/fs.c: Likewise.
14919 * kern/loader.c: Likewise.
14920 * kern/main.c: Likewise.
14921 * kern/misc.c: Likewise.
14922 * kern/mm.c: Likewise.
14923 * kern/rescue.c: Likewise.
14924 * kern/term.c: Likewise.
14925 * kern/i386/dl.c: Likewise.
14926 * kern/i386/pc/init.c: Likewise.
14927 * kern/i386/pc/lzo1x.S: Likewise.
14928 * kern/i386/pc/startup.S: Likewise.
14929 * loader/i386/pc/chainloader.c: Likewise.
14930 * loader/i386/pc/linux.c: Likewise.
14931 * loader/i386/pc/multiboot.c: Likewise.
14932 * normal/cmdline.c: Likewise.
14933 * normal/command.c: Likewise.
14934 * normal/main.c: Likewise.
14935 * normal/menu.c: Likewise.
14936 * normal/i386/setjmp.S: Likewise.
14937 * term/i386/pc/console.c: Likewise.
14938 * term/i386/pc/vga.c: Likewise.
14939 * util/console.c: Likewise.
14940 * util/genmoddep.c: Likewise.
14941 * util/misc.c: Likewise.
14942 * util/pupa-emu.c: Likewise.
14943 * util/resolve.c: Likewise.
14944 * util/unifont2pff.rb: Likewise.
14945 * util/i386/pc/biosdisk.c: Likewise.
14946 * util/i386/pc/getroot.c: Likewise.
14947 * util/i386/pc/pupa-mkimage.c: Likewise.
14948 * util/i386/pc/pupa-setup.c: Likewise.
14949
e6eced71 149502004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
14951
14952 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
14953 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
14954 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
14955 reading and reset it after reading.
14956 (pupa_ext2_close): Return PUPA_ERR_NONE.
14957
14958 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
14959 Correct value.
14960 (struct linux_kernel_header): Add kernel_version and
14961 initrd_addr_max.
14962 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
14963 pupa_file_read succeeds.
14964 (pupa_rescue_cmd_initrd): Implement.
14965
5aded270 149662003-12-03 Marco Gerards <metgerards@student.han.nl>
14967
14968 * fs/ext2.c (pupa_ext2_label): New function.
14969 (pupa_ext2_fs): Added label.
14970 * fs/fat.c (pupa_fat_label): New function.
14971 (pupa_fat_fs): Added label.
14972 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
14973
14974 * kern/misc.c (pupa_strndup): New function.
14975 * include/pupa/misc.h (pupa_strndup): New prototype.
14976
14977 * include/pupa/normal.h: Include <pupa/err.h>.
14978 (pupa_set_history): New prototype.
14979 (pupa_iterate_commands): New prototype.
14980 * normal/cmdline.c: Include <pupa/machine/partition.h>,
14981 <pupa/disk.h>, <pupa/file.h>.
14982 (hist_size): New variable.
14983 (hist_lines): Likewise.
14984 (hist_end): Likewise.
14985 (hist_used): Likewise.
14986 (pupa_set_history): New function.
14987 (pupa_history_get): Likewise.
14988 (pupa_history_add): Likewise.
14989 (pupa_history_replace): Likewise.
14990 (pupa_tab_complete): Likewise.
14991 (pupa_cmdline_run): Added tab completion and history buffer. Tab
14992 completion shows partitionnames while completing partitions, this
14993 feature was suggested by Jeff Bailey.
14994 * normal/command.c (pupa_iterate_commands): New function.
14995 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
14996 (pupa_normal_init): Initialize history buffer.
14997 (PUPA_MOD_INIT): Likewise.
14998 (pupa_normal_fini): Free the history buffer.
14999 (PUPA_MOD_FINI): Likewise.
15000
15001 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
15002 key.
15003
15004 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
15005 * configure.ac [i386]: Check for regparam bug.
15006 (NESTED_FUNC_ATTR) [! i386]: Defined.
15007
1f7315a3 150082003-11-17 Marco Gerards <metgerards@student.han.nl>
15009
15010 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
15011 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
15012 (pupa_emu_SOURCES): New variable.
15013 (pupa_emu_LDFLAGS): Likewise.
15014 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
15015 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
15016 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
15017 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
15018 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
15019 (pupa_jmp_buf): New typedef.
15020 (pupa_setjmp) [PUPA_UTIL]: New macro.
15021 (pupa_longjmp) [PUPA_UTIL]: Likewise.
15022 * include/pupa/term.h (struct pupa_term): New member `refresh'.
15023 (pupa_refresh): New prototype.
15024 * include/pupa/util/getroot.h: New file.
15025 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
15026 it.
15027 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
15028 (pupa_rescue_cmd_cat): Likewise.
15029 (pupa_rescue_cmd_ls): Likewise.
15030 (pupa_rescue_cmd_testload): Likewise.
15031 (pupa_rescue_cmd_lsmod): Likewise.
15032 * normal/cmdline.c (pupa_cmdline_get): Likewise.
15033 * normal/menu.c (run_menu): Likewise.
15034 * kern/term.c (pupa_cls): Likewise.
15035 (pupa_refresh): New function.
15036 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
15037 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
15038 * util/console.c: New file.
f19dbdb7 15039
1f7315a3 15040 * util/i386/pc/getroot.c: New file.
15041 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
15042 (pupa_putchar): New function.
15043 (pupa_refresh): Likewise.
15044 (xgetcwd): Function moved to ...
15045 (strip_extra_slashes): Likewise.
15046 (get_prefix): Likewise.
f19dbdb7 15047 * util/i386/pc/getroot.c: ... here.
1f7315a3 15048 (find_root_device): Function moved and renamed to...
15049 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
15050 Changed all callers.
15051 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
15052 and renamed to...
15053 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
15054 Changed all callers.
15055 * util/misc.c (pupa_memalign): New function.
15056 (pupa_mm_init_region): Likewise.
15057 (pupa_register_exported_symbols): Likewise.
15058 (pupa_putchar): Function removed.
15059 * util/pupa-emu.c: New file.
15060
9a5c1ade 150612003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
15062
15063 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
15064 (_multiboot_mod_SOURCES): New variable.
15065 (_multiboot_mod_CFLAGS): Likewise.
15066 * loader/i386/pc/multiboot.c: New file.
15067 * include/pupa/i386/pc/multiboot.h: Likewise.
15068 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
15069 (pupa_multiboot_real_boot): New function.
15070 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
15071 (pupa_multiboot_real_boot): New prototype.
15072 (pupa_rescue_cmd_multiboot): Likewise
15073 (pupa_rescue_cmd_module): Likewise.
15074
15075 * kern/loader.c (pupa_loader_set): Continue when
15076 pupa_loader_unload_func() fails.
15077 (pupa_loader_unset): New function.
15078 * include/pupa/loader.h (pupa_loader_unset): New prototype.
15079
15080 * kern/misc.c (pupa_stpcpy): New function.
15081 * include/pupa/misc.h (pupa_stpcpy): New prototype.
15082
8e72a9c0 150832003-11-12 Marco Gerards <metgerards@student.han.nl>
15084
15085 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
15086 for available extensions.
15087
15088 * include/pupa/i386/pc/time.h: New file.
15089 * kern/disk.c: Include <pupa/machine/time.h>.
15090 (PUPA_CACHE_TIMEOUT): New macro.
15091 (pupa_last_time): New variable.
15092 (pupa_disk_open): Flush the cache when there was a timeout.
15093 (pupa_disk_close): Reset the timer.
15094 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
15095 pupa_currticks.
15096 * util/misc.c: Include <sys/times.h>
15097 (pupa_get_rtc): New function.
15098
c4adbd32 150992003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
15100
15101 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
15102 as blocks.
15103 (pupa_ext2_get_file_block): Use blocks member.
15104
15105 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
15106 first block. Return -1 instead of pupa_errno on error.
15107
bfd30f06 151082003-10-27 Marco Gerards <metgerards@student.han.nl>
15109
15110 * README: In the pupa-mkimage example use _chain instead of chain
15111 and ext2 instead of fat.
15112 * TODO: Replace ext2fs with jfs as an example. Add an item for
15113 adding journal playback for ext2fs.
15114 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
15115 (pkgdata_MODULES): Added ext2.mod.
15116 (ext2_mod_SOURCES): New variable.
15117 (ext2_mod_CFLAGS): Likewise.
15118 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
15119 * include/pupa/misc.h (pupa_strncpy): New prototype.
15120 (pupa_strcat): Likewise.
15121 (pupa_strncmp): Likewise.
15122 * kern/misc.c (pupa_strcat): Enable function.
15123 (pupa_strncpy): New function.
15124 (pupa_strncmp): Likewise.
15125 * fs/ext2.c: New file.
f19dbdb7 15126
bfd30f06 15127 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
15128 when the read failed before retrying.
15129 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
15130 (_FILE_OFFSET_BITS): Likewise.
15131 * configure.ac: Added AC_SYS_LARGEFILE.
15132
98d15063 151332003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15134
15135 * genmk.rb (PModule#rule): Make sure to get only symbol names
15136 from the output of nm.
15137 Reported by Robert Millan <zeratul2@wanadoo.es>.
15138
18d9c7cd 151392003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15140
15141 I forgot to check in these changes for a long time. This adds
15142 incomplete support for VGA console, and this is still very
15143 buggy. Also, a lot of consideration is required for I18N,
15144 UNICODE, and VGA font issues. Therefore, assume that this is
15145 such that "better than nothing".
f19dbdb7 15146
18d9c7cd 15147 * font/manager.c: New file.
15148 * include/pupa/font.h: Likewise.
15149 * include/pupa/i386/pc/vga.h: Likewise.
15150 * term/i386/pc/vga.c: Likewise.
15151 * util/unifont2pff.rb: Likewise.
15152
15153 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
15154 (pkgdata_MODULES): Added vga.mod and font.mod.
15155 (vga_mod_SOURCES): New variables.
15156 (vga_mod_CFLAGS): Likewise.
15157 (font_mod_SOURCES): Likewise.
15158 (font_mod_CFLAGS): Likewise.
15159
15160 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
15161
15162 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 15163 (struct pupa_term): Added init and fini.
18d9c7cd 15164 Changed the argument of putchar to pupa_uint32_t.
15165
15166 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
15167 (pupa_console_real_putchar): New prototype.
15168 (pupa_console_putchar): Removed.
15169 (pupa_console_checkkey): Exported.
15170 (pupa_console_getkey): Likewise.
15171
15172 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
15173 characters.
15174
15175 * kern/term.c (pupa_term_set_current): Rewritten.
15176 (pupa_putchar): Likewise.
15177 (pupa_putcode): New function.
15178
15179 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
15180 (pupa_console_real_putchar): ... this.
15181 (pupa_vga_set_mode): New function.
15182 (pupa_vga_get_font): Likewise.
15183
15184 * normal/command.c: Include pupa/term.h.
15185 (terminal_command): New function.
15186 (pupa_command_init): Register the command "terminal".
15187
15188 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
15189 (DISP_UP): Likewise.
15190 (DISP_RIGHT): Likewise.
15191 (DISP_DOWN): Likewise.
15192 (DISP_HLINE): Likewise.
15193 (DISP_VLINE): Likewise.
15194 (DISP_UL): Likewise.
15195 (DISP_UR): Likewise.
15196 (DISP_LL): Likewise.
15197 (DISP_LR): Likewise.
15198
15199 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 15200
977329f5 152012003-02-08 NIIBE Yutaka <gniibe@m17n.org>
15202
15203 * util/resolve.c (pupa_util_resolve_dependencies): BUG
15204 FIX. Reverse the path_list.
15205
15206 * include/pupa/normal.h: Export pupa_register_command and
15207 pupa_unregister_command.
15208
15209 * hello/hello.c (pupa_cmd_hello): New module.
15210 * conf/i386-pc.rmk: Added hello.mod.
15211
1f5ab428 152122003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
15213
15214 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 15215
1f5ab428 15216 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
15217 (compress_kernel): New variable.
15218 (generate_image): Heavily modified to support compressing a
15219 large part of the core image.
15220
15221 * util/misc.c (pupa_util_read_image): Fix a file descriptor
15222 leak.
15223 (pupa_util_load_image): New function.
15224
15225 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
15226 (pupa_compressed_size): New variable.
15227 (codestart): Enable Gate A20 here.
15228 Decompress the compressed part of the core image.
15229 Rearrange the code to put functions and variables which are
15230 required for initialization in the non-compressed part.
15231 Include lzo1x.S.
15232
15233 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
15234 here.
15235
15236 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
15237
f19dbdb7 15238 * include/pupa/i386/pc/kernel.h
1f5ab428 15239 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
15240 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
15241 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15242 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15243 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
15244
15245 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
15246
15247 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
15248 (Utility#rule): Likewise.
15249
15250 * configure.ac: Check if LZO is available.
15251
ce5bf700 152522003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
15253
15254 * include/pupa/normal.h: New file.
15255 * include/pupa/setjmp.h: Likewise.
15256 * include/pupa/i386/setjmp.h: Likewise.
15257 * normal/cmdline.c: Likewise.
15258 * normal/command.c: Likewise.
15259 * normal/main.c: Likewise.
15260 * normal/menu.c: Likewise.
15261 * normal/i386/setjmp.S: Likewise.
f19dbdb7 15262
ce5bf700 15263 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
15264 (pupa_rescue_cmd_initrd): Likewise.
15265
15266 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
15267 Likewise.
15268
15269 * kern/i386/pc/startup.S (translation_table): New variable.
15270 (translate_keycode): New function.
15271 (pupa_console_getkey): Call translate_keycode.
15272
15273 * kern/rescue.c (attempt_normal_mode): New function.
15274 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
15275 it failed, print a message.
15276
15277 * kern/mm.c (pupa_real_malloc): Print more information when a
15278 free magic is broken.
15279 (pupa_free): If the first free header is not free actually, set
15280 it to P.
15281
15282 * kern/main.c (pupa_load_normal_mode): Just load the module
15283 "normal".
15284 (pupa_main): Don't print the message
15285 "Entering into rescue mode..." here.
15286
15287 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
15288 Declared.
15289 (pupa_rescue_cmd_initrd): Likewise.
15290 (pupa_rescue_cmd_initrd): Likewise.
15291
15292 * include/pupa/symbol.h (FUNCTION): Specify the type.
15293 (VARIABLE): Likewise.
15294
15295 * include/pupa/err.h (pupa_err_t): Added
15296 PUPA_ERR_UNKNOWN_COMMAND.
15297
15298 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
15299 (pupa_dl_get_prefix): Likewise.
15300
15301 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
15302 Added _chain.mod and _linux.mod instead of chain.mod and
15303 linux.mod.
15304 (chain_mod_SOURCES): Renamed to ...
15305 (_chain_mod_SOURCES): ... this.
15306 (chain_mod_CFLAGS): Renamed to ...
15307 (_chain_mod_CFLAGS): ... this.
15308 (linux_mod_SOURCES): Renamed to ...
15309 (_linux_mod_SOURCES): ... this.
15310 (linux_mod_CFLAGS): Renamed to ...
15311 (_linux_mod_CFLAGS): ... this.
15312 (normal_mod_SOURCES): New variable.
15313 (normal_mod_CFLAGS): Likewise.
15314 (normal_mod_ASFLAGS): Likewise.
15315
153162003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
15317
15318 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
15319 possible.
15320
fe6b695a 15321 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 15322 recursively.
15323 (pupa_dl_unref): Unrefer depending modules recursively.
15324 Don't call pupa_dl_unload implicitly, because PUPA can crash if
15325 a module is unloaded before one depending on that module is
15326 unloaded.
15327 (pupa_dl_unload): Unload depending modules explicitly,
15328 if possible.
15329
c04da074 153302003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
15331
15332 * include/pupa/i386/pc/linux.h: New file.
15333 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 15334
c04da074 15335 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
15336 Removed.
15337 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
15338 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
15339 of PUPA_CHAINLOADER_BOOT_SECTOR.
15340
15341 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
15342 (pupa_linux_prot_size): New variable.
15343 (pupa_linux_tmp_addr): Likewise.
15344 (pupa_linux_real_addr): Likewise.
15345 (pupa_linux_boot_zimage): New function.
15346 (pupa_linux_boot_bzimage): Likewise.
15347
15348 * kern/i386/pc/init.c (struct mem_region): New structure.
15349 (MAX_REGIONS): New macro.
15350 (mem_regions): New variable.
15351 (num_regions): Likewise.
15352 (pupa_os_area_addr): Likewise.
15353 (pupa_os_area_size): Likewise.
15354 (pupa_lower_mem): Likewise.
15355 (pupa_upper_mem): Likewise.
15356 (add_mem_region): New function.
15357 (compact_mem_regions): Likewise.
15358 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
15359 the size of the conventional memory and that of so-called upper
15360 memory (before the first memory hole).
15361 Instead of adding each found region to free memory, use
15362 add_mem_region and add them after removing overlaps.
15363 Also, add only 1/4 of the upper memory to free memory. The rest
15364 is used for loading OS images. Maybe this is ad hoc, but this
15365 makes it much easier to relocate OS images when booting.
15366
15367 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
15368 (pupa_enter_rescue_mode): Don't register initrd and module.
15369
15370 * kern/mm.c: Include pupa/dl.h.
15371
15372 * kern/main.c: Include pupa/file.h and pupa/device.h.
15373
15374 * kern/loader.c (pupa_loader_load_module_func): Removed.
15375 (pupa_loader_load_module): Likewise.
15376
15377 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
15378 ``.o''.
15379
15380 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
15381 (pupa_linux_tmp_addr): Likewise.
15382 (pupa_linux_real_addr): Likewise.
15383 (pupa_linux_boot_zimage): Likewise.
15384 (pupa_linux_boot_bzimage): Likewise.
15385
15386 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
15387 (pupa_upper_mem): Likewise.
15388 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
15389 module is too dangerous.
15390
15391 * include/pupa/loader.h (pupa_os_area_addr): Declared.
15392 (pupa_os_area_size): Likewise.
15393 (pupa_loader_set): Remove the first argument. Loader doesn't
15394 manage modules or initrd any longer.
15395 (pupa_loader_load_module): Removed.
15396
15397 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
15398 (linux_mod_SOURCES): New variable.
15399 (linux_mod_CFLAGS): Likewise.
15400
a13f9237 154012003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
15402
15403 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
15404 the length of a blocklist correctly.
15405
15406 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
15407 Use ioctl only if the OS file is a block device.
15408 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
15409 not very useful for normal files.
15410
15411 * kern/main.c (pupa_set_root_dev): New function.
15412 (pupa_load_normal_mode): Likewise.
15413 (pupa_main): Call those above.
15414
15415 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
15416 pupa_uint16_t.
15417
15418 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
15419
a5ffe966 154202003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
15421
15422 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
15423 (setup): Configure the installed partition information and the
15424 dl prefix.
15425
15426 * loader/i386/pc/chainloader.c (my_mod): New variable.
15427 (pupa_chainloader_unload): New function.
15428 (pupa_rescue_cmd_chainloader): Refer itself.
15429 (PUPA_MOD_INIT): Save its own module in MY_MOD.
15430
15431 * kern/i386/pc/startup.S (install_partition): Removed.
15432 (version_string): Likewise.
15433 (config_file): Likewise.
15434 (pupa_install_dos_part): New variable.
15435 (pupa_install_bsd_part): Likewise.
15436 (pupa_prefix): Likewise.
15437 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
15438
15439 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
15440 and pupa/misc.h.
15441 (make_install_device): New function.
15442 (pupa_machine_init): Set the dl prefix.
15443
15444 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
15445 (buf): Renamed to ...
15446 (linebuf): ... this.
15447 (pupa_rescue_cmd_prefix): New function.
15448 (pupa_rescue_cmd_insmod): Likewise.
15449 (pupa_rescue_cmd_rmmod): Likewise.
15450 (pupa_rescue_cmd_lsmod): Likewise.
15451 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
15452 rmmod and lsmod.
15453
15454 * kern/mm.c (pupa_memalign): If failed even after invalidating
15455 disk caches, unload unneeded modules and retry.
15456
15457 * kern/misc.c (pupa_memmove): New function.
15458 (pupa_memcpy): Removed.
15459 (pupa_strcpy): New function.
15460 (pupa_itoa): Made static.
15461
15462 * kern/dl.c (pupa_dl_iterate): New function.
15463 (pupa_dl_ref): Likewise.
15464 (pupa_dl_unref): Likewise.
15465 (pupa_dl_unload): Return if succeeded or not.
15466 (pupa_dl_unload_unneeded): New function.
15467 (pupa_dl_unload_all): Likewise.
15468 (pupa_dl_init): Renamed to ...
15469 (pupa_dl_set_prefix): ... this.
15470 (pupa_dl_get_prefix): New function.
15471
15472 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
15473 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
15474 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15475 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15476 (pupa_install_dos_part): Declared.
15477 (pupa_install_bsd_part): Likewise.
15478 (pupa_prefix): Likewise.
15479 (pupa_boot_drive): Likewise.
15480
15481 * include/pupa/types.h: Fix a typo.
15482
15483 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
15484 pupa_memmove.
15485 (pupa_memmove): Declared.
15486 (pupa_strcpy): Likewise.
15487
15488 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
15489 pupa_mod_init takes one argument, its own module.
15490 (pupa_dl_unload_unneeded): Declared.
15491 (pupa_dl_unload_all): Likewise.
15492 (pupa_dl_ref): Likewise.
15493 (pupa_dl_unref): Likewise.
15494 (pupa_dl_iterate): Likewise.
15495 (pupa_dl_init): Renamed to ...
15496 (pupa_dl_set_prefix): ... this.
15497 (pupa_dl_get_prefix): Declared.
15498
15499 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 15500 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 15501 unloaded.
15502 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
15503 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
15504
15505 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
15506 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
15507
012d7999 155082003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15509
15510 * util/i386/pc/pupa-setup.c (setup): Define the internal
15511 function find_first_partition_start at the top level, because GCC
15512 3.0.x cannot compile internal functions in deeper scopes
15513 correctly.
15514 (find_root_device): Use lstat instead of stat.
15515 Don't follow symbolic links.
15516 Fix the path-constructing code.
15517
15518 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
15519 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
15520 by a BLKGETSIZE ioctl first, because block devices don't fill
15521 the member st_mode of the structure stat on Linux.
15522 [__linux__] (linux_find_partition): Use a temporary buffer
15523 REAL_DEV for the working space. Copy it to DEV before returning.
15524 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
15525 buffer cache consistent.
15526 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
15527 strncmp. The previous value was merely wrong.
15528 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
15529
15530 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
15531 FAT size is 12. The previous value was merely wrong.
15532
15533 * kern/main.c (pupa_main): Don't split the starting message from
15534 newlines.
15535
15536 * kern/term.c (pupa_putchar): Put CR after LF instead of before
15537 LF, because BIOS goes crazy about character attributes in this
15538 case.
15539
1cc73a62 155402003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15541
15542 * include/i386/pc/util/biosdisk.h: New file.
15543 * util/i386/pc/biosdisk.c: Likewise.
15544 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 15545
1cc73a62 15546 * Makefile.in (INCLUDE_DISTFILES): Added
15547 include/pupa/i386/pc/util/biosdisk.h.
15548 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
15549 directory util/i386/pc.
15550 (install-local): Added a rule for sbin_UTILITIES.
15551 (uninstall): Likewise.
15552
15553 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
15554
15555 * util/misc.c (xrealloc): New function.
15556 (pupa_malloc): Likewise.
15557 (pupa_free): Likewise.
15558 (pupa_realloc): Likewise.
15559 (pupa_stop): Likewise.
15560 (pupa_putchar): Likewise.
15561
15562 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
15563
15564 * include/pupa/util/misc.h (xrealloc): Declared.
15565
15566 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
15567 macro.
15568 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
15569 (PUPA_BOOT_MACHINE_BPB_END): ... this.
15570
15571 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
15572 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15573
15574 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
15575 way should be implemented.
15576 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15577
15578 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
15579 the size of NAME for safety.
15580 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
15581 0x88.
15582
15583 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
15584 (pupa_setup_SOURCES): Likewise.
15585
15586 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
15587
08b70fe8 155882002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15589
15590 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
15591 bunch of pushl's from pusha, because this destroys the return
15592 value.
15593
62ddcc8f 155942002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15595
15596 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
15597 This means that any missing prototypes could be fatal. Also, you
15598 must take care when writing assembly code. See the comments at
15599 the beginning of startup.S, for more details.
f19dbdb7 15600
62ddcc8f 15601 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
15602 compilation mechanism.
15603 (pupa_chainloader_real_boot): Likewise.
15604 (pupa_biosdisk_rw_int13_extensions): Likewise.
15605 (pupa_biosdisk_rw_standard): Likewise.
15606 (pupa_biosdisk_check_int13_extensions): Likewise.
15607 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
15608 (pupa_biosdisk_get_diskinfo_standard): Likewise.
15609 (pupa_get_memsize): Likewise.
15610 (pupa_get_mmap_entry): Likewise.
15611 (pupa_console_putchar): Likewise.
15612 (pupa_console_setcursor): Likewise.
15613 (pupa_getrtsecs): Use pushl instead of push.
15614
15615 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
15616 memory instead of the stack for a mmap entry, because some
15617 BIOSes may ignore the maximum size and overflow.
15618
15619 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
15620
15621 * genmk.rb (PModule#rule): Compile automatically generated
15622 sources with module-specific CFLAGS as well as other sources.
15623
9962ed99 156242002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15625
15626 * configure.ac: Check ld.
15627 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
15628 respectively, before checking endianness and sizes.
15629
15630 * Makefile.in (LD): New variable.
f19dbdb7 15631
abdfc3c5 156322002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15633
15634 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
15635
6a161fa9 156362002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15637
15638 * Changelog: New file.
15639