]> git.proxmox.com Git - grub2.git/blame - ChangeLog
* loader/sparc64/ieee1275/linux.c: Include grub/command.h
[grub2.git] / ChangeLog
CommitLineData
0552ff9f 12009-04-19 David S. Miller <davem@davemloft.net>
2
3 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
4 (grub_rescue_cmd_linux): Rename to...
5 (grub_cmd_linux): and fix prototype.
6 (grub_rescue_cmd_initrd): Rename to...
7 (grub_cmd_initrd): and fix prototype.
8 (cmd_linux, cmd_initrd): New.
9 (GRUB_MOD_INIT(linux)): Use grub_register_command().
10 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
11
d1a282fc 122009-04-17 Pavel Roskin <proski@gnu.org>
13
07c5039f 14 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
15 format.
16 (grub_ohci_transfer): Likewise.
17
b012002d 18 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
19
1bc09c35 20 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
21 return without a value. Fix inconsistent indentation.
22
e0ff9126 23 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
24 match struct grub_fs.
25
d1a282fc 26 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
27 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
28 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
29 * commands/lspci.c (grub_lspci_iter): Likewise.
30
a96df3f2 312009-04-16 Bean <bean123ch@gmail.com>
32
33 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
34 value.
35
41bb0fe9 362009-04-15 Pavel Roskin <proski@gnu.org>
37
38 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
39 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
40 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
41 definitions.
42
596c6970 432009-04-15 Felix Zielcke <fzielcke@z-51.de>
44
45 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
46 that no multiple data or metadata areas are supported and `Unknown
47 metadata header'.
48
0d5d5653 492009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
50
51 Move loader out of the kernel
52
53 * kern/loader.c: moved to ...
54 * commands/boot.c: ... moved here
55 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
56 * commands/boot.c (grub_cmd_boot): moved here. All users updated
57 * include/grub/kernel.h (grub_machine_fini): export
58 * include/grub/loader.h (grub_loader_is_loaded): update declaration
59 (grub_loader_set): likewise
60 (grub_loader_unset): likewise
61 (grub_loader_boot): likewise
62 * conf/common.rmk: new module boot.mod
63 (pkglib_MODULES): add boot.mod
64 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
65 (grub_emu_SOURCES): likewise
66 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
67 (grub_emu_SOURCES): likewise
68 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
69 (grub_emu_SOURCES): likewise
70 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
71 (grub_emu_SOURCES): likewise
72 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
73 (grub_emu_SOURCES): likewise
74 * conf/sparcs64-ieee1275.rmk (kernel_elf_SOURCES): likewise
75 (grub_emu_SOURCES): likewise
76 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
77 (grub_emu_SOURCES): likewise
78
5999d619 792009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
80
81 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
82
83 * kern/misc.c (grub_itoa): Removed function
84 (grub_ltoa): likewise
85 (grub_vsprintf): use grub_lltoa
86
13c00781 872009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
88
89 Restore grub-emu
90
91 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
92 * conf/i386-coreboot.rmk: likewise
93 * conf/i386-ieee1275.rmk: likewise
94 * conf/powerpc-ieee1275.rmk: likewise
95
20318222 962009-04-15 Felix Zielcke <fzielcke@z-51.de>
97
98 * INSTALL: Add that `./autogen.sh' needs to be run before
99 `./configure.'.
100
d05f0df3 1012009-04-14 Bean <bean123ch@gmail.com>
102
103 * Makefile.in (pkglib_DATA): Add handler.lst.
104 (handler.lst): New rule.
105
106 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
107 * conf/i386-coreboot.rmk: Likewise.
108 * conf/i386-ieee1275.rmk: Likewise.
109 * conf/i386-efi.rmk: Likewise.
110 * conf/x86_64-efi.rmk: Likewise.
111 * conf/powerpc-ieee1275.rmk: Likewise.
112 * conf/sparc64-ieee1275.rmk: Likewise.
113
114 * genhandlerlist.sh: New file.
115
116 * genmk.rb: Add rules to generate handler.lst.
117
118 * include/grub/normal.h (grub_file_getline): New function definition.
119 (read_handler_list): Likewise.
120 (free_handler_list): Likewise.
121
122 * include/grub/term.h (grub_term_register_input): Add name parameter
123 for auto generation of handler.lst.
124 (grub_term_register_output): Likewise.
125
126 * normal/handler.c: New file.
127
128 * normal/main.c (get_line): Renamed to grub_file_getline.
129 (read_config_file): Use the newly renamed grub_file_getline.
130 (read_command_list): Likewise.
131 (read_fs_list): Likewise.
132 (grub_normal_execute): Call read_handler_list to parse handler.lst.
133 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
134
135 * term/efi/console.c (grub_console_init): Add name parameter for auto
136 generation of handler.lst.
137 * term/gfxterm.c: Likewise.
138 * term/i386/pc/at_keyboard.c: Likewise.
139 * term/i386/pc/console.c: Likewise.
140 * term/i386/pc/serial.c: Likewise.
141 * term/i386/pc/vesafb.c: Likewise.
142 * term/i386/pc/vga.c: Likewise.
143 * term/i386/pc/vga_text.c: Likewise.
144 * term/ieee1275/ofconsole.c: Likewise.
145 * term/usb_keyboard.c: Likewise.
146
33c846be 1472009-04-14 Bean <bean123ch@gmail.com>
148
149 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
150 properly with null character.
151
4484e01e 1522009-04-14 Felix Zielcke <fzielcke@z-51.de>
153
154 * configure: Remove.
155 * config.h.in: Likewise.
f93d668e 156 * stamp-h.in: Likewise.
4484e01e 157 * DISTLIST: Likewise.
158 * conf/common.mk: Likewise.
159 * conf/i386-coreboot.mk: Likewise.
160 * conf/i386-efi.mk: Likewise.
161 * conf/i386-ieee1275.mk: Likewise.
162 * conf/i386.mk: Likewise.
163 * conf/i386-pc.mk: Likewise.
164 * conf/powerpc-ieee1275.mk: Likewise.
165 * conf/sparc64-ieee1275.mk: Likewise.
166 * conf/x86_64-efi.mk: Likewise.
167
168 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
169 develop on GRUB.
170
5c5bf96a 1712009-04-14 John Stanley <jpsinthemix@verizon.net>
172 David S. Miller <davem@davemloft.net>
173
174 * util/hostdisk.c (make_device_name): Fix buffer length
175 calculations.
176
e25b5a8c 1772009-04-14 Felix Zielcke <fzielcke@z-51.de>
178
179 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
180 <sys/param.h> and <sys/sysctl.h>.
181 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
182 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
183 opening the device and reset them afterwards.
184
1f1f580c 1852009-04-13 Pavel Roskin <proski@gnu.org>
186
187 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
188 Reported by John Stanley <jpsinthemix@verizon.net>
189
7ebc2d6b 1902009-04-13 Robert Millan <rmh@aybabtu.com>
191
192 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
193 that name for menuentries when appropiate.
194
d8ba3667 1952009-04-13 Felix Zielcke <fzielcke@z-51.de>
196
197 * util/grub.d/10_freebsd.in: Add a missing `fi'.
198
cba416eb 1992009-04-13 Robert Millan <rmh@aybabtu.com>
200
201 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
202 to Linux, simply abort telling the user it's no longer supported.
203
a547a745 2042009-04-13 Felix Zielcke <fzielcke@z-51.de>
205
206 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
207 doestn't exist. Check also for /boot/kernel/kernel.gz. Print
208 `freebsd_loadenv' only when devices.hints exist.
209
232a769c 2102009-04-13 Pavel Roskin <proski@gnu.org>
211
212 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
213
c3012039 2142009-04-13 Felix Zielcke <fzielcke@z-51.de>
215
216 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
217 partition number.
218 (grub_drive): Likewise.
219
234022fe 2202009-04-13 David S. Miller <davem@davemloft.net>
221
222 * kern/sparc64/ieee1275/ieee1275.c: New file.
223 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
224 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
225 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
226 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
227 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
228 grub_ieee1275_alloc_physmem): Declare new exported functions.
229
d8e1836c 230 * include/grub/sparc64/ieee1275/loader.h: New file.
231 * include/grub/sparc64/ieee1275/memory.h: Likewise.
232 * include/grub/sparc64/kernel.h: Likewise.
233 * loader/sparc64/ieee1275/linux.c: Likewise.
234
96bd81ec 235 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
236 (grub_fstest_SOURCES): Likewise.
237
6a4737e5 238 * util/hostdisk.c (make_device_name): Do not make any assumptions
239 about the length of drive names.
240
1d7a72fd 241 * kern/dl.c (grub_dl_load_file): Close file immediately when
242 we are done using it.
243
56bc2471 2442009-04-12 David S. Miller <davem@davemloft.net>
245
246 * kern/misc.c (grub_ltoa): Fix cast when handling negative
247 values. Noticed by Pavel Roskin.
248
df38d0bb 249 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
250 target compiler.
251
e382e93a 252 * genmk.rb: Add more flexible image type specification, also
253 pass --strip-unneeded to objcopy.
254 * conf/i386-pc.rmk: Use *_FORMAT.
255 * conf/i386-pc.mk: Rebuilt.
256
f5dbbca9 257 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
258 (OFDISK_HASH_SZ): Define.
259 (ofdisk_hash): New hash table.
260 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
261 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
262 instead of device phandle which is not unique.
263
91c88b12 264 * kern/sparc64/ieee1275/init.c: Delete, replace with...
265 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
266 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
267 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
268 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
269 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
270 GRUB_KERNEL_MACHINE_DATA_END): Define.
271 (grub_kernel_image_size, grub_total_module_size): Declare.
272
5b5d4aa5 2732009-04-12 Pavel Roskin <proski@gnu.org>
274
275 * configure.ac: Change the logic when we check for target tools.
276 Do it when the target is specified and it's different from the
277 specified value of the host.
278
c91e1793 2792009-04-11 Felix Zielcke <fzielcke@z-51.de>
280
281 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
282 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
283 GNU/kFreeBSD. Check if a device is a character device. Use
284 DIOCGMEDIASIZE to get the size.
285 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
286 support for GNU/kFreeBSD.
287 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
288 is a character device instead of a block device. Add support for
289 FreeBSD device names.
290
291 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
292 is a character device instead of a block device.
293
294 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
295 is a character device instead of a block device.
296
b1ac8644 2972009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
298
299 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
300 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
301 FreeBSD. Check if a device is a character device. Use
302 DIOCGMEDIASIZE to get the size.
303 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
304 support for FreeBSD.
305 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
306 is a character device instead of a block device. Add support for
307 FreeBSD device names.
308
309 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
310 a character device instead of a block device.
311 (grub_util_check_char_device): New function.
312
313 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
314 a character device instead of a block device.
315
316 * include/grub/util/getroot.h (grub_util_check_char_device): New
317 prototype.
318
a3f7515a 3192009-04-11 David S. Miller <davem@davemloft.net>
320
321 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
322 static libgcc.
323 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
324 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
325 function, if present.
326 (__bswapdi2): Likewise.
327
0d44993d 328 * include/grub/sparc64/ieee1275/boot.h: New file.
329 * boot/sparc64/ieee1275/boot.S: Likewise.
330 * boot/sparc64/ieee1275/diskboot.S: Likewise.
331
ed3d2bc2 332 * kern/misc.c (grub_ltoa): New function.
333 (grub_vsprintf): Use it to format 'long' integers.
334
d3bfb59c 3352009-04-10 David S. Miller <davem@davemloft.net>
336
337 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
338 slots are of type grub_ieee1275_cell_t.
339 (grub_nand_read): Likewise.
340 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
341 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
342 macros are used to compare values in arg/ret block of the call.
343 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
344 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
345 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
346 grub_ieee1275_instance_to_path, grub_ieee1275_write,
347 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
348 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
349 grub_ieee1275_close, grub_ieee1275_set_property,
350 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
351 grub_ieee1275_cell_t.
352 * kern/ieee1275/openfw.c (grub_map): Likewise.
353 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
354 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
355
450e2238 356 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
357 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
358 (grub_devalias_iterate): Likewise.
359
6df8cc76 3602009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
361
362 UFS improvements
363
364 * fs/ufs.c (INODE_NBLOCKS): new definition
365 (struct grub_ufs_dirent): added fields for non-BSD dirents
366 (grub_ufs_get_file_block): fixed double indirect handling
367 (grub_ufs_lookup_symlink): use more robust way to determine whether
368 symlink is inline
369 (grub_ufs_find_file): support for non-BSD dirents
370 (grub_ufs_dir): support for non-BSD dirents
371
e7e6862a 3722009-04-10 Bean <bean123ch@gnail.com>
373
374 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
375 attribute, otherwise the size would be wrong for i386 platform.
376
377 * include/grub/pci.h (grub_pci_read_word): New inline function.
378 (grub_pci_read_byte): Likewise.
379 (grub_pci_write): Likewise.
380 (grub_pci_write_word): Likewise.
381 (grub_pci_write_byte): Likewise.
382
383 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
384
385 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
386 (find_framebuf): Scan pci to locate the frame buffer address.
387
388 * commands/efi/fixvideo.c: New file.
389
390 * commands/efi/loadbios.c: Likewise.
391
392 * commands/memrw.c: Likewise.
393
394 * util/grub-dumpbios.in: Likewise.
395
396 * conf/common.rmk (grub-dumpbios): New utility.
397 (pkglib_MODULES): New module memrw.mod.
398 (memrw_mod_SOURCE): New macro.
399 (memrw_mod_CFLAGS): Likewise.
400 (memrw_mod_LDFLAGS): Likewise.
401
402 * conf/i386-efi.rmk (pkglig_MODULES): New module loadbios.mod and
403 fixvideo.mod.
404 (loadbios_mod_SOURCE): New macro.
405 (loadbios_mod_CFLAGS): Likewise.
406 (loadbios_mod_LDFLAGS): Likewise.
407 (fixvideo_mod_SOURCE): Likewise.
408 (fixvideo_mod_CFLAGS): Likewise.
409 (fixvideo_mod_LDFLAGS): Likewise.
410
411 * conf/x86_64.rmk (pkglig_MODULES): New module loadbios.mod and
412 fixvideo.mod.
413 (loadbios_mod_SOURCE): New macro.
414 (loadbios_mod_CFLAGS): Likewise.
415 (loadbios_mod_LDFLAGS): Likewise.
416 (fixvideo_mod_SOURCE): Likewise.
417 (fixvideo_mod_CFLAGS): Likewise.
418 (fixvideo_mod_LDFLAGS): Likewise.
419
af63ada2 4202009-04-08 Felix Zielcke <fzielcke@z-51.de>
421
422 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
423
c2cdde70 4242009-04-07 David S. Miller <davem@davemloft.net>
425
426 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
427 support for R_SPARC_OLO10 relocations. Fix compile warning for
428 R_SPARC_WDISP30 case.
ea3f72cf 429 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 430
761319cf 4312009-04-06 Pavel Roskin <proski@gnu.org>
432
1007d1f5 433 * include/grub/misc.h (ARRAY_SIZE): New macro.
434 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
435 New macro.
436 * loader/i386/linux.c (allocate_pages): Use free_pages().
437 (grub_linux_unload): Don't use free_pages().
438 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
439 wrong index. Treat all other modes as text modes.
440 (grub_cmd_linux): Initialize vid_mode unconditionally to
441 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
442
761319cf 443 * commands/help.c (print_command_help): Use cmd->prio, not
444 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
445
ea761d40 4462009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
447
448 Parttool
449
450 * parttool/pcpart.c: new file
451 * commands/parttool.c: likewise
452 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
453 (parttool_mod_SOURCES): new variable
454 (parttool_mod_CFLAGS): likewise
455 (parttool_mod_LDFLAGS): likewise
456 (pcpart_mod_SOURCES): likewise
457 (pcpart_mod_CFLAGS): likewise
458 (pcpart_mod_LDFLAGS): likewise
459 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
460 and parttool/pcpart.c
461 * conf/i386-efi.rmk: likewise
462 * conf/i386-ieee1275.rmk: likewise
463 * conf/i386-pc.rmk: likewise
464 * conf/powerpc-ieee1275.rmk: likewise
465 * conf/sparc64-ieee1275.rmk: likewise
466 * conf/x86_64-ieee1275.rmk: likewise
467
05aaebfb 4682009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
469
470 Support for mtime and further expandability of dir command
471
472 * include/grub/lib/datetime.h: moved to ...
473 * include/grub/datetime.h: ... moved here and added
474 declaration of grub_unixtime2datetime. All users updated
475 * include/grub/fs.h: new syntax for dir and mtime functionin
476 struct grub_fs
477 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
478 and GRUB_FSHELP_FLAGS_MASK
479 * commands/ls.c (grub_ls_list_files): Write mtime in long format
480 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
481 (grub_ext2_mtime): new function
482 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
483 (grub_hfsplus_mtime): new function
484 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
485 (GRUB_UFS_ATTR_FILE): likewise
486 (GRUB_UFS_ATTR_LNK): likewise
487 (struct grub_ufs_sblock): new fields mtime
488 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
489 all users updated
490 (grub_ufs_dir): mtime support
491 (grub_ufs_mtime): new function
492 * fs/affs.c (grub_affs_dir): use new dir syntax
493 * fs/afs.c (grub_afs_dir): likewise
494 * fs/cpio.c (grub_cpio_dir): likewise
495 * fs/fat.c (grub_fat_find_dir): likewise
496 * fs/hfs.c (grub_hfs_dir): likewise
497 * fs/iso9660.c (grub_iso9660_dir): likewise
498 * fs/jfs.c (grub_jfs_dir): likewise
499 * fs/minix.c (grub_minix_dir): likewise
500 * fs/ntfs.c (grub_ntfs_dir): likewise
501 * fs/reiserfs.c (grub_reiserfs_dir): likewise
502 * fs/sfs.c (grub_sfs_dir): likewise
503 * fs/xfs.c (grub_xfs_dir): likewise
504 * util/hostfs.c (grub_hostfs_dir): likewise
505 * lib/datetime.c: moved to ...
506 * normal/datetime.c: ... moved here
507 (grub_unixtime2datetime): new function
508 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
509 * normal/completition.c (iterate_dir): use new dir syntax
510 * normal/misc.c (grub_normal_print_device_info): tell the
511 last modification time of a volume
512 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
513 * conf/common.rmk: added lib/datetime.c to ls.mod
514 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
515 (normal_mod_SOURCES): likewise
516 (datetime_mod_SOURCES): Removed lib/datetime.c
517 * conf/i386-efi.rmk: likewise
518 * conf/i386-ieee1275.rmk: likewise
519 * conf/i386-pc.rmk: likewise
520 * conf/powerpc-ieee1275.rmk: likewise
521 * conf/sparc64-ieee1275.rmk: likewise
522 * conf/x86_64-efi.rmk: likewise
523
8a7e1a14 5242009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
525
526 Trim trailing spaces in FAT label and support mtools-like labels
527
528 * fs/fat.c (grub_fat_iterate_dir): New function based
529 on grub_fat_find_dir
530 (grub_fat_find_dir): use grub_fat_iterate_dir
531 (grub_fat_label): likewise
532
04186a9c 5332009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
534
535 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
536 and command.h
537 remove extraneous kernel_elf_HEADERS
538
da4c0bb6 5392009-04-04 Bean <bean123ch@gnail.com>
540
541 * include/grub/util/misc.h: Add dummy function fsync for mingw.
542
543 * util/misc.c: Likewise.
544
54ad9555 5452009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
546
547 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
548 instead of grub_printf.
549
7a6bf9f2 5502009-04-03 Robert Millan <rmh@aybabtu.com>
551
552 * loader/i386/linux.c (grub_linux_setup_video): Fill
553 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
554 values from `mode info' structure instead of hardcoded
555 values.
556
3fcc2083 5572009-04-01 Pavel Roskin <proski@gnu.org>
558
559 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
560 unused now.
561 * genmk.rb: Likewise.
562 * configure.ac: Likewise.
563
5ec9740b 5642009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
565
566 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
567 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
568
5270cec8 5692009-04-01 David S. Miller <davem@davemloft.net>
570
571 * normal/sparc64/setjmp.S: Fix setjmp implementation.
572 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
573 (grub_setjmp): Mark with 'returns_twice' attribute.
574 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
575 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
576 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
577
9c3dd854 5782009-04-01 Robert Millan <rmh@aybabtu.com>
579
580 Reapply fix from 2008-07-28 which was accidentally reverted; also
581 perform the same fix to a similar check in same function.
582
583 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
584 with the same number are found, just use issue a warning with
585 grub_dprintf(), as this error has been reported to be non-fatal.
586
0d818b7e 5872009-03-31 Pavel Roskin <proski@gnu.org>
588
589 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
590 for cross-compilation.
591
95646d92 5922009-03-30 Robert Millan <rmh@aybabtu.com>
593
594 Fix i386-ieee1275 build.
595
596 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
597 Remove declaration.
598
6a003ed1 5992009-03-30 Pavel Roskin <proski@gnu.org>
600
601 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
602 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
603 zero-terminated, rely only on the strlen value. Fix comparison
604 of strings differing in length.
605
92f33540 6062009-03-30 Robert Millan <rmh@aybabtu.com>
607
608 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
609 checking for abi version. Improve error messages on BIOS to notify
610 user about `linux16' command.
611
a8c48fd5 6122009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
613
f968172e 614 Leak fixes
a8c48fd5 615
f968172e 616 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
617 in case of collision
618 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 619
9c323f09 6202009-03-29 Robert Millan <rmh@aybabtu.com>
621
622 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
623 set `vid_mode' accordingly.
624 (grub_linux_boot): Process `vid_mode' and set video mode.
625
ae68f423 6262009-03-29 Robert Millan <rmh@aybabtu.com>
627
628 * util/grub.d/10_linux.in (linux_entry): New function.
629 Factorize generation of Linux boot entries.
630
5709cfc4 6312009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
632
633 Make the format of Environment Block plain text. The boot loader
634 part is not tested well yet.
635
636 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
637 (buffer): Removed.
638 (envblk): Likewise.
639 (usage): Remove "info" and "clear". Add "unset". Update the
640 description of "set", as this does not delete variables any
641 longer.
642 (create_envblk_file): Complete rewrite.
643 (open_envblk_file): Likewise.
644 (cmd_info): Removed.
645 (cmd_list): Likewise.
646 (cmd_set): Likewise.
647 (cmd_clear): Likewise.
648 (list_variables): New function.
649 (write_envblk): Likewise.
650 (set_variables): Likewise.
651 (unset_variables): Likewise.
652 (main): Complete rewrite.
653
654 * commands/loadenv.c (buffer): Removed.
655 (envblk): Likewise.
656 (open_envblk_file): New function.
657 (read_envblk_file): Complete rewrite.
658 (grub_cmd_load_env): Likewise.
659 (grub_cmd_list_env): Likewise.
660 (struct blocklist): New struct.
661 (free_blocklists): New function.
662 (check_blocklists): Likewise.
663 (write_blocklists): Likewise.
664 (grub_cmd_save_env): Complete rewrite.
665
666 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
667 a plain text signature.
668 (GRUB_ENVBLK_MAXLEN): Removed.
669 (struct grub_envblk): Complete rewrite.
670 (grub_envblk_find): Removed.
671 (grub_envblk_insert): Likewise.
672 (grub_envblk_open): New prototype.
673 (grub_envblk_set): Likewise.
674 (grub_envblk_delete): Put const to VALUE.
675 (grub_envblk_iterate): Put const to NAME and VALUE.
676 (grub_envblk_close): New prototype.
677 (grub_envblk_buffer): New inline function.
678 (grub_envblk_size): Likewise.
679
680 * lib/envblk.c: Include grub/mm.h.
681 (grub_env_find): Removed.
682 (grub_envblk_open): New function.
683 (grub_envblk_close): Likewise.
684 (escaped_value_len): Likewise.
685 (find_next_line): Likewise.
686 (grub_envblk_insert): Removed.
687 (grub_envblk_set): New function.
688 (grub_envblk_delete): Complete rewrite.
689 (grub_envblk_iterate): Likewise.
690
a9368fd3 6912009-03-28 Robert Millan <rmh@aybabtu.com>
692
693 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
694 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
695 variables. Use 16-bit loader.
696 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
697 loader.
698 * kern/i386/loader.S (grub_linux_boot): Rename to ...
699 (grub_linux16_boot): ... this. Update all users.
700 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
701 (grub_linux_boot): ... this. Update all users.
702
703 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
704 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
705 commands to `linux16' and `initrd16'.
706 (GRUB_MOD_FINI(linux)): Rename to ...
707 (GRUB_MOD_FINI(linux16)): ... this.
708
e4dd5a7e 7092009-03-24 Pavel Roskin <proski@gnu.org>
710
711 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
712 not just for compilation.
713
c04d6e05 7142009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
715
716 Move multiboot helper out of kernel
717
718 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
719 `loader/i386/multiboot_helper.S'.
720 * conf/i386-coreboot.rmk: Likewise
721 * conf/i386-ieee1275.rmk: Likewise
722
723 * kern/i386/loader.S: Move multiboot helpers from here...
724 * loader/i386/multiboot_helper.S: ...moved here
725 * include/grub/i386/loader.h: Move declarations of multiboot
726 helpers from here...
727 * include/grub/i386/multiboot.h: ...moved here
728 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
729
42a5b3fc 7302009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
731
732 * kern/env.c (grub_env_context_open): Added an argument to specify
733 whether a new context inherits exported variables from current
734 one. This is useful when making a sandbox to interpret a config
735 file.
736 All callers updated.
737
738 * include/grub/env.h (grub_env_context_open): Updated the prototype.
739
b28bbc4e 7402009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
741
742 * kern/env.c (grub_env_context_close): Fix memory leaks.
743
f04f02e4 7442009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
745
746 * normal/main.c (grub_normal_execute): Added an argument
747 BATCH to specify if an interactive interface should be provided
748 after reading a config file.
749 All callers updated.
750 (read_command_list): Prevent being executed twice.
751 (read_fs_list): Likewise.
752
42a5b3fc 753 * include/grub/normal.h (grub_normal_execute): Updated the
754 prototype.
f04f02e4 755
41473ac2 7562009-03-22 Pavel Roskin <proski@gno.org>
757
fbc00b0c 758 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
759 _start.
760 * kern/i386/pc/startup.S: Likewise.
761 * kern/i386/efi/startup.S: Likewise.
762 * kern/i386/ieee1275/startup.S: Likewise.
763 * kern/i386/coreboot/startup.S: Likewise.
764 * kern/x86_64/efi/startup.S: Likewise.
765
41473ac2 766 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
767 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
768 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
769
2274cc8f 7702009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
771
772 Bugfixes in multiboot for bugs uncovered by solaris kernel.
773
774 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
775 limit detection.
776 Use vaddr of correct segment for entry_point.
777
b1b797cb 7782009-03-21 Bean <bean123ch@gmail.com>
779
780 * commands/blocklist.c: Add include file <grub/command.h>, remove
781 <grub/normal.h> and <grub/arg.h>.
782 (grub_cmd_blocklist): Use the new command interface.
783 (GRUB_MOD_INIT): Likewise.
784 (GRUB_MOD_FINI): Likewise.
785 * commands/boot.c: Likewise.
786 * commands/cat.c: Likewise.
787 * commands/cmp.c: Likewise.
788 * commands/configfile.c: Likewise.
789 * commands/crc.c: Likewise.
790 * commands/echo.c: Likewise.
791 * commands/halt.c: Likewise.
792 * commands/handler.c: Likewise.
793 * commands/hdparm.c: Likewise.
794 * commands/help.c: Likewise.
795 * commands/hexdump.c: Likewise.
796 * commands/loadenv.c: Likewise.
797 * commands/ls.c: Likewise.
798 * commands/lsmmap.c: Likewise.
799 * commands/lspci.c: Likewise.
800 * commands/loadenv.c: Likewise.
801 * commands/read.c: Likewise.
802 * commands/reboot.c: Likewise.
803 * commands/search.c: Likewise.
804 * commands/sleep.c: Likewise.
805 * commands/test.c: Likewise.
806 * commands/usbtest.c: Likewise.
807 * commands/videotest.c: Likewise.
808 * commands/i386/cpuid.c: Likewise.
809 * commands/i386/pc/halt.c: Likewise.
810 * commands/i386/pc/play.c: Likewise.
811 * commands/i386/pc/pxecmd.c: Likewise.
812 * commands/i386/pc/vbeinfo.c: Likewise.
813 * commands/i386/pc/vbetest.c: Likewise.
814 * commands/ieee1275/suspend.c: Likewise.
815 * disk/loopback.c: Likewise.
816 * font/font_cmd.c: Likewise.
817 * hello/hello.c: Likewise.
818 * loader/efi/appleloader.c: Likewise.
819 * loader/efi/chainloader.c: Likewise.
820 * loader/i386/bsd.c: Likewise.
821 * loader/i386/efi/linux.c: Likewise.
822 * loader/i386/ieee1275/linux.c: Likewise.
823 * loader/i386/linux.c: Likewise.
824 * loader/i386/pc/chainloader.c: Likewise.
825 * loader/i386/pc/linux.c: Likewise.
826 * loader/powerpc/ieee1275/linux.c: Likewise.
827 * loader/multiboot_loader.c: Likewise.
828 * term/gfxterm.c: Likewise.
829 * term/i386/pc/serial.c: Likewise.
830 * term/terminfo.c: Likewise.
831
832 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
833 * term/i386/pc/vga.c: Likewise.
834 * video/readers/jpeg.c: Likewise.
835 * video/readers/png.c: Likewise.
836 * video/readers/tga.c: Likewise.
837
838 * util/grub-fstest (cmd_loopback): Removed.
839 (cmd_blocklist): Likewise.
840 (cmd_ls): Likewise.
841 (grub_register_command): Likewise.
842 (grub_unregister_command): Likewise.
843 (execute_command): Use grub_command_find to locate command and execute
844 it.
845
846 * include/grub/efi/chainloader.h: Removed.
847 * loader/efi/chainloader_normal.c: Likewise.
848 * loader/i386/bsd_normal.c: Likewise.
849 * loader/i386/pc/chainloader_normal.c: Likewise.
850 * loader/i386/pc/multiboot_normal.c: Likewise.
851 * loader/linux_normal.c: Likewise.
852 * loader/multiboot_loader_normal.c: Likewise.
853 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
854
855 * gencmdlist.sh: Scan new registration command grub_register_extcmd
856 and grub_register_command_p1.
857
858 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
859 kern/command.c, lib/arg.c and commands/extcmd.c.
860 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
861 (minicmd_mod_SOURCES): New variable.
862 (minicmd_mod_CFLAGS): Likewise.
863 (minicmd_mod_LDFLAGS): Likewise.
864 (extcmd_mod_SOURCES): Likewise.
865 (extcmd_mod_CFLAGS): Likewise.
866 (extcmd_mod_LDFLAGS): Likewise.
867 (boot_mod_SOURCES): Removed.
868 (boot_mod_CFLAGS): Likewise.
869 (boot_mod_LDFLAGS): Likewise.
870
871 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
872 kern/corecmd.c.
873 (kernel_img_HEADERS): Add command.h.
874 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
875 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
876 and lib/arg.c.
877 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
878 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
879 remove the corresponding normal mode command.
880 (normal_mod_SOURCES): Remove normal/arg.c.
881 * conf/i386-coreboot.rmk: Likewise.
882 * conf/i386-efi.rmk: Likewise.
883 * conf/i386-ieee1275.rmk: Likewise.
884 * conf/powerpc-ieee1275.rmk: Likewise.
885 * conf/x86_64-efi.rmk: Likewise.
886
887 * include/grub/arg.h: Move from here ...
888 * include/grub/lib/arg.h: ... to here.
889
890 * normal/arg.c: Move from here ...
891 * lib/arg.c: ... to here.
892
893 * commands/extcmd.c: New file.
894 * commands/minicmd.c: Likewise.
895 * include/grub/command.h: Likewise.
896 * include/grub/extcmd.h: Likewise.
897 * kern/command.c: Likewise.
898 * kern/corecmd.c: Likewise.
899
900 * kern/list.c (grub_list_iterate): Return int instead of void.
901 (grub_list_insert): New function.
902 (grub_prio_list_insert): Likewise.
903
904 * kern/rescue.c (grub_rescue_command): Removed.
905 (grub_rescue_command_list): Likewise.
906 (grub_rescue_register_command): Likewise.
907 (grub_rescue_unregister_command): Likewise.
908 (grub_rescue_cmd_boot): Move to minicmd.c
909 (grub_rescue_cmd_help): Likewise.
910 (grub_rescue_cmd_info): Likewise.
911 (grub_rescue_cmd_boot): Likewise.
912 (grub_rescue_cmd_testload): Likewise.
913 (grub_rescue_cmd_dump): Likewise.
914 (grub_rescue_cmd_rmmod): Likewise.
915 (grub_rescue_cmd_lsmod): Likewise.
916 (grub_rescue_cmd_exit): Likewise.
917 (grub_rescue_print_devices): Moved to corecmd.c.
918 (grub_rescue_print_files): Likewise.
919 (grub_rescue_cmd_ls): Likewise.
920 (grub_rescue_cmd_insmod): Likewise.
921 (grub_rescue_cmd_set): Likewise.
922 (grub_rescue_cmd_unset): Likewise.
7d074e3c 923 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 924 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 925 commands, remove grub_rescue_register_command calls.
b1b797cb 926
7d074e3c 927 * normal/command.c (grub_register_command): Removed.
b1b797cb 928 (grub_unregister_command): Likewise.
929 (grub_command_find): Likewise.
930 (grub_iterate_commands): Likewise.
931 (rescue_command): Likewise.
932 (export_command): Moved to corecmd.c.
933 (set_command): Removed.
934 (unset_command): Likewise.
935 (insmod_command): Likewise.
936 (rmmod_command): Likewise.
937 (lsmod_command): Likewise.
938 (grub_command_init): Likewise.
939
940 * normal/completion.c (iterate_command): Use cmd->prio to check for
941 active command.
942 (complete_arguments): Use grub_extcmd_t structure to find options.
943 (grub_normal_do_completion): Change function grub_iterate_commands to
944 grub_command_iterate.
945
946 * normal/execute.c (grub_script_execute_cmd): No need to parse
947 argument here.
948
949 * normal/main.c (grub_dyncmd_dispatcher): New function.
950 (read_command_list): Register unload commands as dyncmd.
951 (grub_cmd_normal): Use new command interface, register rescue,
952 unregister normal at entry, register normal, unregister rescue at exit.
953
954 * include/grub/list.h (grub_list_test_t): New type.
955 (grub_list_iterate): Return int instead of void.
956 (grub_list_insert): New function.
957 (GRUB_AS_NAMED_LIST_P): New macro.
958 (GRUB_AS_PRIO_LIST): Likewise.
959 (GRUB_AS_PRIO_LIST_P): Likewise.
960 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
961 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
962 (grub_prio_list): New structure.
963 (grub_prio_list_insert): New function.
964 (grub_prio_list_remove): New inline function.
965
966 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
967 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
968 (GRUB_COMMAND_FLAG_MENU): Likewise.
969 (GRUB_COMMAND_FLAG_BOTH): Likewise.
970 (GRUB_COMMAND_FLAG_TITLE): Likewise.
971 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
972 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
973 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
974 (grub_command): Likewise.
975 (grub_register_command): Likewise.
976 (grub_command_find): Likewise.
977 (grub_iterate_commands): Likewise.
978 (grub_command_init): Likewise.
979 (grub_arg_parse): Likewise.
980 (grub_arg_show_help): Likewise.
981
982 * include/grub/rescue.h (grub_rescue_register_command): Removed.
983 (grub_rescue_unregister_command): Likewise.
984
985 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
986 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
987 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
988
989 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
990 grub_rescue_cmd_initrd.
991 * include/grub/i386/loader.h: Likewise.
992 * include/grub/x86_64/loader.h: Likewise.
993
994 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
995
1f4147aa 9962009-03-21 Bean <bean123ch@gmail.com>
997
998 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
999 instead of stat in mingw environment.
1000
1001 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
1002
1003 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
1004
1005 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
1006 AC_CONFIG_LINKS.
1007
2156d5ba 10082009-03-21 Bean <bean123ch@gmail.com>
1009
1010 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
1011 out of range error.
1012
177b82ca 10132009-03-18 Michel Dänzer <michel@daenzer.net>
1014
1015 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
1016 checking inode flags for EXT4_EXTENTS_FLAG.
1017
14aad807 10182009-03-18 Robert Millan <rmh@aybabtu.com>
1019
1020 * loader/i386/linux.c: Include `<grub/video.h>' and
1021 `<grub/i386/pc/vbe.h>'..
1022 (grub_linux_setup_video): New function. Loosely based on the EFI one.
1023 (grub_linux32_boot): Attempt to configure video settings with
1024 grub_linux_setup_video().
1025 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
1026 to avoid grub_console_fini() which would step out of graphical mode
1027 unconditionally.
1028
8cf83a27 10292009-03-14 Robert Millan <rmh@aybabtu.com>
1030
1031 Fix build on powerpc.
1032 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
1033
40164e75 10342009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
1035
1036 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
1037 background image command.
1038
c58bc32a 10392009-03-12 Colin D Bennett <colin@gibibit.com>
1040
1041 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
1042 (grub_gfxterm_putchar): Extract pairs of identical calls to
1043 draw_cursor out of conditional blocks.
1044
5415144a 10452009-03-11 Pavel Roskin <proski@gnu.org>
1046
1047 * fs/hfs.c (grub_hfs_strncasecmp): New function.
1048 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
1049
6394042e 10502009-03-11 Robert Millan <rmh@aybabtu.com>
1051
1052 * loader/i386/multiboot_elfxx.c
1053 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
1054
b7b50e5f 10552009-03-11 Felix Zielcke <fzielcke@z-51.de>
1056
1057 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
1058 `kern/handler.c'.
1059
1ca7fc96 10602009-03-11 Robert Millan <rmh@aybabtu.com>
1061
1062 * loader/i386/multiboot.c (code_size): New variable.
1063 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 1064 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 1065 4-byte alignment to MBI and others by increasing
7d074e3c 1066 `boot_loader_name_length' appropriately.
1ca7fc96 1067
1068 * loader/i386/multiboot_elfxx.c
1069 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
1070
a83ea1d2 10712009-03-09 Felix Zielcke <fzielcke@z-51.de>
1072
1073 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
1074 `fs/ext2.c'.
1075
aa9f3bff 10762009-03-08 Robert Millan <rmh@aybabtu.com>
1077
1078 Make loader/i386/linux.c usable on i386-pc again.
1079
1080 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
1081 memory to heap.
1082 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
1083 `#error' stanza.
1084
d8b3b60e 10852009-03-07 Bean <bean123ch@gmail.com>
1086
1087 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
1088 allocation.
1089
b362c9e9 10902009-03-06 Robert Millan <rmh@aybabtu.com>
1091
1092 Fix display issue on terminals with screen size other than 80x25
1093 (e.g. gfxterm with resolution higher than 640x480).
1094
1095 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 1096 position relative to the center of the terminal instead of relying
b362c9e9 1097 on a hardcoded offset.
1098
9304eef1 10992009-03-04 Robert Millan <rmh@aybabtu.com>
1100
1101 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
1102 installed.
1103
1104 * Makefile.in (host_kernel): New variable.
1105 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
1106 scripts instead of just the windows one.
1107 * configure.ac: Initialize and AC_SUBST `host_kernel'.
1108
eabc95fb 11092009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 1110
1111 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
1112 `kern/handler.c'.
1113 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1114 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1115 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1116 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1117 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1118 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1119
ceb1223c 11202009-03-04 Felix Zielcke <fzielcke@z-51.de>
1121
1122 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
1123 or if there's no space for the disk label and print the partition number on a
1124 invalid magic.
1125
4910684a 11262009-03-04 Felix Zielcke <fzielcke@z-51.de>
1127
1128 * util/misc.c: Include <time.h>.
1129 (grub_millisleep): New function.
1130
7e9ca17a 11312009-03-04 Bean <bean123ch@gmail.com>
1132
1133 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
1134 another option -mno-red-zone.
1135
1136 * commands/handler.c: Change module description.
1137
1138 * kern/handler.c: Add missing space at the end of description line.
1139
1140 * kern/list.c: Likewise.
1141
f501677c 11422009-03-03 Robert Millan <rmh@aybabtu.com>
1143
1144 Move more components to the relocation area, and fix mbi pointer
1145 handling to use the destination rather than the origin (thanks to
1146 Vladimir Serbinenko for spotting).
1147
1148 * loader/i386/multiboot.c (mbi_dest): New variable.
1149 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
1150 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
1151 relocation area.
1152
9902d047 11532009-03-01 Bean <bean123ch@gmail.com>
1154
50fb7002 1155 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 1156 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
1157 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
1158 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
1159
1160 * loader/i386/efi/linux.c (acpi_guid): New variable.
1161 (acpi_guid): Likewise.
1162 (EBDA_SEG_ADDR): New constant.
1163 (LOW_MEM_ADDR): Likewise.
1164 (FAKE_EBDA_SEG): Likewise.
1165 (fake_bios_data): New function.
1166 (grub_linux_boot): Call fake_bios_data.
1167
71b9f361 11682009-03-01 Bean <bean123ch@gmail.com>
1169
1170 * commands/terminal.c: Removed.
1171
1172 * commands/handler.c: New file.
1173
1174 * include/grub/list.h: Likewise.
1175
1176 * include/grub/handler.h: Likewise.
1177
1178 * kern/list.c: Likewise.
1179
1180 * kern/handler.c: Likewise.
1181
1182 * kern/term.h: Include header file <grub/handler.h>.
1183 (grub_term_input): Move next field to the beginning.
1184 (grub_term_output): Likewise.
1185 (grub_term_input_class): New variable.
1186 (grub_term_output_class): Likewise.
1187 (grub_term_register_input): Changed to inline function.
1188 (grub_term_register_output): Likewise.
1189 (grub_term_unregister_input): Likewise.
1190 (grub_term_unregister_output): Likewise.
1191 (grub_term_set_current_input): Likewise.
1192 (grub_term_set_current_output): Likewise.
1193 (grub_term_get_current_input): Likewise.
1194 (grub_term_get_current_output): Likewise.
1195 (grub_term_iterate_input): Removed.
1196 (grub_term_iterate_output): Likewise.
1197
1198 * kern/term.c (grub_term_list_input): Removed.
1199 (grub_term_list_output): Likewise.
1200 (grub_term_input_class): New variable.
1201 (grub_term_output_class): Likewise.
50fb7002 1202 (grub_cur_term_input): Change variable as macro.
71b9f361 1203 (grub_cur_term_output): Likewise.
1204 (grub_term_register_input): Removed.
1205 (grub_term_register_output): Likewise.
1206 (grub_term_unregister_input): Likewise.
1207 (grub_term_unregister_output): Likewise.
1208 (grub_term_set_current_input): Likewise.
1209 (grub_term_set_current_output): Likewise.
1210 (grub_term_iterate_input): Likewise.
1211 (grub_term_iterate_output): Likewise.
1212 (grub_term_get_current_input): Likewise.
1213 (grub_term_get_current_output): Likewise.
1214
1215 * util/grub-editenv.c: Include header file <grub/handler.h>.
1216 (grub_term_get_current_input): Removed.
1217 (grub_term_get_current_output): Likewise.
1218 (grub_term_input_class): New variable.
50fb7002 1219 (grub_term_output_class): Likewise.
71b9f361 1220
1221 * util/grub-fstest.c (grub_term_get_current_input): Removed.
1222 (grub_term_get_current_output): Likewise.
1223 (grub_term_input_class): New variable.
50fb7002 1224 (grub_term_output_class): Likewise.
71b9f361 1225
1226 * util/grub-probe.c (grub_term_get_current_input): Removed.
1227 (grub_term_get_current_output): Likewise.
1228 (grub_term_input_class): New variable.
50fb7002 1229 (grub_term_output_class): Likewise.
71b9f361 1230
1231 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
1232 (grub_term_get_current_output): Likewise.
1233 (grub_term_input_class): New variable.
50fb7002 1234 (grub_term_output_class): Likewise.
71b9f361 1235
1236 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
1237 (terminal_mod_SOURCES): Likewise.
1238 (terminal_mod_CFLAGS): Likewise.
1239 (terminal_mod_LDFLAGS): Likewise.
1240
1241 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
1242 handler.c.
1243 (kernel_img_SOURCES): Add list.c and handler.c.
1244 (kernel_img_HEADERS): Add list.h and handler.h.
1245
1246 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1247 handler.c.
1248 (kernel_mod_SOURCES): Add list.c and handler.c.
1249 (kernel_mod_HEADERS): Add list.h and handler.h.
1250
1251 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
1252 handler.c.
1253 (kernel_elf_SOURCES): Add list.c and handler.c.
1254 (kernel_elf_HEADERS): Add list.h and handler.h.
1255
1256 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1257 handler.c.
1258 (kernel_elf_SOURCES): Add list.c and handler.c.
1259 (kernel_elf_HEADERS): Add list.h and handler.h.
1260
1261 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
1262 handler.c.
1263 (kernel_mod_SOURCES): Add list.c and handler.c.
1264 (kernel_mod_HEADERS): Add list.h and handler.h.
1265
1266 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
1267 handler.c.
1268 (kernel_elf_SOURCES): Add list.c and handler.c.
1269 (kernel_elf_HEADERS): Add list.h and handler.h.
1270
8a31787f 12712009-02-27 Robert Millan <rmh@aybabtu.com>
1272
1273 Factorize elf32 / elf64 code in Multiboot loader. This will
1274 prevent it from getting out of sync again.
1275
1276 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
1277 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
1278 grub_multiboot_load_elf64): Move from here ...
1279 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
1280 grub_multiboot_load_elf): ... to here (new file).
1281
51cd3dfc 12822009-02-27 Robert Millan <rmh@aybabtu.com>
1283
1284 * util/grub.d/10_linux.in: Rename "single-user mode" to
1285 "recovery mode".
1286
6e8c9c3a 12872009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
1288
1289 Don't leak in SCSI code.
1290 * disk/scsi.c (grub_scsi_close): free `scsi'.
1291
4b6bf4f9 12922009-02-27 Robert Millan <rmh@aybabtu.com>
1293
1294 * loader/i386/pc/multiboot.c: Move from here ...
1295 * loader/i386/multiboot.c: ... to here. Update all users.
1296
b9413424 12972009-02-27 Robert Millan <rmh@aybabtu.com>
1298
1299 Patch from Alexandre Bique <bique.alexandre@gmail.com>
1300 * util/i386/pc/grub-setup.c (setup): Fix directory path.
1301
50fb7002 13022009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 1303
1304 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
1305 b-tree.
1306
8cc50345 13072009-02-27 Robert Millan <rmh@aybabtu.com>
1308
1309 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
1310 `0x' qualifier as 0 when base is specified as parameter).
1311
6e09b8b7 13122009-02-24 Bean <bean123ch@gmail.com>
1313
1314 * configure.ac: Check for -mcmodel=large in x86_64 target.
1315
1316 * include/grub/efi/api.h (efi_call_10): New macro.
1317 (efi_wrap_10): New function.
1318
1319 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
1320 (GRUB_PE32_REL_BASED_HIGH): Likewise.
1321 (GRUB_PE32_REL_BASED_LOW): Likewise.
1322 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
1323 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
1324 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
1325 (GRUB_PE32_REL_BASED_SECTION): Likewise.
1326 (GRUB_PE32_REL_BASED_REL): Likewise.
1327 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
1328 (GRUB_PE32_REL_BASED_DIR64): Likewise.
1329 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
1330
1331 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
1332 issue.
1333
1334 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
1335 (efi_wrap_10): New function.
1336
1337 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
1338
1339 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
1340 MB/MBP model (NV chipset).
1341 (devdata_devs): Add devpath_5 to the list.
1342
1343 * load/i386/efi/linux.c (video_base): Remove variable.
1344 (RGB_MASK): New macro.
1345 (RGB_MAGIC): Likewise.
1346 (LINE_MIN): Likewise.
1347 (LINE_MAX): Likewise.
1348 (FBTEST_STEP): Likewise.
1349 (FBTEST_COUNT): Likewise.
1350 (fb_list): New variable.
1351 (grub_find_video_card): Remove function.
1352 (find_framebuf): New function.
1353 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
1354 line length.
1355
1356 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
1357 problem for x86_64.
1358
74b21bee 13592009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
1360
1361 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
1362
1363 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
1364 coding tool name.
1365
a455f472 13662009-02-22 Robert Millan <rmh@aybabtu.com>
1367
1368 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
1369 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
1370 in our relocation, instead of using it directly from heap. Also
1371 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
1372
6374daf3 13732009-02-21 Robert Millan <rmh@aybabtu.com>
1374
1375 Implement USB keyboard support (based on patch by Marco Gerards)
1376
1377 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
1378 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
1379 (usb_keyboard_mod_LDFLAGS): New variables.
1380
1381 * term/usb_keyboard.c: New file.
1382
8fa4ea70 13832009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
1384
1385 Corrected wrong declaration
1386
1387 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
1388
353976ac 13892009-02-14 Christian Franke <franke@computer.org>
1390
1391 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
1392 (grub_lspci_iter): Print class code and programming interface byte.
1393
6aa1169b 13942009-02-14 Christian Franke <franke@computer.org>
1395
1396 * gendistlist.sh: Ignore `.svn' directories.
1397
265372ca 13982009-02-14 Felix Zielcke <fzielcke@z-51.de>
1399
1400 * fs/fat.c: Add 2009 to Copyright line.
1401
9ff516f3 14022009-02-14 Christian Franke <franke@computer.org>
1403
1404 * commands/hdparm.c: New file. Provides `hdparm' command
1405 which sends ATA commands via grub_disk_ata_pass_through ().
1406
1407 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
1408
1409 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
1410 and <grub/cpu/io.h> to include/grub/ata.h.
1411 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
1412 (GRUB_CDROM_SECTOR_SIZE): Remove.
1413 (GRUB_ATA_*): Move to include/grub/ata.h.
1414 (GRUB_ATAPI_*): Likewise.
1415 (enum grub_ata_commands): Likewise.
1416 (enum grub_ata_timeout_milliseconds): Likewise.
1417 (struct grub_ata_device): Likewise.
1418 (grub_ata_regset): Likewise.
1419 (grub_ata_regget): Likewise.
1420 (grub_ata_regset2): Likewise.
1421 (grub_ata_regget2): Likewise.
1422 (grub_ata_check_ready): Likewise.
1423 (grub_ata_wait_not_busy): Remove static, exported in
1424 include/grub/ata.h.
1425 (grub_ata_wait_drq): Likewise.
1426 (grub_ata_pio_read): Likewise.
1427
1428 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
1429 function for hdparm.mod.
1430
1431 * include/grub/ata.h: New file, contains declarations from
1432 disk/ata.c.
1433 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
1434
1435 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
1436 (grub_disk_ata_pass_through): New exported variable.
1437
1438 * kern/disk.c (grub_disk_ata_pass_through): New variable.
1439
772e23da 14402009-02-13 Colin D Bennett <colin@gibibit.com>
1441
1442 Support multiple fallback entries, and provide an API to support
1443 executing default+fallback menu entries. Renamed the `terminal' menu
1444 viewer to `text'.
1445
1446 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
1447 variable declaration.
1448 (grub_menu_execute_callback): New structure declaration.
1449 (grub_menu_execute_callback_t): New typedef.
1450 (grub_menu_execute_with_fallback): New function declaration.
1451 (grub_menu_get_entry): Likewise.
1452 (grub_menu_get_timeout): Likewise.
1453 (grub_menu_set_timeout): Likewise.
1454
1455 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
1456
1457 * normal/menu.c (grub_wait_after_message): Moved to
1458 `normal/menu_text.c'.
1459 (draw_border): Likewise.
1460 (print_message): Likewise.
1461 (print_entry): Likewise.
1462 (print_entries): Likewise.
1463 (grub_menu_init_page): Likewise.
1464 (get_entry_number): Likewise.
1465 (print_timeout): Likewise.
1466 (run_menu): Likewise.
1467 (grub_menu_execute_entry): Likewise.
1468 (show_text_menu): Likewise.
1469 (get_and_remove_first_entry_number): New function.
1470 (grub_menu_execute_with_fallback): Likewise.
1471 (get_entry): Renamed to ...
1472 (grub_menu_get_entry): .. this and made it global.
1473 (get_timeout): Renamed to ...
1474 (grub_menu_get_timeout): ... this and made it global.
1475 (set_timeout): Renamed to ...
1476 (grub_menu_set_timeout): ... this and made it global.
1477 (grub_normal_terminal_menu_viewer): Renamed to ...
1478 (grub_normal_text_menu_viewer): ... this.
1479
1480 * normal/menu_text.c: New file. Extracted text-menu-specific code
1481 from normal/menu.c.
1482
1483 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
1484 (normal_mod_SOURCES): Likewise.
1485
1486 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1487 (normal_mod_SOURCES): Likewise.
1488
1489 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1490 (normal_mod_SOURCES): Likewise.
1491
1492 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
1493 (normal_mod_SOURCES): Likewise.
1494
1495 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1496 (normal_mod_SOURCES): Likewise.
1497
1498 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1499 (normal_mod_SOURCES): Likewise.
1500
1501 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1502 (normal_mod_SOURCES): Likewise.
1503
16ac430e 15042009-02-11 Robert Millan <rmh@aybabtu.com>
1505
1506 * util/grub.d/00_header.in: Update old reference to `font' command.
1507
06ff20fc 15082009-02-10 Felix Zielcke <fzielcke@z-51.de>
1509
1510 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
1511
1512 Based on patch from Javier Martín.
1513
96da9407 15142009-02-09 Felix Zielcke <fzielcke@z-51.de>
1515
1516 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 1517 to avoid false positives with FAT.
96da9407 1518 (grub_fstest_SOURCES): Likewise.
1519 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1520 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1521 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1522 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1523 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1524 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1525
6dca6fe4 15262009-02-09 Felix Zielcke <fzielcke@z-51.de>
1527
06ff20fc 1528 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 1529 bpb.version_specific.fat12_or_fat16.fstype and
1530 bpb.version_specific.fat32.fstype.
1531
2550c62f 15322009-02-08 Robert Millan <rmh@aybabtu.com>
1533
be110b30 1534 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 1535
56978920 15362009-02-08 Robert Millan <rmh@aybabtu.com>
1537
1538 * Makefile.in (host_os, host_cpu): New variables.
1539 (target_os): Remove. Update all users.
1540
d64399b5 15412009-02-08 Marco Gerards <marco@gnu.org>
1542
1543 * Makefile.in (enable_grub_emu_usb): New variable.
1544 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
1545 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
1546 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
1547 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
1548 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
1549 `usbtest.mod' and `usbms.mod'.
1550 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
1551 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
1552 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
1553 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
1554 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
1555 variables.
1556
1557 * disk/usbms.c: New file.
1558
1559 * include/grub/usb.h: Likewise.
1560
1561 * include/grub/usbtrans.h: Likewise.
1562
1563 * include/grub/usbdesc.h: Likewise.
1564
1565 * bus/usb/usbtrans.c: Likewise.
1566
1567 * bus/usb/ohci.c: Likewise.
1568
1569 * bus/usb/uhci.c: Likewise.
1570
1571 * bus/usb/usbhub.c: Likewise.
1572
1573 * bus/usb/usb.c: Likewise.
1574
1575 * commands/usbtest.c: Likewise.
1576
1577 * util/usb.c: Likewise.
50fb7002 1578
d64399b5 1579 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
1580
1581 * configure.ac: Test for libusb presence.
50fb7002 1582
d64399b5 1583 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
1584
2b40d6bb 15852009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
1586
1587 * kern/mm.c: Add more comments.
1588
73a4ce81 15892009-02-08 Robert Millan <rmh@aybabtu.com>
1590
1591 Patch from Javier Martín.
1592 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
1593 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
1594
f821ce59 15952009-02-08 Robert Millan <rmh@aybabtu.com>
1596
1597 * fs/cpio.c: Split tar functionality to ...
1598 * fs/tar.c: ... here (new file). Update all users.
1599
aebfc4b0 16002009-02-07 Robert Millan <rmh@aybabtu.com>
1601
1602 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
1603 backward-incompatible features.
1604
1605 Based on patch from Javier Martín, with some adjustments.
1606
50fb7002 16072009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 1608
1609 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
1610
0bb5115e 16112009-02-07 Robert Millan <rmh@aybabtu.com>
1612
1613 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
1614 position of `disk/lvm.c' to ensure grub_init_all() always picks it
1615 after the RAID stuff.
1616
38a0f8e7 16172009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
1618
50fb7002 1619 Fixes problem when running vbetest command as reported by
38a0f8e7 1620 Vladimir Serbinenko <phcoder@gmail.com>.
1621
1622 * (grub_vbe_set_video_mode): Fixed problem with text modes.
1623
3143cc1c 16242009-02-04 Felix Zielcke <fzielcke@z-51.de>
1625
1626 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
1627 /dev/md/NpN style mdraid devices.
1628
9cba6fce 16292009-02-03 Felix Zielcke <fzielcke@z-51.de>
1630
1631 * util/unifont2pff.rb: Remove.
1632
e507a2c1 16332009-02-03 Felix Zielcke <fzielcke@z-51.de>
1634
1635 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
1636 `#'.
1637
d2c2b4cd 16382009-02-03 Felix Zielcke <fzielcke@z-51.de>
1639
1640 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
1641 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1642 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1643 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1644 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1645 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1646 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1647
b4315fb0 16482009-02-02 Christian Franke <franke@computer.org>
1649
1650 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
1651
de3aa260 16522009-02-01 Felix Zielcke <fzielcke@z-51.de>
1653
7c3ff286 1654 * INSTALL: Note that we now require at least autoconf 2.59 and
1655 that LZO is optional.
de3aa260 1656
825a182b 16572009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1658
1659 Base on patch on bug #24154 created by Tomas Tintera
1660 <trosos@seznam.cz>.
1661
1662 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
1663
a69ef770 16642009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
1665
7c3ff286 1666 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 1667 <bero@arklinux.org>.
1668
1669 * normal/parser.y (script_init): Add missing semicolon.
1670
6fa42fa6 16712009-01-31 Colin D Bennett <colin@gibibit.com>
1672
7c3ff286 1673 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 1674 (free_menu_entry_classes): Added.
1675 (grub_normal_menu_addentry): Added class property handling.
1676 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
1677 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
1678
1679 * normal/menu_viewer.c: New file.
1680
1681 * normal/menu.c (run_menu_entry): Renamed to ...
1682 (grub_menu_execute_entry): ... this and made it as global.
1683 (grub_menu_run): Renamed to ...
1684 (show_text_menu): ... this and made it local.
1685 (show_text_menu): Adapt to new function names.
1686 (grub_normal_terminal_menu_viewer): New global variable.
1687
1688 * include/grub/menu.h: New file.
1689
1690 * include/grub/menu_viewer.h: New file.
1691
1692 * include/grub/normal.h: Added include to grub/menu.h.
1693 (grub_menu_entry): Moved to include/grub/menu.h.
1694 (grub_menu_entry_t): Likewise.
1695 (grub_menu): Likewise.
1696 (grub_menu_t): Likewise.
1697 (grub_normal_terminal_menu_viewer): Added.
1698 (grub_menu_execute_entry): Likewise.
1699 (grub_menu_run): Removed.
1700
1701 * DISTLIST: Added include/grub/menu.h.
1702 Added include/grub/menu_viewer.h.
1703 Added normal/menu_viewer.c.
1704
17052009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
1706
1707 * normal/execute.c (grub_script_execute_menuentry): Changed to use
1708 arglist for menutitle arguments.
1709
1710 * normal/main.c (grub_normal_menu_addentry): Likewise.
1711
1712 * normal/parser.y (menuentry): Likewise.
1713
1714 * normal/script.c (grub_script_create_cmdmenu): Likewise.
1715
1716 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
1717 (grub_script_create_cmdmenu): Likewise.
1718
1719 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
1720
1721 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
1722 changes.
1723
1724 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
1725
1726 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
1727
1728 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
1729
1730 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1731
1732 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1733
1734 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
1735
56192c23 17362009-01-30 Christian Franke <franke@computer.org>
1737
1738 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
1739 in option help text.
1740
d72521b3 17412009-01-27 Pavel Roskin <proski@gnu.org>
1742
1743 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
1744
994b5e84 17452009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1746
1747 * commands/lsmmap.c: Add include to grub/machine/memory.h.
1748
1749 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
1750
1751 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
1752 unregister function.
1753
6a7eab2c 17542009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
1755
1756 * disk/scsi.c (grub_scsi_read): Fix sign problem.
1757
1758 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
1759
1760 * util/grub-mkfont.c (usage): Fix typo.
1761
1762 * util/elf/grub-mkimage.c (load_modules): Fix warning.
1763
1806b56e 17642009-01-26 Daniel Mierswa <impulze@impulze.org>
1765
3fb18f09 1766 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
1767
336e1fb9 1768 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
1769
1806b56e 1770 * kern/misc.c (grub_strcasecmp): New function.
1771 (grub_strcasecmp): Use grub_size_t instead of int for length.
1772 Fix return value.
1773 * include/grub/misc.h: Update function prototypes.
1774
580b2a0f 17752009-01-26 Robert Millan <rmh@aybabtu.com>
1776
1777 * configure.ac: Fix cross-compilation check.
ef257b36 1778
d31c24f1 17792009-01-22 Christian Franke <franke@computer.org>
1780
1781 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
1782 (precision) digit string. Allow `.format2' without `format1' (width).
1783 Limit input chars for `%s' output to `format2' if specified. This is
1784 compatible with standard printf ().
1785
3138b44c 17862009-01-22 Christian Franke <franke@computer.org>
1787
1788 * disk/ata.c (grub_ata_wait_status): Replace by ...
1789 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
1790 other status bits may be invalid while BSY is asserted.
1791 (grub_ata_check_ready): New function.
1792 (grub_ata_cmd): Removed.
1793 (grub_ata_wait_drq): New function.
1794 (grub_ata_strncpy): Remove inline.
1795 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
1796 and error check now done by grub_ata_wait_drq ().
1797 (grub_ata_pio_write): Likewise.
1798 (grub_atapi_identify): Set DEV before check for !BSY. Use
1799 grub_ata_wait_drq () to wait for data.
1800 (grub_ata_device_initialize): Add status register check to
1801 detect missing SATA slave devices. Add debug messages.
1802 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
1803 (grub_atapi_packet): Set DEV before check for !BSY. Replace
1804 transfer loop by grub_ata_pio_write ().
1805 (grub_ata_identify): Set DEV before check for !BSY. Use
1806 grub_ata_wait_drq () to wait for data.
ef257b36 1807 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 1808 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
1809 read/write in one loop. Fix invalid command on write. Fix incomplete
1810 command on (size % batch) == 0. Add missing error check after write of
1811 last block. Add debug messages.
1812 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
1813
59a64ef6 18142009-01-19 Christian Franke <franke@computer.org>
1815
1816 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
1817 (GRUB_ATAPI_IREASON_*): Likewise.
1818 (grub_ata_pio_write): Fix timeout error return.
1819 (grub_atapi_identify): Add grub_ata_wait () after cmd.
1820 (grub_atapi_wait_drq): New function.
1821 (grub_atapi_packet): New parameter `size'.
1822 Use grub_atapi_wait_drq () and direct write instead of
1823 grub_ata_pio_write ().
1824 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
1825 reads the number of bytes requested by the device for each DRQ
1826 assertion.
1827 (grub_atapi_write): Remove old implementation, return not
1828 implemented instead.
1829
1cfe20b3 18302009-01-19 Christian Franke <franke@computer.org>
1831
1832 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
1833 of 512 to calculate data size.
1834 (grub_scsi_read12): Likewise.
1835 (grub_scsi_write10): Likewise.
1836 (grub_scsi_write12): Likewise.
1837 (grub_scsi_read): Adjust size according to blocksize.
1838 Add checks for invalid blocksize and unaligned transfer.
1839
bee5fe5d 18402009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
1841
1842 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
1843
ef257b36 1844 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 1845 width glyphs.
1846
3e643f8c 18472009-01-19 Robert Millan <rmh@aybabtu.com>
1848
1849 * config.guess: Update to latest version from config git.
1850 * config.sub: Likewise.
1851
4fa80998 18522009-01-17 Felix Zielcke <fzielcke@z-51.de>
1853
1854 * Makefile.in: Change font compilation to use new grub-mkfont instead
1855 of java version.
1856
1857 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
1858 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
1859 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1860 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
1861 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
1862 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
1863 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
1864 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
1865 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
1866
7086085b 18672009-01-16 Christian Franke <franke@computer.org>
1868
1869 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
1870 (enum grub_ata_timeout_milliseconds): New enum.
1871 (grub_ata_wait_status): Add parameter milliseconds.
1872 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
1873 recovery from timed-out commands.
1874 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
1875 return grub_errno instead of REG_ERROR.
1876 (grub_ata_pio_write): Add parameter milliseconds.
1877 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
1878 Pass milliseconds to grub_ata_wait_status () and
1879 grub_ata_pio_read ().
1880 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
1881 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
1882 grub_ata_wait_status (). Fix IDENTIFY timeout check.
1883 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
1884 It is not suitable for device detection, because DEV bit is ignored,
1885 the command may run too long, and not all devices set the signature
1886 properly.
1887 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
1888 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
1889 Fix device selection, DEV bit must be set first to address the registers
1890 of the correct device.
1891 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
1892 grub_ata_pio_read/write ().
1893 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
1894 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
1895
4a412913 18962009-01-13 Carles Pina i Estany <carles@pina.cat>
1897
1898 * util/grub-editenv.c (main): Use fseeko(), not fseek().
1899
7795c55e 19002009-01-13 Bean <bean123ch@gmail.com>
d913988c 1901
1902 * util/grub-mkfont.c (write_font): forget to remove some debug code.
1903
7795c55e 19042009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 1905
1906 * Makefile.in: (enable_grub_mkfont): New variable.
1907 (freetype_cflags): Likewise.
1908 (freetype_libs): Likewise.
1909
1910 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
1911 (grub_mkfont_SOURCES): New variable.
1912 (grub_mkfont_CFLAGS): Likewise.
1913 (grub_mkfont_LDFLAGS): Likewise.
1914
1915 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
1916 library if `--enable-grub-mkfont' is requested.
1917 (enable_grub_mkfont): New variable.
1918 (freetype_cflags): Likewise.
1919 (freetype_libs): Likewise.
1920
1921 * util/grub-mkfont.c: New file.
1922
093af1fe 19232009-01-12 Christian Franke <franke@computer.org>
1924
1925 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
1926 mode check. Fix setting of compat_use[].
1927
f36cc108 19282009-01-10 Robert Millan <rmh@aybabtu.com>
1929
1930 Update a few copyright years which we forgot to do in 2008 (only for
1931 files whose changes made in 2008 were copyright-significant)
1932
1933 * Makefile.in: Add 2008 to Copyright line.
1934 * disk/ieee1275/ofdisk.c: Likewise.
1935 * disk/efi/efidisk.c: Likewise.
1936 * kern/dl.c: Likewise.
1937 * kern/sparc64/ieee1275/init.c: Likewise.
1938 * kern/mm.c: Likewise.
1939 * kern/efi/mm.c: Likewise.
1940 * boot/i386/pc/boot.S: Likewise.
1941 * genfslist.sh: Likewise.
1942 * fs/iso9660.c: Likewise.
1943 * fs/hfs.c: Likewise.
1944 * fs/jfs.c: Likewise.
1945 * fs/minix.c: Likewise.
1946 * fs/ufs.c: Likewise.
1947 * gensymlist.sh.in: Likewise.
1948 * genkernsyms.sh.in: Likewise.
1949 * include/grub/misc.h: Likewise.
1950 * include/grub/types.h: Likewise.
1951 * include/grub/symbol.h: Likewise.
1952 * include/grub/elf.h: Likewise.
1953 * include/grub/kernel.h: Likewise.
1954 * include/grub/disk.h: Likewise.
1955 * include/grub/dl.h: Likewise.
1956 * include/grub/i386/linux.h: Likewise.
1957 * include/grub/i386/pc/biosdisk.h: Likewise.
1958 * include/grub/efi/api.h: Likewise.
1959 * include/grub/efi/pe32.h: Likewise.
1960 * include/grub/util/misc.h: Likewise.
1961 * normal/execute.c: Likewise.
1962 * normal/arg.c: Likewise.
1963 * normal/completion.c: Likewise.
1964 * normal/lexer.c: Likewise.
1965 * normal/parser.y: Likewise.
1966 * normal/misc.c: Likewise.
1967 * commands/i386/pc/vbeinfo.c: Likewise.
1968 * commands/hexdump.c: Likewise.
1969 * commands/terminal.c: Likewise.
1970 * commands/ls.c: Likewise.
1971 * commands/help.c: Likewise.
1972 * partmap/pc.c: Likewise.
1973 * loader/efi/chainloader.c: Likewise.
1974 * loader/multiboot_loader.c: Likewise.
1975 * loader/i386/pc/multiboot2.c: Likewise.
1976 * term/efi/console.c: Likewise.
1977 * term/i386/pc/serial.c: Likewise.
1978 * util/lvm.c: Likewise.
1979 * util/console.c: Likewise.
1980 * util/i386/efi/grub-mkimage.c: Likewise.
1981 * util/raid.c: Likewise.
1982
7f02114b 19832009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
1984
1985 * commands/videotest.c: Removed include to grub/machine/memory.h.
1986
1987 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
1988 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
1989 (video_mod_SOURCES): Removed.
1990 (video_mod_CFLAGS): Likewise.
1991 (video_mod_LDFLAGS): Likewise.
1992 (gfxterm_mod_SOURCES): Likewise.
1993 (gfxterm_mod_CFLAGS): Likewise.
1994 (gfxterm_mod_LDFLAGS): Likewise.
1995 (videotest_mod_SOURCES): Likewise.
1996 (videotest_mod_CFLAGS): Likewise.
1997 (videotest_mod_LDFLAGS): Likewise.
1998 (bitmap_mod_SOURCES): Likewise.
1999 (bitmap_mod_CFLAGS): Likewise.
2000 (bitmap_mod_LDFLAGS): Likewise.
2001 (tga_mod_SOURCES): Likewise.
2002 (tga_mod_CFLAGS): Likewise.
2003 (tga_mod_LDFLAGS): Likewise.
2004 (jpeg_mod_SOURCES): Likewise.
2005 (jpeg_mod_CFLAGS): Likewise.
2006 (jpeg_mod_LDFLAGS): Likewise.
2007 (png_mod_SOURCES): Likewise.
2008 (png_mod_CFLAGS): Likewise.
2009 (png_mod_LDFLAGS): Likewise.
2010
2011 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
2012 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
2013 (video_mod_SOURCES): Added.
2014 (video_mod_CFLAGS): Likewise.
2015 (video_mod_LDFLAGS): Likewise.
2016 (videotest_mod_SOURCES): Likewise.
2017 (videotest_mod_CFLAGS): Likewise.
2018 (videotest_mod_LDFLAGS): Likewise.
2019 (bitmap_mod_SOURCES): Likewise.
2020 (bitmap_mod_CFLAGS): Likewise.
2021 (bitmap_mod_LDFLAGS): Likewise.
2022 (tga_mod_SOURCES): Likewise.
2023 (tga_mod_CFLAGS): Likewise.
2024 (tga_mod_LDFLAGS): Likewise.
2025 (jpeg_mod_SOURCES): Likewise.
2026 (jpeg_mod_CFLAGS): Likewise.
2027 (jpeg_mod_LDFLAGS): Likewise.
2028 (png_mod_SOURCES): Likewise.
2029 (png_mod_CFLAGS): Likewise.
2030 (png_mod_LDFLAGS): Likewise.
2031 (gfxterm_mod_SOURCES): Likewise.
2032 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 2033 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 2034
2035 * term/gfxterm.c: Removed include to grub/machine/memory.h,
2036 grub/machine/console.h.
2037
644fff97 20382009-01-04 Jerone Young <jerone@gmail.com>
2039
2040 Make on screen instructions clearer
2041
2042 Based on patch created by Jidanni <jidanni@jidanni.org>
2043
2044 * normal/menu.c: print clearer instructions on the screen
2045
1e901a75 20462009-01-02 Colin D Bennett <colin@gibibit.com>
2047
2048 New font engine.
34c44600 2049
1e901a75 2050 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
2051 build system and fixed gfxterm.c to work with different sized fonts.
2052
2053 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 2054
1e901a75 2055 * configure: Re-generated.
34c44600 2056
1e901a75 2057 * DISTLIST: Removed font/manager.c.
2058 Added font/font.c.
2059 Added font/font_cmd.c.
34c44600 2060
1e901a75 2061 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
2062 compilation.
34c44600 2063
1e901a75 2064 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 2065
2066 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 2067
2068 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 2069
1e901a75 2070 * normal/menu.c: Likewise.
34c44600 2071
1e901a75 2072 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
2073 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 2074
1e901a75 2075 * include/grub/font.h: Replaced with new file.
34c44600 2076
1e901a75 2077 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
2078 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
2079 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
2080 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
2081 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 2082 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 2083 fg_red, fg_green, fg_blue, fg_alpha.
2084 (grub_video_adapter): Removed blit_glyph.
34c44600 2085 (grub_video_blit_glyph): Removed.
2086
1e901a75 2087 * font/manager.c: Removed file.
34c44600 2088
2089 * font/font.c: New file.
2090
1e901a75 2091 * font/font_cmd.c: Likewise.
34c44600 2092
1e901a75 2093 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 2094
1e901a75 2095 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
2096 (grub_video_vbe_map_rgba): Likewise.
2097 (grub_video_vbe_unmap_color_int): Likewise.
2098 (grub_video_vbe_blit_glyph): Removed.
2099 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 2100
1e901a75 2101 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
2102 (get_pixel): Likewise.
34c44600 2103 (set_pixel): Likewise.
2104
1e901a75 2105 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 2106
1e901a75 2107 * term/gfxterm.c: Adapted to new font engine.
34c44600 2108
1e901a75 2109 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 2110
1e901a75 2111 * term/i386/pc/vga.c: Likewise.
34c44600 2112
1e901a75 2113 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 2114
1e901a75 2115 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 2116
1e901a75 2117 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 2118
1e901a75 2119 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 2120
1e901a75 2121 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 2122
1e901a75 2123 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 2124
1e901a75 2125 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 2126
1e901a75 2127 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 2128
1e901a75 2129 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
2130
2131 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 2132
1e901a75 2133 * util/grub-mkconfig_lib.in: Changed font extension.
2134
278922e8 21352008-12-28 Felix Zielcke <fzielcke@z-51.de>
2136
2137 * util/getroot.c (grub_util_get_grub_dev): Add support for
2138 /dev/md/dNNpNN style partitionable mdraid devices.
2139
3ced05cf 21402008-12-12 Alex Smith <alex@alex-smith.me.uk>
2141
2142 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
2143 at a time limit of the PXE TFTP API correctly.
2144 (grub_pxefs_close): Likewise.
2145
7fd0ee30 21462008-11-29 Robert Millan <rmh@aybabtu.com>
2147
34c44600 2148 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 2149 grub_ata_device_initialize() calls.
2150
34c44600 21512008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 2152
2153 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
2154 iteration failed.
2155 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
2156
89313780 21572008-11-28 Robert Millan <rmh@aybabtu.com>
2158
2159 Fix build on powerpc-ieee1275. Based on patch created by
2160 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
2161 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
2162 `kern/ieee1275/mmap.c'.
2163 * include/grub/powerpc/ieee1275/memory.h: New file.
2164
15257703 2165 Provide grub-install on coreboot.
2166 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
2167 (grub_install_SOURCES): New variable.
2168 * util/i386/pc/grub-install.in: Add a few condition checks to make it
2169 usable on coreboot.
2170
9fc5388a 21712008-11-25 Felix Zielcke <fzielcke@z-51.de>
2172
2173 * util/grub-fstest.c (grub_term_get_current_input): Change return type
2174 to `grub_term_input_t'.
2175 (grub_term_get_current_output): Change return type to
2176 `grub_term_output_t'.
2177
bc3a2f31 21782008-11-22 Robert Millan <rmh@aybabtu.com>
2179
34c44600 2180 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 2181 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
2182 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
2183 grub_vga_text_cls().
2184
80fc88f2 2185 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 2186 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 2187
cbf36fd3 2188 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
2189 to 0x200000 (avoids trouble with some OFW implementations, and matches
2190 with the one in Yaboot).
2191 Reported by Manoel Abranches
2192
73e8e268 21932008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 2194
2195 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
2196 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
2197
73e8e268 2198 * util/grub-mkconfig_lib.in (grub_warn): New function.
2199 (convert_system_path_to_grub_path): Use grub_warn() when issuing
2200 warnings, to obtain consistent formatting.
2201 * util/grub.d/00_header.in: Likewise.
2202 * util/update-grub_lib.in: Likewise.
2203
e94045a1 2204 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 2205 Move comment text to `#error' stanza.
e94045a1 2206
79d29fd7 2207 Harmonize ieee1275's grub_available_iterate() with the generic
2208 grub_machine_mmap_iterate() interface (fixes a recently-introduced
2209 build problem on i386-ieee1275):
2210 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
2211 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
2212 parameter `type'. Update all users of this function.
2213 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
2214 `kern/ieee1275/mmap.c'.
2215 * kern/ieee1275/init.c
2216 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
2217 with ...
2218 (grub_machine_mmap_iterate): ... this.
2219 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
2220 return type to `grub_err_t'. Update all implementations of this
2221 function prototype.
2222 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
2223 Likewise.
2224
60d6b16e 2225 Add `lsmmap' command (lists firmware-provided memory map):
2226 * commands/lsmmap.c: New file.
2227 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
2228 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
2229 variables.
2230 * conf/powerpc-ieee1275.rmk: Likewise.
2231 * conf/i386-coreboot.rmk: Likewise.
2232 * conf/i386-ieee1275.rmk: Likewise.
2233
ebaaf49b 22342008-11-19 Robert Millan <rmh@aybabtu.com>
2235
2236 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 2237 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
2238 constraints to initrd allocation (based on code from
2239 loader/i386/pc/linux.c). Without them, initrd was allocated too high
2240 for Linux to find it.
ebaaf49b 2241
dfab719f 22422008-11-14 Robert Millan <rmh@aybabtu.com>
2243
2244 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
2245 order to cope with duplicate slashes.
2246
10fc3eb9 22472008-11-14 Robert Millan <rmh@aybabtu.com>
2248
2249 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
2250 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
2251 don't want to mess with lower memory, because it is used in the Linux
2252 loader.
2253
2254 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 2255 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 2256 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
2257 is in our heap (probably as a result of it being corrupted during
2f2a3442 2258 decompression). Add #error instance with comment to explain why this
2259 loader isn't currently usable on PC/BIOS.
10fc3eb9 2260
e2e07847 22612008-11-14 Robert Millan <rmh@aybabtu.com>
2262
2263 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 2264 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 2265
fe8e8d69 22662008-11-12 Robert Millan <rmh@aybabtu.com>
2267
2268 Make loader/i386/linux.c buildable on i386-pc (although disabled).
2269
2270 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
2271 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
2272 from here ...
2273 * include/grub/i386/pc/memory.h: ... to here.
2274
976b07d0 22752008-11-12 Robert Millan <rmh@aybabtu.com>
2276
2277 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
2278 split).
2279
2280 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
2281 (grub_console_cur_color, grub_console_real_putchar)
2282 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2283 (grub_console_setcolorstate, grub_console_setcolor)
2284 (grub_console_getcolor): Move from here ...
2285 * include/grub/i386/vga_common.h: ... to here (new file).
2286
2287 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
2288 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
2289 `<grub/i386/io.h>'.
2290 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
2291 `<grub/i386/vga_common.h>'.
2292
76679cd3 22932008-11-12 Robert Millan <rmh@aybabtu.com>
2294
2295 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
2296 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
2297 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
2298 variables.
2299 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2300 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
2301
2302 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
2303 grub_console_init() with call to grub_vga_text_init().
2304 (grub_machine_fini): Replace call to
2305 grub_console_fini() with call to grub_vga_text_fini() and
2306 grub_at_keyboard_fini().
2307
2308 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
2309 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
2310 (grub_console_setcolorstate, grub_console_setcolor)
2311 (grub_console_getcolor): New function prototypes.
2312
2313 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
2314 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
2315 (grub_vga_text_setcursor): Static-ize.
2316 (grub_vga_text_term): New structure.
2317 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
2318
2319 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
2320 (grub_console_cur_color, grub_console_standard_color)
2321 (grub_console_normal_color, grub_console_highlight_color)
2322 (map_char, grub_console_putchar, grub_console_getcharwidth)
2323 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
2324 (grub_console_getcolor): Move from here ...
2325 * term/i386/vga_common.c: ... to here (same function names).
2326
95b841d3 23272008-11-12 Robert Millan <rmh@aybabtu.com>
2328
2329 Use newly-added Multiboot support in coreboot.
2330
2331 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
2332 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
2333
2334 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
2335 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
2336 (codestart): Store the MBI in `startup_multiboot_info' when we're
2337 being loaded using Multiboot.
2338
2339 * kern/i386/coreboot/init.c (grub_machine_init): Move
2340 grub_at_keyboard_init() call to beginning of function (useful for
2341 debugging). Call grub_machine_mmap_init() before attempting to use
2342 grub_machine_mmap_iterate().
2343 (grub_lower_mem, grub_upper_mem): Move from here ...
2344 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
2345 here (new file).
2346
2347 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
2348 function prototype.
2349
761ca975 23502008-11-12 Robert Millan <rmh@aybabtu.com>
2351
2352 Fix a regression introduced by the at_keyboard.mod split. Because
2353 some terminals are default on some platforms and non-default on
2354 others, the first terminal being registered determines which is
2355 going to be default.
2356
2357 * kern/term.c (grub_term_register_input): If this is the first
2358 terminal being registered, set it as the current one.
2359 (grub_term_register_output): Likewise.
2360
2361 * term/efi/console.c (grub_console_init): Do not call
2362 grub_term_set_current_output() or grub_term_set_current_input().
2363 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
2364 * term/i386/pc/console.c (grub_console_init): Likewise.
2365 (grub_console_fini): Do not call grub_term_set_current_input()
2366 (but leave grub_term_set_current_output() to restore text mode).
2367
6c529df7 23682008-11-10 Robert Millan <rmh@aybabtu.com>
2369
2370 * util/grub.d/00_header.in: Add backward compatibility check for
2371 versions of terminal.mod that don't understand `terminal_input' or
2372 `terminal_output'.
2373
132e4113 23742008-11-09 Robert Millan <rmh@aybabtu.com>
2375
2376 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
2377 `terminal_input' / `terminal_output', not `terminal'.
2378
ac293d50 23792008-11-08 Robert Millan <rmh@aybabtu.com>
2380
2381 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 2382 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 2383
0025933a 23842008-11-08 Robert Millan <rmh@aybabtu.com>
2385
2386 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 2387 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 2388 members. Update all users.
2389 * util/console.c (grub_ncurses_term): Split in ...
2390 (grub_ncurses_term_input): ... this, and ...
2391 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 2392 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 2393
37c86336 23942008-11-08 Robert Millan <rmh@aybabtu.com>
2395
2396 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
2397 (PKGDATA): Add $(pkgdata_SRCDIR).
2398 (pkglib_BUILDDIR): New variable.
2399 (pkgdata_SRCDIR): New variable.
2400 (build_env.mk): New target.
2401 (include_DATA): New variable.
2402 (install-local): Install $(include_DATA) files in $(includedir).
2403
b6c15a2d 24042008-11-07 Pavel Roskin <proski@gnu.org>
2405
d99d46f1 2406 * gendistlist.sh: Use C locale for sorting to ensure consistent
2407 output on all systems.
2408
b6c15a2d 2409 * util/grub.d/00_header.in: Remove incorrect space before
2410 "serial".
2411
c32ee8c9 24122008-11-07 Robert Millan <rmh@aybabtu.com>
2413
2414 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
2415 per specification.
2416 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
2417 * loader/multiboot_loader.c (find_multi_boot2_header): New function
2418 (based on find_multi_boot1_header).
2419 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
2420 using find_multi_boot2_header(), and abort if neither Multiboot or
2421 Multiboot headers were found.
2422
651c29b7 24232008-11-07 Robert Millan <rmh@aybabtu.com>
2424
2425 Modularize at_keyboard.mod:
2426
2427 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
2428 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
2429 (at_keyboard_mod_LDFLAGS): New variables.
2430
2431 Actual terminal split:
2432
2433 * include/grub/term.h (struct grub_term): Split in ...
2434 (struct grub_term_input): ... this, and ...
2435 (struct grub_term_output): ... this. Update all users.
2436 (grub_term_set_current): Split in ...
2437 (grub_term_set_current_input): ... this, and ...
2438 (grub_term_set_current_output): ... this.
2439 (grub_term_get_current): Split in ...
2440 (grub_term_get_current_input): ... this, and ...
2441 (grub_term_get_current_output): ... this.
2442 (grub_term_register): Split in ...
2443 (grub_term_register_input): ... this, and ...
2444 (grub_term_register_output): ... this.
2445 (grub_term_unregister): Split in ...
2446 (grub_term_unregister_input): ... this, and ...
2447 (grub_term_unregister_output): ... this.
2448 (grub_term_iterate): Split in ...
2449 (grub_term_iterate_input): ... this, and ...
2450 (grub_term_iterate_output): ... this.
2451
2452 * kern/term.c (grub_term_list): Split in ...
2453 (grub_term_list_input): ... this, and ...
2454 (grub_term_list_output): ... this. Update all users.
2455 (grub_cur_term): Split in ...
2456 (grub_cur_term_input): ... this, and ...
2457 (grub_cur_term_output): ... this. Update all users.
2458 (grub_term_set_current): Split in ...
2459 (grub_term_set_current_input): ... this, and ...
2460 (grub_term_set_current_output): ... this.
2461 (grub_term_get_current): Split in ...
2462 (grub_term_get_current_input): ... this, and ...
2463 (grub_term_get_current_output): ... this.
2464 (grub_term_register): Split in ...
2465 (grub_term_register_input): ... this, and ...
2466 (grub_term_register_output): ... this.
2467 (grub_term_unregister): Split in ...
2468 (grub_term_unregister_input): ... this, and ...
2469 (grub_term_unregister_output): ... this.
2470 (grub_term_iterate): Split in ...
2471 (grub_term_iterate_input): ... this, and ...
2472 (grub_term_iterate_output): ... this.
2473
2474 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
2475 a check for input and one for output (and only attempt to get keys
2476 from user when input works).
2477
2478 * util/grub-probe.c (grub_term_get_current): Split in ...
2479 (grub_term_get_current_input): ... this, and ...
2480 (grub_term_get_current_output): ... this.
2481 * util/grub-fstest.c: Likewise.
2482 * util/i386/pc/grub-setup.c: Likewise.
2483 * util/grub-editenv.c: Likewise.
2484
2485 Portability adjustments:
2486
2487 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
2488 `term/i386/pc/at_keyboard.c'.
2489 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
2490 grub_keyboard_controller_init() (now handled by terminal .init).
2491 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
2492 grub_at_keyboard_init().
2493 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
2494 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
2495 at_keyboard.mod via input terminal interface).
2496 * include/grub/i386/coreboot/console.h: Convert into a stub for
2497 `<grub/i386/pc/console.h>'.
2498
2499 Migrate full terminals to new API:
2500
2501 * term/efi/console.c (grub_console_term): Split into ...
2502 (grub_console_term_input): ... this, and ...
2503 (grub_console_term_output): ... this. Update all users.
2504 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
2505 (grub_ofconsole_init): Split into ...
2506 (grub_ofconsole_init_input): ... this, and ...
2507 (grub_ofconsole_init_output): ... this.
2508 (grub_ofconsole_term): Split into ...
2509 (grub_ofconsole_term_input): ... this, and ...
2510 (grub_ofconsole_term_output): ... this. Update all users.
2511 * term/i386/pc/serial.c (grub_serial_term): Split into ...
2512 (grub_serial_term_input): ... this, and ...
2513 (grub_serial_term_output): ... this. Update all users.
2514 * term/i386/pc/console.c (grub_console_term): Split into ...
2515 (grub_console_term_input): ... this, and ...
2516 (grub_console_term_output): ... this. Update all users.
2517 (grub_console_term_input): Only enable it on PC/BIOS platform.
2518 (grub_console_init): Remove grub_keyboard_controller_init() call.
2519
2520 Migrate input terminals to new API:
2521
2522 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
2523 `i386' and `i386/pc' to enable build on x86_64 (this driver is
2524 i386-specific anyway).
2525 (grub_console_checkkey): Rename to ...
2526 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
2527 users.
2528 (grub_keyboard_controller_orig): New variable.
2529 (grub_console_getkey): Rename to ...
2530 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
2531 users.
2532 (grub_keyboard_controller_init): Static-ize. Save original
2533 controller value so that it can be restored ...
2534 (grub_keyboard_controller_fini): ... here (new function).
2535 (grub_at_keyboard_term): New structure.
2536 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
2537 functions.
2538
2539 Migrate output terminals to new API:
2540
2541 * term/i386/pc/vga.c (grub_vga_term): Change type to
2542 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2543 members. Update all users.
2544 * term/gfxterm.c (grub_video_term): Change type to
2545 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
2546 members. Update all users.
2547 * include/grub/i386/pc/console.h (grub_console_checkkey)
2548 (grub_console_getkey): Do not export (no longer needed by gfxterm,
2549 etc).
2550
2551 Migrate `terminal' command and userland tools to new API:
2552
2553 * commands/terminal.c (grub_cmd_terminal): Split into ...
2554 (grub_cmd_terminal_input): ... this, and ...
2555 (grub_cmd_terminal_output): ... this.
2556 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
2557 `terminal_input' and `terminal_output'.
2558 * util/grub.d/00_header.in: Adjust `terminal' calls to new
2559 `terminal_input' / `terminal_output' API.
2560 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
2561 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
2562 provided ${GRUB_TERMINAL}, convert it).
2563
96e5d876 25642008-11-04 Robert Millan <rmh@aybabtu.com>
2565
2566 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
2567 for FreeBSD.
2568 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
2569
556f3775 25702008-11-03 Bean <bean123ch@gmail.com>
2571
2572 * kern/elf.c (grub_elf32_load): Revert to previous code.
2573 (grub_elf64_load): Likewise.
2574
2575 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
2576
926b9823 25772008-11-01 Robert Millan <rmh@aybabtu.com>
2578
2579 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
2580 (TARGET_CPPFLAGS): Likewise.
2581 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
2582
1432e958 25832008-11-01 Carles Pina i Estany <carles@pina.cat>
2584
2585 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
2586
dba3f844 25872008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 2588
2589 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
2590 addition of objects until the code is not going to be able to fail.
2591
dba3f844 25922008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 2593
2594 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
2595 (add a missing NULL check, and correct them by moving the pointer
2596 operations after the actual check).
2597
7ab28c21 25982008-10-29 Robert Millan <rmh@aybabtu.com>
2599
2600 * util/i386/pc/grub-install.in: Handle empty string as output from
2601 make_system_path_relative_to_its_root().
2602
1b7748eb 26032008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
2604
2605 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
2606 circular metadata worst case scenario. If the metadata is circular
2607 then copy the wrap in place.
2608 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
2609 project lib/format_text/layout.h
2610 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
2611
c9618ab2 26122008-10-03 Felix Zielcke <fzielcke@z-51.de>
2613
7a36edca 2614 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 2615
bf981c62 26162008-10-03 Felix Zielcke <fzielcke@z-51.de>
2617
2618 * util/update-grub_lib.in: Mention filename in warning message.
2619
6d994591 26202008-09-29 Felix Zielcke <fzielcke@z-51.de>
2621
2622 * NEWS: Update for rename of update-grub to grub-mkconfig.
2623
18ade780 26242008-09-29 Felix Zielcke <fzielcke@z-51.de>
2625
2626 * util/update-grub_lib.in: Copy to ...
2627 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 2628 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 2629 * util/update-grub.in: Rename to ...
2630 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
2631 option. Add `--output' option to allow users to specify the generated
2632 configuration file. Default to stdout.
2633 (update_grub_dir): Rename to ...
2634 (grub_mkconfig_dir): ... this.
2635 (grub_cfg): Default to an empty string.
2636 * conf/common.rmk (update-grub): Rename to ...
2637 (grub-mkconfig): ... this.
2638 (update-grub_lib): Copy to ...
2639 (grub-mkconfig_lib): ... this.
2640 (update-grub_SCRIPTS): Copy to ...
2641 (grub-mkconfig_SCRIPTS): ... this. Update all users.
2642 (update-grub_DATA): Rename to ...
2643 (grub-mkconfig_DATA): ... this.
2644
556ce6ac 26452008-09-28 Robert Millan <rmh@aybabtu.com>
2646
2647 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
2648 to `modified'. Add the real `created' field.
2649 (grub_iso9660_uuid): Use `modified' rather than `created' for
2650 constructing the UUID.
2651
26522008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 2653
2654 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
2655 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
2656
92274e85 26572008-09-28 Bean <bean123ch@gmail.com>
2658
2659 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
2660 Thanks to Christian Franke for finding this bug.
2661
add6f17a 26622008-09-25 Robert Millan <rmh@aybabtu.com>
2663
2664 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
2665 instances of grub_util_get_disk_name() (see previous commit).
2666
d2a367b8 26672008-09-25 Robert Millan <rmh@aybabtu.com>
2668
2669 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
2670 `util/i386/get_disk_name.c'.
2671 * conf/i386-efi.rmk: Likewise.
2672 * conf/x86_64-efi.rmk: Likewise.
2673 * conf/i386-coreboot.rmk: Likewise.
2674 * conf/i386-ieee1275.rmk: Likewise.
2675 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
2676 `util/ieee1275/get_disk_name.c'.
2677 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
2678 * util/ieee1275/get_disk_name.c: Remove file.
2679 * util/i386/get_disk_name.c: Remove file.
2680 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
2681 "hd%d" for device.map entries, rather than using
2682 grub_util_get_disk_name().
2683
81a06771 26842008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 2685
2686 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
2687 warning.
2688 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
2689
5a004279 26902008-09-24 Carles Pina i Estany <carles@pina.cat>
2691
2692 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
2693 Changed to 0x5100.
2694 (GRUB_TERM_PPAGE): Changed to 0x4900.
2695
397093d3 26962008-09-24 Robert Millan <rmh@aybabtu.com>
2697
2698 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
2699 macros (they were i386-pc specific).
2700 * include/grub/sparc64/ieee1275/console.h: Likewise.
2701 * include/grub/efi/console.h: Likewise.
2702
a91b6c7c 27032008-09-22 Bean <bean123ch@gmail.com>
2704
2705 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
2706 resident and in attribute list.
2707
2708 * include/grub/ntfs.h (BMP_LEN): Removed.
2709
c40fd116 27102008-09-22 Bean <bean123ch@gmail.com>
2711
81a06771 2712 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 2713 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
2714
2715 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
2716 error occurs, as grub_disk_open will call grub_disk_close, which will
2717 call p->close (scsi).
2718
81a06771 27192008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 2720
2721 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
2722 (AC_PREREQ): Bumped to 2.59.
2723 (AC_TRY_COMPILE): Replace obsolete macro with ...
2724 (AC_COMPILE_IFELSE): ... this.
2725 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
2726 (AC_LINK_IFELSE): ... this.
2727
5dc43410 27282008-09-21 Felix Zielcke <fzielcke@z-51.de>
2729
2730 * autogen.sh: Add a call to `gendistlist.sh'.
2731
9035dce4 27322008-09-19 Christian Franke <franke@computer.org>
2733
2734 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
2735 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
2736 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
2737 Export __enable_execute_stack() to modules.
2738 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
2739 New function.
2740
7fd75377 27412008-09-09 Felix Zielcke <fzielcke@z-51.de>
2742
040030b3 2743 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
2744 Sort the list.
2745
27462008-09-09 Felix Zielcke <fzielcke@z-51.de>
2747
2748 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 2749 #include <grub/util/hostdisk.h>.
2750
89d5ffcf 27512008-09-08 Robert Millan <rmh@aybabtu.com>
2752
2753 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
2754 segments when their filesz is zero (grub_file_read() interprets
81a06771 2755 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 2756 Use `lowest_segment' rather than 0 for calculating the current
2757 segment load address.
2758
40da438f 27592008-09-08 Robert Millan <rmh@aybabtu.com>
2760
2761 * util/hostdisk.c (open_device): Replace a grub_util_info() call
2762 with grub_dprintf("hostdisk", ...), as it was so verbose that it
2763 clobbered useful information.
2764
ddbf5556 27652008-09-08 Robert Millan <rmh@aybabtu.com>
2766
2767 * include/grub/util/biosdisk.h: Move to ...
2768 * include/grub/util/hostdisk.h: ... here. Update all users.
2769 * util/biosdisk.c: Move to ...
2770 * util/hostdisk.c: ... here. Update all users.
2771
783d0f48 27722008-09-07 Robert Millan <rmh@aybabtu.com>
2773
2774 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
2775 variables.
2776 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
2777 and length can be stored directly in the `mbi->mmap_addr' and
2778 `mbi->mmap_length' struct fields.
2779
548e2ea5 27802008-09-07 Robert Millan <rmh@aybabtu.com>
2781
2782 * conf/i386.rmk: New file. Provides declaration for building
2783 `cpuid.mod'.
2784 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
2785 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
2786 variables.
2787 Include `conf/i386.mk'.
2788 * conf/i386-efi.rmk: Likewise.
2789 * conf/x86_64-efi.rmk: Likewise.
2790 * conf/i386-coreboot.rmk: Likewise.
2791 * conf/i386-ieee1275.rmk: Likewise.
2792
0ea85a37 27932008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
2794
2795 Based on patch created by Colin D Bennett <colin@gibibit.com>.
2796 Adds optimization support for BGR based modes.
2797
2798 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
2799 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2800 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2801 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2802 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2803 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2804 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2805 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2806 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2807 (grub_video_i386_vbeblit_index_index): Likewise.
2808 (grub_video_i386_vbeblit_replace_directN): Added.
2809 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2810 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2811 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2812 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2813 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2814 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 2815 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 2816 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2817 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2818 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2819 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2820 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2821 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
2822
2823 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
2824 (grub_video_i386_vbefill_R8G8B8): Likewise.
2825 (grub_video_i386_vbefill_index): Likewise.
2826 (grub_video_i386_vbefill_direct32): Added.
2827 (grub_video_i386_vbefill_direct24): Likewise.
2828 (grub_video_i386_vbefill_direct16): Likewise.
2829 (grub_video_i386_vbefill_direct8): Likewise.
2830
81a06771 2831 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 2832 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
2833 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
2834 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
2835 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
2836 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 2837
0ea85a37 2838 * video/video.c (grub_video_get_blit_format): Updated to use new
2839 blit formats. Added handling for 16 bit color modes.
81a06771 2840
2841 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 2842 fillers.
2843 (common_blitter): Updated to use new blitters.
2844
2845 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
2846 Removed.
2847 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
2848 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2849 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2850 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2851 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2852 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2853 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2854 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2855 (grub_video_i386_vbeblit_index_index): Likewise.
2856 (grub_video_i386_vbeblit_replace_directN): Added.
2857 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
2858 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
2859 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
2860 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
2861 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
2862 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
2863 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
2864 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
2865 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
2866 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
2867 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
2868 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
2869 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 2870
0ea85a37 2871 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
2872 (grub_video_i386_vbefill_R8G8B8): Likewise.
2873 (grub_video_i386_vbefill_index): Likewise.
2874 (grub_video_i386_vbefill_direct32): Added.
2875 (grub_video_i386_vbefill_direct24): Likewise.
2876 (grub_video_i386_vbefill_direct16): Likewise.
2877 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 2878
0ea85a37 2879 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
2880 types.
81a06771 2881
0ea85a37 2882 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
2883 types.
81a06771 2884
0ea85a37 2885 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
2886 blitter types.
81a06771 2887
0ea85a37 2888 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
2889 types.
2890
e8a83df6 28912008-09-06 Felix Zielcke <fzielcke@z-51.de>
2892
2893 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
2894 RAID level 1.
2895
6bcd8ee5 28962008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 2897
6bcd8ee5 2898 * fs/iso9660.c (grub_iso9660_date): New structure.
2899 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
2900 (grub_iso9660_uuid): New function.
c375ae58 2901
59261157 29022008-09-05 Bean <bean123ch@gmail.com>
2903
2904 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
2905
2906 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
2907 insensitive bit for names in Win32 and Win32 & DOS namespace.
2908
2909 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
2910
2911 * include/grub/types.h (LONG_MAX): Likewise.
2912
58b6645a 29132008-09-04 Felix Zielcke <fzielcke@z-51.de>
2914
4ee55921 2915 * util/getroot.c: Include <config.h>.
2916 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
2917 add support for /dev/md/N devices and handle LVM double dash escaping.
2918
29192008-09-04 Felix Zielcke <fzielcke@z-51.de>
2920
2921 * config.guess: Update to latest version from config git.
2922 * config.sub: Likewise.
58b6645a 2923
9124f65d 29242008-09-03 Robert Millan <rmh@aybabtu.com>
2925
2926 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
2927 `disk->total_sectors'.
2928
81a06771 29292008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 2930
2931 * include/grub/normal.h: Fixed incorrect comment for
2932 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
2933
81a06771 29342008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 2935
2936 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
2937 values with defines.
2938
2939 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
2940 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
2941 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
2942 (GRUB_VBE_MODEATTR_COLOR): Likewise.
2943 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
2944 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
2945 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
2946 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
2947 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
2948 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
2949 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
2950 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
2951 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
2952 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
2953 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
2954 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
2955 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
2956 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
2957 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
2958
93d5cbf8 29592008-08-31 Robert Millan <rmh@aybabtu.com>
2960
2961 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
2962 declaration.
2963 (grub_multiboot): Fix a few warnings.
2964
21751d50 29652008-08-31 Robert Millan <rmh@aybabtu.com>
2966
2967 * loader/i386/pc/multiboot.c: Update comment not to say that
2968 boot_device support is unimplemented.
2969
e27a75c5 29702008-08-31 Robert Millan <rmh@aybabtu.com>
2971
2972 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
2973 or memory map support are unimplemented.
2974
81a06771 29752008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 2976
2977 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
2978
81a06771 29792008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 2980
2981 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
2982 total video memory in 'vbeinfo' output; show color format details for
2983 each video mode.
2984
7c5d8d95 29852008-08-30 Pavel Roskin <proski@gnu.org>
2986
2987 * util/genmoddep.c: Remove for real this time.
2988 * DISTLIST: Remove util/genmoddep.c.
2989
4cebd25a 29902008-08-30 Robert Millan <rmh@aybabtu.com>
2991
2992 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
2993 as required by Multiboot spec (it was already 4-byte aligned, but
2994 only by chance).
2995
b497a269 29962008-08-29 Pavel Roskin <proski@gnu.org>
2997
e3925185 2998 * kern/powerpc/ieee1275/crt0.S: Rename to ...
2999 * kern/powerpc/ieee1275/startup.S: ... this.
3000 * conf/powerpc-ieee1275.rmk: Adjust for the above.
3001 * DISTLIST: Likewise.
3002
b497a269 3003 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
3004 grub/cpu/kernel.h. Add start label for consistency with other
3005 platforms. Add grub_prefix immediately after start. Add jump
3006 to the code after grub_prefix.
3007 * include/grub/powerpc/kernel.h: Provide valid values for
3008 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
3009
6e5a42fe 30102008-08-29 Bean <bean123ch@gmail.com>
3011
3012 * configure.ac: Change host_os to cygwin for mingw.
3013 (asprintf): New check for function.
3014
3015 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
3016 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
3017
3018 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 3019 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 3020 sync, sleep and grub_util_get_disk_size for mingw.
3021
3022 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
3023 to get size in mingw.
3024 (open_device): Use flag O_BINARY if it's defined.
3025 (find_root_device): Add dummy code for mingw.
3026
3027 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
3028 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
3029 (get_scsi_disk_name): Return 0 for mingw.
3030
3031 * util/hostfs.c: #include <grub/util/misc.h>.
3032 (grub_hostfs_open): Use "rb" flag to open file, use
3033 grub_util_get_disk_size to get disk size for mingw.
3034
3035 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
3036 (asprintf): New function if HAVE_ASPRINTF is not set.
3037 (sync): New function for mingw.
3038 (sleep): Likewise.
3039 (grub_util_get_disk_size): Likewise.
3040
ab3f2673 30412008-08-28 Pavel Roskin <proski@gnu.org>
3042
3043 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3044 kern/time.c.
3045
1c282483 30462008-08-28 Robert Millan <rmh@aybabtu.com>
3047
3048 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
3049
678e849c 30502008-08-28 Robert Millan <rmh@aybabtu.com>
3051
3052 Change find_grub_drive() syntax so it doesn't prevent it from
3053 detecting NULL names as errors.
3054
3055 * util/biosdisk.c (find_grub_drive): Move free slot search code
3056 from here ...
3057 (find_free_slot): ... to here.
3058 (read_device_map): Use find_free_slot() to search for free slots.
3059
965c75ca 30602008-08-27 Marco Gerards <marco@gnu.org>
3061
3062 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
3063 (scsi_mod_SOURCES): New variable.
3064 (scsi_mod_CFLAGS): Likewise
3065 (scsi_mod_LDFLAGS): Likewise.
3066
3067 * disk/scsi.c: New file.
3068
3069 * include/grub/scsi.h: Likewise.
3070
3071 * include/grub/scsicmd.h: Likewise.
3072
3073 * disk/ata.c: Include <grub/scsi.h>.
3074 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
3075 instead.
3076 (grub_ata_iterate): Skip ATAPI devices.
3077 (grub_ata_open): Only handle ATAPI devices.
3078 (struct grub_atapi_read): Removed.
3079 (grub_atapi_readsector): Likewise.
3080 (grub_ata_read): No longer handle ATAPI devices.
3081 (grub_ata_write): Likewise.
3082 (grub_atapi_iterate): New function.
3083 (grub_atapi_read): Likewise.
3084 (grub_atapi_write): Likewise.
3085 (grub_atapi_open): Likewise.
3086 (grub_atapi_close): Likewise.
3087 (grub_atapi_dev): New variable.
3088 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
3089 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
3090
3091 * include/grub/disk.h (enum grub_disk_dev_id): Add
3092 `GRUB_DISK_DEVICE_SCSI_ID'.
3093
c07ae501 30942008-08-26 Robert Millan <rmh@aybabtu.com>
3095
3096 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
3097 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
3098 descriptive.
3099
5ed20adc 31002008-08-23 Bean <bean123ch@gmail.com>
3101
3102 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
3103 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
3104 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
3105 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
3106 dm_nv.mod.
3107 (raid5rec_mod_SOURCES): New macro.
3108 (raid5rec_mod_CFLAGS): Likewise.
3109 (raid5rec_mod_LDFLAGS): Likewise.
3110 (raid6rec_mod_SOURCES): Likewise.
3111 (raid6rec_mod_CFLAGS): Likewise.
3112 (raid6rec_mod_LDFLAGS): Likewise.
3113 (mdraid_mod_SOURCES): Likewise.
3114 (mdraid_mod_CFLAGS): Likewise.
3115 (mdraid_mod_LDFLAGS): Likewise.
3116 (dm_nv_mod_SOURCES): Likewise.
3117 (dm_nv_mod_CFLAGS): Likewise.
3118 (dm_nv_mod_LDFLAGS): Likewise.
3119
3120 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
3121 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
3122 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
3123
3124 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
3125 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
3126
3127 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3128
3129 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3130
3131 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3132
3133 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3134
3135 * disk/raid5_recover.c: New file.
3136
3137 * disk/raid6_recover.c: Likewise.
3138
3139 * disk/mdraid_linux.c: Likewise.
3140
3141 * disk/dmraid_nvidia.c: Likewise.
3142
3143 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
3144 ULONG_MAX.
3145
3146 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
3147 calculate the size of raid device.
3148 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
3149 different layout of raid5.
3150 (grub_raid_scan_device): Remove code specific to mdraid.
3151 (grub_raid_list): New variable.
3152 (free_array): New function.
3153 (grub_raid_register): Likewise.
3154 (grub_raid_unregister): Likewise.
3155 (grub_raid_rescan): Likewise.
3156 (GRUB_MOD_INIT): Don't iterate device here.
3157 (GRUB_MOD_FINI): Use free_array to release resource.
3158
3159 * include/grub/raid.h: Remove macro and structure specific to mdraid.
3160 (grub_raid5_recover_func_t): New function variable type.
3161 (grub_raid6_recover_func_t): Likewise.
3162 (grub_raid5_recover_func): New variable.
3163 (grub_raid6_recover_func): Likewise.
3164 (grub_raid_register): New function.
3165 (grub_raid_unregister): Likewise.
3166 (grub_raid_rescan): Likewise.
3167 (grub_raid_block_xor): Likewise.
3168
3169 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
3170 (CMD_CRC): New macro.
3171 (part): Removed.
3172 (read_file): Handle device as well as file.
3173 (cmd_crc): New function.
3174 (fstest): Handle multiple disks.
3175 (options): Remove part, raw and long, add root and diskcount.
3176 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 3177 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 3178 add handling for the new options, support multiple disks.
3179
3180 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
3181
29c18915 31822008-08-23 Bean <bean123ch@gmail.com>
3183
3184 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
3185
3186 * genfslist.sh: Ignore kernel.mod.
3187
3188 * genpartmaplist.sh: Likewise.
3189
8415f261 31902008-08-23 Robert Millan <rmh@aybabtu.com>
3191
3192 * util/getroot.c (find_root_device): Skip anything that starts with
3193 a dot, not just directories. This avoids things like /dev/.tmp.md0.
3194
d5a7dc5b 31952008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 3196
d5a7dc5b 3197 * util/update-grub.in (GRUB_GFXMODE): Export variable.
3198 * util/grub.d/00_header.in: Allow the administrator to change default
3199 gfxmode via ${GRUB_GFXMODE}.
3200
380cfbb4 32012008-08-21 Felix Zielcke <fzielcke@z-51.de>
3202
3203 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
3204
c9baafe7 32052008-08-21 Robert Millan <rmh@aybabtu.com>
3206
3207 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
3208 loader.
3209 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
3210 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
3211
e290bef2 32122008-08-20 Carles Pina i Estany <carles@pina.cat>
3213
3214 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
3215 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
3216
f9dbfc96 32172008-08-19 Robert Millan <rmh@aybabtu.com>
3218
3219 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
3220 (struct grub_virtual_screen): Remove `cursor_color'.
3221 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
3222 initialization.
3223 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
3224
dd6bd6ab 32252008-08-18 Robert Millan <rmh@aybabtu.com>
3226
3227 Unify (identical) linux_normal.c files.
3228 * loader/i386/efi/linux_normal.c: Move from here ...
3229 * loader/linux_normal.c: ... to here. Update all users.
3230 * loader/i386/pc/linux_normal.c: Delete. Update all users.
3231 * loader/i386/ieee1275/linux_normal.c: Likewise.
3232
7f42f83e 32332008-08-18 Robert Millan <rmh@aybabtu.com>
3234
3235 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
3236 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
3237 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
3238 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
3239 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
3240 New macros.
3241 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
3242 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
3243 (GRUB_LINUX_CL_END_OFFSET): ... to here.
3244 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
3245 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
3246 (GRUB_EFI_CL_END_OFFSET): Rename to ...
3247 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
3248 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
3249 Initialize `params->video_cursor_x' and `params->video_cursor_y'
3250 portably using grub_getxy().
3251 Replace `-EFI' with `-bzImage' in boot message.
3252
38487ddb 32532008-08-17 Robert Millan <rmh@aybabtu.com>
3254
3255 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
3256
deceb3ec 32572008-08-17 Robert Millan <rmh@aybabtu.com>
3258
3259 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
3260
3261 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
3262 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
3263 (grub_machine_mmap_iterate): New function declaration.
3264 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
3265 structure.
3266 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
3267 macros.
3268
3269 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
3270 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
3271 Move e820 parsing from here ...
3272 * kern/i386/pc/mmap.c: New file.
3273 (grub_machine_mmap_iterate): ... to here.
3274
3275 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
3276 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
3277 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
3278 (grub_available_iterate): Redeclare to return `void', and redeclare
3279 its hook to use grub_uint64_t as addr and size parameters, and rename
3280 to ...
3281 (grub_machine_mmap_iterate): ... this. Update all users.
3282
3283 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
3284 to make it more readable. Rename to ...
3285 (grub_machine_mmap_iterate): ... this.
3286
3287 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
3288 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
3289 (grub_multiboot): Allocate an extra region after the payload, and fill
3290 it with a Multiboot memory map. Adjust a.out loader to calculate size
3291 with the extra space.
3292 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
3293 with the extra space.
3294
f8aa0f43 32952008-08-17 Carles Pina i Estany <carles@pina.cat>
3296
9807deb9 3297 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 3298
605f5bb6 32992008-08-17 Felix Zielcke <fzielcke@z-51.de>
3300
3301 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
3302 mdate-sh to the list `find' searches for.
3303 * DISTLIST: Regenerated.
3304
210db6c6 33052008-08-16 Felix Zielcke <fzielcke@z-51.de>
3306
3307 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
3308 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 3309 genmoddep.awk, gensymlist.sh.in.
3310 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 3311 * DISTLIST: Regenerated.
48cdbfd4 3312 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 3313
1082b929 33142008-08-16 Robert Millan <rmh@aybabtu.com>
3315
3316 * disk/raid.c (grub_raid_init): Handle/report errors set by
3317 grub_device_iterate().
3318 * disk/lvm.c (grub_lvm_init): Likewise.
3319
42ce5170 33202008-08-15 Bean <bean123ch@gmail.com>
3321
3322 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3323 and datehook.mod.
3324 (datetime_mod_SOURCES): New macro.
3325 (datetime_mod_CFLAGS): Likewise.
3326 (datetime_mod_LDFLAGS): Likewise.
3327 (date_mod_SOURCES): Likewise.
3328 (date_mod_CFLAGS): Likewise.
3329 (date_mod_LDFLAGS): Likewise.
3330 (datehook_mod_SOURCES): Likewise.
3331 (datehook_mod_CFLAGS): Likewise.
3332 (datehook_mod_LDFLAGS): Likewise.
3333
3334 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3335 and datehook.mod.
3336 (datetime_mod_SOURCES): New macro.
3337 (datetime_mod_CFLAGS): Likewise.
3338 (datetime_mod_LDFLAGS): Likewise.
3339 (date_mod_SOURCES): Likewise.
3340 (date_mod_CFLAGS): Likewise.
3341 (date_mod_LDFLAGS): Likewise.
3342 (datehook_mod_SOURCES): Likewise.
3343 (datehook_mod_CFLAGS): Likewise.
3344 (datehook_mod_LDFLAGS): Likewise.
3345
3346 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3347 and datehook.mod.
3348 (datetime_mod_SOURCES): New macro.
3349 (datetime_mod_CFLAGS): Likewise.
3350 (datetime_mod_LDFLAGS): Likewise.
3351 (date_mod_SOURCES): Likewise.
3352 (date_mod_CFLAGS): Likewise.
3353 (date_mod_LDFLAGS): Likewise.
3354 (datehook_mod_SOURCES): Likewise.
3355 (datehook_mod_CFLAGS): Likewise.
3356 (datehook_mod_LDFLAGS): Likewise.
3357
3358 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3359 and datehook.mod.
3360 (datetime_mod_SOURCES): New macro.
3361 (datetime_mod_CFLAGS): Likewise.
3362 (datetime_mod_LDFLAGS): Likewise.
3363 (date_mod_SOURCES): Likewise.
3364 (date_mod_CFLAGS): Likewise.
3365 (date_mod_LDFLAGS): Likewise.
3366 (datehook_mod_SOURCES): Likewise.
3367 (datehook_mod_CFLAGS): Likewise.
3368 (datehook_mod_LDFLAGS): Likewise.
3369
3370 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
3371 and datehook.mod.
3372 (datetime_mod_SOURCES): New macro.
3373 (datetime_mod_CFLAGS): Likewise.
3374 (datetime_mod_LDFLAGS): Likewise.
3375 (date_mod_SOURCES): Likewise.
3376 (date_mod_CFLAGS): Likewise.
3377 (date_mod_LDFLAGS): Likewise.
3378 (datehook_mod_SOURCES): Likewise.
3379 (datehook_mod_CFLAGS): Likewise.
3380 (datehook_mod_LDFLAGS): Likewise.
3381
3382 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
3383
3384 * commands/date.c: New file.
3385
3386 * hook/datehook.c: Likewise.
3387
3388 * include/grub/lib/datetime.h: Likewise.
3389
3390 * include/grub/i386/cmos.h: Likewise.
3391
3392 * lib/datetime.c: Likewise.
3393
3394 * lib/i386/datetime.c: Likewise.
3395
3396 * lib/efi/datetime.c: Likewise.
3397
0e9242da 33982008-08-14 Robert Millan <rmh@aybabtu.com>
3399
3400 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
3401 (grub_mkelfimage_SOURCES): New variable.
3402 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
3403
3404 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
3405 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
3406 * conf/powerpc-ieee1275.rmk: Likewise.
3407 * conf/i386-ieee1275.rmk: Likewise.
3408
3409 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
3410 * kern/i386/coreboot/init.c: Likewise.
3411
3412 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
3413 with `<grub/cpu/kernel.h>'.
3414 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
3415 to ...
3416 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
3417 * kern/i386/coreboot/startup.S: Likewise.
3418
3419 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
3420 (GRUB_MOD_GAP): Remove.
3421 * include/grub/powerpc/kernel.h: New file.
3422 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
3423 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3424 * include/grub/i386/kernel.h: New file.
3425 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
3426 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
3427 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
3428
3429 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
3430 `grub-mkelfimage'.
3431 Use --directory when invoking grub_mkimage.
3432
3433 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
3434 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
3435 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
3436 and GRUB_KERNEL_CPU_PREFIX.
3437
b86408f8 34382008-08-14 Felix Zielcke <fzielcke@z-51.de>
3439
d5e619ca 3440 * include/grub/err.h (grub_err_printf): New function prototype.
3441 * util/misc.c (grub_err_printf): New function.
3442 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
3443 grub_printf.
3444 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 3445
7161f0e0 34462008-08-13 Robert Millan <rmh@aybabtu.com>
3447
3448 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
3449
a1967522 34502008-08-13 Robert Millan <rmh@aybabtu.com>
3451
3452 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
3453 boot entry.
3454
371458b5 34552008-08-12 Robert Millan <rmh@aybabtu.com>
3456
3457 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
3458 of the relocation code from here ...
3459 (grub_multiboot): ... to here.
3460 (forward_relocator, backward_relocator): Move from here ...
3461 * kern/i386/loader.S (grub_multiboot_forward_relocator)
3462 (grub_multiboot_backward_relocator): ... to here.
3463 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
3464 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
3465 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
3466 (grub_multiboot_forward_relocator_end)
3467 (grub_multiboot_backward_relocator)
3468 (grub_multiboot_backward_relocator_end): New variables.
3469
05f9452b 34702008-08-12 Bean <bean123ch@gmail.com>
3471
3472 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
3473
20024ab0 34742008-08-11 Robert Millan <rmh@aybabtu.com>
3475
3476 * kern/i386/linuxbios/startup.S: Move from here ...
3477 * kern/i386/coreboot/startup.S: ... to here.
3478
3479 * kern/i386/linuxbios/init.c: Move from here ...
3480 * kern/i386/coreboot/init.c: ... to here.
3481
3482 * kern/i386/linuxbios/table.c: Move from here ...
3483 * kern/i386/coreboot/mmap.c: ... to here.
3484
3485 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
3486
e352e9cd 34872008-08-11 Robert Millan <rmh@aybabtu.com>
3488
3489 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
3490 errors. Leave it to the upper layer to handle them.
3491
2d05bc6a 34922008-08-09 Christian Franke <franke@computer.org>
3493
3494 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
3495 * conf/common.rmk: Install `grub-pe2elf' only if requested.
3496 Install `grub.d/10_windows' only on Cygwin.
3497 * configure.ac: Add subst of `target_os'.
3498 Check `target_os' also before setting TARGET_OBJ2ELF.
3499 Add `--enable-grub-pe2elf'.
3500
042bd419 35012008-08-08 Robert Millan <rmh@aybabtu.com>
3502
3503 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3504 (grub_last_time): Change type to grub_uint64_t.
3505 (grub_disk_open): Migrate code from to using grub_get_time_ms().
3506 (grub_disk_close): Likewise.
3507
3508 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
3509 (run_menu): Migrate code from to using grub_get_time_ms().
3510
3511 * util/misc.c (grub_get_time_ms): New function.
3512
7f280db5 35132008-08-08 Marco Gerards <marco@gnu.org>
3514
3515 * disk/ata.c (grub_ata_regget): Change return type to
3516 `grub_uint8_t'.
3517 (grub_ata_regget2): Likewise.
3518 (grub_ata_wait_status): New function.
3519 (grub_ata_wait_busy): Removed function, updated all users to use
3520 `grub_ata_wait_status'.
3521 (grub_ata_wait_drq): Likewise.
3522 (grub_ata_cmd): New function.
3523 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
3524 error handling.
3525 (grub_ata_pio_write): Add error handling.
3526 (grub_atapi_identify): Likewise.
3527 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
3528 handling.
3529 (grub_ata_identify): Use `grub_ata_cmd' and improve error
3530 handling. Actually use the detected registers. Reorder the
3531 detection logic such that it is easier to read.
3532 (grub_ata_pciinit): Do not assign the same ID to each controller.
3533 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
3534 handling.
3535 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
3536
3537 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
3538
1fbc5e66 35392008-08-08 Marco Gerards <marco@gnu.org>
3540
3541 * NEWS: Update.
3542
819ce6c0 35432008-08-07 Bean <bean123ch@gmail.com>
3544
3545 * include/grub/x86_64/pci.h: New file.
3546
5c41d44d 35472008-08-07 Christian Franke <franke@computer.org>
3548
3549 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
3550 (TIMER2_GATE): Likewise.
3551 (grub_pit_wait): Add enable/disable of the timer2 gate
3552 bit of port 0x61. This fixes a possible infinite loop.
3553
5ebc275d 35542008-08-07 Bean <bean123ch@gmail.com>
3555
3556 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
3557 kern/i386/tsc.c and kern/i386/pit.c.
3558
3559 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
3560 x86_64 platform.
3561
3562 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
3563 <grub/i386/tsc.h>.
3564
3565 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
3566
e383b3d0 35672008-08-07 Bean <bean123ch@gmail.com>
3568
3569 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
3570
3571 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
3572
3573 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
3574 multiple inclusion. Add #include <grub/types.h>.
3575
1cbb58ac 35762008-08-06 Christian Franke <franke@computer.org>
3577
3578 * conf/common.rmk: Build and install `10_windows'.
3579 * util/grub.d/10_windows.in: New script.
3580
337f5a1e 35812008-08-06 Pavel Roskin <proski@gnu.org>
3582
3583 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
3584
057bc4ac 35852008-08-06 Robert Millan <rmh@aybabtu.com>
3586
3587 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
3588 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
3589
2b99f123 35902008-08-06 Bean <bean123ch@gmail.com>
3591
3592 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
3593 (grub_pxefs_fs_int): Remove dummy definition.
3594 (grub_pxefs_open): Use data->block_size to store the current block
3595 size setting.
3596 (grub_pxefs_read): Use block size stored in data->block_size. As the
3597 value of grub_pxe_blksize can be changed after the file is opened.
3598
9f0234cb 35992008-08-06 Bean <bean123ch@gmail.com>
3600
3601 * fs/i386/pc/pxe.c (curr_file): new variable.
3602 (grub_pxefs_open): Simply the handling of pxe file system. Don't
3603 require the dummy internal file system anymore.
3604 (grub_pxefs_read): Removed.
3605 (grub_pxefs_close): Likewise.
3606 (grub_pxefs_fs_int): Likewise.
3607 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
3608 connection when we switch file.
3609 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
3610
a55d42e0 36112008-08-06 Robert Millan <rmh@aybabtu.com>
3612
3613 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
3614 `halt.mod'.
3615 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
3616 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
3617
3618 * kern/i386/halt.c: New file.
3619 * kern/i386/reboot.c: Likewise.
3620 * include/grub/i386/reboot.h: Likewise.
3621 * include/grub/i386/halt.h: Likewise.
3622
3623 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
3624 Include `<grub/cpu/halt.h>'.
3625 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
3626 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
3627
3628 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
3629 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
3630 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
3631 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
3632 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
3633 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
3634 from here ...
3635 * include/grub/i386/at_keyboard.h: ... to here.
3636
24371d26 36372008-08-05 Robert Millan <rmh@aybabtu.com>
3638
3639 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
3640 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
3641 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
3642 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3643 `kern/generic/millisleep.c'.
3644
3645 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
3646 instead of grub_get_rtc().
3647 (grub_tsc_init): Initialize `tsc_boot_time'.
3648
3649 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
3650 (grub_machine_init): Use grub_tsc_init() rather than
3651 installing an RTC-based handler via grub_install_get_time_ms().
3652
3653 * kern/i386/pit.c: New file.
3654 * include/grub/i386/pit.h: Likewise.
3655
9e7007b3 36562008-08-05 Bean <bean123ch@gmail.com>
3657
3658 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
3659
3660 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
3661 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
3662 (pxe_mod_SOURCES): New macro.
3663 (pxe_mod_CFLAGS): Likewise.
3664 (pxe_mod_LDFLAGS): Likewise.
3665 (pxecmd_mod_SOURCES): Likewise.
3666 (pxecmd_mod_CFLAGS): Likewise.
3667 (pxecmd_mod_LDFLAGS): Likewise.
3668
3669 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
3670 (grub_pxe_call): Likewise.
3671
3672 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
3673
3674 * commands/i386/pc/pxecmd.c: New file.
3675
9f0234cb 3676 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 3677
3678 * include/grub/i386/pc/pxe.h: Likewise.
3679
6977d49f 36802008-08-05 Bean <bean123ch@gmail.com>
3681
3682 * util/console.c (grub_console_cur_color): New variable.
3683 (grub_console_standard_color): Likewise.
3684 (grub_console_normal_color): Likewise.
3685 (grub_console_highlight_color): Likewise.
3686 (color_map): Likewise.
3687 (use_color): Likewise.
3688 (NUM_COLORS): New macro.
3689 (grub_ncurses_setcolorstate): Handle color properly.
3690 (grub_ncurses_setcolor): Don't change color here, just remember the
3691 settings, color will be set in grub_ncurses_setcolorstate.
3692 (grub_ncurses_getcolor): New function.
3693 (grub_ncurses_init): Initialize color pairs.
3694 (grub_ncurses_term): New member grub_ncurses_getcolor.
3695
9c2ff3ee 36962008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 3697
9c2ff3ee 3698 High resolution timer support. Implemented for x86 CPUs using TSC.
3699 Extracted generic grub_millisleep() so it's linked in only as needed.
3700 This requires a Pentium compatible CPU; if the RDTSC instruction is
3701 not supported, then it falls back on the generic grub_get_time_ms()
3702 implementation that uses the machine's RTC.
3703
3704 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
3705 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
3706 `kern/generic/millisleep.c'.
3707
3708 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
3709 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
3710
3711 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
3712 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
3713
3714 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3715
3716 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3717 `kern/generic/millisleep.c'.
3718
3719 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
3720
3721 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
3722
3723 * kern/generic/rtc_get_time_ms.c: New file.
3724
3725 * kern/generic/millisleep.c: New file.
337f5a1e 3726
9c2ff3ee 3727 * kern/misc.c: Don't include
3728 <kern/time.h> anymore.
3729 (grub_millisleep_generic): Removed.
3730
3731 * commands/sleep.c (grub_interruptible_millisleep): Uses
3732 grub_get_time_ms() instead of grub_get_rtc().
3733
3734 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
3735 function.
3736 (grub_cpu_is_cpuid_supported): New inline function.
3737 (grub_cpu_is_tsc_supported): New inline function.
3738 (grub_tsc_init): New function prototype.
3739 (grub_tsc_get_time_ms): New function prototype.
3740
3741 * kern/i386/tsc.c (grub_get_time_ms): New file.
3742
3743 * include/grub/time.h: Include <grub/types.h.
3744 (grub_millisleep_generic): Removed.
3745 (grub_get_time_ms): New prototype.
3746 (grub_install_get_time_ms): New prototype.
3747 (grub_rtc_get_time_ms): New prototype.
3748
3749 * kern/time.c (grub_get_time_ms): New function.
3750 (grub_install_get_time_ms): New function.
3751
3752 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
3753 <grub/time.h> anymore.
3754 (grub_millisleep): Removed.
3755 (grub_machine_init): Call grub_tsc_init.
3756
3757 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
3758 get_time_ms() implementation.
3759
3760 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
3761 (ieee1275_get_time_ms): New function.
3762 (grub_machine_init): Install get_time_ms() implementation.
3763
3764 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
3765 (grub_machine_init): Call grub_tsc_init().
3766 (grub_millisleep): Removed.
bf06a93f 3767
9c2ff3ee 3768 * kern/ieee1275/init.c (grub_millisleep): Removed.
3769 (grub_machine_init): Install ieee1275_get_time_ms()
3770 implementation.
3771 (ieee1275_get_time_ms): New function.
3772 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
3773 real work.
3774
9ec92aaf 37752008-08-05 Marco Gerards <marco@gnu.org>
3776
3777 * disk/ata.c: Include <grub/pci.h>.
3778 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
3779 (grub_ata_initialize): Rewritten.
3780 (grub_ata_device_initialize): New function.
3781
8d23f507 37822008-08-04 Pavel Roskin <proski@gnu.org>
3783
3784 * kern/main.c: Include grub/mm.h.
3785
5e15ee3d 37862008-08-04 Robert Millan <rmh@aybabtu.com>
3787
3788 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
3789 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
3790 corruption problem).
3791
a9053f8f 37922008-08-04 Robert Millan <rmh@aybabtu.com>
3793
3794 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
3795 warnings introduced in my last commit.
3796
dd19c7d7 37972008-08-03 Robert Millan <rmh@aybabtu.com>
3798
3799 Make PCI available on all i386 architectures.
3800
3801 * include/grub/i386/pc/pci.h: Move from here ...
3802 * include/grub/i386/pci.h: ... to here.
3803
3804 * include/grub/i386/pc/pci.h: Remove.
3805 * include/grub/i386/efi/pci.h: Remove.
3806 * include/grub/x86_64/efi/pci.h: Remove.
3807
3808 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
3809 `<grub/cpu/pci.h>'.
3810
3811 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
3812 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
3813 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
3814
3815 * conf/i386-ieee1275.rmk: Likewise.
3816
e14a6184 38172008-08-03 Robert Millan <rmh@aybabtu.com>
3818
3819 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
3820 (grub_console_setcursor): Make it possible to set cursor off.
3821
52768e37 38222008-08-03 Robert Millan <rmh@aybabtu.com>
3823
3824 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
3825 of modules instead of assuming which platform provides what.
3826 * util/update-grub.in: Likewise.
3827
2d52f57f 38282008-08-03 Robert Millan <rmh@aybabtu.com>
3829
3830 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
3831 instead of `grub_install_dos_part' to determine whether a drive needs
3832 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 3833 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 3834
2a5cd121 38352008-08-02 Robert Millan <rmh@aybabtu.com>
3836
3837 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
3838
93808428 38392008-08-02 Robert Millan <rmh@aybabtu.com>
3840
3841 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
3842 of informational grub_dprintf() calls.
3843
3bd0a12a 38442008-08-02 Robert Millan <rmh@aybabtu.com>
3845
3846 * disk/memdisk.c (memdisk_size): Don't initialize.
3847 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
3848
3849 * include/grub/i386/pc/kernel.h
3850 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
3851 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
3852 (grub_memdisk_image_size, grub_arch_memdisk_addr)
3853 (grub_arch_memdisk_size): Remove.
3854
3855 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
3856 field (was only used to transfer a constant). Add `type' field to
3857 support multiple module types.
3858 (grub_module_iterate): New function.
3859
3860 * kern/device.c (grub_device_open): Do not hide error messages
3861 when grub_disk_open() fails. Use grub_print_error() instead.
3862
3863 * kern/i386/pc/init.c (grub_arch_modules_addr)
3864 (grub_arch_memdisk_size): Remove functions.
3865 (grub_arch_modules_addr): Return the module address in high memory
3866 (now that it isn't copied anymore).
3867
3868 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
3869 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
3870 decompression routine (grub_total_module_size already includes that
3871 now). Don't copy modules back to low memory.
3872
3873 * kern/main.c: Include `<grub/mm.h>'.
3874 (grub_load_modules): Split out (and use) ...
3875 (grub_module_iterate): ... this function, which iterates through
3876 module objects and runs a hook.
3877 Comment out grub_mm_init_region() call, as it would cause non-ELF
3878 modules to be overwritten.
3879
3880 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
3881 the memdisk image in its own region, make it part of the module list.
3882 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
3883 (main): Parse --memdisk|-m option, and pass user-provided path as
3884 parameter to generate_image().
3885 (add_segments): Pass `memdisk_path' down to load_modules().
3886 (load_modules): Embed memdisk image in module section when requested.
3887 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
3888 `header.type' instead of `header.offset'.
3889
3890 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
3891 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
3892 (memdisk_mod_LDFLAGS): New variables.
3893 * conf/i386-coreboot.rmk: Likewise.
3894 * conf/i386-ieee1275.rmk: Likewise.
3895
a927cc73 38962008-08-02 Robert Millan <rmh@aybabtu.com>
3897
3898 * loader/i386/pc/multiboot.c (playground, forward_relocator)
3899 (backward_relocator): New variables. Used to allocate and relocate
3900 the payload, respectively.
3901 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 3902 address, install the appropriate relocator code in each bound of
a927cc73 3903 the payload, and set the entry point such that
3904 grub_multiboot_real_boot() will jump to one of them.
3905
3906 * kern/i386/loader.S (grub_multiboot_payload_size)
3907 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3908 (grub_multiboot_payload_entry_offset): New variables.
3909 (grub_multiboot_real_boot): Set cpu context to what the relocator
3910 expects, and jump to the relocator instead of the payload.
3911
3912 * include/grub/i386/loader.h (grub_multiboot_payload_size)
3913 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
3914 (grub_multiboot_payload_entry_offset): Export.
3915
b15d8a0c 39162008-08-01 Bean <bean123ch@gmail.com>
3917
3918 * normal/menu_entry.c (editor_getline): Don't return the original
3919 string as result, as it will be released by lexer once it has done
3920 using it.
3921
cdfb3d22 39222008-08-01 Robert Millan <rmh@aybabtu.com>
3923
3924 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
3925 within menuentries, not before them.
3926 util/grub.d/10_hurd.in: Likewise.
3927
9175e93d 39282008-08-01 Bean <bean123ch@gmail.com>
3929
3930 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
3931 (bufio_mod_SOURCES): New macro.
3932 (bufio_mod_CFLAGS): Likewise.
3933 (bufio_mod_LDFLAGS): Likewise.
3934
3935 * include/grub/bufio.h: New file.
3936
3937 * io/bufio.c: Likewise.
3938
3939 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
3940 (grub_video_reader_png): Use grub_buffile_open to open file.
3941
3942 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
3943 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
3944
3945 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
3946 (grub_video_reader_tga): Use grub_buffile_open to open file.
3947
3948 * font/manager.c: Include <grub/bufio.h>.
3949 (add_font): Use grub_buffile_open to open file.
3950
3d8383e7 39512008-07-31 Robert Millan <rmh@aybabtu.com>
3952
3953 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
3954 ELF segments, use a macro for arbitrarily accessing any of them instead
3955 of preparing a pointer that allows access to one at a time.
3956 (grub_multiboot_load_elf64): Likewise.
3957
16e641b6 39582008-07-31 Bean <bean123ch@gmail.com>
3959
3960 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
3961 GRUB_KERNEL_MACHINE_DATA_END.
3962
59198b72 39632008-07-30 Robert Millan <rmh@aybabtu.com>
3964
3965 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
3966 Increase from 0x50 to 0x60.
3967 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
3968 use UUIDs to identify the root drive for them. If that's not
3969 possible, abort.
3970 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
3971 check, for cross-disk installs.
3972
ae88bca3 39732008-07-30 Robert Millan <rmh@aybabtu.com>
3974
3975 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
3976 is non-empty, use it to set the `prefix' environment variable instead
3977 of the usual approach.
3978 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
3979 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
3980 environment variable instead of dummy make_install_device().
3981
3982 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
3983 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 3984 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 3985
3986 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
3987 New variable reference.
3988 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
3989 New macro. Defines offset of `grub_prefix' within startup.S (relative
3990 to `start').
3991 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
3992 section within startup.S (relative to `start').
3993 * include/grub/i386/coreboot/kernel.h: Likewise.
3994
3995 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
3996 Overwrite grub_prefix with its contents, at the beginning of the
3997 first segment.
3998 (main): Understand -p|--prefix.
3999
14f41dd1 40002008-07-30 Robert Millan <rmh@aybabtu.com>
4001
4002 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
4003
4ca049a3 40042008-07-30 Robert Millan <rmh@aybabtu.com>
4005
4006 * term/i386/pc/vga_text.c (grub_console_cls): Use
4007 grub_console_gotoxy() to go back to beginning of the screen.
4008 Found by Patrick Georgi <patrick.georgi@coresystems.de>
4009
2921d337 40102008-07-29 Christian Franke <franke@computer.org>
4011
4012 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
4013 Add conversion of emulated mount points on Cygwin.
4014
b609876d 40152008-07-29 Christian Franke <franke@computer.org>
4016
4017 * util/update-grub.in: Add a check for admin
4018 group on Cygwin.
4019 Remove old `grub.cfg.new' before creation.
4020 Add `-f' to `mv' to handle the different filesystem
4021 semantics of Windows.
4022
e93e4679 40232008-07-29 Bean <bean123ch@gmail.com>
4024
4025 * normal/main.c (get_line): Fix buffer overflow bug.
4026
41694fd0 40272008-07-28 Robert Millan <rmh@aybabtu.com>
4028
4029 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
4030 (struct grub_apple_header): New struct. Describes the layout of
4031 the partmap header.
4032 (apple_partition_map_iterate): Check the header magic as well as the
4033 partition magic (which was already being checked).
4034
cfd0b4e6 40352008-07-28 Pavel Roskin <proski@gnu.org>
4036
4037 * genmk.rb: Add a warning to the beginning of the output that
4038 it's a generated file and should not be edited.
4039
93cce016 40402008-07-28 Robert Millan <rmh@aybabtu.com>
4041
4042 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
4043 with the same number are found, just use issue a warning with
4044 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 4045
cd1df915 40462008-07-27 Robert Millan <rmh@aybabtu.com>
4047
4048 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
4049 information.
4050
b70a8427 40512008-07-27 Bean <bean123ch@gmail.com>
4052
4053 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
4054 (grub_fat_find_dir): Ignore case when comparing filename.
4055
8f5e379f 40562008-07-27 Bean <bean123ch@gmail.com>
4057
4058 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
4059 smallino, as it's more descriptive, and i8count can be confused with
4060 the other field count.
4061 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
4062 inode type.
4063
a85cd5a0 40642008-07-27 Bean <bean123ch@gmail.com>
4065
4066 * commands/crc.c: New file.
4067
4068 * lib/crc.c: Likewise.
4069
4070 * include/grub/lib/crc.h: Likewise.
4071
4072 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
4073
4074 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
4075 (hexdump): Move this function to ...
4076
4077 * lib/hexdump.c: ... here.
4078
4079 * include/grub/hexdump.h: Renamed to ...
4080
4081 * include/grub/lib/hexdump.h: ... this.
4082
4083 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
4084
4085 * util/grub-editenv.c: Likewise.
4086
4087 * include/envblk.h: Renamed to ...
4088
4089 * include/lib/envblk.h: ... this.
4090
4091 * util/envblk.c: Renamed to ...
4092
4093 * lib/envblk.c: ... this.
4094
4095 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
4096 lib/hexdump.c.
4097 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
4098 (pkglib_MODULES): Add crc.mod.
4099 (hexdump_mod_SOURCES): Add lib/hexdump.c.
4100 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
4101 (crc_mod_SOURCES): New macro.
4102 (crc_mod_CFLAGS): Likewise.
4103 (crc_mod_LDFLAGS): Likewise.
4104
4105 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
4106
4107 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4108
4109 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
4110
4111 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4112
4113 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4114
c298def0 41152008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 4116
4117 * commands/help.c: Include <grub/term.h>.
4118 (TERM_WIDTH): Removed. Updated all users.
4119
cc349fb3 41202008-07-27 Pavel Roskin <proski@gnu.org>
4121
4122 * util/getroot.c (find_root_device): Rephrase a comment to avoid
4123 spurious warnings about a comment within a comment.
4124
9051607e 41252008-07-25 Robert Millan <rmh@aybabtu.com>
4126
4127 * util/getroot.c (find_root_device): Skip devices that match
4128 /dev/dm-[0-9]. This lets the real device be found for any type of
4129 abstraction (LVM, EVMS, RAID..).
4130 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
4131 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
4132 device is found first, find_root_device() will now skip it.
4133
01453bfc 41342008-07-24 Pavel Roskin <proski@gnu.org>
4135
4136 * include/grub/types.h: Use __builtin_bswap32() and
4137 __builtin_bswap64() with gcc 4.3 and newer.
4138
6af9849f 41392008-07-24 Christian Franke <franke@computer.org>
4140
3a0fa256 4141 * util/i386/pc/grub-install.in: If `--debug' is specified,
4142 pass `--verbose' to grub-setup.
4143 Abort script if make_system_path_relative_to_its_root() fails.
4144
7810e747 41452008-07-24 Bean <bean123ch@gmail.com>
4146
4147 * configure.ac: Fixed a bug caused by the previous cygwin patch,
4148 variable `target_platform' should be `platform'.
4149
42290e17 41502008-07-24 Bean <bean123ch@gmail.com>
4151
51cc5193 4152 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 4153 (grub_png_init_fixed_block): New function.
4154 (grub_png_decode_image_data): Handle fixed huffman code compression.
4155
2a8a80e4 41562008-07-24 Bean <bean123ch@gmail.com>
4157
4158 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
4159 (grub_pe2elf_SOURCES): New macro.
4160 (CLEANFILES): Add grub-pe2elf.
4161
4162 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
4163 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
4164 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
4165 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
4166 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
4167 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
4168 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
4169 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
4170 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
4171 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
4172 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
4173 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
4174 (GRUB_PE32_DT_FUNCTION): Likewise.
4175 (GRUB_PE32_REL_I386_DIR32): Likewise.
4176 (GRUB_PE32_REL_I386_REL32): Likewise.
4177 (grub_pe32_symbol): New structure.
4178 (grub_pe32_reloc): Likewise.
4179
4180 * util/grub-pe2elf.c: New file.
4181
4182 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
4183 start symbol in non pc platform.
4184
4185 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
4186
4187 The following patches are from Christian Franke.
4188
4189 * include/grub/dl.h: Remove .previous, gas supports this only
4190 for ELF format.
4191
4192 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
4193 Remove .type, gas supports this only for ELF format.
4194
4195 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
4196 nullbytes in symbol table. This fixes an infinite loop if table is
4197 zero filled.
4198
4199 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
4200 TARGET_IMG_LDFLAGS and EXEEXT.
4201
4202 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
4203 TARGET_IMG_LDFLAGS_AC.
4204 (grub_CHECK_STACK_ARG_PROBE): New function.
4205
4206 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
4207
4208 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
4209
4210 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
4211 to set TARGET_IMG_LD* accordingly.
4212 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
4213 Add call to grub_CHECK_STACK_ARG_PROBE.
4214 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
4215
4216 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
4217
4218 * genmk.rb: Add EXEEXT to CLEANFILES.
4219
12ccdb75 42202008-07-23 Robert Millan <rmh@aybabtu.com>
4221
4222 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
4223 define the codes for arrows and lines used for the menu).
4224 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
4225 as well.
4226
4227 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
4228 fonts, because the latter are too slow.
4229
18eeaf04 42302008-07-21 Bean <bean123ch@gmail.com>
4231
4232 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
4233 a20. Run keyboard test last, as it will cause macbook to halt.
4234
b095e2ad 42352008-07-18 Pavel Roskin <proski@gnu.org>
4236
4237 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
4238 load foreign architecture modules correctly anyway. Keep
4239 support for loading host architecture modules, whether we
4240 compile them or not.
4241
737feb35 42422008-07-17 Pavel Roskin <proski@gnu.org>
4243
3f4ce737 4244 * configure.ac: Use -m32 or -m64 regardless of whether we had to
4245 change target_cpu. The compiler default can mismatch target_cpu
4246 in any case.
4247
4ad2d049 4248 * disk/efi/efidisk.c: Fix format warnings on x86_64.
4249 * kern/efi/efi.c: Likewise.
4250
f6130a12 4251 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
4252 target compiler is functional.
4253 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
4254 are set up.
4255
58393a2d 4256 * configure.ac: Default to efi platform for x86_64-apple. Allow
4257 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
4258 adjustments from the rest, only do them if target is not
4259 explicitly given. Merge other adjustments with the final sanity
4260 check. Remove an extraneous check for supported CPU. Be
4261 specific which CPU and which platform is not supported.
4262
737feb35 4263 * configure.ac: Default to pc platform for x86_64.
4264
546f966a 42652008-07-17 Robert Millan <rmh@aybabtu.com>
4266
4267 Partial LinuxBIOS -> Coreboot rename.
4268
4269 * conf/i386-linuxbios.rmk: Renamed to ...
4270 * conf/i386-coreboot.rmk: ... this.
4271 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
4272 * configure.ac: Accept "coreboot" as input platform (but maintain
4273 compatibility with "linuxbios").
4274 * include/grub/i386/linuxbios: Renamed to ...
4275 * include/grub/i386/coreboot: ... this.
4276
20011694 42772008-07-17 Bean <bean123ch@gmail.com>
4278
4279 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 4280 (appleldr_mod_SOURCE): New variable.
20011694 4281 (appleldr_mod_CFLAGS): Likewise.
4282 (appleldr_mod_LDFLAGS): Likewise.
4283 (pci_mod_SOURCES): Likewise.
4284 (pci_mod_CFLAGS): Likewise.
4285 (pci_mod_LDFLAGS): Likewise.
4286 (lspci_mod_SOURCES): Likewise.
4287 (lspci_mod_CFLAGS): Likewise.
4288 (lspci_mod_LDFLAGS): Likewise.
4289
4290 * conf/x86_64-efi.rmk: New file.
4291
4292 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
4293 macro.
4294 (grub_efidisk_write): Likewise.
4295
4296 * include/efi/api.h (efi_call_0): New macro.
4297 (efi_call_1): Likewise.
4298 (efi_call_2): Likewise.
4299 (efi_call_3): Likewise.
4300 (efi_call_4): Likewise.
4301 (efi_call_5): Likewise.
4302 (efi_call_6): Likewise.
4303
4304 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
4305 grub_rescue_cmd_chainloader.
4306
4307 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
4308 (grub_pe32_optional_header): Change some fields based on i386 or
4309 x86_64 platform.
4310 (GRUB_PE32_PE32_MAGIC): Likewise.
4311
4312 * include/grub/efi/uga_draw.h: New file.
4313
4314 * include/grub/elf.h (STN_ABS): New constant.
4315 (R_X86_64_NONE): Relocation constant for x86_64.
4316 (R_X86_64_64): Likewise.
4317 (R_X86_64_PC32): Likewise.
4318 (R_X86_64_GOT32): Likewise.
4319 (R_X86_64_PLT32): Likewise.
4320 (R_X86_64_COPY): Likewise.
4321 (R_X86_64_GLOB_DAT): Likewise.
4322 (R_X86_64_JUMP_SLOT): Likewise.
4323 (R_X86_64_RELATIVE): Likewise.
4324 (R_X86_64_GOTPCREL): Likewise.
4325 (R_X86_64_32): Likewise.
4326 (R_X86_64_32S): Likewise.
4327 (R_X86_64_16): Likewise.
4328 (R_X86_64_PC16): Likewise.
4329 (R_X86_64_8): Likewise.
4330 (R_X86_64_PC8): Likewise.
4331
4332 * include/grub/i386/efi/pci.h: New file.
4333
4334 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
4335 Change it value based on platform.
4336 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
4337 (GRUB_E820_RAM): Likewise.
4338 (GRUB_E820_RESERVED): Likewise.
4339 (GRUB_E820_ACPI): Likewise.
4340 (GRUB_E820_NVS): Likewise.
4341 (GRUB_E820_EXEC_CODE): Likewise.
4342 (GRUB_E820_MAX_ENTRY): Likewise.
4343 (grub_e820_mmap): New structure.
4344 (linux_kernel_header): Change the efi field according to different
4345 kernel version, also field from linux_kernel_header.
4346
4347 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
4348
4349 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
4350 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
4351 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
4352 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
4353 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
4354 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
4355 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
4356 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
4357 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
4358 (GRUB_PCI_ADDR_IO_MASK): Likewise.
4359
4360 * include/grub/x86_64/efi/kernel.h: New file.
4361
4362 * include/grub/x86_64/efi/loader.h: Likewise.
4363
4364 * include/grub/x86_64/efi/machine.h: Likewise.
4365
4366 * include/grub/x86_64/efi/pci.h: Likewise.
4367
4368 * include/grub/x86_64/efi/time.h: Likewise.
4369
4370 * include/grub/x86_64/linux.h: Likewise.
4371
4372 * include/grub/x86_64/setjmp.h: Likewise.
4373
4374 * include/grub/x86_64/time.h: Likewise.
4375
4376 * include/grub/x86_64/types.h: Likewise.
4377
4378 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
4379 GRUB_TARGET_SIZEOF_VOID_P.
4380
4381 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
4382 (grub_efi_locate_handle): Likewise.
4383 (grub_efi_open_protocol): Likewise.
4384 (grub_efi_set_text_mode): Likewise.
4385 (grub_efi_stall): Likewise.
4386 (grub_exit): Likewise.
4387 (grub_reboot): Likewise.
4388 (grub_halt): Likewise.
4389 (grub_efi_exit_boot_services): Likewise.
4390 (grub_get_rtc): Likewise.
4391
4392 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
4393 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
4394 (grub_efi_allocate_pages): Wrap efi calls.
4395 (grub_efi_free_pages): Wrap efi calls.
4396 (grub_efi_get_memory_map): Wrap efi calls.
4397
4398 * kern/x86_64/dl.c: New file.
4399
4400 * kern/x86_64/efi/callwrap.S: Likewise.
4401
4402 * kern/x86_64/efi/startup.S: Likewise.
4403
4404 * loader/efi/appleloader.c: Likewise.
4405
4406 * loader/efi/chainloader.c (cmdline): New variable.
4407 (grub_chainloader_unload): Wrap efi calls.
4408 (grub_chainloader_boot): Likewise.
4409 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
4410 command line.
4411
4412 * loader/efi/chainloader_normal.c (chainloader_command):
4413 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
4414 command line.
4415
4416 * loader/i386/efi/linux.c (allocate_pages): Change allocation
4417 method.
4418 (grub_e820_add_region): New function.
4419 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
4420 booting.
4421 (grub_find_video_card): New function.
4422 (grub_linux_setup_video): New function.
4423 (grub_rescue_cmd_linux): Probe for video information.
4424
4425 * normal/x86_64/setjmp.S: New file.
4426
4427 * term/efi/console.c (map_char): New function.
4428 (grub_console_putchar): Map unicode char.
4429 (grub_console_checkkey): Wrap efi calls.
4430 (grub_console_getkey): Likewise.
4431 (grub_console_getwh): Likewise.
4432 (grub_console_gotoxy): Likewise.
4433 (grub_console_cls): Likewise.
4434 (grub_console_setcolorstate): Likewise.
4435 (grub_console_setcursor): Likewise.
4436
4437 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
4438
59652a20 44392008-07-16 Pavel Roskin <proski@gnu.org>
4440
ef294055 4441 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
4442 format strings.
4443
59652a20 4444 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
4445 pointer, not an integer. This fixes a warning and prevents
4446 precision loss on 64-bit systems.
4447 (relocate_addresses): Remove unneeded cast.
4448
afc3b5d7 44492008-07-15 Pavel Roskin <proski@gnu.org>
4450
506b2b3e 4451 * kern/i386/ieee1275/init.c: Include grub/cache.h.
4452
62ead89c 4453 * term/ieee1275/ofconsole.c: Disable code unused on i386.
4454
c4cd51d7 4455 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
4456 Fix comparison between signed and unsigned.
4457
0d3d8f28 4458 * include/grub/i386/ieee1275/console.h: Declare
4459 grub_console_init() and grub_console_fini().
4460
8804b286 4461 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
4462 It's empty and unused.
4463
ee01cf35 4464 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
4465 beginning to avoid warnings with some compilers.
4466
afc3b5d7 4467 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
4468 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
4469
e4e8eaa5 44702008-07-14 Pavel Roskin <proski@gnu.org>
4471
407aceb4 4472 * kern/env.c (grub_register_variable_hook): Don't copy empty
4473 string, it leaks memory. Pass "" to grub_env_set(), it should
4474 handle constant strings.
4475
e4e8eaa5 4476 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
4477 * commands/cmp.c (grub_cmd_cmp): Likewise.
4478 * kern/dl.c (grub_dl_flush_cache): Likewise.
4479 (grub_dl_load_core): Likewise.
4480 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
4481 (grub_elf64_load_phdrs): Likewise.
4482
d4e2dad3 44832008-07-13 Pavel Roskin <proski@gnu.org>
4484
4485 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
4486 between signed and unsigned.
4487 (LzmaEnc_Finish): Fix warning about an unused parameter.
4488
aa24b516 44892008-07-13 Bean <bean123ch@gmail.com>
4490
4491 * Makefile.in (enable_lzo): New rule.
4492
4493 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
4494
4495 * configure.ac (ENABLE_LZO): New option --enable-lzo.
4496
4497 * boot/i386/pc/lnxboot.S: #include <config.h>.
4498
4499 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 4500 its value according to the compression algorithm used, lzo or lzma.
aa24b516 4501
4502 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
4503 compression algorithm according to configure macro.
4504
4505 * kern/i386/pc/startup.S (codestart): Likewise.
4506
4507 * kern/i386/pc/lzma_decode.S: New file.
4508
4509 * include/grub/lib/LzFind.h: Likewise.
4510
4511 * include/grub/lib/LzHash.h: Likewise.
4512
4513 * include/grub/lib/LzmaDec.h: Likewise.
4514
4515 * include/grub/lib/LzmaEnc.h: Likewise.
4516
4517 * include/grub/lib/LzmaTypes.h: Likewise.
4518
4519 * lib/LzFind.c: Likewise.
4520
4521 * lib/LzmaDec.c: Likewise.
4522
4523 * lib/LzmaEnc.c: Likewise.
4524
4ae821ac 45252008-07-13 Bean <bean123ch@gmail.com>
4526
4527 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
4528 (grub_ext4_extent_header): New structure.
4529 (grub_ext4_extent): Likewise.
4530 (grub_ext4_extent_idx): Likewise.
4531 (grub_ext4_find_leaf): New function.
4532 (grub_ext2_read_block): Handle extents.
4533
9a745147 45342008-07-12 Robert Millan <rmh@aybabtu.com>
4535
4536 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
4537
d49a4cf6 45382008-07-11 Robert Millan <rmh@aybabtu.com>
4539
4540 * util/grub.d/40_custom.in: New file. Example on how to add custom
4541 entries to /etc/grub.d.
4542 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
4543 40_custom (implicitly, by merging all the grub.d rules).
4544
947414b4 45452008-07-11 Pavel Roskin <proski@gnu.org>
4546
0059cf6f 4547 * commands/read.c (grub_getline): Fix invalid memory access.
4548 Don't add newline to the variable value.
4549
947414b4 4550 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
4551 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
4552 (serial_hw_get_port): Check validity of the port number.
4553 (grub_cmd_serial): Check return value of serial_hw_get_port().
4554
62a02d00 45552008-07-07 Pavel Roskin <proski@gnu.org>
4556
4557 * boot/i386/pc/diskboot.S (notification_string): Replace
4558 "Loading kernel" with just "loading". This is shorter, less
4559 confusing and saves a few bytes for possible future changes.
4560
3e5581b0 45612008-07-05 Pavel Roskin <proski@gnu.org>
4562
ea387a48 4563 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
4564 size for ATAPI devices, they are undefined. Output sector
4565 number in decimal form.
4566
3e5581b0 4567 * disk/ata.c: Use named constants for status bits.
4568
fdecb8fd 45692008-07-04 Pavel Roskin <proski@gnu.org>
4570
bcd35b90 4571 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
4572 grub_addr_t before casting it to the void pointer to fix a
4573 warning. Non-addressable regions are discarded earlier.
4574 (grub_arch_modules_addr): Cast _end to grub_addr_t.
4575 * kern/i386/linuxbios/table.c: Include grub/misc.h.
4576 (check_signature): Don't shadow table_header.
4577 (grub_linuxbios_table_iterate): Cast numeric constants to
4578 grub_linuxbios_table_header_t.
4579 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
4580 grub_stop().
4581
af58ab3d 4582 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
4583 prevent warnings.
4584
1759aa57 4585 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
4586 pointer, which can cause warnings. Support 64-bit addresses.
4587
fdecb8fd 4588 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
4589 of sizeof(long). This fixes PowerPC image generation on x86_64.
4590
8516d2a8 45912008-07-04 Robert Millan <rmh@aybabtu.com>
4592
4593 This fixes a performance issue when pc & gpt partmap iterators
4594 didn't abort iteration even after our hook found what it was
fe987087 4595 looking for (often causing expensive probes of non-existent drives).
8516d2a8 4596
4597 Some callers relied on previous buggy behaviour, since they would
34c44600 4598 raise an error when their own hooks caused early abortion of its
8516d2a8 4599 iteration.
4600
4601 * kern/device.c (grub_device_open): Improve error message.
4602 * disk/lvm.c (grub_lvm_open): Likewise.
4603 * disk/raid.c (grub_raid_open): Likewise.
4604
4605 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
4606 when hook requests it, independently of grub_errno.
4607 (pc_partition_map_probe): Do not fail when find_func() caused
4608 early abortion of pc_partition_map_iterate().
4609
4610 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
4611 when hook requests it, independently of grub_errno.
4612 (gpt_partition_map_probe): Do not fail when find_func() caused
4613 early abortion of gpt_partition_map_iterate().
4614
4615 * kern/partition.c (grub_partition_iterate): Abort parent iteration
4616 when hook requests it, independently of grub_errno. Do not fail when
4617 part_map_iterate_hook() caused early abortion of p->iterate().
4618
4619 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
4620 when grub_partition_iterate() returned with non-zero.
4621
277d0de9 46222008-07-03 Pavel Roskin <proski@gnu.org>
4623
4624 * disk/ata.c (grub_ata_pio_write): Check status before writing,
4625 like we do in grub_ata_pio_read().
4626 (grub_ata_readwrite): Always write individual sectors. Fix the
4627 sector count for the remainder.
4628 (grub_ata_write): Enable writing to ATA devices. Correctly
4629 report error for ATAPI devices.
4630
d4c9b428 46312008-07-02 Pavel Roskin <proski@gnu.org>
4632
e43fc690 4633 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
4634 warning.
4635
f707af42 4636 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
4637 for every read sector, we already increment it for the whole
4638 batch. This fixes reading more than 256 sectors at once.
4639
11e16b15 4640 * util/grub-editenv.c (cmd_info): Cast argument to long
4641 explicitly. ptrdiff_t reduces to int on i386.
4642
cbabfdd4 4643 * util/grub-editenv.c (main): Be specific which parameter is
4644 missing.
4645
b8fbce0a 4646 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
4647 (memdisk): Make memdisk_orig_addr a pointer.
4648
c9c8e606 4649 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
4650 for file offsets, use grub_off_t instead. Fix printf format
4651 warnings.
4652
ca62e598 4653 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
4654 there. Real unexpected warnings should not drown in the noise
4655 about known problems.
4656
ce8d1766 4657 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
4658 grub_disk_addr_t for memory addresses.
4659
00c7a56a 4660 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
4661 explicitly to fix a warning.
4662
08d3ef09 4663 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
4664
cb71ba20 4665 * Makefile.in (MODULE_LDFLAGS): New variable.
4666 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
4667 the linker accepts --build-id=none.
4668 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
4669 MODULE_LDFLAGS.
4670 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
4671
d4c9b428 4672 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
4673 those in Linux XFS code. Provide a way to access 64-bit parent
4674 inode.
4675 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
4676 the end of struct grub_xfs_dir_header.
4677
d4156eee 46782008-07-02 Bean <bean123ch@gmail.com>
4679
4680 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
4681 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4682 and GRUB_IEEE1275_FLAG_NO_ANSI.
4683
4684 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
4685 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
4686 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
4687
4688 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
4689 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
4690
4691 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
4692 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
4693
4694 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
4695 esc sequence on non ANSI terminal.
4696 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
4697
4698 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
4699 beginning of file.
4700
2270f77b 47012008-07-02 Bean <bean123ch@gmail.com>
4702
4703 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
4704 (grub_editenv_SOURCES): New variable.
4705 (pkglib_MODULES): Add loadenv.mod.
4706 (loadenv_mod_SOURCES): New variable.
4707 (loadenv_mod_CFLAGS): Likewise.
4708 (loadenv_mod_LDFLAGS): Likewise.
4709
4710 * include/grub/envblk.h: New file.
4711
4712 * util/envblk.c: New file.
4713
4714 * util/grub-editenv.c: New file.
4715
4716 * commands/loadenv.c: New file.
4717
0e9e51ec 47182008-07-01 Pavel Roskin <proski@gnu.org>
4719
d89b7634 4720 * include/multiboot2.h (struct multiboot_tag_module): Use char,
4721 not unsigned char. This fixes warnings and is consistent with
4722 other tags.
4723
bf1835b1 4724 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
4725
8222a04b 4726 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
4727
6a42d99d 4728 * term/tparm.c (analyze): Always set *popcount.
4729
10b159d1 4730 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
4731 cast to fix a warning.
4732
b8789f6c 4733 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
4734 cast to suppress a warning.
4735
29d7e38a 4736 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
4737 grub_fshelp_read_file() expects.
4738
f341f669 4739 * fs/fat.c: Fix UUID calculation on big-endian systems. We
4740 write uuid as a 32-bit value in CPU byte order, so declare and
4741 use it as such.
4742
0e9e51ec 4743 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
4744 long if the format specifier expects it.
4745 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
4746 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4747 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
4748 long to fix a warning.
4749 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
4750 grub_dprintf() arguments to fix warnings.
4751
3aefa857 47522008-06-30 Pavel Roskin <proski@gnu.org>
4753
56c7668b 4754 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
4755 install_bsd_part immediately before core.img is embedded or
4756 modified on disk. This fixes core.img verification if core.img
4757 cannot be embedded.
4758
3aefa857 4759 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
4760 core_path to calculate the blocklist.
4761 Patch from Javier Martín <lordhabbit@gmail.com>
4762
5444088d 47632008-06-29 Robert Millan <rmh@aybabtu.com>
4764
4765 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
4766 block to disk block.
4767 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
4768 Patch from Niels Böhm <bitbucket@arcor.de>
4769
674835c8 47702008-06-29 Robert Millan <rmh@aybabtu.com>
4771
4772 * util/update-grub_lib.in (font_path): Search for fonts in
4773 /boot/grub first, which is more likely to be readable (we aren't
4774 deciding where fonts live, just looking for them).
4775
f527dbc8 47762008-06-26 Pavel Roskin <proski@gnu.org>
4777
6c2d8df6 4778 * util/biosdisk.c (read_device_map): Don't leave dead map
4779 entries for devices failing stat() check.
4780
f527dbc8 4781 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
4782 core_path_dev for the core.img path on the target device.
4783
aebe3d13 47842008-06-26 Robert Millan <rmh@aybabtu.com>
4785
4786 * disk/fs_uuid.c: New file.
4787 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
4788 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
4789 (fs_uuid_mod_LDFLAGS): New variables.
4790 * include/grub/disk.h (grub_disk_dev_id): Add
4791 `GRUB_DISK_DEVICE_UUID_ID'.
4792 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
4793 implement iterate().
4794
37aaf354 47952008-06-26 Robert Millan <rmh@aybabtu.com>
4796
4797 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
4798 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
4799 Linux image includes no initrd.
4800
25ff262a 48012008-06-21 Javier Martín <lordhabbit@gmail.com>
4802
4803 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
4804 call to resolve the core image location that effectively appended the
4805 name twice.
4806
76a2bd44 48072008-06-21 Robert Millan <rmh@aybabtu.com>
4808
4809 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
4810 call from here ...
4811
4812 * util/grub.d/10_hurd.in: ... to here ...
4813 * util/grub.d/10_linux.in: ... and here.
4814
650e1c79 48152008-06-19 Robert Millan <rmh@aybabtu.com>
4816
fe987087 4817 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 4818 after it has been set by grub_machine_set_prefix().
4819
6ce63911 48202008-06-19 Robert Millan <rmh@aybabtu.com>
4821
4822 * commands/search.c (search_label, search_fs_uuid, search_file): Print
4823 search result when not saving to variable, not the other way around.
4824 When saving to variable, abort iteration as soon as a match is found.
4825
73940cec 48262008-06-19 Robert Millan <rmh@aybabtu.com>
4827
4828 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
4829 check for partition that provides /boot/grub. Its logic is flawed,
4830 as it prevents prepare_grub_to_access_device() from being called
4831 multiple times.
4832
3c62a39d 48332008-06-19 Robert Millan <rmh@aybabtu.com>
4834
4835 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
4836 "insmod" command directly when abstraction modules are needed,
fe987087 4837 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 4838 since it had already been processed).
4839
47395a42 48402008-06-19 Pavel Roskin <proski@gnu.org>
4841
4842 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
4843 changed. This is needed in case GRUB_LIBDIR changes.
4844 * conf/i386-ieee1275.rmk: Likewise.
4845 * conf/i386-linuxbios.rmk: Likewise.
4846 * conf/i386-pc.rmk: Likewise.
4847 * conf/powerpc-ieee1275.rmk: Likewise.
4848
a145ac2d 48492008-06-18 Pavel Roskin <proski@gnu.org>
4850
4851 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
4852 kernel_elf_symlist.c to symlist.c for consistency with other
4853 architectures. Update all users.
4854 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
4855
7847c51e 48562008-06-18 Robert Millan <rmh@aybabtu.com>
4857
4858 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
4859 it in prefix.
4860
4861 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
4862 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
4863 a RAID device, run setup() for all members independently on whether
4864 LVM abstraction is being used.
4865 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
4866 If grub-mkimage has set `*install_dos_part == -2', don't override this
4867 value.
4868 Perform *install_dos_part adjustments independently on whether
4869 we're embedding or not.
4870 Clarify error message when image is too big for embedding.
4871 Remove duplicate *install_dos_part stanza.
4872
b23e5644 48732008-06-17 Robert Millan <rmh@aybabtu.com>
4874
4875 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
4876 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
4877 variables.
4878 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
4879 values in grub_ofconsole_normal_color and
4880 grub_ofconsole_highlight_color (they're not directly related to
4881 background and foreground).
4882 (grub_ofconsole_setcolorstate): Extract background and foreground
4883 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
4884
0aac2f79 48852008-06-17 Robert Millan <rmh@aybabtu.com>
4886
4887 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
4888 /boot/grub for the check in last commit, not /boot (they could be
4889 different partitions).
4890
3cca7ef3 48912008-06-16 Robert Millan <rmh@aybabtu.com>
4892
4893 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
4894 asked to setup access for the same partition that provides /boot,
4895 don't bother using UUIDs since our root already has the value we
4896 want.
4897
347396d8 48982008-06-16 Robert Millan <rmh@aybabtu.com>
4899
4900 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
4901 I2O devices.
4902 Patch from Sven Mueller <sven@debian.org>.
4903
991477f8 49042008-06-16 Robert Millan <rmh@aybabtu.com>
4905
4906 * util/update-grub.in: Check for $EUID instead of $UID.
4907 Reported by Vincent Zweije.
4908
d31a32a1 49092008-06-16 Bean <bean123ch@gmail.com>
4910
fe987087 4911 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 4912 (grub_ext2_read_block): Likewise.
4913 (grub_ext2_read_inode): Likewise.
4914 (grub_ext2_mount): Likewise.
4915 (grub_ext2_close): Likewise.
4916 (grub_ext3_get_journal): Removed.
4917
fe987087 4918 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 4919 (grub_reiserfs_read_symlink): Likewise.
4920 (grub_reiserfs_mount): Likewise.
4921 (grub_reiserfs_open): Likewise.
4922 (grub_reiserfs_read): Likewise.
4923 (grub_reiserfs_close): Likewise.
4924 (grub_reiserfs_get_journal): Removed.
4925
4926 * fs/fshelp.c (grub_fshelp_read): Removed.
4927 (grub_fshelp_map_block): Likewise.
4928
4929 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
4930 (grub_fshelp_journal): Likewise.
4931 (grub_fshelp_read): Likewise.
4932 (grub_fshelp_map_block): Likewise.
4933
3540a760 49342008-06-16 Pavel Roskin <proski@gnu.org>
4935
4936 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
4937 floating point anymore.
4938 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
4939
95614c84 49402008-06-15 Pavel Roskin <proski@gnu.org>
4941
4942 * commands/ls.c (grub_ls_list_files): Use integer calculations
4943 for human readable format, avoid floating point use.
4944 * kern/misc.c (grub_ftoa): Remove.
4945 (grub_vsprintf): Remove floating point support.
4946
50465dd6 49472008-06-15 Robert Millan <rmh@aybabtu.com>
4948
fe6b695a 4949 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 4950 devices.
4951 Reported by Max Vozeler.
4952
a9207284 49532008-06-15 Robert Millan <rmh@aybabtu.com>
4954
4955 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
4956 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
4957 skipped later.
4958 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
4959 the beginning of the prefix.
4960
4961 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
4962 It is assumed that if we have a memdisk, grub-mkimage has set
4963 grub_prefix to include the "(memdisk)" drive in it.
4964
a7cbd45a 49652008-06-15 Robert Millan <rmh@aybabtu.com>
4966
4967 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
4968 Initialize keyboard controller after registering the terminal, so that
4969 grub_printf() can be called from grub_keyboard_controller_init().
4970
21cf716a 49712008-06-15 Robert Millan <rmh@aybabtu.com>
4972
4973 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
4974 extent-btree which is written as big endian on disk.
4975 Reported by Alain Greppin <al@chilibi.org>.
4976
23a64d8e 49772008-06-14 Robert Millan <rmh@aybabtu.com>
4978
4979 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
4980 * util/i386/pc/grub-install.in (modules): Likewise.
4981
d687651c 49822008-06-13 Pavel Roskin <proski@gnu.org>
4983
4984 * commands/ls.c (grub_ls_list_files): Fix format warnings.
4985
dfe9ddd4 49862008-06-13 Bean <bean123ch@gmail.com>
4987
4988 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
4989
4990 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
4991
4992 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
4993 to indicate sparse block.
4994
16ae7781 49952008-06-12 Pavel Roskin <proski@gnu.org>
4996
e6d1a308 4997 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
4998 number, grub_fshelp_read() does it for us.
4999
16ae7781 5000 * fs/fshelp.c (grub_fshelp_read): New function. Implement
5001 linear disk read with journal translation.
5002 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
5003 * include/grub/fshelp.h: Declare grub_fshelp_read().
5004
40fd3a2b 50052008-06-09 Pavel Roskin <proski@gnu.org>
5006
5007 * fs/minix.c (grub_minix_mount): Handle error reading
5008 superblock.
5009
f5679726 50102008-06-08 Robert Millan <rmh@aybabtu.com>
5011
5012 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
5013 don't append the RAID prefix afterwards.
5014 Reported by Clint Adams.
5015
ce525529 50162008-06-08 Robert Millan <rmh@aybabtu.com>
5017
5018 Based on description from Pavel:
5019 * kern/disk.c (grub_disk_check_range): Rename to ...
5020 (grub_disk_adjust_range): ... this. Add a comment explaining the
5021 tasks performed by this function.
5022
ad4936a0 50232008-06-08 Robert Millan <rmh@aybabtu.com>
5024
5025 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
5026 `num_serial' (for consistency with other variables).
5027 (struct grub_ntfs_data): Add `uuid' member.
5028 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
5029 (grub_ntfs_uuid): New function.
5030 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
5031
dc20b0f9 50322008-06-07 Pavel Roskin <proski@gnu.org>
5033
5034 * util/biosdisk.c (open_device): Revert last change to the
5035 function, it broke installation. The sector needs to be
5036 different dependent on which device is opened.
5037
c5e3cfba 50382008-06-06 Robert Millan <rmh@aybabtu.com>
5039
5040 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
5041 rest of GRUB, and breakage doesn't happen if its value were modified.
5042
5043 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
5044 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
5045 a constant (same value).
5046 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
5047 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
5048
26a1f8c4 50492008-06-06 Robert Millan <rmh@aybabtu.com>
5050
5051 * util/biosdisk.c (open_device): Do not modify sector offset when
5052 accessing a partition. kern/disk.c already handles this for us.
5053
25d6b327 50542008-06-06 Robert Millan <rmh@aybabtu.com>
5055
5056 * util/grub-emu.c (grub_machine_init): Move code in this function from
5057 here ...
5058 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
5059 segfault in case grub_printf() is called).
5060
5061 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
5062 grub_probe. Update all users not to explicitly add it again.
5063 (grub_device): New variable; contains corresponding device for grubdir.
5064 (fs_module, partmap_module, devabstraction_module): Pass
5065 `--device ${grub_device}' to grub_probe to avoid traversing /dev
5066 every time.
5067
9ece62fb 50682008-06-05 Robert Millan <rmh@aybabtu.com>
5069
5070 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
5071 is found, print it (same layout as with labels).
5072
1ad36d37 50732008-06-04 Robert Millan <rmh@aybabtu.com>
5074
5075 * util/biosdisk.c (get_drive): Rename to ...
5076 (find_grub_drive): ... this. Update all users.
5077
5078 (get_os_disk): Rename to ...
5079 (convert_system_partition_to_system_disk): ... this. Update all users.
5080
5081 (find_drive): Rename to ...
5082 (find_system_device): ... this. Update all users.
5083
e6a30859 50842008-06-04 Robert Millan <rmh@aybabtu.com>
5085
5086 * util/biosdisk.c (get_os_disk): Handle IDA devices.
5087 * util/grub-mkdevicemap.c (get_mmc_disk_name)
5088 (make_device_map): Likewise.
5089
00c108a4 50902008-06-01 Robert Millan <rmh@aybabtu.com>
5091
5092 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
5093 before dereferencing it.
5094
5095 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
5096 union with fat12/fat16-specific ones. Add some new fields, including
5097 `num_serial' for both versions.
5098 (struct grub_fat_data): Add `uuid' member.
5099 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
5100 names. Initialize `data->uuid' using `num_serial'.
5101 (grub_fat_uuid): New function.
5102 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
5103
5104 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
5105 (grub_reiserfs_uuid): New function.
5106 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
5107 member.
5108
5109 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
5110 (grub_xfs_uuid): New function.
5111 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
5112
1385c5bb 51132008-06-01 Robert Millan <rmh@aybabtu.com>
5114
5115 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
5116 code that is backward compatible with pre-uuid search command.
5117
c682dfd7 51182008-05-31 Robert Millan <rmh@aybabtu.com>
5119
5120 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
5121 floppies after everything else, to ensure floppy drive isn't accessed
5122 unnecessarily (patch from Bean).
5123
b7db5d47 51242008-05-31 Robert Millan <rmh@aybabtu.com>
5125
5126 * commands/search.c (search_label, search_fs_uuid, search_file): Do
5127 not print device names when we were asked to set a variable.
5128
6e037aa9 51292008-05-31 Robert Millan <rmh@aybabtu.com>
5130
5131 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
5132 using "cursor-on" and "cursor-off" commands (understood at least by
5133 the Open Firmware flavour on OLPC).
5134
41305bc8 51352008-05-31 Michael Gorven <michael@gorven.za.net>
5136
5137 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
5138 on and off sequences.
5139
69ba137e 51402008-05-31 Robert Millan <rmh@aybabtu.com>
5141
5142 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
5143 * util/update-grub.in: Likewise.
5144
520ae21b 51452008-05-30 Pavel Roskin <proski@gnu.org>
5146
5147 * util/biosdisk.c (linux_find_partition): Simplify logic and
5148 make the code more universal. Keep special processing for
5149 devfs, but use a simple rule for all other devices. If the
5150 device ends with a number, append 'p' and the partition number.
5151 Otherwise, append only the partition number.
5152
5786569b 51532008-05-30 Robert Millan <rmh@aybabtu.com>
5154
5155 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
5156 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
5157 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
5158 the `root' parameter to Linux.
5159
51500452 51602008-05-30 Robert Millan <rmh@aybabtu.com>
5161
5162 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
5163 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
5164 --fs_uuid with --fs-uuid.
5165 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
5166 all filesystems support them).
5167
811d3878 51682008-05-30 Robert Millan <rmh@aybabtu.com>
5169
5170 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 5171 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 5172
cab63c95 51732008-05-30 Robert Millan <rmh@aybabtu.com>
5174
5175 * util/grub.d/00_header.in: Remove obsolete comment referencing
5176 convert_system_path_to_grub_path().
5177 * util/update-grub.in: Likewise.
5178 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
5179 (convert_system_path_to_grub_path): Add a warning message explaining
5180 that this function is deprecated. Rely on is_path_readable_by_grub()
5181 for the readability checks.
5182 (font_path): Use is_path_readable_by_grub() for the readability
5183 check rather than convert_system_path_to_grub_path().
5184
972e2f7a 51852008-05-30 Robert Millan <rmh@aybabtu.com>
5186
5187 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
5188 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
5189 converting it first.
5190 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
5191 grub.cfg for access to font file, and afterwards call it again to set
5192 the root device.
5193
62191274 51942008-05-30 Robert Millan <rmh@aybabtu.com>
5195
5196 * commands/search.c (options): Add --fs_uuid option.
5197 (search_fs_uuid): New function.
5198 (grub_cmd_search): Fix --set argument passing.
5199 Use search_fs_uuid() when requested via --fs_uuid.
5200 (grub_search_init): Update help message.
5201 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
5202 and redeclare it as an array of 16-bit words.
5203 (grub_ext2_uuid): New function.
5204 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
5205 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
5206 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
5207 (GRUB_DEVICE_BOOT_UUID): New variables.
5208 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
5209 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
5210 whenever possible.
5211 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
5212 just assume `root' variable has the right value.
5213 * util/grub.d/10_linux.in: Likewise.
5214 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
5215 via PRINT_FS_UUID.
5216 (main): Recognise `-t fs_uuid' argument.
5217
01b73ec8 52182008-05-30 Robert Millan <rmh@aybabtu.com>
5219
5220 * util/biosdisk.c (map): Redefine structure to hold information
5221 about GRUB drive name.
fe6b695a 5222 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 5223 drive names.
5224 (call_hook): Remove.
5225 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
5226 member. Assume drive has partitions.
5227 (grub_util_biosdisk_open): Access device names via `.device' struct
5228 member.
5229 (open_device): Likewise.
5230 (find_drive): Likewise.
5231 (read_device_map): Adjust map[] usage to match the new struct
5232 definition. Don't check for duplicates (still possible, but not cheap
5233 anymore).
5234 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
5235 (make_device_name): Remove assumption of BIOS-like drive names.
5236
22f16596 52372008-05-30 Pavel Roskin <proski@gnu.org>
5238
5239 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
5240 compiling execute.c doesn't need grub_script.tab.h anymore.
5241 (normal/command.c_DEPENDENCIES): Likewise.
5242 (normal/function.c_DEPENDENCIES): Likewise.
5243 * conf/i386-ieee1275.rmk: Likewise.
5244 * conf/i386-linuxbios.rmk: Likewise.
5245 * conf/i386-pc.rmk: Likewise.
5246 * conf/powerpc-ieee1275.rmk: Likewise.
5247 * conf/sparc64-ieee1275.rmk: Likewise.
5248
528ad8f2 52492008-05-29 Pavel Roskin <proski@gnu.org>
5250
d1dff95d 5251 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
5252 when scanning metadata for volume group name.
5253
528ad8f2 5254 * include/grub/script.h: Don't include grub_script.tab.h. It's
5255 a generated file, which may only be included from the files with
5256 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
5257 use union YYSTYPE, as the later allows forward declaration.
5258 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
5259
47248e08 52602008-05-29 Robert Millan <rmh@aybabtu.com>
5261
5262 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
5263 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
5264 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
5265 (grub_console_checkkey): Add grub_dprintf() call to report unknown
5266 scan codes.
5267
ee632529 52682008-05-29 Robert Millan <rmh@aybabtu.com>
5269
5270 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
5271 control key combinations.
5272
eee96e08 52732008-05-29 Robert Millan <rmh@aybabtu.com>
5274
5275 * util/powerpc/ieee1275/grub-install.in: Move from here ...
5276 * util/ieee1275/grub-install.in: ... to here.
5277 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
5278 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
5279 (grub_install_SOURCES): Likewise.
5280
da9a6a94 52812008-05-29 Robert Millan <rmh@aybabtu.com>
5282
5283 * fs/affs.c: Update copyright year.
5284 * fs/ext2.c: Likewise.
5285 * fs/fshelp.c: Likewise.
5286 * fs/hfsplus.c: Likewise.
5287 * fs/ntfs.c: Likewise.
5288 * fs/xfs.c: Likewise.
5289 * include/grub/fshelp.h: Likewise.
5290 * util/grub-mkdevicemap.c: Likewise.
5291
12e65f3a 52922008-05-28 Robert Millan <rmh@aybabtu.com>
5293
5294 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
5295 might need to be fatfs to support some firmware implementations
5296 (e.g. OFW or EFI).
5297
23023641 52982008-05-28 Robert Millan <rmh@aybabtu.com>
5299
5300 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
5301 devices.
5302 * util/grub-mkdevicemap.c (get_mmc_disk_name)
5303 (make_device_map): Likewise.
5304
887d2619 53052008-05-20 Bean <bean123ch@gmail.com>
5306
5307 * fs/fshelp.c (grub_fshelp_map_block): New function.
5308 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
5309 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
5310
5311 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
5312 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
5313 (grub_fshelp_journal): New structure.
5314 (grub_fshelp_map_block): New function prototype.
5315 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
5316 (grub_fshelp_map_block): Likewise.
5317
5318 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
5319 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
5320 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
5321 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
5322 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
5323 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
5324 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
5325 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
5326 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
5327 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
5328 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
5329 (grub_ext2_sblock): New members for journal support.
5330 (grub_ext3_journal_header): New structure.
5331 (grub_ext3_journal_revoke_header): Likewise.
5332 (grub_ext3_journal_block_tag): Likewise.
5333 (grub_ext3_journal_sblock): Likewise.
5334 (grub_fshelp_node): New members logfile and journal.
5335 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
5336 grub_fshelp_map_block to get real block number.
5337 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
5338 number.
5339 (grub_ext2_read_inode): Likewise.
5340 (grub_ext3_get_journal): New function.
5341 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
5342 (grub_ext2_close): Release memory used by journal.
5343
5344 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
5345 (REISERFS_MAGIC_DESC_BLOCK): New macro.
5346 (grub_reiserfs_transaction_header): Renamed to
5347 grub_reiserfs_description_block, replace field data with real_blocks.
5348 (grub_reiserfs_commit_block): New structure.
5349 (grub_reiserfs_data): New member journal.
5350 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
5351 number.
5352 (grub_reiserfs_read_symlink): Likewise.
5353 (grub_reiserfs_iterate_dir): Likewise.
5354 (grub_reiserfs_open): Likewise.
5355 (grub_reiserfs_read): Likewise.
5356 (grub_reiserfs_get_journal): New function.
5357 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
5358 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
5359 using grub_reiserfs_get_journal.
5360 (grub_reiserfs_close): Release memory used by journal.
5361
5362 * fs/affs.c (grub_affs_read_block): Change block type to
5363 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
5364
5365 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
5366
5367 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
5368
5369 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
5370
5371 * fs/udf.c (grub_udf_read_block): Change block type to
5372 grub_disk_addr_t. Use type cast to avoid warning.
5373
5374 * fs/xfs.c (grub_xfs_read_block): Likewise.
5375
b7c6bed5 53762008-05-16 Christian Franke <franke@computer.org>
5377
5378 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
5379 to ensure that break with ESC will always work.
5380 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
5381 Remove ESC from keyboard queue.
5382
eedf167f 53832008-05-16 Christian Franke <franke@computer.org>
5384
5385 * util/biosdisk.c: [__CYGWIN__] Add includes.
5386 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
5387 (get_os_disk): Move variable declarations to OS specific
5388 parts to avoid warning.
5389 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
5390 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
5391 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
5392 Cygwin.
5393 * util/getroot.c: [__CYGWIN__] Add includes.
5394 (strip_extra_slashes): Fix "/" case.
5395 [__CYGWIN__] (get_win32_path): New function.
5396 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
5397 [__CYGWIN__] (find_root_device): Disable.
5398 [__CYGWIN__] (get_bootsec_serial): New function.
5399 [__CYGWIN__] (find_cygwin_root_device): Likewise.
5400 [__linux__] (grub_guess_root_device): Add early returns to simplify
5401 structure.
5402 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
5403 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
5404 check for Linux only.
5405
a079699e 54062008-05-15 Bean <bean123ch@gmail.com>
5407
5408 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
5409 keyboard hang problem in apple's intel mac.
5410
1cf4059a 54112008-05-09 Robert Millan <rmh@aybabtu.com>
5412
5413 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
5414 devices.
5415 * util/grub-mkdevicemap.c (get_virtio_disk_name)
5416 (make_device_map): Likewise.
5417 Reported by Aurelien Jarno <aurel32@debian.org>
5418
ed759390 54192008-05-07 Ian Campbell <ijc@hellion.org.uk>
5420
5421 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
5422 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
5423 (make_device_map): Output entries for xvd type disks.
5424
b56c4eaa 54252008-05-07 Robert Millan <rmh@aybabtu.com>
5426
5427 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
5428 devices.
5429 * util/grub-mkdevicemap.c (get_cciss_disk_name)
5430 (make_device_map): Likewise.
5431 Reported by Roland Dreier <rdreier@cisco.com>
5432
7f8866ed 54332008-05-07 Robert Millan <rmh@aybabtu.com>
5434
5435 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
5436 grub_strstr() call. Correct a few mistakes in failure path handling.
5437
b0346e0f 54382008-05-06 Robert Millan <rmh@aybabtu.com>
5439
5440 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5441 Do not print a trailing slash (therefore, the root directory is an
5442 empty string).
5443 (convert_system_path_to_grub_path): Do not remove trailing slash
5444 from make_system_path_relative_to_its_root() output.
5445
5446 * util/i386/pc/grub-install.in: Add trailing slash to output from
5447 make_system_path_relative_to_its_root().
5448
6cf12cbd 54492008-05-06 Robert Millan <rmh@aybabtu.com>
5450
5451 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
5452 ensures that output lines aren't intermangled with those sent to
5453 stderr (via grub_util_info()).
5454 * util/grub-probe.c (grub_refresh): Likewise.
5455 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
5456
0fbb3117 54572008-05-05 Christian Franke <franke@computer.org>
5458
5459 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
5460 Add Cygwin device names.
5461 (get_ide_disk_name) [__CYGWIN__]: Likewise.
5462 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
5463 (check_device): Return error instead of success on empty name.
5464 (make_device_map): Move label inside linux specific code to
5465 prevent compiler warning.
5466
8124cdb7 54672008-04-30 Robert Millan <rmh@aybabtu.com>
5468
5469 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
5470 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
5471 first boot option.
5472 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
5473
094c01d0 54742008-04-29 Robert Millan <rmh@aybabtu.com>
5475
5476 * docs/grub.cfg: New file (example GRUB configuration).
5477
f4b1fc02 54782008-04-26 Robert Millan <rmh@aybabtu.com>
5479
329ce2a5 5480 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
5481 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
5482 and `disk/ieee1275/nand.c'.
f4b1fc02 5483
25f16ec1 54842008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 5485
25f16ec1 5486 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
5487 i386-linuxbios.
5488
5489 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
5490 change the buffer size to 4096 for cdrom device.
5491
5492 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
5493 and nand.mod.
5494 (_linux_mod_SOURCES): New variable.
5495 (_linux_mod_CFLAGS): Likewise.
5496 (_linux_mod_LDFLAGS): Likewise.
5497 (linux_mod_SOURCES): Likewise.
5498 (linux_mod_CFLAGS): Likewise.
5499 (linux_mod_LDFLAGS): Likewise.
5500 (nand_mod_SOURCES): Likewise.
5501 (nand_mod_CFLAGS): Likewise.
5502 (nand_mod_LDFLAGS): Likewise.
5503
5504 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
5505 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
5506 type property. (nand device in olpc don't have this property)
5507
5508 * include/grub/disk.h (grub_disk_dev_id): New macro
5509 GRUB_DISK_DEVICE_NAND_ID.
5510
5511 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
5512 function prototype.
5513 (grub_rescue_cmd_initrd): Likewise.
5514
5515 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
5516 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
5517 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 5518
25f16ec1 5519 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
5520 GRUB_MACHINE_IEEE1275 is defined.
5521
5522 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
5523 Use NESTED_FUNC_ATTR attribute on the hook parameter.
5524
5525 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
5526 on nested function heap_init.
5527 (grub_upper_mem): New variable for i386-ieee1275.
5528 (grub_get_extended_memory): New function for i386-ieee1275.
5529 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
5530
5531 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
5532 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
5533 property.
f19dbdb7 5534
25f16ec1 5535 * loader/i386/ieee1275/linux.c: New file.
5536
5537 * loader/i386/ieee1275/linux_normal.c: New file.
5538
5539 * disk/ieee1275/nand.c: New file.
5540
e89d61e9 55412008-04-18 Thomas Schwinge <tschwinge@gnu.org>
5542
5543 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
5544 value.
5545 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
5546
602566f6 55472008-04-18 Robert Millan <rmh@aybabtu.com>
5548
5549 Restructures early code path on ieee1275 to unify grub_main() as
5550 the first C function that is executed in every platform.
5551
5552 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
5553 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
5554 cmain().
5555 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
5556 * kern/ieee1275/cmain.c (cmain): Rename to ...
5557 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
5558 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
5559 at the beginning.
5560
57490c2b 55612008-04-18 Robert Millan <rmh@aybabtu.com>
5562
5563 * util/update-grub.in: Fix syntax error when setting
5564 `GRUB_PRELOAD_MODULES'.
5565 Reported by Stephane Chazelas <stephane@artesyncp.com>
5566
1977517d 55672008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
5568
5569 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
5570 section into account, newer toolchains generate unique build ids
5571 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 5572 we want build ids to be preserved
1977517d 5573 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
5574 far from other sections don't cause the raw binary images grow
5575 size
5576
bfb1f1a2 55772008-04-15 Robert Millan <rmh@aybabtu.com>
5578
5579 * disk/lvm.c: Update copyright year.
5580 * kern/misc.c: Likewise.
5581
01979850 55822008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5583
5584 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 5585 there is no memory left for physical volume name.
01979850 5586
0a1150e2 55872008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
5588
5589 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
5590 volume name mapping to support bigger than 9 character names properly.
5591
82ead3fe 55922008-04-13 Robert Millan <rmh@aybabtu.com>
5593
5594 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
5595 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
5596
e54a72f5 55972008-04-13 Christian Franke <franke@computer.org>
5598
5599 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
5600 to create a floppy emulation boot CD when non emulation mode
5601 does not work.
5602 Enable Joliet CD filesystem extension.
5603
9fe86034 56042008-04-13 Robert Millan <rmh@aybabtu.com>
5605
5606 * kern/misc.c (grub_strncat): Fix off-by-one error.
5607 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
5608
5609 * kern/env.c (grub_env_context_close): Clear current context, not
5610 previous one.
5611 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
5612
5613 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
5614
7ceeee39 56152008-04-13 Robert Millan <rmh@aybabtu.com>
5616
5617 Improve robustness when handling LVM.
5618
5619 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 5620 (and leave `*p' unmodified).
7ceeee39 5621 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
5622 through it.
5623 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
5624 iterating through it.
5625 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
5626 through it.
fe6b695a 5627 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 5628 when due) on each grub_lvm_getvalue() or grub_strstr() call.
5629 Don't assume `vg->pvs != NULL' when iterating through it.
5630
58cd3d85 56312008-04-13 Robert Millan <rmh@aybabtu.com>
5632
5633 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
5634 * genmk.rb (partmap): New variable.
5635 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
5636 (#{partmap}): New target rule.
5637 * genpartmaplist.sh: New file.
5638 * Makefile.in (pkglib_DATA): Add partmap.lst.
5639 (partmap.lst): New target rule.
5640 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
5641 modules (including all partition maps), instead of preloading them.
5642
78b51059 56432007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
5644
5645 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
5646 `linux-boot-prober' (if installed) to detect other operating
5647 systems which are installed on the computer and add them to
5648 the boot menu.
5649 * conf/common.rmk: Build and install 30_os-prober.
5650
a91627b4 56512008-04-12 Robert Millan <rmh@aybabtu.com>
5652
5653 * kern/powerpc/ieee1275/init.c: Move from here ...
5654 * kern/ieee1275/init.c: ... to here. Update all users.
5655
5656 * kern/powerpc/ieee1275/cmain.c: Move from here ...
5657 * kern/ieee1275/cmain.c: ... to here. Update all users.
5658
5659 * kern/powerpc/ieee1275/openfw.c: Move from here ...
5660 * kern/ieee1275/openfw.c: ... to here. Update all users.
5661
5662 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
5663 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
5664
322562ea 56652008-04-10 Pavel Roskin <proski@gnu.org>
5666
5667 * configure.ac: Always use "_cv_" in cache variables for
5668 compatibility with Autoconf 2.62.
5669
a02a73c5 56702008-04-07 Robert Millan <rmh@aybabtu.com>
5671
5672 Revert grub/machine/init.h addition by Pavel (since it breaks on
5673 i386-ieee1275 and others):
5674 * util/i386/pc/misc.c: Remove grub/machine/init.h.
5675 * util/powerpc/ieee1275/misc.c: Likewise.
5676
25c024b1 56772008-04-07 Robert Millan <rmh@aybabtu.com>
5678
5679 * util/grub-probe.c (probe): Improve error message.
5680
3cbd2f98 56812008-04-07 Robert Millan <rmh@aybabtu.com>
5682
5683 * util/biosdisk.c (read_device_map): Skip devices that don't exist
5684 (this prevents the presence of a bogus entry from ruining the whole
5685 thing).
5686
87a297bf 56872008-04-06 Pavel Roskin <proski@gnu.org>
5688
36747a62 5689 * util/biosdisk.c: Include grub/util/biosdisk.h.
5690 * util/grub-fstest.c (execute_command): Make static.
5691 * util/grub-mkdevicemap.c (check_device): Likewise.
5692 * util/i386/pc/misc.c: Include grub/machine/init.h.
5693 * util/powerpc/ieee1275/misc.c: Likewise.
5694 * util/lvm.c: Include grub/util/lvm.h.
5695 * util/misc.c: Include grub/kernel.h, grub/misc.h and
5696 grub/cache.h.
5697 * util/raid.c: Include grub/util/raid.h.
5698 (grub_util_getdiskname): Make static.
5699
87a297bf 5700 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
5701 grub_hostfs_fini(), as they are called from grub_init_all() and
5702 grub_fini_all() respectively. This fixes an infinite loop in
5703 grub-fstest due to double registration of hostfs.
5704 Reported by Christian Franke <Christian.Franke@t-online.de>
5705
f6ce7629 57062008-04-05 Pavel Roskin <proski@gnu.org>
5707
5708 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
5709 all 8 functions. Otherwise, probe function 0 only.
5710
070e49e4 57112008-04-04 Pavel Roskin <proski@gnu.org>
5712
8b088a4c 5713 * commands/lspci.c (grub_lspci_iter): Print the bus number
5714 correctly.
5715
4f657021 5716 * commands/lspci.c (grub_pci_classes): Fix typos.
5717 (grub_lspci_iter): Don't print func twice. Print vendor ID
5718 before device ID, as it's normally done.
5719
070e49e4 5720 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
5721 Fix signedness warnings.
5722 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
5723 Likewise.
5724 * util/ieee1275/get_disk_name.c: Include config.h so that
5725 _GNU_SOURCE is defined and getline() is declared. Mark an
5726 unused argument as such. Fix a signedness warning.
5727
ba7328dc 57282008-04-02 Pavel Roskin <proski@gnu.org>
5729
26887f22 5730 * genkernsyms.sh.in: Use more robust assignments for CC and
5731 srcdir. Quote srcdir.
5732 * gensymlist.sh.in: Likewise. Assert at the compile time that
5733 the symbol table is not empty.
5734
ba7328dc 5735 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
5736 * fs/cpio.c (grub_cpio_read): Likewise.
5737
0f582c6b 57382008-04-01 Pavel Roskin <proski@gnu.org>
5739
4b6e1995 5740 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
5741 * disk/host.c (grub_host_open): Likewise.
5742 * disk/loopback.c (grub_loopback_open): Likewise.
5743 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
5744 disk->id as in disk/host.c, not a multi-character constant.
5745
828a2768 5746 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
5747 later is obsolete, potentially dangerous and sets a bad example.
5748 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
5749 * util/misc.c (grub_util_get_image_size): Likewise.
5750
2bb4fb47 5751 * disk/loopback.c (options): Improve help for "--partitions".
5752
0f582c6b 5753 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
5754 options to align them with the short options, e.g. "echo -e".
5755
a33224e0 57562008-03-31 Bean <bean123ch@gmail.com>
5757
5758 * video/reader/png.c (grub_png_data): New member is_16bit and
5759 image_data.
5760 (grub_png_decode_image_header): Detect 16 bit png image.
5761 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
5762 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
5763 (grub_video_reader_png): Release memory occupied by image_data.
5764
5765 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
5766 4096 bytes.
5767 (grub_nfs_mount): Skip the test for sector per cluster.
5768
5769 * include/grub/ntfs.h (MAX_SPC): Removed.
5770
86cb4f54 57712008-03-31 Bean <bean123ch@gmail.com>
5772
5773 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
5774 (grub_probe_SOURCES): Add fs/afs.c.
5775 (grub_fstest_SOURCES): Likewise.
5776 (afs_mod_SOURCES): New variable.
5777 (afs_mod_CFLAGS): Likewise.
5778 (afs_mod_LDFLAGS): Likewise.
5779
5780 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
5781 (grub_emu_SOURCES): Likewise.
5782
5783 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5784
5785 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5786
5787 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5788
5789 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5790
5791 * fs/afs.c: New file.
5792
17c74c21 57932008-03-30 Pavel Roskin <proski@gnu.org>
5794
4cb68e89 5795 * disk/host.c: Include grub/misc.h to fix a warning.
5796 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
5797 warnings about implicit declarations.
5798
8790bb04 5799 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
5800 variable.
5801 * include/grub/i386/loader.h: Change declaration of
5802 grub_linux_boot() to match what grub_loader_set() expects.
5803 * util/getroot.c (grub_guess_root_device): Return const char* to
5804 fix a warning.
5805 * util/grub-probe.c (probe): Fix a warning about uninitialized
5806 abstraction_name variable.
5807 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
5808 second argument as unused to fix a warning.
5809
9a3f3296 5810 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
5811 missing grub_error() call.
5812
0ecef90d 5813 * util/update-grub_lib.in: Define datarootdir, since Autoconf
5814 2.60 and newer uses it to define datadir.
5815
0bf6d401 5816 * commands/sleep.c: Fix warning about implicit declaration.
5817 * disk/memdisk.c: Likewise.
5818 * loader/aout.c: Likewise.
5819 * loader/i386/bsd_normal.c: Likewise.
5820 * util/grub-probe.c: Likewise.
5821
7cdacf97 5822 * commands/i386/cpuid.c (has_longmode): Make static.
5823 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
5824 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
5825
17c74c21 5826 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
5827 GDT. This is more robust, as %ds can change.
5828 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
5829 calling real_to_prot().
5830 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
5831
80a3e68b 58322008-03-28 Pavel Roskin <proski@gnu.org>
5833
5834 * kern/i386/pc/startup.S: Assert that uncompressed functions
5835 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
5836 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
5837 code, as they push parts of the code (error handlers) beyond
5838 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
5839 code as correctness and size.
5840
77bcd272 58412008-03-28 Pavel Roskin <proski@gnu.org>
5842
5843 * kern/i386/pc/startup.S
5844 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
5845 data block address to the real mode, keep offset minimal. This
5846 works around a bug in AWARD BIOS on old Athlon systems, which
5847 makes CD detection hang.
5848
c5dfd43b 58492008-03-26 Pavel Roskin <proski@gnu.org>
5850
5851 * normal/color.c (grub_parse_color_name_pair): Make `name' a
5852 const.
5853 * include/grub/normal.h: Add grub_parse_color_name_pair()
5854 declaration.
5855
bf962df2 58562008-03-24 Bean <bean123ch@gmail.com>
5857
5858 * disk/i386/pc/biosdisk.c (cd_start): Removed.
5859 (cd_count): Removed.
5860 (cd_drive): New variable.
5861 (grub_biosdisk_get_drive): Don't check for (cdN) device.
5862 (grub_biosdisk_call_hook): Likewise.
5863 (grub_biosdisk_iterate): Change cdrom detection method.
5864 (grub_biosdisk_open): Replace cd_start with cd_drive.
5865 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
5866 detect cdrom device.
5867
5868 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
5869 Removed.
5870 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
5871 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
5872 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
5873 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
5874 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
5875 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
5876 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
5877 (grub_biosdisk_cdrp): New structure.
5878 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
5879
5880 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
5881
5882 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
5883 device.
5884
5885 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
5886 New function.
5887
68e7fc7a 58882008-03-20 Robert Millan <rmh@aybabtu.com>
5889
5890 Remove 2 TiB limit in ata.mod.
5891 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
5892 (grub_ata_dumpinfo): Print sector count with 0x%llx.
5893 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
5894 grub_uint64_t instead of grub_uint32_t.
5895
38ad2cf5 58962008-03-05 Bean <bean123ch@gmail.com>
5897
5898 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
5899 (grub_multiboot): Set boot device.
5900
5901 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
5902
2b89344e 59032008-03-02 Bean <bean123ch@gmail.com>
5904
5905 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
5906 symlink_buffer.
5907
87a95d1f 59082008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
5909
5910 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
5911 texinfo.tex.
5912
5913 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
5914 modified.
5915
5916 * docs/fdl.texi: New file.
f19dbdb7 5917
87a95d1f 5918 * docs/mdate-sh: New file. Copied from gnulib.
5919 * docs/texinfo.tex: Likewise.
5920
5921 * config.guess: Updated from gnulib.
5922 * install-sh: Likewise.
5923
7dc15d8e 59242008-02-28 Robert Millan <rmh@aybabtu.com>
5925
5926 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
5927 (aout_mod_SOURCES): New variable.
5928 (aout_mod_CFLAGS): Likewise.
5929 (aout_mod_LDFLAGS): Likewise.
5930
5931 * conf/i386-ieee1275.rmk: Likewise.
5932
b00ab696 59332008-02-28 Robert Millan <rmh@aybabtu.com>
5934
5935 * util/update-grub.in: Reorganise terminal validity check. Accept
5936 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
5937 Based on suggestion by Franklin PIAT.
5938
79ca2d78 59392008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
5940
5941 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
5942 function.
5943 * util/getroot.c (grub_util_check_block_device): New function that
5944 returns the given argument if it is a block device and returns NULL else.
5945 * util/grub-probe.c (argument_is_device): New variable.
5946 (probe): Promote device_name from a variable to an argument. Receive
5947 device_name from grub_util_check_block_device() if path is NULL and from
5948 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 5949 (options): Introduce new parameter '-d, --device'.
79ca2d78 5950 (main): Add description of the new parameter to the help screen.
5951 Rename path variable to argument. Set argument_is_device if the '-d'
5952 option is given. Pass argument to probe() depending on
5953 argument_is_device.
5954
0d16e571 59552008-02-24 Bean <bean123ch@gmail.com>
5956
5957 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
5958 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
5959 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
5960 (GRUB_ISO9660_VOLDESC_PART): Likewise.
5961 (GRUB_ISO9660_VOLDESC_END): Likewise.
5962 (grub_iso9660_primary_voldesc): New member escape.
5963 (grub_iso9660_data): New member joliet.
5964 (grub_iso9660_convert_string): New function.
5965 (grub_iso9660_mount): Detect joliet extension.
5966 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
5967 (grub_iso9660_iso9660_label): Likewise.
5968
5969 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
5970 (grub_setup_SOURCES): Add fs/udf.c.
5971 (grub_fstest_SOURCES): Likewise.
5972 (udf_mod_SOURCES): New variable.
5973 (udf_mod_CFLAGS): Likewise.
5974 (udf_mod_LDFLAGS): Likewise.
5975
5976 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
5977 (grub_emu_SOURCES): Likewise.
5978
5979 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5980
5981 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5982
5983 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5984
5985 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5986
5987 * fs/udf.c: New file.
5988
8a594a17 59892008-02-24 Robert Millan <rmh@aybabtu.com>
5990
5991 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
5992 (normal/lexer.c_DEPENDENCIES): New variables.
5993 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
5994 (normal/lexer.c_DEPENDENCIES): Likewise.
5995 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
5996 (normal/lexer.c_DEPENDENCIES): Likewise.
5997 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
5998 (normal/lexer.c_DEPENDENCIES): Likewise.
5999 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
6000 (normal/lexer.c_DEPENDENCIES): Likewise.
6001 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
6002 (normal/lexer.c_DEPENDENCIES): Likewise.
6003
2dc33c03 60042008-02-23 Robert Millan <rmh@aybabtu.com>
6005
6006 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
6007 since they were intended to be in hex. This didn't break previously
6008 because of a bug in gpt_partition_map_iterate() (see below).
6009
6010 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
6011 when checking the validity of GPT header.
6012 Remove `partno', since it always provides the same information as `i'.
6013
f6f4cfb0 60142008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
6015
6016 * include/grub/efi/time.h: Fix a wrong comment.
6017
79ff665f 60182008-02-19 Pavel Roskin <proski@gnu.org>
6019
6020 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
6021 message.
6022
d38e24c2 60232008-02-19 Bean <bean123ch@gmail.com>
6024
6025 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
6026 (aout_mod_SOURCES): New variable.
6027 (aout_mod_CFLAGS): Likewise.
6028 (aout_mod_LDFLAGS): Likewise.
6029 (_bsd_mod_SOURCES): New variable.
6030 (_bsd_mod_CFLAGS): Likewise.
6031 (_bsd_mod_LDFLAGS): Likewise.
6032 (bsd_mod_SOURCES): New variable.
6033 (bsd_mod_CFLAGS): Likewise.
6034 (bsd_mod_LDFLAGS): Likewise.
6035
6036 * include/grub/aout.h: New file.
6037
6038 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
6039
6040 * include/grub/i386/bsd.h: New file.
6041
6042 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
6043 to make it public.
6044
6045 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
6046 function is called, so that it's possible to change it inside the hook.
6047 (grub_elf64_load): Likewise.
6048 (grub_elf_file): Don't close the file if elf header is not found.
6049 (grub_elf_close): Close the file if grub_elf_file fails (The new
6050 grub_elf_file won't close it).
6051 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
6052 (grub_elf64_size): Likewise.
6053
6054 * kern/i386/loader.S (grub_unix_real_boot): New function.
6055
6056 * loader/aout.c: New file.
6057
6058 * loader/i386/bsd.c: New file.
6059
6060 * loader/i386/bsd_normal.c: New file.
6061
6062 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
6063
6064 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 6065 can test other formats.
d38e24c2 6066
b93bdb0f 60672008-02-19 Robert Millan <rmh@aybabtu.com>
6068
6069 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
6070 (grub_gpt_partition_type_empty): Redefine with macro from
6071 `<grub/gpt_partition.h>'.
6072 (gpt_partition_map_iterate): Adjust partition type comparison.
6073
6074 Export `entry' as partmap-specific `part.data' struct.
6075 (grub_gpt_header, grub_gpt_partentry): Move from here ...
6076
6077 * include/grub/gpt_partition.h (grub_gpt_header)
6078 (grub_gpt_partentry): ... to here (new file).
6079
6080 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
6081
6082 (grub_gpt_partition_type_bios_boot): New const variable, defined
6083 with macro from `<grub/gpt_partition.h>'.
6084
6085 (setup): Replace `first_start' with `embed_region', which keeps
6086 track of the embed region (and is partmap-agnostic).
6087
6088 Replace find_first_partition_start() with find_usable_region(),
6089 which finds a usable region for embedding using partmap-specific
6090 knowledge (supports PC/MSDOS and GPT).
6091
6092 Fix all assumptions that the embed region start at sector 1, using
6093 `embed_region.start' from now on. Similarly, use `embed_region.end'
6094 rather than `first_start' to calculate available size.
6095
6096 In grub_util_info() message, replace "into after the MBR" with an
6097 indication of the specific sector our embed region starts at.
6098
66cb40f6 60992008-02-19 Robert Millan <rmh@aybabtu.com>
6100
6101 * DISTLIST: Replace `commands/ieee1275/halt.c' and
6102 `commands/ieee1275/reboot.c' with `commands/halt.c' and
6103 `commands/reboot.c'.
6104 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
6105 (halt_mod_SOURCES): Likewise.
6106 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
6107 (halt_mod_SOURCES): Likewise.
6108
b7202015 61092008-02-17 Christian Franke <franke@computer.org>
6110
6111 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
6112
32b0fc49 61132008-02-17 Robert Millan <rmh@aybabtu.com>
6114
6115 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
6116 set `first_start' to 0 for non-PC/MSDOS partition maps.
6117
aca63502 61182008-02-16 Robert Millan <rmh@aybabtu.com>
6119
6120 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
6121 do not assume partition map is PC/MSDOS before performing checks that
6122 are specific to that layout.
6123
0de8be86 61242008-02-13 Robert Millan <rmh@aybabtu.com>
6125
6126 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
6127 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
6128 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
6129
c3db8364 61302008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
6131
6132 * configure.ac: Only a cosmetic change on the handling of
6133 -fno-stack-protector.
6134
f714229e 61352008-02-12 Alexandre Boeglin <alex@boeglin.org>
6136
c3db8364 6137 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
6138 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
6139 reboot.c.
f714229e 6140 (grub_install_SOURCES): Add halt.mod and reboot.mod.
6141 (halt_mod_SOURCES): New variable.
6142 (halt_mod_CFLAGS): Likewise.
6143 (halt_mod_LDFLAGS): Likewise.
6144 (reboot_mod_SOURCES): Likewise.
6145 (reboot_mod_CFLAGS): Likewise.
6146 (reboot_mod_LDFLAGS): Likewise.
6147
c3db8364 6148 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
6149 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
6150 reboot.c.
f714229e 6151 (halt_mod_SOURCES): Likewise.
6152 (reboot_mod_SOURCES): Likewise.
6153
c3db8364 6154 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
6155 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 6156 (reboot_mod_SOURCES): Likewise.
6157
6158 * commands/i386/pc/reboot.c: merge this file ...
6159
6160 * commands/ieee1275/reboot.c: ... and this file ...
6161
6162 * commands/reboot.c: ... to this file.
c3db8364 6163 Add some precompiler directive to include the correct header for
6164 each machine.
f714229e 6165
6166 * commands/ieee1275/halt.c: move this file ...
6167
6168 * commands/halt.c: ... to here.
c3db8364 6169 Add some precompiler directive to include the correct header for
6170 each machine.
f714229e 6171
6172 * include/grub/efi/efi.h (grub_reboot): New function declaration.
6173 (grub_halt): Likewise.
6174
6175 * kern/efi/efi.c (grub_reboot): New function.
6176 (grub_halt): Likewise.
6177
c74493e0 61782008-02-12 Robert Millan <rmh@aybabtu.com>
6179
6180 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
6181 /dev (like it is done for /dev/mapper). This doesn't provide support
6182 for EVMS, but at least it is now easy to identify the problem when it
6183 arises.
6184
d0db4b04 61852008-02-11 Robert Millan <rmh@aybabtu.com>
6186
6187 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
6188 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
6189 comparing it with -1, not 0.
6190
bf748642 61912008-02-10 Robert Millan <rmh@aybabtu.com>
6192
6193 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
6194 `disk/lvm.c'.
6195 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6196 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
6197
6198 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
6199 `disk/lvm.c' to the end of the list.
6200 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6201 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6202
b5db202a 62032008-02-10 Robert Millan <rmh@aybabtu.com>
6204
6205 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
6206 grub_print_error() instead. This will let user know why we're entering
6207 rescue mode.
6208 Based on suggestions from Sam Morris.
6209
83abee31 62102008-02-10 Alexandre Boeglin <alex@boeglin.org>
6211
6212 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
6213 on remaining N args, instead of "--" arg N times.
6214
78d5a08b 62152008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
6216
6217 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
6218 (fill_with_default_glyph): Changed to use unknown_glyph for fill
6219 pattern for unknown glyphs.
6220
68807e5f 62212008-02-09 Robert Millan <rmh@aybabtu.com>
6222
6223 * configure.ac: Probe for `help2man'.
6224 * Makefile.in (builddir): New variable.
6225 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
6226 or otherwise add a few flags/options to it.
6227 (install-local): For every executable utility or script that is
6228 installed, invoke $(HELP2MAN) to install a manpage based on --help
6229 output.
6230
6231 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
6232 that it doesn't prevent --help from working in build tree.
6233
6234 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
6235 with `bug-grub@gnu.org'.
6236 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
6237 * util/update-grub.in (usage): New function.
6238 Implement proper argument check, with support for --help and --version
6239 (as well as existing -y).
6240
62412008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 6242
6243 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
6244 avoid overwriting previous output.
6245 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
6246
c1962162 62472008-02-09 Robert Millan <rmh@aybabtu.com>
6248
6249 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
6250 drawing the menu.
6251
3dac2e3f 62522008-02-09 Robert Millan <rmh@aybabtu.com>
6253
6254 * commands/sleep.c: New file.
6255 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
6256 (sleep_mod_SOURCES): New variable.
6257 (sleep_mod_CFLAGS): Likewise.
6258 (sleep_mod_LDFLAGS): Likewise.
6259
7a634e08 62602008-02-09 Robert Millan <rmh@aybabtu.com>
6261
6262 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
6263 situations in which we can deduce the RAID size and the superblock
6264 doesn't match it.
6265
b92f0c18 62662008-02-09 Robert Millan <rmh@aybabtu.com>
6267
6268 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
6269 and return a grub_diskmemberlist_t composed of LVM physical volumes.
6270 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
6271
6272 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
6273 and return a grub_diskmemberlist_t composed of physical array members.
6274 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
6275
6276 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
6277 prototype.
6278 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
6279 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
6280 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
6281
6282 * util/grub-probe.c (probe): Move partmap probing code from here ...
6283 (probe_partmap): ... to here.
6284 (probe): Use probe_partmap() once for the disk we're probing, and
6285 additionally, when such disk contains a memberlist() struct member,
6286 once for each disk that is contained in the structure returned by
6287 memberlist().
6288
91a4bf68 62892008-02-09 Robert Millan <rmh@aybabtu.com>
6290
6291 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
6292 environment variable to 'all' in order to obtain debug output from
6293 non-util/ code.
6294 * util/i386/pc/grub-setup.c (main): Likewise.
6295
a96f9caa 62962008-02-08 Robert Millan <rmh@aybabtu.com>
6297
6298 * disk/raid.c (grub_raid_scan_device): Check for
6299 `array->device[sb.this_disk.number]' rather than for
6300 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 6301 guaranteed to be accessible.
a96f9caa 6302
b37a9222 63032008-02-08 Robert Millan <rmh@aybabtu.com>
6304
6305 * disk/raid.c: Update copyright.
6306 * fs/cpio.c: Likewise.
6307 * include/grub/raid.h: Likewise.
6308 * loader/i386/pc/multiboot.c: Likewise.
6309 * util/hostfs.c: Likewise.
6310
5626aee1 63112008-02-08 Robert Millan <rmh@aybabtu.com>
6312
6313 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
6314 to a grub_disk_t array.
6315 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
6316 `device[x]'.
6317 (grub_raid_scan_device): Replace `device[x].name' accesses with
6318 `device[x]->name'. Simplify initialization of `array->device[x]'.
6319
554f0187 63202008-02-08 Robert Millan <rmh@aybabtu.com>
6321
6322 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
6323 grub_dprintf() calls.
6324 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
6325 error message.
6326
1ec8425d 63272008-02-07 Christian Franke <franke@computer.org>
6328
6329 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
6330 instead of fseek and ftell to support large files.
6331 (grub_hostfs_read): Likewise.
6332
f2156fda 63332008-02-07 Robert Millan <rmh@aybabtu.com>
6334
6335 Patch from Jeroen Dekkers.
6336 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 6337 failure, since successfully reading all array members might not be
f2156fda 6338 required.
6339
9216e0e7 63402008-02-06 Robert Millan <rmh@aybabtu.com>
6341
6342 * util/grub-probe.c (probe): Simplify partmap probing (with the
6343 assumption that the first word up to the underscore equals to
6344 the module name).
6345
b0dfd29a 63462008-02-06 Christian Franke <franke@computer.org>
6347
6348 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
6349 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
6350 last block of a cpio or tar stream.
6351 Check for "TRAILER!!!" instead of any empty data
6352 block to detect last block of a cpio stream.
6353 (grub_cpio_dir): Fix constness of variable np.
6354 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
6355 cpio or tar trailer is detected. This fixes a crash
6356 on open of a non existing file.
6357
c32865bf 63582008-02-05 Bean <bean123ch@gmail.com>
6359
6360 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
6361 address of entry.
6362 (grub_multiboot_load_elf64): Likewise.
6363 (grub_multiboot): Initialize mbi structure.
6364
6365 * util/grub-fstest.c: Don't include unused header file script.h.
6366
fe6b695a 6367 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 6368 of file.
6369 (grub_fstest_SOURCES): Likewise.
6370
409480b7 63712008-02-05 Robert Millan <rmh@aybabtu.com>
6372
6373 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
6374 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
6375 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
6376 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
6377
6378 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
6379 (translation_table): Replace hardcoded values with macros
6380 provided by `<grub/term.h>'.
6381
6382 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
6383 (keyboard_map): Correct/add a few values, with macros provided
6384 by `<grub/term.h>'.
6385 (keyboard_map_shift): Zero values that don't differ from their
6386 `keyboard_map' equivalents.
6387 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
6388 Discard the second scan code that is always sent by Caps lock.
6389 Only use `keyboard_map_shift' when it provides a non-zero value,
6390 otherwise fallback to `keyboard_map'.
6391
99fadbaa 63922008-02-04 Bean <bean123ch@gmail.com>
6393
6394 * Makefile.in (enable_grub_fstest): New variable.
6395
6396 * conf/common.rmk (grub_fstest_init.lst): New rule.
6397 (grub_fstest_init.h): Likewise.
6398 (grub_fstest_init.c): Likewise.
6399 (util/grub-fstest.c_DEPENDENCIES): New variable.
6400 (grub_fstest_SOURCES): Likewise.
6401
6402 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
6403
6404 * util/grub-fstest.c: New file.
6405
bf567c50 64062008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6407
6408 Make grub-setup handle a separate root device.
f19dbdb7 6409
bf567c50 6410 * util/i386/pc/grub-setup.c (setup): Always open the root device,
6411 so that the root device can be compared with the destination
6412 device.
6413 When embedding the core image, if the root and destination devices
6414 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
6415 0xFF.
6416 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 6417
9be6b98b 64182008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6419
6420 Add support for having a grub directory in a different drive. This
6421 is still only the data handling part.
f19dbdb7 6422
9be6b98b 6423 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
6424 (codestart): Save %dh in GRUB_ROOT_DRIVE.
6425 (grub_root_drive): New variable.
6426
6427 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
6428 instead of GRUB_BOOT_DRIVE to construct a device name. Set
6429 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
6430 as it was.
6431
6432 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
6433
6434 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
6435 macro.
6436 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
6437
6438 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
6439 is bogus, because PXE booting does not specify any drive
6440 correctly.
6441
6442 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
6443 am not sure if this is really correct.
6444
6445 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
6446 is always identical to the boot drive when booting from a CD.
6447
6448 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
6449 longer.
6450 (root_drive): New variable.
6451 (real_start): Unconditionally set %dh to ROOT_DRIVE.
6452 (setup_sectors): Push %dx right after popping it, because %dh will
6453 be modified later.
6454 (copy_buffer): Restore %dx.
6455
e0ca0677 64562008-02-03 Robert Millan <rmh@aybabtu.com>
6457
6458 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
6459 use `cdboot.img' for cdrom images.
6460
3b3f6629 64612008-02-03 Robert Millan <rmh@aybabtu.com>
6462
6463 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
6464 only setup gfxterm when `font' command has succeeded.
6465
d42b3672 64662008-02-03 Robert Millan <rmh@aybabtu.com>
6467
6468 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
6469 (grub_rescue_cmd_multiboot_loader)
6470 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
6471
fa370ea6 64722008-02-03 Pavel Roskin <proski@gnu.org>
6473
e0c5dacb 6474 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 6475 %edx and %esi from stack only after grub_gate_a20() is called.
6476 grub_gate_a20() clobbers %edx.
6477
f2a76e1d 64782008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
6479
6480 * configure.ac (AC_INIT): Bumped to 1.96.
6481
6482 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
6483 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
6484 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
6485 video/readers/png.c.
6486
90fd32d1 64872008-02-03 Bean <bean123ch@gmail.com>
9be665dd 6488
6489 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
6490 (cdboot_img_SOURCES): New variable.
6491 (cdboot_img_ASFLAGS): New variable.
6492 (cdboot_img_LDFLAGS): New variable.
6493
6494 * boot/i386/pc/cdboot.S: New file.
6495
6496 * disk/i386/pc/biosdisk.c (cd_start): New variable.
6497 (cd_count): Likewise.
6498 (grub_biosdisk_get_drive): Add support for cd device.
6499 (grub_biosdisk_call_hook): Likewise.
6500 (grub_biosdisk_iterate): Likewise.
6501 (grub_biosdisk_open): Likewise.
6502 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
6503 (grub_biosdisk_rw): Support reading from cd device.
6504 (GRUB_MOD_INIT): Iterate cd devices.
6505
6506 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
6507 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
6508 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
6509
6510 * kern/i386/pc/init.c (make_install_device): Check for cd device.
6511
4020aa53 65122008-02-02 Robert Millan <rmh@aybabtu.com>
6513
6514 * commands/read.c: New file.
6515 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
6516 (read_mod_SOURCES): New variable.
6517 (read_mod_CFLAGS): Likewise.
6518 (read_mod_LDFLAGS): Likewise.
6519
e03a1132 65202008-02-02 Robert Millan <rmh@aybabtu.com>
6521
6522 * normal/main.c (grub_normal_execute): Check for `menu->size' when
6523 determining whether menu has to be displayed.
6524
58c69220 65252008-02-02 Marco Gerards <marco@gnu.org>
6526
6527 * bus/pci.c: New file.
6528
6529 * include/grub/pci.h: Likewise.
6530
6531 * include/grub/i386/pc/pci.h: Likewise.
6532
6533 * commands/lspci.c: Likewise.
6534
6535 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
6536 `lspci.mod'.
6537 (pci_mod_SOURCES): New variable.
6538 (pci_mod_CFLAGS): Likewise.
6539 (pci_mod_LDFLAGS): Likewise.
6540 (lspci_mod_SOURCES): Likewise.
6541 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 6542 (lspci_mod_LDFLAGS): Likewise.
58c69220 6543
c004e1b4 65442008-02-02 Bean <bean123ch@gmail.com>
6545
6546 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
6547 (grub_ufs_get_file_block): Fix indirect block calculation problem.
6548
6549 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
6550 (grub_xfs_btree_node): New structure.
6551 (grub_xfs_btree_root): New structure.
6552 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
6553 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
6554 (GRUB_XFS_EXTENT_BLOCK): Likewise.
6555 (GRUB_XFS_EXTENT_SIZE): Likewise.
6556 (grub_xfs_read_block): Support btree format type.
6557 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
6558 Use directory block as basic unit.
6559
6560 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
6561
6562 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
6563 __attribute__ ((__regparm__ (1))).
6564
f95562bf 65652008-02-01 Robert Millan <rmh@aybabtu.com>
6566
6567 Correct a mistake in previous commit.
6568
6569 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
6570 top.
6571 (normal/command.c_DEPENDENCIES): New variable.
6572
7d31f41f 65732008-02-01 Robert Millan <rmh@aybabtu.com>
6574
6575 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
6576 top.
6577 (normal/command.c_DEPENDENCIES): New variable.
6578 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
6579 * conf/i386-ieee1275.rmk: Likewise.
6580 * conf/i386-linuxbios.rmk: Likewise.
6581 * conf/i386-pc.rmk: Likewise.
6582 * conf/sparc64-ieee1275.rmk: Likewise.
6583 * conf/powerpc-ieee1275.rmk: Likewise.
6584 (grub_emu_SOURCES): Add `fs/fshelp.c'.
6585
6586 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
6587
60b6be74 65882008-02-01 Robert Millan <rmh@aybabtu.com>
6589
6590 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
6591 call at beginning of function.
6592
078522ab 65932008-01-31 Pavel Roskin <proski@gnu.org>
6594
6595 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 6596 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
6597 (grub_mkrescue_SOURCES): Likewise.
078522ab 6598 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
6599
ccaa8a5f 66002008-01-30 Robert Millan <rmh@aybabtu.com>
6601
6602 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
6603 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
6604 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
6605 (grub_probe_SOURCES): ... to here.
6606
6607 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
6608 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
6609 * conf/i386-ieee1275.rmk: Likewise.
6610 * conf/i386-linuxbios.rmk: Likewise.
6611 * conf/powerpc-ieee1275.rmk: Likewise.
6612
ae5a9cd7 66132008-01-30 Tristan Gingold <gingold@free.fr>
6614
6615 * kern/rescue.c: Silently accept empty lines.
6616
70bc2ef2 66172008-01-29 Bean <bean123ch@gmail.com>
6618
6619 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
6620 (real_code_2): Code cleanup and change comment style.
6621 (move_memory): Avoid using 32-bit address mode.
6622
6a4d50ea 66232008-01-29 Bean <bean123ch@gmail.com>
6624
6625 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
6626 (png_mod_SOURCES): New variable.
6627 (png_mod_CFLAGS): Likewise.
6628 (png_mod_LDFLAGS): Likewise.
6629
6630 * video/readers/png.c: New file.
6631
11cc30ac 66322008-01-28 Robert Millan <rmh@aybabtu.com>
6633
6634 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
6635 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
6636 `ifndef GRUB_MOD_GAP' hack.
6637 * util/elf/grub-mkimage.c (add_segments): Likewise.
6638
3abc589f 66392008-01-27 Robert Millan <rmh@aybabtu.com>
6640
6641 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
6642 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 6643 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 6644
e1907778 66452008-01-27 Robert Millan <rmh@aybabtu.com>
6646
6647 Get grub-emu to build again (including parallel builds).
6648
6649 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
6650 Split into ...
6651 (util/grub-emu.c_DEPENDENCIES): ... this, ...
6652 (normal/execute.c_DEPENDENCIES): ... this, ...
6653 (grub-emu_DEPENDENCIES): ... and this.
6654
6655 * conf/i386-efi.rmk: Likewise.
6656 * conf/i386-linuxbios.rmk: Likewise.
6657 * conf/i386-ieee1275.rmk: Likewise.
6658 * conf/powerpc-ieee1275.rmk: Likewise.
6659 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
6660
2216b101 66612008-01-27 Robert Millan <rmh@aybabtu.com>
6662
6663 * NEWS: Add a few items.
6664
f75172d9 66652008-01-27 Robert Millan <rmh@aybabtu.com>
6666
6667 Fix parallel builds with grub-emu. Based on earlier commit for
6668 grub-probe and grub-setup.
6669
6670 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6671 (util/grub-emu.c_DEPENDENCIES): ... this.
6672 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6673 (util/grub-emu.c_DEPENDENCIES): ... this.
6674 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6675 (util/grub-emu.c_DEPENDENCIES): ... this.
6676 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6677 (util/grub-emu.c_DEPENDENCIES): ... this.
6678 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
6679 (util/grub-emu.c_DEPENDENCIES): ... this.
6680
3f51de77 66812008-01-27 Pavel Roskin <proski@gnu.org>
6682
6683 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
6684 to create a gap between _end and the modules added to the image
6685 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
6686 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
6687 * util/elf/grub-mkimage.c (add_segments): Likewise.
6688
2033f53e 66892008-01-26 Pavel Roskin <proski@gnu.org>
6690
6691 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
6692 just return an error.
6693
22da1f6f 66942008-01-26 Bean <bean123ch@gmail.com>
6695
6696 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
6697 (grub_reiserfs_get_item): Save offset of the next item.
6698 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
6699
2a9525e6 67002008-01-25 Robert Millan <rmh@aybabtu.com>
6701
6702 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
6703 make all filesystem sources appear together (possibly fixing omissions
6704 while at it).
6705 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6706 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6707 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
6708 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6709
6710 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
6711 add `kern/file.c'.
6712 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
6713 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6714 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
6715 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
6716
6717 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
6718 (probe): Add a sanity check to make sure of our ability to read
6719 requested files when probing for filesystem type.
6720
6721 * genmk.rb: Update copyright year (2007).
6722
6723 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
6724 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
6725 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
6726 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
6727 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
6728 : Remove function prototypes.
6729
b95f71b5 67302008-01-25 Robert Millan <rmh@aybabtu.com>
6731
6732 Revert my previous commits (based on wrong assumption of how grub_errno
6733 works).
6734
fe6b695a 6735 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 6736 * kern/file.c (grub_file_open): Likewise.
6737
d08bbb49 67382008-01-24 Pavel Roskin <proski@gnu.org>
6739
6740 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
6741 that hang if GRUB tries to setup colors.
6742 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
6743 colors for firmwares that don't support it.
6744 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
6745 Recognize Open Hack'Ware, set flags to work around its
6746 limitations.
6747
605e36ed 67482008-01-24 Robert Millan <rmh@aybabtu.com>
6749
6750 * kern/file.c (grub_file_open): Do not account previous failures of
6751 unrelated functions when grub_errno is checked for.
6752 Reported by Oleg Strikov.
6753
bac332a1 67542008-01-24 Bean <bean123ch@gmail.com>
6755
6756 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
6757 (grub_ufs_sblock): New member volume name.
6758 (grub_ufs_find_file): Fix string copy bug.
6759 (grub_ufs_label): Implement this function properly.
6760
6761 * fs/hfs.c (grub_hfs_cnid_type): New enum.
6762 (grub_hfs_iterate_records): Use the correct file number for extents
6763 and catalog file. Fix problem in next index calculation.
6764 (grub_hfs_find_node): Replace recursive function call with loop.
6765 (grub_hfs_iterate_dir): Replace recursive function call with loop.
6766
15c80c09 67672008-01-23 Robert Millan <rmh@aybabtu.com>
6768
6769 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
6770 `<grub/symbol.h>' and `<grub/multiboot.h>'.
6771 (grub_multiboot2_real_boot): New function prototype.
6772
6773 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
6774 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
6775
6776 * kern/i386/ieee1275/init.c (grub_os_area_addr)
6777 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
6778
305338fd 67792008-01-23 Robert Millan <rmh@aybabtu.com>
6780
6781 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
6782 #ifdef'ed out grub_printf().
6783
3ea52685 67842008-01-23 Robert Millan <rmh@aybabtu.com>
6785
6786 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
6787 grub_dprintf calls, since they make "debug=all" mode unusable.
6788 (grub_console_checkkey): Likewise.
6789
5882ae4b 67902008-01-23 Robert Millan <rmh@aybabtu.com>
6791
6792 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
6793 `term/i386/pc/at_keyboard.c'.
6794 (pkglib_MODULES): Add `serial.mod'.
6795 (serial_mod_SOURCES): New variable.
6796 (serial_mod_CFLAGS): Likewise.
6797 (serial_mod_LDFLAGS): Likewise.
6798
6799 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
6800 `<grub/powerpc/ieee1275/console.h>'.
6801 (grub_keyboard_controller_init): New function prototype.
6802 (grub_console_checkkey): Likewise.
6803 (grub_console_getkey): Likewise.
6804
6805 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
6806 keyboard on i386.
6807
6808 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
6809 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
6810
06ab5303 68112008-01-23 Robert Millan <rmh@aybabtu.com>
6812
6813 * kern/i386/pc/init.c (make_install_device): When memdisk image is
6814 present, "(memdisk)/boot/grub" becomes the default prefix.
6815
6816 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
6817 a memdisk tarball with all the modules. Add --overlay=DIR option that
6818 allows users to overlay additional files into the image.
6819
dbb475a4 68202008-01-23 Robert Millan <rmh@aybabtu.com>
6821
6822 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
6823 and `machine/memory.h'.
6824 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
6825 (_multiboot_mod_SOURCES): New variable.
6826 (_multiboot_mod_CFLAGS): Likewise.
6827 (_multiboot_mod_LDFLAGS): Likewise.
6828 (multiboot_mod_SOURCES): Likewise.
6829 (multiboot_mod_CFLAGS): Likewise.
6830 (multiboot_mod_LDFLAGS): Likewise.
6831
6832 * include/grub/i386/ieee1275/loader.h: New file.
6833
6834 * include/grub/i386/ieee1275/machine.h: Likewise.
6835
6836 * include/grub/i386/ieee1275/memory.h: Likewise.
6837
6838 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
6839 variable declaration.
6840 (grub_os_area_size): Likewise.
6841
6842 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
6843 (grub_lower_mem, grub_upper_mem): New variables.
6844 (grub_stop_floppy): New function (just to make
6845 grub_multiboot2_real_boot() happy).
6846
6847 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
6848 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
6849 (grub_stop): New function.
6850 Include `"../realmode.S"' and `"../loader.S"'.
6851
6852 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
6853 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
6854
6855 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
6856 rely on grub_multiboot2_real_boot() for final boot.
6857
25638629 68582008-01-22 Robert Millan <rmh@aybabtu.com>
6859
6860 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
6861 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
6862 device that doesn't look like an SD card.
6863 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6864 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
6865 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
6866 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
6867 found.
6868
9dad816d 68692008-01-22 Robert Millan <rmh@aybabtu.com>
6870
6871 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
6872 avoid claiming over our own code.
6873
34842f2d 68742008-01-22 Bean <bean123ch@gmail.com>
6875
6876 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
6877 (jpeg_mod_SOURCES): New variable.
6878 (jpeg_mod_CFLAGS): Likewise.
6879 (jpeg_mod_LDFLAGS): Likewise.
6880
6881 * video/readers/jpeg.c : New file.
6882
44023a28 68832008-01-22 Bean <bean123ch@gmail.com>
6884
6885 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
6886 there are no more items.
6887
bc2d8ac6 68882008-01-21 Robert Millan <rmh@aybabtu.com>
6889
6890 * kern/mm.c (grub_mm_init_region): Improve debug message.
6891
261bd4bc 68922008-01-21 Robert Millan <rmh@aybabtu.com>
6893
6894 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
6895 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
6896 address.
6897 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
6898 a C macro.
6899 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
6900 Indicates start of upper memory.
6901 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
6902 (generate_image): Abort when image size is big enough to corrupt
6903 upper memory.
6904
6905 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
6906 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
6907 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6908 instead of hardcoding 0xA0000.
6909 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
6910 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
6911 instead of hardcoding 0xA0000.
6912
f970b55e 69132008-01-21 Robert Millan <rmh@aybabtu.com>
6914
6915 * disk/memdisk.c (memdisk_size): New variable.
6916 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
6917 `memdisk_size'.
6918 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
6919 image to dynamic memory.
6920 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
6921 `memdisk_size'. Free memdisk block.
6922
1a8b0526 69232008-01-21 Robert Millan <rmh@aybabtu.com>
6924
6925 Fix detection of very small filesystems (like tar).
6926
6927 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
6928 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
6929 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
6930 a problem with this disk).
6931
6e9b4aab 69322008-01-21 Robert Millan <rmh@aybabtu.com>
6933
6934 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
6935 on grub_biosdisk_rw_standard() error.
6936
0d8837b2 69372008-01-21 Robert Millan <rmh@aybabtu.com>
6938
6939 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
6940 recent changes.
6941 * kern/elf.c: Likewise.
6942 * kern/ieee1275/ieee1275.c: Likewise.
6943 * kern/powerpc/ieee1275/openfw.c: Likewise.
6944 * term/ieee1275/ofconsole.c: Likewise.
6945
ffd36e34 69462008-01-21 Robert Millan <rmh@aybabtu.com>
6947
6948 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
6949
3f0093d0 6950 * include/grub/kernel.h (grub_arch_memdisk_addr)
6951 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 6952
3f0093d0 6953 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
6954 (grub_arch_memdisk_size): ... to here.
ffd36e34 6955
6c391b21 69562008-01-21 Robert Millan <rmh@aybabtu.com>
6957
6958 Mostly based on bugfix from Bean.
6959
6960 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
6961 attribute with hook() parameter.
6962 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
6963 declaration.
6964 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
6965 attribute with hook() parameter.
6966 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
6967 declaration.
6968
55a581dc 69692008-01-21 Robert Millan <rmh@aybabtu.com>
6970
6971 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
6972 (pkglib_MODULES): Add `memdisk.mod'.
6973 (memdisk_mod_SOURCES): New variable.
6974 (memdisk_mod_CFLAGS): Likewise.
6975 (memdisk_mod_LDFLAGS): Likewise.
6976
6977 * disk/memdisk.c: New file.
6978
6979 * include/grub/disk.h (grub_disk_dev_id): Add
6980 `GRUB_DISK_DEVICE_MEMDISK_ID'.
6981
6982 * include/grub/i386/pc/kernel.h
6983 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
6984 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
6985 (grub_kernel_image_size): New variable declaration.
6986 (grub_total_module_size): Likewise.
6987 (grub_memdisk_image_size): Likewise.
6988
6989 * include/grub/i386/pc/memory.h
6990 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
6991
6992 * include/grub/kernel.h: Include `<grub/symbol.h>'.
6993 (grub_arch_memdisk_addr): New variable declaration.
6994 (grub_arch_memdisk_size): Likewise.
6995
6996 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
6997 (grub_arch_memdisk_size): Likewise.
6998
6999 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
7000 (codestart): Replace hardcoded `0x100000' with
7001 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
7002
7003 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
7004 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
7005 not NULL, append the contents of the file it refers to, at the end of
7006 the compressed kernel image. Initialize `grub_memdisk_image_size'
7007 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
7008 (options): Add "memdisk"|'m' option.
7009 (main): Parse --memdisk|-m option, and pass user-provided path as
7010 parameter to generate_image().
7011
3d7f54c9 70122008-01-20 Robert Millan <rmh@aybabtu.com>
7013
7014 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
7015 grub_dprintf() calls from here ...
7016 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
7017
0bf74728 70182008-01-20 Robert Millan <rmh@aybabtu.com>
7019
7020 Fix detection of "real mode" when /options/real-mode? doesn't exist.
7021
7022 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
7023 declaration.
7024 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
7025 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
7026 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 7027 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 7028 property).
7029 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
7030 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
7031
33bf70a7 70322008-01-19 Robert Millan <rmh@aybabtu.com>
7033
fe6b695a 7034 Get rid of confusing function (superseded by
33bf70a7 7035 `grub_ieee1275_get_integer_property')
7036 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
7037 prototype.
7038 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
7039 function.
7040 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
7041 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 7042 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 7043
e2da7d26 70442008-01-19 Robert Millan <rmh@aybabtu.com>
7045
7046 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
7047 command after "shut-down", since implementations differ on which
7048 the command for halt is.
7049
59f1fd8d 70502008-01-19 Robert Millan <rmh@aybabtu.com>
7051
7052 * include/grub/i386/linuxbios/console.h: Add header protection.
7053 (grub_keyboard_controller_init): New function prototype.
7054 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
7055 (KEYBOARD_COMMAND_READ): Likewise.
7056 (KEYBOARD_COMMAND_WRITE): Likewise.
7057 (KEYBOARD_SCANCODE_SET1): Likewise.
7058 (grub_keyboard_controller_write): New function.
7059 (grub_keyboard_controller_read): Likewise.
7060 (grub_keyboard_controller_init): Likewise.
7061
7062 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
7063 (grub_console_init): On coreboot/LinuxBIOS, call
7064 grub_keyboard_controller_init().
7065
5f5a7c15 70662008-01-19 Robert Millan <rmh@aybabtu.com>
7067
7068 PowerPC changes provided by Pavel Roskin.
7069
7070 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
7071 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
7072 don't rely on cmain() doing it.
7073 * kern/i386/ieee1275/startup.S (_start): Store %eax in
7074 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
7075
1210e168 70762008-01-16 Robert Millan <rmh@aybabtu.com>
7077
7078 * include/grub/i386/linuxbios/memory.h
7079 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
7080 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
7081 receive `table_header' as argument. Instead, probe for it in the
7082 known memory ranges where it can be present.
7083 (grub_available_iterate): Do not pass a fixed `table_header' address
7084 to grub_linuxbios_table_iterate().
7085
3d04eab8 70862008-01-15 Robert Millan <rmh@aybabtu.com>
7087
7088 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
7089 * conf/i386-ieee1275.rmk: New file.
7090 * include/grub/i386/ieee1275/console.h: Likewise.
7091 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
7092 * include/grub/i386/ieee1275/kernel.h: Likewise.
7093 * include/grub/i386/ieee1275/time.h: Likewise.
7094 * kern/i386/ieee1275/init.c: Likewise.
7095 * kern/i386/ieee1275/startup.S: Likewise.
7096
d1bc1b73 70972008-01-15 Robert Millan <rmh@aybabtu.com>
7098
7099 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
7100 when pointers are 32-bit (but still do set it to one when they are
7101 64-bit).
7102
66a65807 71032008-01-15 Robert Millan <rmh@aybabtu.com>
7104
7105 * include/grub/ieee1275/ieee1275.h
7106 (grub_ieee1275_get_integer_property): New function prototype.
7107
7108 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
7109 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 7110 grub_ieee1275_get_property() to handle endianness.
66a65807 7111
7112 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
7113 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 7114 where appropriate.
66a65807 7115 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
7116 (grub_map): Likewise.
7117 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
7118
a83ccafd 71192008-01-15 Bean <bean123ch@gmail.com>
7120
7121 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
7122 (grub_script_execute_cmdline): Reset grub_errno.
7123
7124 * normal/main.c (read_config_file): Reset grub_errno.
7125
7126 * normal/parse.y (script_init): New.
7127 (script): Move function and menuentry here.
7128 (delimiter): New.
7129 (command): Add delimiter at the end of command.
7130 (commands): Adjust to match the new command.
7131 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 7132 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 7133 (if): Use the new commands.
7134
7135 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
7136
df6ecfc6 71372008-01-15 Robert Millan <rmh@aybabtu.com>
7138
7139 * normal/menu.c (run_menu): Move timeout message from here ...
7140 (print_timeout): ... to here.
7141 (run_menu): Use print_timeout() once during initial draw to print
7142 the whole message, and again in every clock tick to update only
7143 the number of seconds.
7144
87ae25eb 71452008-01-15 Robert Millan <rmh@aybabtu.com>
7146
7147 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
7148 actual size of `available' from grub_ieee1275_get_property(), and
7149 restrict parsing to that bound.
7150
47bf09a4 71512008-01-15 Christian Franke <franke@computer.org>
7152
7153 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
7154 (argp_program_version): Remove variable.
7155 (argp_program_bug_address): Likewise.
7156 (options): Convert from struct argp_option to struct option.
7157 (struct arguments): Remove.
7158 (parse_opt): Remove.
7159 (usage): New function.
7160 (main): Replace struct args members by simple variables.
7161 Replace argp_parse() by getopt_long().
7162 Add switch to evaluate options.
7163 Add missing "(...)" around root_dev in prefix string.
7164
c86f1469 71652008-01-14 Robert Millan <rmh@aybabtu.com>
7166
7167 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
7168 for grub_ieee1275_exit(), in order to improve portability.
7169
e622c559 71702008-01-14 Robert Millan <rmh@aybabtu.com>
7171
7172 * util/grub.d/10_linux.in (prefix): Define.
7173 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
7174
44cb1ec8 71752008-01-13 Pavel Roskin <proski@gnu.org>
7176
7177 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
7178 grub_errno if no errors have been detected.
7179
1eb8c802 71802008-01-12 Robert Millan <rmh@aybabtu.com>
7181
7182 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
7183 (grub_util_get_dev_abstraction): New function prototype.
7184
7185 * util/getroot.c: Include `<grub/util/getroot.h>'
7186 (grub_util_get_grub_dev): Move detection of abstraction type to ...
7187 (grub_util_get_dev_abstraction): ... here (new function).
7188
7189 * util/grub-probe.c: Convert PRINT_* to an enum. Add
7190 `PRINT_ABSTRACTION'.
7191 (probe): Probe for abstraction type when requested.
7192 (main): Understand `--target=abstraction'.
7193
7194 * util/i386/efi/grub-install.in: Add abstraction module to core
7195 image when it is found to be necessary.
7196 * util/i386/pc/grub-install.in: Likewise.
7197 * util/powerpc/ieee1275/grub-install.in: Likewise.
7198
7199 * util/update-grub_lib.in (font_path): Return system path without
7200 converting to GRUB path.
7201 * util/update-grub.in: Convert system path returned by font_path()
7202 to a GRUB path. Use `grub-probe -t abstraction' to determine what
7203 abstraction module is needed for loading fonts (if any). Export
7204 that as `GRUB_PRELOAD_MODULES'.
7205 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
7206 insmod commands).
7207
52bd3de9 72082008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
7209
7210 Remove some unused code from reiserfs.
f19dbdb7 7211
52bd3de9 7212 * fs/reiserfs.c (struct grub_reiserfs_key)
7213 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
7214 (struct grub_reiserfs_node_body): Removed.
7215 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
7216 Likewise.
7217 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7218 Likewise.
7219 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7220 Likewise.
7221 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
7222 Likewise.
7223 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
7224 Likewise.
7225 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
7226 Likewise.
7227 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7228 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7229 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
7230
2f80039d 72312008-01-10 Robert Millan <rmh@aybabtu.com>
7232
7233 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
7234 Determines if a file is garbage left by packaging systems, etc.
7235 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
7236 for processing /etc/grub.d scripts.
7237 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
7238 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
7239 as a condition for processing Linux images.
7240
87888032 72412008-01-10 Pavel Roskin <proski@gnu.org>
7242
7243 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
7244 to compile reiserfs.c on PowerPC.
7245
7e54fced 72462008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 7247
7248 * kern/device.c (grub_device_iterate): Do not abort device iteration
7249 when one of the devices cannot be opened.
7250 * kern/disk.c (grub_disk_open): Do not account previous failures of
7251 unrelated functions when grub_errno is checked for.
7252
5aa541e6 72532008-01-08 Robert Millan <rmh@aybabtu.com>
7254
7255 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
7256 `! grub_linux_is_bzimage', change order of address comparison to make
7257 it more intuitive, and improve "too big zImage" error message.
7258
7076340d 72592008-01-08 Robert Millan <rmh@aybabtu.com>
7260
7261 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
7262 `$(update-grub_DATA)'.
7263 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
7264 targets.
7265
9ca70333 72662008-01-07 Robert Millan <rmh@aybabtu.com>
7267
7268 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
7269 which instruction is modified by grub-setup during installation
7270 (since it wasn't obvious by only looking at this file).
7271
38ccf575 72722008-01-07 Robert Millan <rmh@aybabtu.com>
7273
7274 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
7275 listing actual TODO items.
7276
f5db4291 72772008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7278
868967cf 7279 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
7280 correctly.
7281 (grub_reiserfs_get_key_offset): Likewise.
7282 (grub_reiserfs_set_key_offset): Likewise.
7283 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 7284 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 7285
7286 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
7287 better to remove the bitfield version completely.
f19dbdb7 7288
868967cf 72892008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7290
f5db4291 7291 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
7292 allocated from the heap, due to the fshelp implementation.
7293 (grub_reiserfs_dir): Free NODE, due to the same reason.
7294
492e6d9d 72952008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7296
7297 Mostly from Vincent Pelletier:
f19dbdb7 7298
492e6d9d 7299 * fs/reiserfs.c: New file.
f19dbdb7 7300
492e6d9d 7301 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
7302 (reiserfs_mod_SOURCES): New variable.
7303 (reiserfs_mod_CFLAGS): Likewise.
7304 (reiserfs_mod_LDFLAGS): Likewise.
7305
7306 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
7307 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
7308 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
7309 normal/color.c.
7310
9ce3e7c1 73112008-01-06 Robert Millan <rmh@aybabtu.com>
7312
7313 * normal/color.c: Remove `<grub/env.h>'.
7314
f3b58148 73152008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
7316
7317 * include/grub/normal.h: Include <grub/env.h>.
7318
7ac3bcfa 73192008-01-05 Robert Millan <rmh@aybabtu.com>
7320
7321 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
7322 usage example with `(hd0,1)'.
fb358190 7323 Reported by Samuel Thibault.
7ac3bcfa 7324
c8ee99d7 73252008-01-05 Robert Millan <rmh@aybabtu.com>
7326
7327 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
7328 (grub_linux_boot_zimage): Rename to ...
7329 (grub_linux_boot): ... this.
7330 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
7331 (grub_linux_boot_zimage): Conditionalize zImage copy.
7332
7333 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
7334 (grub_linux_boot_bzimage): Remove prototype.
7335 (grub_linux_boot_zimage): Rename to ...
7336 (grub_linux_boot): ... this.
7337
7338 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
7339 (grub_linux_boot): Remove function.
7340
0ece25b1 73412008-01-05 Robert Millan <rmh@aybabtu.com>
7342
7343 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
7344 (grub_env_write_color_highlight): Likewise.
7345 (grub_wait_after_message): Likewise.
7346
7347 * normal/color.c: New file.
7348
7349 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7350 (normal_mod_DEPENDENCIES): Likewise.
7351
7352 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7353 (normal_mod_DEPENDENCIES): Likewise.
7354
7355 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7356 (normal_mod_DEPENDENCIES): Likewise.
7357
7358 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
7359 (normal_mod_DEPENDENCIES): Likewise.
7360
7361 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
7362 for waiting after a message is printed.
7363 * normal/main.c (read_config_file): Likewise.
7364 (grub_normal_init): Register grub_env_write_color_normal() and
7365 grub_env_write_color_highlight() hooks. Mark `color_normal' and
7366 `color_highlight' variables as global.
7367
7368 * normal/menu.c (grub_wait_after_message): New function.
7369 (grub_color_menu_normal): New variable. Replaces ...
7370 (GRUB_COLOR_MENU_NORMAL): ... this macro.
7371 (grub_color_menu_highlight): New variable. Replaces ...
7372 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
7373 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
7374 `GRUB_TERM_COLOR_STANDARD'.
7375 (print_message): Use `grub_setcolorstate' to reload colors. Rename
7376 `normal_code' and `highlight_code' to `old_color_normal' and
7377 `old_color_highlight', respectively.
7378 (grub_menu_init_page): Update colors when drawing the menu, based on
7379 `menu_color_normal' and `menu_color_highlight' variables.
7380 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
7381 a message is printed.
7382
182dd4e5 73832008-01-05 Robert Millan <rmh@aybabtu.com>
7384
7385 * kern/env.c (grub_env_context_open): Propagate hooks for global
7386 variables to new context.
7387
7388 * kern/main.c (grub_set_root_dev): Export `root' variable.
7389
ddf8f6ad 73902008-01-05 Robert Millan <rmh@aybabtu.com>
7391
7392 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 7393 discs unconditionally, since udev and others have options to provide
ddf8f6ad 7394 them.
7395
d8b43d9b 73962008-01-05 Robert Millan <rmh@aybabtu.com>
7397
7398 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
7399
2bff2de3 74002008-01-04 Christian Franke <franke@computer.org>
7401
7402 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
7403 of eisa_mmap.
7404
97eab917 74052008-01-03 Pavel Roskin <proski@gnu.org>
7406
7407 * kern/i386/linuxbios/init.c: Put "void" to all function
7408 declarations with no arguments.
7409 * kern/powerpc/ieee1275/init.c: Likewise.
7410 * term/i386/pc/at_keyboard.c: Likewise.
7411 * term/i386/pc/vga_text.c: Likewise.
7412 * util/grub-mkdevicemap.c: Likewise.
7413
b9416d00 74142008-01-02 Robert Millan <rmh@aybabtu.com>
7415
7416 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
7417 message when loaded image is out of bounds.
7418 (grub_multiboot_load_elf64): Likewise.
7419
92695df9 74202008-01-02 Pavel Roskin <proski@gnu.org>
7421
7422 * util/grub.d/10_linux.in: Try version without ".old" when
7423 looking for initrd. It's better to use initrd from the newer
7424 kernel of the same version than no initrd at all.
7425
d98d9cad 74262008-01-01 Robert Millan <rmh@aybabtu.com>
7427
7428 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
7429
dbfdce36 74302008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
7431
f19dbdb7 7432 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 7433 grub_video_get_active_render_target.
7434 (grub_video_adapter): Added unmap_color and get_active_render_target.
7435
f19dbdb7 7436 * video/video.c: Added grub_video_unmap_color and
dbfdce36 7437 grub_video_get_active_render_target.
7438 (grub_video_get_info): Changed method to accept NULL pointer as an
7439 argument to allow detection of active video adapter.
7440
7441 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
7442 grub_video_vbe_unmap_color_int.
7443 Added grub_video_vbe_unmap_color and
7444 grub_video_vbe_get_active_render_target.
7445 (grub_video_vbe_adapter): Added unmap_color and
7446 get_active_render_target.
7447
f19dbdb7 7448 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 7449 with grub_video_vbe_unmap_color_int.
7450
7451 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
7452 (DEFAULT_NORMAL_COLOR): Likewise.
7453 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
7454 (DEFAULT_FG_COLOR): Removed.
7455 (DEFAULT_BG_COLOR): Likewise.
7456 (DEFAULT_CURSOR_COLOR): Changed value.
7457 (grub_virtual_screen): Added standard_color_setting,
7458 normal_color_setting, highlight_color_setting and term_color.
7459 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
7460 (bitmap_width): Added.
7461 (bitmap_height): Likewise.
7462 (bitmap): Likewise.
7463 (set_term_color): Likewise.
7464 (grub_virtual_screen_setup): Changed to use new terminal coloring
7465 settings.
7466 (grub_gfxterm_init): Added init for bitmap.
7467 (grub_gfxterm_fini): Added destroy for bitmap.
7468 (redraw_screen_rect): Updated to use background bitmap and new
7469 terminal coloring.
7470 (scroll_up): Added optimization for case when there is no bitmap.
7471 (grub_gfxterm_cls): Fixed to use correct background color.
7472 (grub_virtual_screen_setcolorstate): Changed to use new terminal
7473 coloring.
7474 (grub_virtual_screen_setcolor): Likewise.
7475 (grub_virtual_screen_getcolor): Added.
7476 (grub_gfxterm_background_image_cmd): Likewise.
7477 (grub_video_term): Added setcolor and getcolor.
7478 (MOD_INIT): Added registration of background_image command.
7479 (MOD_TERM): Added unregistration for background_image command.
7480
c3c20931 74812007-12-30 Pavel Roskin <proski@gnu.org>
7482
7483 * loader/multiboot_loader.c: Fix multiboot command
7484 unregistration. Fix all typos in the word "multiboot".
7485
df266716 74862007-12-29 Pavel Roskin <proski@gnu.org>
94239199 7487
7488 * util/grub.d/10_linux.in: Refactor search for initrd. Add
7489 support for initrd names used in Fedora.
7490
fc6e896c 74912007-12-26 Bean <bean123ch@gmail.com>
7492
7493 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
7494 (cpio_mod_SOURCES): New variable.
7495 (cpio_mod_CFLAGS): Likewise.
7496 (cpio_mod_LDFLAGS): Likewise.
7497
7498 * fs/cpio.c: New file.
7499
7500 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
7501
7502 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7503
7504 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7505
7506 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7507
533110ad 75082007-12-25 Robert Millan <rmh@aybabtu.com>
7509
7510 * include/grub/term.h (struct grub_term): Add `getcolor' function.
7511 (grub_getcolor): New function.
7512
7513 * kern/term.c (grub_getcolor): New function.
7514 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
7515 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
7516 (print_entry): Set normal and highlight colors to
7517 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
7518 respectively, before printing and restore them to old
7519 values afterwards.
7520 (grub_menu_init_page): Likewise. Fill an additional colored space
7521 that would otherwise be left blank.
7522
7523 * term/efi/console.c (grub_console_getcolor): New function.
7524 (struct grub_console_term.getcolor): New variable.
7525 * term/i386/pc/console.c (grub_console_getcolor): New function.
7526 (struct grub_console_term.getcolor): New variable.
7527 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
7528 (struct grub_console_term.getcolor): New variable.
7529
7530 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
7531 (struct grub_console_term.setcolor): Remove variable.
7532 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
7533 (struct grub_console_term.setcolor): Remove variable.
7534 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
7535 (struct grub_console_term.setcolor): Remove variable.
7536 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
7537 (struct grub_console_term.setcolor): Remove variable.
7538
4931827f 75392007-12-25 Robert Millan <rmh@aybabtu.com>
7540
7541 * configure.ac: Search for possible unifont.hex locations, and
7542 define UNIFONT_HEX if found.
7543
7544 * Makefile.in (UNIFONT_HEX): Define variable.
7545 (DATA): Rename to ...
7546 (PKGLIB): ... this. Update all users.
7547 (PKGDATA): New variable.
7548 (pkgdata_IMAGES): Rename to ...
7549 (pkglib_IMAGES): ... this. Update all users.
7550 (pkgdata_MODULES): Rename to ...
7551 (pkglib_MODULES): ... this. Update all users.
7552 (pkgdata_PROGRAMS): Rename to ...
7553 (pkglib_PROGRAMS): ... this. Update all users.
7554 (pkgdata_DATA): Rename to ...
7555 (pkglib_DATA): ... this. Update all users.
7556 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
7557 (unicode.pff, ascii.pff): New rules.
7558 (all-local): Add `$(PKGDATA)' dependency.
7559 (install-local): Process `$(PKGDATA)'.
7560
7561 * util/update-grub_lib.in (font_path): Search for *.pff files in
7562 a few more locations, including `${pkgdata}'.
7563
57e57e31 75642007-12-23 Robert Millan <rmh@aybabtu.com>
7565
7566 Patch from Bean <bean123ch@gmail.com>:
7567 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
7568 `size'.
7569
4bc72aa9 75702007-12-21 Bean <bean123ch@gmail.com>
7571
7572 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
7573 (ntfscomp_mod_SOURCES): New variable.
7574 (ntfscomp_mod_CFLAGS): Likewise.
7575 (ntfscomp_mod_LDFLAGS): Likewise.
7576
7577 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
7578 (grub_probe_SOURCES): Likewise.
7579 (grub_emu_SOURCES): Likewise.
7580
7581 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7582 (grub_emu_SOURCES): Likewise.
7583
7584 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7585 (grub_emu_SOURCES): Likewise.
7586
7587 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
7588 (grub_emu_SOURCES): Likewise.
7589
7590 * fs/ntfs.c (grub_ntfscomp_func): New variable.
7591 (read_run_list): Renamed to grub_ntfs_read_run_list.
7592 (decomp_nextvcn): Moved to ntfscomp.c.
7593 (decomp_getch): Likewise.
7594 (decomp_get16): Likewise.
7595 (decomp_block): Likewise.
7596 (read_block): Likewise.
7597 (read_data): Partially moved to ntfscomp.c.
7598 (fixup): Change unsigned to grub_uint16_t.
7599 (read_mft): Change unsigned long to grub_uint32_t.
7600 (read_attr): Likewise.
7601 (read_data): Likewise.
7602 (read_run_data): Likewise.
7603 (read_run_list): Likewise.
7604 (read_mft): Likewise.
7605
7606 * fs/ntfscomp.c: New file.
7607
7608 * include/grub/ntfs.h: New file.
7609
af680a87 76102007-12-16 Robert Millan <rmh@aybabtu.com>
7611
7612 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
7613 IDE disk check, since Linux is known to support 20 IDE disks.
7614 Reported by Colin Watson.
7615
84be7599 76162007-12-15 Bean <bean123ch@gmail.com>
7617
7618 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
7619 (lnxboot_img_SOURCES): New variable.
7620 (lnxboot_img_ASFLAGS): Likewise.
7621 (lnxboot_img_LDFLAGS): Likewise.
7622
7623 * boot/i386/pc/lnxboot.S: New file.
7624
6af9db01 76252007-11-24 Pavel Roskin <proski@gnu.org>
7626
7627 * configure.ac: Test if '--build-id=none' is supported by the
7628 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
7629 objcopy to generate incorrect binary files (binutils
7630 2.17.50.0.18-1 as shipped by Fedora 8).
7631 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
7632 linking, so that build ID doesn't break the test.
7633
7361cfe6 76342007-11-24 Pavel Roskin <proski@gnu.org>
7635
7636 * include/grub/i386/time.h: use "void" in the argument list
7637 of grub_cpu_idle().
7638 * include/grub/powerpc/time.h: Likewise.
7639 * include/grub/sparc64/time.h: Likewise.
7640
1593e10c 76412007-11-18 Christian Franke <franke@computer.org>
7642
7643 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
7644 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
7645 This fixes the problem that function keys did not work in grub-emu.
7646
3b8db1a8 76472007-11-18 Christian Franke <franke@computer.org>
7648
7649 * disk/host.c (grub_host_open): Remove attribute unused from
7650 name parameter. Add check for "host". This fixes the problem
7651 that grub-emu does not find partitions.
7652
2e29408d 76532007-11-18 Christian Franke <franke@computer.org>
7654
7655 * util/hostfs.c (is_dir): New function.
7656 (grub_hostfs_dir): Handle missing dirent.d_type case.
7657 (grub_hostfs_read): Add missing fseek().
7658 (grub_hostfs_label): Clear label pointer. This fixes a crash
7659 of grub-emu on "ls (host)".
7660
398cd047 76612007-11-18 Christian Franke <franke@computer.org>
7662
7663 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
7664 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
7665 to 64 bit boundary by default.
7666
c405c391 76672007-11-18 Bean <bean123ch@gmail.com>
7668
7669 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
7670 (hexdump_mod_SOURCES): New variable.
7671 (hexdump_mod_CFLAGS): Likewise.
7672 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 7673
c405c391 7674 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7675
7676 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7677
7678 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7679
7680 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
7681
7682 * include/grub/hexdump.h: New file.
7683
7684 * commands/hexdump.c: New file.
7685
5cced7fd 76862007-11-10 Robert Millan <rmh@aybabtu.com>
7687
7688 * commands/i386/pc/play.c (beep_off): Switch order of arguments
7689 in grub_outb() calls.
7690 (beep_on): Likewise.
7691
8b714eb0 76922007-11-10 Christian Franke <franke@computer.org>
7693
7694 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
7695 (grub_menu_run): Likewise.
7696
ce0f1839 76972007-11-10 Robert Millan <rmh@aybabtu.com>
7698
7699 * include/grub/i386/efi/machine.h: New file.
7700 * include/grub/i386/linuxbios/machine.h: Likewise.
7701 * include/grub/i386/pc/machine.h: Likewise.
7702 * include/grub/powerpc/ieee1275/machine.h: Likewise.
7703 * include/grub/sparc64/ieee1275/machine.h: Likewise.
7704
7705 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
7706 (serial_hw_io_addr): New variable.
7707 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
7708 instead of `(unsigned short *) 0x400'.
7709
270c237d 77102007-11-10 Bean <bean123ch@gmail.com>
7711
7712 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
7713
a87783bf 77142007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7715
7716 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
7717 (vga_mod_SOURCES): Added.
7718 (vga_mod_CFLAGS): Likewise.
7719 (vga_mod_LDFLAGS): Likewise.
7720
7721 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
7722 grub_outb() calls.
7723 (set_map_mask): Likewise.
7724 (set_read_map): Likewise.
7725 (set_read_address): Likewise.
7726 (vga_font): Removed variable.
7727 (get_vga_glyph): Removed function.
7728 (invalidate_char): Likewise.
7729 (write_char): Changed to use grub_font_get_glyph() for font
7730 information.
7731 (grub_vga_putchar): Likewise.
7732 (grub_vga_getcharwidth): Likewise.
7733
6433b448 77342007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
7735
7736 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
7737 flags.
7738 (pxeboot_img_LDFLAGS): Likewise.
7739 (diskboot_img_LDFLAGS): Likewise.
7740 (kernel_img_LDFLAGS): Likewise.
7741
49178511 77422007-11-06 Robert Millan <rmh@aybabtu.com>
7743
7744 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
7745 in grub_outb() calls.
7746 (serial_hw_init): Likewise.
7747
53b052de 77482007-11-05 Robert Millan <rmh@aybabtu.com>
7749
7750 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
7751 spaces. Skip non-regular files.
7752
5ab33bba 77532007-11-05 Robert Millan <rmh@aybabtu.com>
7754
7755 * kern/disk.c (grub_disk_firmware_fini)
7756 (grub_disk_firmware_is_tainted): New variables.
7757
7758 * include/grub/disk.h (grub_disk_firmware_fini)
7759 (grub_disk_firmware_is_tainted): Likewise.
7760
7761 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
7762 (grub_disk_biosdisk_fini): ... to here.
7763 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
7764 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
7765 is set. Register grub_disk_biosdisk_fini() in
7766 `grub_disk_firmware_fini'.
7767
7768 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
7769 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
7770 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
7771 to finish existing firmware disk interface.
7772
7773 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
7774 (ata_mod_SOURCES): New variable.
7775 (ata_mod_CFLAGS): Likewise.
7776 (ata_mod_LDFLAGS): Likewise.
7777
0149ab7c 77782007-11-05 Robert Millan <rmh@aybabtu.com>
7779
7780 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
7781 (grub_ata_wait): Reimplement using grub_millisleep().
7782
7783 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
7784 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
7785
be7ac41e 77862007-11-03 Marco Gerards <marco@gnu.org>
7787
7788 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
7789 (CRTC_ADDR_PORT): New macro.
7790 (CRTC_DATA_PORT): Likewise.
7791 (CRTC_CURSOR): Likewise.
7792 (CRTC_CURSOR_ADDR_HIGH): Likewise.
7793 (CRTC_CURSOR_ADDR_LOW): Likewise.
7794 (update_cursor): New function.
7795 (grub_console_real_putchar): Call `update_cursor'.
7796 (grub_console_gotoxy): Likewise.
7797 (grub_console_cls): Set the default color when clearing the
7798 screen.
7799 (grub_console_setcursor): Implemented.
7800
bb06ab2e 78012007-11-03 Marco Gerards <marco@gnu.org>
7802
7803 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
7804 become activate.
7805 (grub_ata_pio_write): Likewise.
7806
7807 (grub_atapi_identify): Wait after issuing an ATA command.
7808 (grub_atapi_packet): Likewise.
7809 (grub_ata_identify): Likewise.
7810 (grub_ata_readwrite): Likewise.
7811
cf8f780b 78122007-11-03 Marco Gerards <marco@gnu.org>
7813
7814 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
7815 (grub_ata_pio_write): Likewise.
7816 (grub_ata_readwrite): Use `grub_error', instead of
7817 returning `grub_errno'.
7818
ed649e54 78192007-11-03 Marco Gerards <marco@gnu.org>
7820
7821 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
7822 grub_ata_pio_write once for every single sector, instead of for
7823 multiple sectors.
7824
ca25d8f0 78252007-10-31 Robert Millan <rmh@aybabtu.com>
7826
7827 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
7828
7829 * conf/i386-linuxbios.rmk: New file.
7830
7831 * kern/i386/pc/hardware.c: Likewise.
7832 * term/i386/pc/at_keyboard.c: Likewise.
7833 * term/i386/pc/vga_text.c: Likewise.
7834
7835 * include/grub/i386/linuxbios/boot.h: Likewise.
7836 * include/grub/i386/linuxbios/console.h: Likewise.
7837 * include/grub/i386/linuxbios/init.h: Likewise.
7838 * include/grub/i386/linuxbios/kernel.h: Likewise.
7839 * include/grub/i386/linuxbios/loader.h: Likewise.
7840 * include/grub/i386/linuxbios/memory.h: Likewise.
7841 * include/grub/i386/linuxbios/serial.h: Likewise.
7842 * include/grub/i386/linuxbios/time.h: Likewise.
7843
7844 * kern/i386/linuxbios/init.c: Likewise.
7845 * kern/i386/linuxbios/startup.S: Likewise.
7846 * kern/i386/linuxbios/table.c: Likewise.
7847
e911ecc1 78482007-10-31 Marco Gerards <marco@gnu.org>
7849
7850 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
7851 (ata_mod_SOURCES): New variable.
7852 (ata_mod_CFLAGS): Likewise.
7853 (ata_mod_LDFLAGS): Likewise.
7854
7855 * disk/ata.c: New file.
7856
7857 * include/grub/disk.h (grub_disk_dev_id): Add
7858 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 7859
7f66d0e0 78602007-10-31 Robert Millan <rmh@aybabtu.com>
7861
7862 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
7863 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
7864
7865 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
7866 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
7867
7868 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
7869 `<grub/types.h>'.
7870
7871 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
7872
5cd7dd46 78732007-10-27 Robert Millan <rmh@aybabtu.com>
7874
3236ca65 7875 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 7876
2ebfc90f 78772007-10-22 Robert Millan <rmh@aybabtu.com>
7878
7879 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
7880 `"../realmode.S"'.
7881 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
7882
73fcb0f3 78832007-10-22 Robert Millan <rmh@aybabtu.com>
7884
7885 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
7886 (pkgdata_MODULES): Add `biosdisk.mod'.
7887 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
7888 variables.
7889
7890 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
7891 (grub_biosdisk_init): Replace with ...
7892 (GRUB_MOD_INIT(biosdisk)): ... this.
7893 (grub_biosdisk_fini): Replace with ...
7894 (GRUB_MOD_FINI(biosdisk)): ... this.
7895
7896 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
7897 (grub_machine_init): Remove call to grub_biosdisk_init().
7898 (grub_machine_fini): Remove call to grub_machine_fini().
7899
7900 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
7901
3381d274 79022007-10-22 Robert Millan <rmh@aybabtu.com>
7903
7904 * include/grub/time.h: New file.
7905 * include/grub/i386/time.h: Likewise.
7906 * include/grub/powerpc/time.h: Likewise.
7907 * include/grub/sparc64/time.h: Likewise.
7908
7909 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
7910 instances to ...
7911 (KERNEL_MACHINE_TIME_HEADER): ... this.
7912 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7913 instances to ...
7914 (KERNEL_MACHINE_TIME_HEADER): ... this.
7915 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
7916 instances to ...
7917 (KERNEL_MACHINE_TIME_HEADER): ... this.
7918
7919 * kern/i386/efi/init.c: Include `<grub/time.h>'.
7920 (grub_millisleep): New function.
7921 * kern/i386/pc/init.c: Include `<grub/time.h>'.
7922 (grub_millisleep): New function.
7923 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
7924 Remove `grub/machine/time.h' include.
7925 (grub_millisleep): New function.
7926 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
7927 Remove `grub/machine/time.h' include.
7928 (grub_millisleep): New function.
7929
7930 * include/grub/misc.h (grub_div_roundup): New function.
7931
7932 * kern/misc.c: Include `<grub/time.h>'.
7933 (grub_millisleep_generic): New function.
7934
7935 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
7936 Add `time.h'.
7937 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
7938 Add `time.h'.
7939 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
7940 `machine/time.h'. Add `time.h'.
7941 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
7942
a39a0312 79432007-10-21 Robert Millan <rmh@aybabtu.com>
7944
7945 * include/grub/misc.h (grub_max): New function.
7946
2aad70e2 79472007-10-21 Robert Millan <rmh@aybabtu.com>
7948
7949 * util/misc.c (grub_util_info): Call fflush() before returning.
7950
54b71c4b 79512007-10-20 Robert Millan <rmh@aybabtu.com>
7952
7953 * genmk.rb (Image): Copy `extra_flags' from here ...
7954 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
7955
7956 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
7957 to `argc' and `args' arguments.
7958
a979f513 79592007-10-17 Robert Millan <rmh@aybabtu.com>
7960
7961 * kern/i386/loader.S: New file.
7962
7963 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
7964 * kern/i386/loader.S (grub_linux_prot_size)... to here.
7965 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
7966 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
7967 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
7968 * kern/i386/loader.S (grub_linux_real_addr)... to here.
7969 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
7970 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
7971 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
7972 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
7973 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
7974 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
7975 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
7976 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
7977
7978 * kern/i386/realmode.S: New file.
7979
7980 * kern/i386/pc/startup.S (protstack): Moved from here ...
7981 * kern/i386/realmode.S (protstack)... to here.
7982 * kern/i386/pc/startup.S (gdt): Moved from here ...
7983 * kern/i386/realmode.S (gdt)... to here.
7984 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
7985 * kern/i386/realmode.S (prot_to_real)... to here.
7986
7987 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
7988 `kern/i386/realmode.S'.
7989
825fc8fd 79902007-10-17 Robert Millan <rmh@aybabtu.com>
7991
7992 * include/grub/i386/loader.h: New file.
7993
7994 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
7995 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
7996 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
7997 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
7998 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
7999 * include/grub/i386/loader.h (grub_linux_prot_size)
8000 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
8001 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
8002 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
8003 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
8004
8005 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
8006
e179b2f4 80072007-10-15 Robert Millan <rmh@aybabtu.com>
8008
8009 * normal/misc.c (grub_normal_print_device_info): Do not probe for
8010 filesystem when dev->disk is unset.
8011 Do probe for filesystem even when dev->disk->has_partitions is set.
8012 In case a filesystem is found, always report it.
8013 In case it isn't, if dev->disk->has_partitions is set, report that
8014 a partition table was found instead of reporting that no filesystem
8015 could be identified.
8016
5db82af6 80172007-10-12 Robert Millan <rmh@aybabtu.com>
8018
8019 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
8020 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
8021
68f6ac74 8022 * include/grub/types.h (grub_host_to_target16): New macro.
8023 (grub_host_to_target32): Likewise.
8024 (grub_host_to_target64): Likewise.
8025 (grub_target_to_host16): Likewise.
8026 (grub_target_to_host32): Likewise.
8027 (grub_target_to_host64): Likewise.
5db82af6 8028
8029 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
8030 Renamed from to ...
8031 (GRUB_MOD_ALIGN): ...this. Update all users.
8032
68f6ac74 8033 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
8034 grub_host_to_target32.
8035 Replace grub_be_to_cpu32 with grub_target_to_host32.
8036 (load_modules): Likewise.
8037 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
8038 Replace grub_be_to_cpu32 with grub_target_to_host32.
8039 Replace grub_cpu_to_be16 with grub_host_to_target16.
8040 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 8041
3cf497cc 80422007-10-12 Robert Millan <rmh@aybabtu.com>
8043
8044 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
8045 * util/elf/grub-mkimage.c: ... here.
8046
8047 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
8048 `util/powerpc/ieee1275/grub-mkimage.c'.
8049
c8cc3692 80502007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 8051
c8cc3692 8052 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
8053 and make it easier to figure out.
8054 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
8055 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
8056 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
8057 leave us with less than HEAP_MIN_SIZE total heap.
8058 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 8059
5c58b791 80602007-10-03 Robert Millan <rmh@aybabtu.com>
8061
8062 * include/grub/i386/io.h: New file.
8063 * commands/i386/pc/play.c (inb): Removed.
8064 (outb): Removed.
8065 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
8066 with grub_outb().
afcd2ef8 8067 * term/i386/pc/serial.c (inb): Removed.
8068 (outb): Removed.
8069 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
8070 with grub_outb().
8071 * term/i386/pc/vga.c (inb): Removed.
8072 (outb): Removed.
8073 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
8074 with grub_outb().
5c58b791 8075
1a477ed6 80762007-10-02 Robert Millan <rmh@aybabtu.com>
8077
8078 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
8079 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8080 Reported by Marcin Kurek.
8081
6b5d80fa 80822007-09-07 Robert Millan <rmh@aybabtu.com>
8083
8084 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
8085 SmartFirmware version updates (as released by Sven Luther), and avoid
8086 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
8087 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
8088 known broken.
8089
5618afbf 80902007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
8091
8092 From Hitoshi Ozeki:
8093 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
8094 when merging two regions.
8095
6139dcd9 80962007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
8097
508e39ee 8098 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
8099 * normal/completion.c (grub_normal_do_completion): Likewise.
8100 Reported by Hitoshi Ozeki.
8101
81022007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 8103
6139dcd9 8104 Do not use devices at boot in chainloading.
f19dbdb7 8105
6139dcd9 8106 * loader/i386/pc/chainloader.c (boot_drive): New variable.
8107 (boot_part_addr): Likewise.
8108 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
8109 with BOOT_DRIVE and BOOT_PART_ADDR.
8110 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
8111 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
8112
38da6516 81132007-08-29 Robert Millan <rmh@aybabtu.com>
8114
8115 Patch from Simon Peter <dn.tlp@gmx.net>:
8116 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
8117 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
8118 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
8119 util/i386/pc/grub-setup.c_DEPENDENCIES.
8120 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
8121 util/grub-probe.c_DEPENDENCIES.
8122 * conf/powerpc-ieee1275.rmk: Likewise.
8123
29d0928c 81242007-08-28 Robert Millan <rmh@aybabtu.com>
8125
8126 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
8127 to tell grub-mkdevicemap how to name devices.
8128 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
8129 feature).
8130
8131 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
8132 util/i386/get_disk_name.c.
8133 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
8134 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
8135 util/ieee1275/get_disk_name.c.
8136
8137 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
8138
8139 * DISTLIST: Add util/i386/get_disk_name.c and
8140 util/ieee1275/get_disk_name.c.
8141
8142 * util/grub-mkdevicemap.c: Replace device naming logic with
8143 grub_util_get_disk_name() calls.
8144
5a0d3cca 81452007-08-20 Robert Millan <rmh@aybabtu.com>
8146
8147 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
8148 (so that it works for both plural and singular quantities).
8149
8b72db2f 81502007-08-05 Robert Millan <rmh@aybabtu.com>
8151
8152 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
8153 so that [xz] isn't taken into account when determining order.
8154
352466bf 81552007-08-02 Marco Gerards <marco@gnu.org>
8156
8157 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
8158 `include/multiboot2.h', `include/grub/elfload.h',
8159 `include/multiboot.h', `include/grub/multiboot.h',
8160 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
8161 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
8162 `kern/elf.c', `loader/multiboot_loader.c',
8163 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
8164 `loader/i386/pc/multiboot2.c',
8165 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
8166 `util/i386/pc/grub-mkrescue.in'. Remove
8167 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
8168 `include/grub/i386/pc/util/biosdisk.h' and
8169 `include/grub/powerpc/ieee1275/multiboot.h'.
8170
8f096014 81712007-08-02 Bean <bean123ch@gmail.com>
8172
8173 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
8174 (ntfs_mod_SOURCES): New variable.
8175 (ntfs_mod_CFLAGS): Likewise.
8176 (ntfs_mod_LDFLAGS): Likewise.
8177
8178 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
8179 (grub_probe_SOURCES): Likewise.
8180 (grub_emu_SOURCES): Likewise.
8181
8182 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
8183 (grub_emu_SOURCES): Likewise.
8184
8185 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
8186 (grub_emu_SOURCES): Likewise.
f19dbdb7 8187
8f096014 8188 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
8189
8190 * fs/ntfs.c: New file.
8191
9959f7db 81922007-08-02 Bean <bean123ch@gmail.com>
8193
8194 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
8195
8196 * file.h (grub_file): Likewise.
8197
8198 * fshelp.h (grub_fshelp_read_file): Likewise.
8199
8200 * util/i386/pc/grub-setup.c (setup): Likewise.
8201 (save_first_sector): Likewise.
8202 (save_blocklists): Likewise.
f19dbdb7 8203
9959f7db 8204 * fs/affs.c (grub_affs_read_file): Likewise.
8205
8206 * fs/ext2.c (grub_ext2_read_file): Likewise.
8207
8208 * fs/fat.c (grub_fat_read_data): Likewise.
8209
8210 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
8211
8212 * fs/hfs.c (grub_hfs_read_file): Likewise.
8213
8214 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
8215
8216 * fs/jfs.c (grub_jfs_read_file): Likewise.
8217
8218 * fs/minix.c (grub_minix_read_file): Likewise.
8219
8220 * fs/sfs.c (grub_sfs_read_file): Likewise.
8221
8222 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 8223
9959f7db 8224 * fs/xfs.c (grub_xfs_read_file): Likewise.
8225
8226 * command/blocklist.c (read_blocklist): Likewise.
8227 (print_blocklist): Likewise.
8228
0a203f83 82292007-08-02 Marco Gerards <marco@gnu.org>
8230
8231 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
8232 `util/hostfs.c'.
8233
8234 * disk/host.c: New file.
8235
8236 * util/hostfs.c: Likewise.
8237
8238 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
8239 return `GRUB_ERR_BAD_FS'.
8240 * fs/sfs.c (grub_sfs_mount): Likewise.
8241 * fs/xfs.c (grub_xfs_mount): Likewise.
8242
8243 * include/grub/disk.h (enum grub_disk_dev_id): Add
8244 `GRUB_DISK_DEVICE_HOST_ID'.
8245
8246 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
8247
e5dfe777 82482007-07-24 Jerone Young <jerone@gmail.com>
8249
f19dbdb7 8250 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 8251 modules for compilation.
8252 * conf/powerpc-ieee1275.rmk: Likewise.
8253
8254 * include/multiboot.h: Move multiboot definitions to one file. Rename
8255 many definitions to not get grub specific.
8256 * include/multiboot2.h: Create header with multiboot 2 definitions.
8257 * include/grub/multiboot.h: Header for grub specific function
8258 prototypes and definitions.
8259 * include/grub/multiboot2.h: Likewise.
8260 * include/grub/multiboot_loader.h: Likewise.
8261 * include/grub/i386/pc/multiboot.h: Removed.
8262 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
8263
8264 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
8265 and 2 to allow for one multiboot and module commands.
8266 * loader/multiboot2.c: Add multiboot2 functionality.
8267 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
8268 and definition names.
8269 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
8270 2 functions.
8271 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
8272 ieee1275 specific multiboot2 code.
8273
8274 * kern/i386/pc/startup.S: Change headers and definition names for
8275 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
8276
daf0f0ba 82772007-07-22 Robert Millan <rmh@aybabtu.com>
8278
8279 * geninitheader.sh: Process file specified in first parameter rather
8280 than hardcoding grub_modules_init.lst.
fe6b695a 8281 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 8282 than hardcoding grub_modules_init.h.
8283
8284 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
8285 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
8286 grub_probe_init.[ch] and grub_setup_init.[ch].
8287
8288 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
8289 grub_modules_init.h with grub_emu_init.h.
8290 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
8291 grub_probe_init.[ch] files.
8292 * conf/i386-efi.rmk: Likewise.
8293 * conf/i386-pc.rmk: Likewise.
8294 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
8295 grub_setup_init.[ch] files.
8296
8297 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
8298 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
8299 to initialize modules rather than a list of hardcoded functions.
8300 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
8301 grub_init_all() to initialize modules rather than a list of hardcoded
8302 functions.
8303
54cdc1cc 83042007-07-22 Robert Millan <rmh@aybabtu.com>
8305
8306 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
8307 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
8308
ad0686cc 83092007-07-22 Robert Millan <rmh@aybabtu.com>
8310
8311 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
8312 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
8313 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
8314 flag when running on SmartFirmware.
8315 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
8316 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
8317 was set.
8318
8319 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
8320 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
8321 rather than decreasing it.
8322
8323 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
8324 there's not enough space to do it, fail in the same way as when it
8325 can't be done because there are no partitions.
8326
8327 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
8328 when nvsetenv failed.
8329
969c02ec 83302007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8331
8332 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
8333 because this rule is automatically generated.
8334 (grub-mkrescue): Removed for the same reason as above.
8335
5a79f472 83362007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
8337
8338 Migrate to GNU General Public License Version 3.
f19dbdb7 8339
5a79f472 8340 * COPYING: Replaced with the plain text version of GPLv3.
8341
8342 * config.guess: Updated from gnulib.
8343 * config.sub: Likewise.
8344
8345 * geninit.sh: Output a GPLv3 copyright notice.
8346 * geninitheader.sh: Likewise.
8347 * genmodsrc.sh: Likewise.
8348 * gensymlist.sh.in: Likewise.
8349
8350 * boot/i386/pc/boot.S: Upgraded to GPLv3.
8351 * boot/i386/pc/diskboot.S: Likewise.
8352 * boot/i386/pc/pxeboot.S: Likewise.
8353 * commands/blocklist.c: Likewise.
8354 * commands/boot.c: Likewise.
8355 * commands/cat.c: Likewise.
8356 * commands/cmp.c: Likewise.
8357 * commands/configfile.c: Likewise.
8358 * commands/echo.c: Likewise.
8359 * commands/help.c: Likewise.
8360 * commands/ls.c: Likewise.
8361 * commands/search.c: Likewise.
8362 * commands/terminal.c: Likewise.
8363 * commands/test.c: Likewise.
8364 * commands/videotest.c: Likewise.
8365 * commands/i386/cpuid.c: Likewise.
8366 * commands/i386/pc/halt.c: Likewise.
8367 * commands/i386/pc/play.c: Likewise.
8368 * commands/i386/pc/reboot.c: Likewise.
8369 * commands/i386/pc/vbeinfo.c: Likewise.
8370 * commands/i386/pc/vbetest.c: Likewise.
8371 * commands/ieee1275/halt.c: Likewise.
8372 * commands/ieee1275/reboot.c: Likewise.
8373 * commands/ieee1275/suspend.c: Likewise.
8374 * disk/loopback.c: Likewise.
8375 * disk/lvm.c: Likewise.
8376 * disk/raid.c: Likewise.
8377 * disk/efi/efidisk.c: Likewise.
8378 * disk/i386/pc/biosdisk.c: Likewise.
8379 * disk/ieee1275/ofdisk.c: Likewise.
8380 * font/manager.c: Likewise.
8381 * fs/affs.c: Likewise.
8382 * fs/ext2.c: Likewise.
8383 * fs/fat.c: Likewise.
8384 * fs/fshelp.c: Likewise.
8385 * fs/hfs.c: Likewise.
8386 * fs/hfsplus.c: Likewise.
8387 * fs/iso9660.c: Likewise.
8388 * fs/jfs.c: Likewise.
8389 * fs/minix.c: Likewise.
8390 * fs/sfs.c: Likewise.
8391 * fs/ufs.c: Likewise.
8392 * fs/xfs.c: Likewise.
8393 * hello/hello.c: Likewise.
8394 * include/grub/acorn_filecore.h: Likewise.
8395 * include/grub/arg.h: Likewise.
8396 * include/grub/bitmap.h: Likewise.
8397 * include/grub/boot.h: Likewise.
8398 * include/grub/cache.h: Likewise.
8399 * include/grub/device.h: Likewise.
8400 * include/grub/disk.h: Likewise.
8401 * include/grub/dl.h: Likewise.
8402 * include/grub/elfload.h: Likewise.
8403 * include/grub/env.h: Likewise.
8404 * include/grub/err.h: Likewise.
8405 * include/grub/file.h: Likewise.
8406 * include/grub/font.h: Likewise.
8407 * include/grub/fs.h: Likewise.
8408 * include/grub/fshelp.h: Likewise.
8409 * include/grub/gzio.h: Likewise.
8410 * include/grub/hfs.h: Likewise.
8411 * include/grub/kernel.h: Likewise.
8412 * include/grub/loader.h: Likewise.
8413 * include/grub/lvm.h: Likewise.
8414 * include/grub/misc.h: Likewise.
8415 * include/grub/mm.h: Likewise.
8416 * include/grub/net.h: Likewise.
8417 * include/grub/normal.h: Likewise.
8418 * include/grub/parser.h: Likewise.
8419 * include/grub/partition.h: Likewise.
8420 * include/grub/pc_partition.h: Likewise.
8421 * include/grub/raid.h: Likewise.
8422 * include/grub/rescue.h: Likewise.
8423 * include/grub/script.h: Likewise.
8424 * include/grub/setjmp.h: Likewise.
8425 * include/grub/symbol.h: Likewise.
8426 * include/grub/term.h: Likewise.
8427 * include/grub/terminfo.h: Likewise.
8428 * include/grub/tparm.h: Likewise.
8429 * include/grub/types.h: Likewise.
8430 * include/grub/video.h: Likewise.
8431 * include/grub/efi/api.h: Likewise.
8432 * include/grub/efi/chainloader.h: Likewise.
8433 * include/grub/efi/console.h: Likewise.
8434 * include/grub/efi/console_control.h: Likewise.
8435 * include/grub/efi/disk.h: Likewise.
8436 * include/grub/efi/efi.h: Likewise.
8437 * include/grub/efi/pe32.h: Likewise.
8438 * include/grub/efi/time.h: Likewise.
8439 * include/grub/i386/linux.h: Likewise.
8440 * include/grub/i386/setjmp.h: Likewise.
8441 * include/grub/i386/types.h: Likewise.
8442 * include/grub/i386/efi/kernel.h: Likewise.
8443 * include/grub/i386/efi/loader.h: Likewise.
8444 * include/grub/i386/efi/time.h: Likewise.
8445 * include/grub/i386/pc/biosdisk.h: Likewise.
8446 * include/grub/i386/pc/boot.h: Likewise.
8447 * include/grub/i386/pc/chainloader.h: Likewise.
8448 * include/grub/i386/pc/console.h: Likewise.
8449 * include/grub/i386/pc/init.h: Likewise.
8450 * include/grub/i386/pc/kernel.h: Likewise.
8451 * include/grub/i386/pc/loader.h: Likewise.
8452 * include/grub/i386/pc/memory.h: Likewise.
8453 * include/grub/i386/pc/multiboot.h: Likewise.
8454 * include/grub/i386/pc/serial.h: Likewise.
8455 * include/grub/i386/pc/time.h: Likewise.
8456 * include/grub/i386/pc/vbe.h: Likewise.
8457 * include/grub/i386/pc/vbeblit.h: Likewise.
8458 * include/grub/i386/pc/vbefill.h: Likewise.
8459 * include/grub/i386/pc/vbeutil.h: Likewise.
8460 * include/grub/i386/pc/vga.h: Likewise.
8461 * include/grub/ieee1275/ieee1275.h: Likewise.
8462 * include/grub/ieee1275/ofdisk.h: Likewise.
8463 * include/grub/powerpc/libgcc.h: Likewise.
8464 * include/grub/powerpc/setjmp.h: Likewise.
8465 * include/grub/powerpc/types.h: Likewise.
8466 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
8467 * include/grub/powerpc/ieee1275/console.h: Likewise.
8468 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
8469 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
8470 * include/grub/powerpc/ieee1275/loader.h: Likewise.
8471 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
8472 * include/grub/powerpc/ieee1275/time.h: Likewise.
8473 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
8474 * include/grub/sparc64/libgcc.h: Likewise.
8475 * include/grub/sparc64/setjmp.h: Likewise.
8476 * include/grub/sparc64/types.h: Likewise.
8477 * include/grub/sparc64/ieee1275/console.h: Likewise.
8478 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
8479 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
8480 * include/grub/sparc64/ieee1275/time.h: Likewise.
8481 * include/grub/util/biosdisk.h: Likewise.
8482 * include/grub/util/getroot.h: Likewise.
8483 * include/grub/util/lvm.h: Likewise.
8484 * include/grub/util/misc.h: Likewise.
8485 * include/grub/util/raid.h: Likewise.
8486 * include/grub/util/resolve.h: Likewise.
8487 * io/gzio.c: Likewise.
8488 * kern/device.c: Likewise.
8489 * kern/disk.c: Likewise.
8490 * kern/dl.c: Likewise.
8491 * kern/elf.c: Likewise.
8492 * kern/env.c: Likewise.
8493 * kern/err.c: Likewise.
8494 * kern/file.c: Likewise.
8495 * kern/fs.c: Likewise.
8496 * kern/loader.c: Likewise.
8497 * kern/main.c: Likewise.
8498 * kern/misc.c: Likewise.
8499 * kern/mm.c: Likewise.
8500 * kern/parser.c: Likewise.
8501 * kern/partition.c: Likewise.
8502 * kern/rescue.c: Likewise.
8503 * kern/term.c: Likewise.
8504 * kern/efi/efi.c: Likewise.
8505 * kern/efi/init.c: Likewise.
8506 * kern/efi/mm.c: Likewise.
8507 * kern/i386/dl.c: Likewise.
8508 * kern/i386/efi/init.c: Likewise.
8509 * kern/i386/efi/startup.S: Likewise.
8510 * kern/i386/pc/init.c: Likewise.
8511 * kern/i386/pc/lzo1x.S: Likewise.
8512 * kern/i386/pc/startup.S: Likewise.
8513 * kern/ieee1275/ieee1275.c: Likewise.
8514 * kern/powerpc/cache.S: Likewise.
8515 * kern/powerpc/dl.c: Likewise.
8516 * kern/powerpc/ieee1275/cmain.c: Likewise.
8517 * kern/powerpc/ieee1275/crt0.S: Likewise.
8518 * kern/powerpc/ieee1275/init.c: Likewise.
8519 * kern/powerpc/ieee1275/openfw.c: Likewise.
8520 * kern/sparc64/cache.S: Likewise.
8521 * kern/sparc64/dl.c: Likewise.
8522 * kern/sparc64/ieee1275/init.c: Likewise.
8523 * kern/sparc64/ieee1275/openfw.c: Likewise.
8524 * loader/efi/chainloader.c: Likewise.
8525 * loader/efi/chainloader_normal.c: Likewise.
8526 * loader/i386/efi/linux.c: Likewise.
8527 * loader/i386/efi/linux_normal.c: Likewise.
8528 * loader/i386/pc/chainloader.c: Likewise.
8529 * loader/i386/pc/chainloader_normal.c: Likewise.
8530 * loader/i386/pc/linux.c: Likewise.
8531 * loader/i386/pc/linux_normal.c: Likewise.
8532 * loader/i386/pc/multiboot.c: Likewise.
8533 * loader/i386/pc/multiboot_normal.c: Likewise.
8534 * loader/powerpc/ieee1275/linux.c: Likewise.
8535 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
8536 * normal/arg.c: Likewise.
8537 * normal/cmdline.c: Likewise.
8538 * normal/command.c: Likewise.
8539 * normal/completion.c: Likewise.
8540 * normal/execute.c: Likewise.
8541 * normal/function.c: Likewise.
8542 * normal/lexer.c: Likewise.
8543 * normal/main.c: Likewise.
8544 * normal/menu.c: Likewise.
8545 * normal/menu_entry.c: Likewise.
8546 * normal/misc.c: Likewise.
8547 * normal/parser.y: Likewise.
8548 * normal/script.c: Likewise.
8549 * normal/i386/setjmp.S: Likewise.
8550 * normal/powerpc/setjmp.S: Likewise.
8551 * normal/sparc64/setjmp.S: Likewise.
8552 * partmap/acorn.c: Likewise.
8553 * partmap/amiga.c: Likewise.
8554 * partmap/apple.c: Likewise.
8555 * partmap/gpt.c: Likewise.
8556 * partmap/pc.c: Likewise.
8557 * partmap/sun.c: Likewise.
8558 * term/gfxterm.c: Likewise.
8559 * term/terminfo.c: Likewise.
8560 * term/efi/console.c: Likewise.
8561 * term/i386/pc/console.c: Likewise.
8562 * term/i386/pc/serial.c: Likewise.
8563 * term/i386/pc/vesafb.c: Likewise.
8564 * term/i386/pc/vga.c: Likewise.
8565 * term/ieee1275/ofconsole.c: Likewise.
8566 * util/biosdisk.c: Likewise.
8567 * util/console.c: Likewise.
8568 * util/genmoddep.c: Likewise.
8569 * util/getroot.c: Likewise.
8570 * util/grub-emu.c: Likewise.
8571 * util/grub-mkdevicemap.c: Likewise.
8572 * util/grub-probe.c: Likewise.
8573 * util/lvm.c: Likewise.
8574 * util/misc.c: Likewise.
8575 * util/raid.c: Likewise.
8576 * util/resolve.c: Likewise.
8577 * util/update-grub.in: Likewise.
8578 * util/update-grub_lib.in: Likewise.
8579 * util/grub.d/00_header.in: Likewise.
8580 * util/grub.d/10_hurd.in: Likewise.
8581 * util/grub.d/10_linux.in: Likewise.
8582 * util/i386/efi/grub-install.in: Likewise.
8583 * util/i386/efi/grub-mkimage.c: Likewise.
8584 * util/i386/pc/grub-install.in: Likewise.
8585 * util/i386/pc/grub-mkimage.c: Likewise.
8586 * util/i386/pc/grub-mkrescue.in: Likewise.
8587 * util/i386/pc/grub-setup.c: Likewise.
8588 * util/i386/pc/misc.c: Likewise.
8589 * util/powerpc/ieee1275/grub-install.in: Likewise.
8590 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
8591 * util/powerpc/ieee1275/misc.c: Likewise.
8592 * video/bitmap.c: Likewise.
8593 * video/video.c: Likewise.
8594 * video/i386/pc/vbe.c: Likewise.
8595 * video/i386/pc/vbeblit.c: Likewise.
8596 * video/i386/pc/vbefill.c: Likewise.
8597 * video/i386/pc/vbeutil.c: Likewise.
8598 * video/readers/tga.c: Likewise.
8599
3572d015 86002007-07-02 Robert Millan <rmh@aybabtu.com>
8601
8602 * conf/i386-efi.rmk: Replace obsolete reference to
8603 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
8604 with util/getroot.c.
8605 * conf/powerpc-ieee1275.rmk: Likewise.
8606 * conf/sparc64-ieee1275.rmk: Likewise.
8607
8608 * util/grub-emu.c (main): Fix unchecked pointer handling.
8609
2c2a681b 86102007-07-02 Robert Millan <rmh@aybabtu.com>
8611
8612 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
8613 invocation to fail, in order to support partition-less media.
8614
8615 * util/i386/pc/grub-install.in: Likewise.
8616
8617 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
8618 which fs or partmap modules are needed (akin to its sister scripts).
8619
8620 Also use grub-probe to get rid of unportable /proc/mounts check.
8621
8622 Print the same informational message that the other scripts do, before
fe6b695a 8623 exiting.
2c2a681b 8624
6193defe 86252007-06-23 Robert Millan <rmh@aybabtu.com>
8626
fe6b695a 8627 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 8628 a font file can be found and, if so, echo the GRUB path to it.
8629
8630 * util/update-grub.in: Handle multiple terminals depending on user
8631 input, platform availability and font file presence. Propagate
8632 variables of our findings to /etc/grub.d/ children.
8633
8634 * util/grub.d/00_header.in: Handle multiple terminals, based on
8635 environment setup by update-grub.
8636
eface1dc 86372007-06-23 Robert Millan <rmh@aybabtu.com>
8638
ba50d28f 8639 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 8640
bf697e28 86412007-06-21 Robert Millan <rmh@aybabtu.com>
8642
8643 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
8644 indicate end of data section in kernel image.
8645 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
8646 GRUB_KERNEL_MACHINE_DATA_END.
8647
8648 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
8649 space for it.
8650 * kern/i386/efi/startup.S: Likewise.
8651
8652 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
8653 during image generation. Implement --prefix option to override this
8654 patch.
8655 * util/i386/efi/grub-mkimage.c: Likewise.
8656
8657 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
8658 code to make path relative to its root into a separate function.
8659
8660 * util/i386/pc/grub-install.in: Use newly provided
8661 make_system_path_relative_to_its_root() to convert ${grubdir}, then
8662 pass the result to grub-install --prefix.
8663
baa574b4 86642007-06-13 Robert Millan <rmh@aybabtu.com>
8665
8666 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
8667 DEFAULT_DEVICE_MAP.
8668 * util/grub-emu.c: Use above definitions from misc.h instead of
8669 defining them.
8670 * util/grub-mkdevicemap.c: Likewise.
8671 * util/i386/pc/grub-setup.c: Likewise.
8672 * util/grub-probe.c: Likewise.
8673 (probe): Abort with grub_util_error() when either
8674 grub_guess_root_device or grub_util_get_grub_dev fails.
8675
0215dcbf 86762007-06-12 Robert Millan <rmh@aybabtu.com>
8677
8678 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
8679 "pager" assignment.
8680 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
8681 "pcdata".
8682 * util/grub-probe.c (probe): Likewise for "drive_name".
8683
8af2ab7b 86842007-06-11 Robert Millan <rmh@aybabtu.com>
8685
8686 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
8687 not just the cdrom one.
8688
59d31694 86892007-06-11 Robert Millan <rmh@aybabtu.com>
8690
8691 * util/i386/pc/grub-mkrescue.in: Add "set -e".
8692 Add --pkglibdir=DIR option to override pkglibdir.
8693 Mention --image-type=TYPE in help output.
8694 Fix --grub-mkimage (it was a no-op).
fe6b695a 8695 Abort gracefully when no parameter is given.
59d31694 8696
7ee367e4 86972007-06-11 Robert Millan <rmh@aybabtu.com>
8698
8699 * util/i386/pc/grub-mkrescue.in: New file.
8700 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
8701 * Makefile.in: Handle bin_SCRIPTS.
8702
29b0ed46 87032007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
8704
8705 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
8706 list of video modes.
8707
c0f90770 87082007-06-06 Robert Millan <rmh@aybabtu.com>
8709
8710 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
8711 file doesn't exist, or if it is in a filesystem grub can't read.
8712
8713 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
8714 not abort if GRUB_DRIVE could not be defined. Rearrange generated
8715 header comment to fit in 80 columns when the variables are resolved.
8716
8717 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
8718 could be identified by update-grub. Remove redundant check for
fe6b695a 8719 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 8720 handles that).
8721
fb36dc26 87222007-06-04 Robert Millan <rmh@aybabtu.com>
8723
8724 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
8725
8726 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
8727
8728 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
8729
0c68c93e 87302007-06-04 Robert Millan <rmh@aybabtu.com>
8731
8732 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
8733
8734 * include/grub/partition.h: Declare grub_apple_partition_map_init and
8735 grub_apple_partition_map_fini.
8736
8737 * util/biosdisk.c
8738 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
8739 to access >2 TiB disks).
8740
8741 Print disk->total_sectors with %llu instead of %lu, since this
8742 variable is always 64-bit (prevents wrong disk size from being displayed
8743 on either >2 TiB disk or big-endian CPU).
8744
8745 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
8746 into a generic case that supports all (sane) partition maps.
8747
8748 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
8749 breaks big-endian.
8750
8751 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
8752 and grub_apple_partition_map_fini() after that.
8753
0f23eb74 87542007-06-01 Robert Millan <rmh@aybabtu.com>
8755
8756 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
8757
8758 * util/grub.d/00_header.in: Only enable gfxterm when
8759 convert_system_path_to_grub_path() succeeds.
8760
42c71976 87612007-05-20 Robert Millan <rmh@aybabtu.com>
8762
8763 * util/update-grub_lib.in: New file.
8764 * DISTLIST: Add update-grub_lib.in.
8765 * conf/common.rmk: Generate update-grub_lib and install it in
8766 $(lib_DATA).
8767 * Makefile.in: Add install routine for $(lib_DATA).
8768
8769 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
8770 function provided by update-grub_lib to support arbitrary paths of
8771 unifont.pff.
8772 * util/update-grub.in: Use convert_system_path_to_grub_path() to
8773 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
8774
5beb2291 87752007-05-19 Robert Millan <rmh@aybabtu.com>
8776
8777 * commands/i386/cpuid.c: New module.
8778 * DISTLIST: Add it.
8779 * conf/i386-efi.rmk: Enable cpuid.mod.
8780 * conf/i386-pc.rmk: Likewise.
8781
7262eca1 87822007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8783
8784 * kern/disk.c (grub_disk_read): Check return value of
8785 grub_realloc().
8786
260ba823 87872007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
8788
8789 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
8790 arrays.
8791 * disk/raid.c (grub_raid_open): Likewise.
8792
1ecb6cf2 87932007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8794
8795 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
8796 stack instead of on the heap.
8797
8798 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
8799 before doing a read on it.
8800
8801 * configure.ac: Only use -fno-stack-protector for the target
8802 environment.
f19dbdb7 8803
21c8cbb1 88042007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
8805
8806 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
8807 __attribute_ ((unused)) to mode_type argument.
8808
8809 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 8810
21c8cbb1 8811 * kern/misc.c (memcmp): Fix prototype.
8812
8813 * include/grub/partition.h [GRUB_UTIL]
8814 (grub_gpt_partition_map_init): Add prototype.
8815 (grub_gpt_partition_map_fini): Likewise.
8816
8817 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
8818 at the right place.
8819
8820 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
8821 (grub_fat_read_data): Likewise.
8822 (grub_fat_find_dir): Likewise.
8823
8824 * font/manager.c (find_glyph): Make table a const.
8825 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 8826
849d55d3 88272007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
8828
8829 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
8830 code, first search for device in /dev/mapper, then in /dev.
8831 (grub_util_get_grub_dev): New function.
8832 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
8833 prototype.
8834 * util/grub-probe.c (probe): Remove check for RAID, call
8835 grub_util_get_grub_dev() instead of
8836 grub_util_biosdisk_get_grub_dev().
8837 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
8838 grub_util_biosdisk_get_grub_dev().
8839 * util/i386/pc/grub-setup.c (main): Likewise.
8840
8fff7c2f 88412007-05-16 Robert Millan <rmh@aybabtu.com>
8842
8843 * DISTLIST: Update for the latest changes.
8844 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
8845 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
8846 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
8847 grub/util/biosdisk.h.
8848 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
8849 grub/util/biosdisk.h.
8850
48e12b52 88512007-05-16 Robert Millan <rmh@aybabtu.com>
8852
8853 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
8854
46b9d128 88552007-05-16 Robert Millan <rmh@aybabtu.com>
8856
8857 * util/i386/efi/grub-install.in: New.
8858 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
8859 newly added grub-install.
8860 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
8861 include.
8862 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
8863 grub/util/biosdisk.h.
8864 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
8865 grub/util/biosdisk.h.
8866
2d1a40a9 88672007-05-16 Robert Millan <rmh@aybabtu.com>
8868
8869 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
8870 * include/grub/util/biosdisk.h: ... here.
8871 * util/i386/pc/biosdisk.c: Moved to ...
8872 * util/biosdisk.c: ... here.
8873 * util/i386/pc/getroot.c: Moved to ...
8874 * util/getroot.c: ... here.
8875 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
8876 * util/grub-mkdevicemap.c: ... here.
8877 * util/i386/pc/grub-probe.c: Moved to ...
8878 * util/grub-probe.c: ... here.
8879
9e26e3bc 88802007-05-15 Robert Millan <rmh@aybabtu.com>
8881
8882 * util/update-grub.in: Remove duplicated line in grub.cfg header
8883 message.
8884
57f96397 88852007-05-13 Robert Millan <rmh@aybabtu.com>
8886
8887 * util/update-grub.in: Fix a few assumptions about the devices holding
8888 /, /boot and /boot/grub being the same.
8889 * util/grub.d/00_header.in: Likewise.
8890 * util/grub.d/10_hurd.in: Likewise.
8891 * util/grub.d/10_linux.in: Likewise.
8892
8893 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
8894 patterns. Use that to define the `.old' suffix as older than `'.
8895
8896 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
8897
8898 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
8899 the grub.cfg header message.
8900
2e610d62 89012007-05-11 Robert Millan <rmh@aybabtu.com>
8902
8903 * util/update-grub.in: Create device.map if it doesn't already exist,
8904 before attempting to run grub-probe.
8905 Check for grub-probe and grub-mkdevicemap with the same code
8906 grub-install is using.
8907 Remove test mode.
8908
3f6a10ef 89092007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
8910
8911 * Makefile.in: Add the datarootdir autoconf variable.
8912
02e7b75e 89132007-05-09 Robert Millan <rmh@aybabtu.com>
8914
8915 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 8916 fail gracefully if dev->disk->partition == NULL.
02e7b75e 8917
75f396cc 89182007-05-07 Robert Millan <rmh@aybabtu.com>
8919
8920 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
8921 determine partition map module.
8922 * util/i386/pc/grub-install.in: Use this feature to decide which
8923 partition module to load, instead of hardcoding pc and gpt.
8924
da65cb36 89252007-05-07 Robert Millan <rmh@aybabtu.com>
8926
8927 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
8928 source directory differs from build directory.
8929
b57d6a91 89302007-05-05 Robert Millan <rmh@aybabtu.com>
8931
8932 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
8933 initialisation.
8934
509d00f1 89352007-05-05 Robert Millan <rmh@aybabtu.com>
8936
8937 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
8938
c48f23ef 89392007-05-05 Robert Millan <rmh@aybabtu.com>
8940
8941 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
8942 command-line arguments via ${GRUB_CMDLINE_LINUX}.
8943
20b97658 89442007-05-05 Robert Millan <rmh@aybabtu.com>
8945
8946 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
8947 (grub_probe_SOURCES): Likewise.
8948 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
8949 GPT and initialize dos_part and bsd_part accordingly.
8950 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
8951 install_bsd_part.
8952 (main): Activate gpt module for use during partition identification,
8953 and deactivate it afterwards.
8954 * util/i386/pc/grub-install.in: Add gpt module to core.img.
8955 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
8956 partition identification, and deactivate it afterwards.
8957
99123174 89582007-05-05 Robert Millan <rmh@aybabtu.com>
8959
8960 * term/i386/pc/console.c (grub_console_fini): Call
8961 grub_term_set_current() before grub_term_unregister().
8962
ebd97f6e 89632007-05-04 Robert Millan <rmh@aybabtu.com>
8964
8965 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
8966 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
8967 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
8968 and update-grub_DATA.
8969 * conf/common.rmk: Build and install update-grub components.
8970 * conf/common.mk: Regenerate.
8971 * util/update-grub.in: New. Core of update-grub.
8972 * util/grub.d/00_header.in: New. Generates grub.cfg header.
8973 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
8974 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
8975 * util/grub.d/README: New. Document grub.d directory layout.
8976
b06a264d 89772007-05-01 Robert Millan <rmh@aybabtu.com>
8978
8979 * util/grub-emu.c: Move initialization functions
8980 grub_util_biosdisk_init() and grub_init_all() before
8981 grub_util_biosdisk_get_grub_dev(), which relies on them.
8982
41f0050e 89832007-04-19 Robert Millan <rmh@aybabtu.com>
8984
8985 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
8986 it is used later.
8987
04582bb3 89882007-04-18 Jerone Young <jerone@gmail.com>
8989
f19dbdb7 8990 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 8991 stanza.
8992
08db4632 89932007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 8994
08db4632 8995 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
8996 continue on and look for device node with real device name.
8997
801b76be 89982007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 8999
fe6b695a 9000 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 9001 ability.
9002 * Makefile.in: Add autoconf package transformation code.
9003 * util/i386/pc/grub-install.in: Likewise.
9004 * util/powerpc/ieee1275/grub-install.in: Likewise.
9005
6795c4e1 90062007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
9007
9008 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
9009 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
9010 (EXT2_REVISION): Likewise.
9011 (EXT2_INODE_SIZE): Likewise.
9012 (struct grub_ext2_block_group): Added a missing member
9013 "used_dirs".
9014 (grub_ext2_read_inode): Divide by the inode size in a superblock
9015 instead of 128 to obtain INODES_PER_BLOCK.
9016 Use the macro EXT2_INODE_SIZE instead of directly using
9017 SBLOCK->INODE_SIZE.
9018
d70af616 90192007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
9020
9021 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
9022 superblock instead of the structure size to compute an
9023 offset. This fixes the problem that GRUB could not read a
9024 filesystem when inode size is different from 128-byte.
9025
3b801603 90262007-03-05 Marco Gerards <marco@gnu.org>
9027
9028 * normal/main.c (read_config_file): When "menu" is not set, create
9029 an initial context.
9030
4785bfe4 90312007-02-21 Hollis Blanchard <hollis@penguinppc.org>
9032
9033 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
9034 (HEAP_LIMIT): New macro.
9035 (grub_claim_heap): Claim memory up to `heaplimit'.
9036
a0cbb023 90372007-02-21 Hollis Blanchard <hollis@penguinppc.org>
9038
9039 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
9040 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
9041 (_start): Likewise.
9042 (grub_arch_modules_addr): Return address after `_end'.
9043 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
9044 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
9045 (add_segments): Calculate `_end' from phdr size and location.
9046 (ALIGN_UP): Moved to ...
9047 * include/grub/misc.h: here.
9048 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
9049 New macro.
9050 (GRUB_IEEE1275_MODULE_BASE): Removed.
9051
fd7d8eba 90522007-02-20 Hollis Blanchard <hollis@penguinppc.org>
9053
9054 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
9055 loop boundary.
9056
9b09e6fc 90572007-02-20 Hollis Blanchard <hollis@penguinppc.org>
9058
9059 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
9060 All users updated.
9061 (grub_elf64_load_hook_t): Likewise.
9062 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
9063 debug output.
9064
3ce27299 90652007-02-20 Hollis Blanchard <hollis@penguinppc.org>
9066
9067 * kern/mm.c: Update copyright.
9068 (grub_mm_debug): Correct syntax error.
9069 (grub_mm_dump_free): New function.
9070 (grub_debug_free): Call `grub_free'.
9071 * include/grub/mm.h: Update copyright.
9072 (grub_mm_dump_free): Add declaration.
9073
077d5fee 90742007-02-12 Hollis Blanchard <hollis@penguinppc.org>
9075
9076 * include/grub/ieee1275/ieee1275.h: Update copyright.
9077 * kern/powerpc/ieee1275/init.c: Likewise.
9078 * kern/powerpc/ieee1275/openfw.c: Likewise.
9079
9080 * loader/powerpc/ieee1275/linux.c: Likewise.
9081 * include/grub/elfload.h: Likewise.
9082 * kern/elf.c: Likewise.
9083 (grub_elf32_load): Pass `base' and `size' parameters. Update all
9084 callers.
9085 (grub_elf64_load): Likewise.
9086 (grub_elf32_load_segment): Move to a nested function.
9087 (grub_elf64_load_segment): Likewise.
9088
dc946850 90892007-02-12 Hollis Blanchard <hollis@penguinppc.org>
9090
9091 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
9092 prototype.
9093 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
9094 (grub_heap_len): Likewise.
9095 (HEAP_SIZE): New macro.
9096 (grub_claim_heap): New function.
9097 (grub_machine_init): Don't claim heap directly. Call
9098 `grub_claim_heap'.
9099 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
9100 (grub_available_iterate): New function.
9101
baa2a121 91022007-02-03 Thomas Schwinge <tschwinge@gnu.org>
9103
9104 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
9105 * configure.ac: Use it for testing the HOST and TARGET compilers.
9106
4fe9862e 91072006-12-13 Thomas Schwinge <tschwinge@gnu.org>
9108
9109 * Makefile.in (enable_grub_emu): New variable.
9110 * configure.ac (--enable-grub-emu): New option.
9111 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
9112 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
9113 * conf/i386-pc.rmk: Likewise.
9114 * conf/powerpc-ieee1275.rmk: Likewise.
9115 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
9116
a8aa5762 91172006-12-12 Marco Gerards <marco@gnu.org>
9118
9119 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
9120
9121 * kern/env.c (grub_env_unset): Don't free the member `value' when
9122 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
9123 pointer.
9124
9125 * normal/main.c (current_menu): Removed.
9126 (free_menu): Unset the `menu' environment variable.
9127 (grub_normal_menu_addentry): Make use of the environment variable
9128 `menu', instead of using the global `current_menu'. Allocate
9129 memory for the sourcecode of this entry.
9130 (read_config_file): New argument `nested', changed all callers.
9131 Only in the case of a new context, initialize a new menu. Set the
9132 `menu' environment variable.
9133 (grub_normal_execute): Don't set and unset the environment
9134 variable `menu' here anymore. Only free the menu when leaving the
9135 context.
9136
9137 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
9138 leak.
9139
957b3a3e 91402006-12-11 Marco Gerards <marco@gnu.org>
9141
9142 * normal/menu_entry.c (run): Fix off by one bug so the last line
9143 is executed. Move the loader check to outside the loop.
9144
ef875714 91452006-12-08 Hollis Blanchard <hollis@penguinppc.org>
9146
9147 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
9148
4e739985 91492006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
9150
9151 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
9152 the number of sectors. Reported by Andrey Shuvikov
9153 <mr_hyro@yahoo.com>.
f19dbdb7 9154
790707f2 91552006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
9156
9157 * kern/disk.c (grub_disk_read): When there is a read error, always
9158 try to read only the necessary data.
f19dbdb7 9159
790707f2 9160 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
9161 disk/raid.c.
9162 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
9163 prototype.
9164 [GRUB_UTIL] (grub_raid_fini): Likewise.
9165 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 9166 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 9167 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
9168 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
9169 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
9170 and grub_raid_fini().
f19dbdb7 9171
03e58196 91722006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
9173
9174 * include/grub/types.h (__unused): Rename to UNUSED.
9175 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
9176 (grub_elf64_size): Likewise.
f19dbdb7 9177
ae4f23bf 91782006-11-03 Hollis Blanchard <hollis@penguinppc.org>
9179
9180 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
9181 grub_error_push and grub_error_pop in the error-handling path.
9182 (grub_elf32_load_segment): Only call grub_file_read with non-zero
9183 length.
9184
2166cc83 91852006-11-03 Hollis Blanchard <hollis@penguinppc.org>
9186
9187 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
9188 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
9189 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9190 (kernel_elf_SOURCES): Likewise.
9191 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
9192 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
9193 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9194 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9195 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
9196 (elf_mod_SOURCES): New variable.
9197 (elf_mod_CFLAGS): Likewise.
9198 (elf_mod_LDFLAGS): Likewise.
9199 * include/grub/types.h (__unused): New macro.
9200 * include/grub/elfload.h: New file.
9201 * kern/elf.c: Likewise.
9202 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
9203 (ELF32_LOADMASK): New macro.
9204 (ELF64_LOADMASK): Likewise.
9205 (vmlinux): Removed.
9206 (grub_linux_load32): New function.
9207 (grub_linux_load64): Likewise.
9208 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
9209 Use grub_elf_t instead of grub_file_t.
9210
a09d5aa5 92112006-11-02 Hollis Blanchard <hollis@penguinppc.org>
9212
9213 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
9214 `catch_result' to struct set_color_args.
9215
d976fc51 92162006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
9217
9218 * normal/menu.c: Include grub/script.h.
9219 * normal/menu_entry.c: Likewise.
9220 * include/grub/normal.h: Do not include grub/script.h.
9221
67507549 92222006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9223
9224 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
9225
69203a99 92262006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9227
9228 * kern/disk.c (grub_disk_open): Print debug messages when opening a
9229 disk.
9230 (grub_disk_close): Print debug messages when closing a disk.
9231 (grub_disk_read): Print debug messages when disk read fails.
9232 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
9233 filesystem type.
9234 * kern/partition.c: Include misc.h.
9235 (grub_partition_iterate): Print debug messages when detecting
9236 partition type.
9237
e2b8278c 92382006-10-27 Hollis Blanchard <hollis@penguinppc.org>
9239
9240 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
9241 is negative.
9242 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
9243
97b2f2ff 92442006-10-26 Hollis Blanchard <hollis@penguinppc.org>
9245
9246 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
9247 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
9248
6555d655 92492006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
9250
9251 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
9252 instead of sizeof(lv). Patch by Michael Guntsche.
9253
4d42b77f 92542006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
9255
9256 * disk/lvm.c: Rename VGS to VG_LIST.
9257 (grub_lvm_iterate): Change VGS->LV to VG-LV.
9258 (grub_lvm_open): Likewise.
9259 Thanks to Michael Guntsche for finding this bug.
9260
5d74d927 92612006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9262
9263 * configure.ac (AC_INIT): Bumped to 1.95.
9264
a1bb27e4 92652006-10-14 Robert Millan <rmh@aybabtu.com>
9266
9267 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
9268 with "/dev/.static/dev/md".
9269
e0994b8b 92702006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9271
9272 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
9273 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
9274 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
9275 DRIVE_NAME are always freed.
9276
9277 * util/i386/pc/biosdisk.c (make_device_name): Add one into
9278 DOS_PART, as a DOS partition is counted from one instead of zero
9279 now. Reported by Robert Millan.
9280
ddd5cee9 92812006-10-14 Robert Millan <rmh@aybabtu.com>
9282
9283 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
9284 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
9285 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
9286 string returned by grub_guess_root_device.
9287 * util/i386/pc/grub-setup.c: Likewise.
9288 * util/i386/pc/grub-probefs.c: Likewise.
9289
9290 * util/i386/pc/grub-probefs.c: Rename to ...
9291 * util/i386/pc/grub-probe.c: ... this.
9292 * DISTLIST: Remove grub-probefs, add grub-probe.
9293 * conf/i386-efi.rmk: Likewise.
9294 * conf/i386-pc.rmk: Likewise.
9295 * util/i386/pc/grub-install.in: Likewise.
9296
9297 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
9298 choose which information we want to print.
9299
2b002173 93002006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
9301
9302 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
9303 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
9304 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
9305 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
9306 video/readers/tga.c and video/i386/pc/vbeutil.c.
9307
93082006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
9309
9310 Added support for RAID and LVM.
f19dbdb7 9311
2b002173 9312 * disk/lvm.c: New file.
9313 * disk/raid.c: Likewise.
9314 * include/grub/lvm.h: Likewise.
f19dbdb7 9315 * include/grub/raid.h: Likewise.
2b002173 9316 * include/grub/util/lvm.h: Likewise.
9317 * include/grub/util/raid.h: Likewise.
9318 * util/lvm.c: Likewise.
9319 * util/raid.c: Likewise.
9320
9321 * include/grub/disk.h (grub_disk_dev_id): Add
9322 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
9323 (grub_disk_get_size): New prototype.
9324 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
9325 returns a partition.
9326 (grub_disk_get_size): New function.
f19dbdb7 9327
2b002173 9328 * kern/i386/pc/init.c (make_install_device): Copy the prefix
9329 verbatim if grub_install_dos_part is -2.
9330
9331 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
9332 and LVM devices.
9333
9334 * util/i386/pc/grub-setup.c (setup): New argument
9335 MUST_EMBED. Force embedding of GRUB when the argument is
9336 true. Close FILE before returning.
9337 (main): Add support for RAID and LVM.
f19dbdb7 9338
2b002173 9339 * conf/common.rmk: Add RAID and LVM modules.
9340 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
9341 util/lvm.c.
9342 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
9343
9344 * kern/misc.c (grub_strstr): New function.
9345 * include/grub/misc.h (grub_strstr): New prototype.
9346
050548d0 93472006-10-10 Tristan Gingold <tristan.gingold@bull.net>
9348
9349 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
9350
da849d2d 93512006-10-05 Tristan Gingold <tristan.gingold@bull.net>
9352
9353 * kern/misc.c (grub_strtoull): Guess the base only if not
9354 specified.
9355
97b2f2ff 93562006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 9357
9358 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
9359 PowerMac support.
9360
97b2f2ff 93612006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 9362
9363 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
9364
9365 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
9366 Remove `flags' argument. All callers changed.
9367 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
9368 (IEEE1275_IHANDLE_INVALID): New variable.
9369 (IEEE1275_CELL_INVALID): New variable.
9370 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
9371 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
9372 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
9373 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
9374 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
9375 codes from Open Firmware. All callers updated.
9376 (grub_ieee1275_next_property): Directly return Open Firmware return
9377 code.
9378 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
9379 Standardize error checking from `grub_ieee1275_get_property'.
9380 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
9381 `devalias' to `aliases'. Correct comments. Consolidate error paths.
9382
97b2f2ff 93832006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 9384
9385 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
9386 `instance_to_package_args' to `instance_to_path_args'.
9387
9388 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
9389 `grub_ieee1275_chosen'.
9390
9391 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
9392 `grub_ieee1275_interpret'.
9393
97b2f2ff 93942006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 9395
9396 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
9397
97b2f2ff 93982006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 9399
9400 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
9401 (__cmpdi): Likewise.
9402
9403 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
9404 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
9405 `grub_ssize_t'.
9406
02bb8acc 9407 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 9408
9409 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
9410 to type `grub_ssize_t'.
9411 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
9412
7f9a8531 94132006-09-22 Marco Gerards <marco@gnu.org>
9414
9415 * normal/script.c (grub_script_create_cmdmenu): Skip leading
9416 newlines.
9417
b5ef1102 94182006-09-22 Marco Gerards <marco@gnu.org>
9419
9420 * commands/echo.c: New file.
9421
9422 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
9423
9424 * conf/common.rmk (echo_mod_SOURCES): New variable.
9425 (echo_mod_CFLAGS): Likewise.
9426 (echo_mod_LDFLAGS): Likewise.
9427
2cff3677 94282006-09-22 Marco Gerards <marco@gnu.org>
9429
9430 * normal/main.c (get_line): Malloc memory instead of using
9431 preallocated memory. Removed the arguments `cmdline' and
9432 `max_len'. Updated all callers.
9433
6ba4688b 94342006-09-22 Marco Gerards <marco@gnu.org>
9435
9436 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
9437 (normal_mod_DEPENDENCIES): Likewise.
9438
9439 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
9440 (normal_mod_DEPENDENCIES): Likewise.
9441
9442 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
9443
e02ac02c 94442006-09-22 Johan Rydberg <jrydberg@gnu.org>
9445
9446 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
9447 programs.
9448 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
9449 (normal_mod_DEPENDENCIES): Likewise.
9450 * conf/i386-pc.mk: Regenerate.
9451 * conf/i386-efi.mk: Likewise
9452 * conf/common.mk: Likewise.
9453 * conf/powerpc-ieee1275.mk: Likewise.
9454 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9455
8d252e44 94562006-09-22 Robert Millan <rmh@aybabtu.com>
9457
9458 Sync with i386 version.
9459 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
9460 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
9461
209bf7ac 94622006-09-21 Robert Millan <rmh@aybabtu.com>
9463
9464 Import from GRUB Legacy (lib/device.c):
9465 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
9466 (init_device_map) [__linux__]: Add support for I2O devices.
9467
6b146090 94682006-09-14 Marco Gerards <marco@gnu.org>
9469
9470 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
9471 `-melf_i386'.
9472
e38600a8 94732006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 9474
9475 * util/i386/pc/grub-install.in: Skip menu.lst when removing
9476 /boot/grub/*.lst.
78fa1790 9477
2952da5d 9478 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 9479
2952da5d 9480 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
9481 before adding it to device.map.
9482
01b82a64 94832006-08-15 Johan Rydberg <jrydberg@gnu.org>
9484
fe6b695a 9485 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 9486 compiles a file; using the -MD option.
9487 * conf/common.mk: Regenerate.
9488 * conf/i386-pc.mk: Likewise.
9489 * conf/i386-efi.mk: Likewise.
9490 * conf/powerpc-ieee1275.mk: Likewise.
9491 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 9492
1064790d 94932006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
9494
9495 Move the prototypes of grub_setjmp and grub_longjmp to
9496 cpu/setjmp.h, so that each architecture may specify different
9497 attributes.
f19dbdb7 9498
1064790d 9499 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
9500 (grub_longjmp): Likewise.
9501 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
9502 (grub_longjmp): Likewise.
9503 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
9504 (grub_longjmp): Likewise.
9505
9506 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
9507 [!GRUB_UTIL] (grub_longjmp): Removed.
9508
29dda3ed 95092006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
9510
9511 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
9512 "color!" method does not return any value.
9513
ad2a06ed 95142006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9515
9516 * include/grub/bitmap.h: New file.
9517
9518 * include/grub/i386/pc/vbeutil.h: Likewise.
9519
9520 * video/bitmap.c: Likewise.
9521
9522 * video/readers/tga.c: Likewise.
9523
9524 * video/i386/pc/vbeutil.c: Likewise.
9525
9526 * commands/videotest.c: Code cleanup and updated to reflect to new
9527 video API.
9528
9529 * term/gfxterm.c: Likewise.
9530
9531 * video/video.c: Likewise.
9532
9533 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
9534 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
9535 (bitmap_mod_SOURCES): New entry.
9536 (bitmap_mod_CFLAGS): Likewise.
9537 (bitmap_mod_LDFLAGS): Likewise.
9538 (tga_mod_SOURCES): Likewise.
9539 (tga_mod_CFLAGS): Likewise.
9540 (tga_mod_LDFLAGS): Likewise.
9541
9542 * include/grub/video.h (grub_video_blit_operators): New enum type.
9543 (grub_video_render_target): Changed as forward declaration and moved
9544 actual definition to be video driver specific.
9545 (grub_video_adapter.blit_bitmap): Added blitting operator.
9546 (grub_video_adapter.blit_render_target): Likewise.
9547 (grub_video_blit_bitmap): Likewise.
9548 (grub_video_blit_render_target): Likewise.
9549
9550 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
9551 driver specific render target definition.
9552 (grub_video_vbe_map_rgba): Added driver internal helper.
9553 (grub_video_vbe_unmap_color): Updated to use
9554 grub_video_i386_vbeblit_info.
9555 (grub_video_vbe_get_video_ptr): Likewise.
9556
9557 * include/grub/i386/pc/vbeblit.h
9558 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
9559 grub_video_i386_vbeblit_info.
9560 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
9561 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
9562 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
9563 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
9564 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
9565 (grub_video_i386_vbeblit_index_index): Likewise.
9566 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
9567 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
9568 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
9569 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
9570 operator.
9571 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
9572 operator.
9573
9574 * video/i386/pc/vbeblit.c: Updated to reflect changes on
9575 include/grub/i386/pc/vbeblit.h.
9576
9577 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
9578 Updated to use grub_video_i386_vbeblit_info.
9579 (grub_video_i386_vbefill_R8G8B8): Likewise.
9580 (grub_video_i386_vbefill_index): Likewise.
9581 (grub_video_i386_vbefill): Added generic filler.
9582
9583 * video/i386/pc/vbefill.c: Updated to reflect changes on
9584 include/grub/i386/pc/vbefill.h.
9585
9586 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
9587 grub_video_i386_vbeblit_info.
9588 (grub_video_vbe_unmap_color): Likewise.
9589 (grub_video_vbe_blit_glyph): Likewise.
9590 (grub_video_vbe_scroll): Likewise.
9591 (grub_video_vbe_draw_pixel): Removed function.
9592 (grub_video_vbe_get_pixel): Likewise.
9593 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
9594 updated code to use it.
9595 (common_blitter): Added common blitter for render target and bitmap.
9596 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
9597 (grub_video_vbe_blit_render_target): Likewise.
9598
bc8c036d 95992006-07-30 Johan Rydberg <jrydberg@gnu.org>
9600
9601 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
9602 is in text mode if there is no console control protocol instance
9603 available.
9604
684a8eff 96052006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9606
9607 * include/grub/video.h: Code cleanup.
9608
9609 * include/grub/i386/pc/vbe.h: Likewise.
9610
9611 * video/i386/pc/vbe.c: Likewise.
9612
9613 * video/i386/pc/vbeblit.c: Likewise.
9614
9615 * video/i386/pc/vbefill.c: Likewise.
9616
9617 * video/video.c: Likewise. Also added more comments.
9618
5915059b 96192006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
9620
9621 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
9622 (struct grub_biosdisk_dap): Likewise.
9623
9624 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
9625 linkage settings for all functions.
9626
90ce5d56 96272006-07-12 Marco Gerards <marco@gnu.org>
9628
9629 * configure.ac (--enable-mm-debug): Fix typo.
9630
9631 * genkernsyms.sh.in: Use proper quoting for `CC'.
9632
43e7f879 96332006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
9634
9635 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
9636 (normal_mod_ASFLAGS): Remove "-m32".
9637
4889bdec 96382006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
9639
9640 * util/misc.c: Include config.h.
9641 [!HAVE_MEMALIGN]: Do not include malloc.h.
9642 (grub_memalign): Use posix_memalign, if present. Then, use
9643 memalign, if present. Otherwise, emit an error.
9644
9645 * util/grub-emu.c: Do not include malloc.h.
9646
9647 * include/grub/util/misc.h: Include unistd.h. This is required for
9648 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
9649 D. Eades III <hde@foobar-qux.org>.
9650
9651 * configure.ac (AC_GNU_SOURCE): Added.
9652 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
9653 type.
9654
fd39d4da 96552006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
9656
9657 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
9658 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
9659
b786f3b5 96602006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
9661
9662 * include/grub/types.h (grub_host_addr_t): Rename to
9663 grub_target_addr_t.
9664 (grub_host_off_t): Rename to grub_target_off_t.
9665 (grub_host_size_t): Rename to grub_target_size_t.
9666 (grub_host_ssize_t): Rename to grub_target_ssize_t.
9667 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
9668
9669 * include/grub/kernel.h (struct grub_module_header): Change type
9670 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
9671 (grub_module_info): Likewise.
f19dbdb7 9672
051988bb 96732006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9674
9675 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
9676 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
9677 Velazquez <jesus.velazquez@gmail.com>.
9678
deae281b 96792006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
9680
9681 Count partitions from 1 instead of 0 in the string representation
9682 of partitions. Still use 0-based internally.
f19dbdb7 9683
deae281b 9684 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
9685 (sun_partition_map_iterate): Use grub_partition_t instead of
9686 struct grub_partition *. Cast DESC->START_CYLINDER to
9687 grub_uint64_t after converting the endian.
9688 (sun_partition_map_probe): Subtract 1 for PARTNUM.
9689 (sun_partition_map_get_name): Add 1 to P->INDEX.
9690
9691 * partmap/pc.c (grub_partition_parse): Subtract 1 for
9692 PCDATA->DOS_PART.
9693 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
9694
9695 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
9696 zero instead of one.
9697 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
9698 (gpt_partition_map_get_name): Add 1 into P->INDEX.
9699
9700 * partmap/apple.c (apple_partition_map_iterate): Change the type
9701 of POS to unsigned.
9702 (apple_partition_map_probe): Subtract 1 for PARTNUM.
9703 (apple_partition_map_get_name): Add 1 into P->INDEX.
9704
9705 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
9706 of POS to unsigned.
9707 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
9708 calculate the offset of a partition.
9709 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
9710 (amiga_partition_map_get_name): Add 1 into P->INDEX.
9711
9712 * partmap/acorn.c (acorn_partition_map_find): Change the type of
9713 SECTOR to grub_disk_addr_t.
9714 (acorn_partition_map_iterate): Likewise.
9715 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
9716 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
9717 top.
9718 (acorn_partition_map_get_name): Add 1 into P->INDEX.
9719
9720 * kern/i386/pc/init.c (make_install_device): Add 1 into
9721 GRUB_INSTALL_DOS_PART.
9722
9723 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
9724 conditional.
9725
524a1e6a 97262006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9727
9728 Clean up the code to support 64-bit addressing in disks and
9729 files. This change is not enough for filesystems yet.
f19dbdb7 9730
524a1e6a 9731 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
9732 type of "start" to grub_uint64_t.
9733 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
9734 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
9735 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
9736 convert addresses.
9737
9738 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
9739 to grub_disk_addr_t.
9740
9741 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
9742 string.
9743
9744 * partmap/pc.c (pc_partition_map_iterate): Likewise.
9745
9746 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
9747 to char *.
9748
9749 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
9750
9751 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
9752
9753 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
9754
9755 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
9756 to grub_off_t, to detect an error from grub_file_seek.
9757 (grub_multiboot_load_elf32): Likewise.
9758
9759 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
9760 maximum unsigned long value when an overflow is detected.
9761 (grub_strtoull): New function.
9762 (grub_divmod64): Likewise.
9763 (grub_lltoa): use grub_divmod64.
9764
9765 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
9766 grub_disk_addr_t.
9767 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
9768 the pointer to next character. Use grub_strtoull instead of
9769 grub_strtoul.
9770 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
9771 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
9772 respectively.
9773
fe6b695a 9774 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 9775 return value is signed.
9776 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
9777 test if OFFSET is less than zero, as OFFSET is unsigned now.
9778
9779 * kern/disk.c (struct grub_disk_cache): Change the type of
9780 "sector" to grub_disk_addr_t.
9781 (grub_disk_cache_get_index): Change the type of SECTOR to
9782 grub_disk_addr_t. Calculate the hash with SECTOR casted to
9783 unsigned after shifting.
9784 (grub_disk_cache_invalidate): Change the type of SECTOR to
9785 grub_disk_addr_t.
9786 (grub_disk_cache_unlock): Likewise.
9787 (grub_disk_cache_store): Likewise.
9788 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
9789 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
9790 grub_disk_addr_t and grub_uint64_t, respectively.
9791 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
9792 body, as the value of OFFSET is tweaked by
9793 grub_disk_check_range. Change the types of START_SECTOR, LEN and
9794 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
9795 respectively.
9796 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
9797 body, as the value of OFFSET is tweaked by
9798 grub_disk_check_range. Change the types of LEN and N to
9799 grub_size_t.
9800
9801 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
9802 and "saved_offset" to grub_off_t.
9803 (test_header): Cast BUF to char *.
9804 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
9805 to char *.
9806 (grub_gzio_read): Change the types of OFFSET and SIZE to
9807 grub_off_t and grub_size_t, respectively.
9808
9809 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
9810 Removed.
9811 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
9812 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
9813 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
9814 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
9815 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
9816
9817 * include/grub/types.h (grub_off_t): Unconditionally set to
9818 grub_uint64_t.
9819 (grub_disk_addr_t): Changed to grub_uint64_t.
9820
9821 * include/grub/partition.h (struct grub_partition): Change the
9822 types of "start", "len" and "offset" to grub_disk_addr_t,
9823 grub_uint64_t and grub_disk_addr_t, respectively.
9824 (grub_partition_get_start): Return grub_disk_addr_t.
9825 (grub_partition_get_len): Return grub_uint64_t.
9826
9827 * include/grub/misc.h (grub_strtoull): New prototype.
9828 (grub_divmod64): Likewise.
9829
9830 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
9831 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
9832 grub_off_t, respectively.
9833 All callers and references changed.
9834
9835 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
9836 grub_size_t in "read".
9837 All callers and references changed.
9838
9839 * include/grub/file.h (struct grub_file): Change the types of
9840 "offset" and "size" to grub_off_t and grub_off_t,
9841 respectively. Change the type of SECTOR to grub_disk_addr_t in
9842 "read_hook".
9843 (grub_file_read): Change the type of LEN to grub_size_t.
9844 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
9845 grub_off_t.
9846 (grub_file_size): Return grub_off_t.
9847 (grub_file_tell): Likewise.
9848 All callers and references changed.
9849
9850 * include/grub/disk.h (struct grub_disk_dev): Change the types of
9851 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
9852 "write".
9853 (struct grub_disk): Change the type of "total_sectors" to
9854 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 9855 "read_hook".
524a1e6a 9856 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
9857 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
9858 (grub_disk_write): Likewise.
9859 All callers and references changed.
9860
9861 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
9862 char * for grub_strncmp to silence gcc.
9863 (grub_iso9660_mount): Likewise.
9864 (grub_iso9660_mount): Likewise.
9865 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
9866 return statement.
9867 (grub_iso9660_iterate_dir): Likewise.
9868 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
9869
9870 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
9871 LEN to grub_disk_addr_t and grub_size_t, respectively.
9872
9873 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
9874
9875 * fs/jfs.c (grub_jfs_read_file): Likewise.
9876
9877 * fs/minix.c (grub_jfs_read_file): Likewise.
9878
9879 * fs/sfs.c (grub_jfs_read_file): Likewise.
9880
9881 * fs/ufs.c (grub_jfs_read_file): Likewise.
9882
9883 * fs/xfs.c (grub_jfs_read_file): Likewise.
9884
9885 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
9886 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
9887 respectively.
9888
9889 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
9890 BLKNR to -1 instead of returning GRUB_ERRNO.
9891 (grub_ext2_read_file): Change the types of SECTOR and
9892 LEN to grub_disk_addr_t and grub_size_t, respectively.
9893
9894 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
9895 LEN to grub_disk_addr_t and grub_size_t, respectively.
9896
9897 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
9898 grub_file_read.
9899
9900 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
9901 string. Do not cast SECTOR explicitly.
9902
9903 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
9904 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
9905 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
9906 grub_disk_addr_t and grub_size_t, respectively. If the sector is
9907 over 2TB and LBA mode is not supported, raise an error.
9908 (get_safe_sectors): New function.
9909 (grub_biosdisk_read): Use get_safe_sectors.
9910 (grub_biosdisk_write): Likewise.
9911
9912 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
9913 (grub_efidisk_write): Likewise.
9914
9915 * disk/loopback.c (delete_loopback): Cosmetic changes.
9916 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
9917 correctly.
9918 (grub_loopback_open): Likewise.
9919 (grub_loopback_read): Likewise. Also, change the type of POS to
9920 grub_off_t, and fix the usage of grub_memset.
9921
9922 * commands/i386/pc/play.c: Include grub/machine/time.h.
9923
9924 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
9925 print FILE->SIZE.
9926
9927 * commands/configfile.c: Include grub/env.h.
9928
9929 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
9930 GRUB_ERRNO directly instead. Change the type of POS to
9931 grub_off_t. Follow the coding standard.
9932
9933 * commands/blocklist.c: Include grub/partition.h.
9934 (grub_cmd_blocklist): Return an error if the underlying device is
9935 not a disk. Take the starting sector of a partition into account,
9936 if a partition is used.
9937
9938 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
9939 a length field.
9940 (lba_mode): Support 64-bit addresses.
9941 (chs_mode): Likewise.
9942 (copy_buffer): Adapted to the new offsets of a length field and a
9943 segment field.
9944 (blocklist_default_start): Allocate 64-bit space.
9945
9946 * boot/i386/pc/boot.S (force_lba): Removed.
9947 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 9948 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 9949 space.
9950 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
9951 is useless.
9952 (lba_mode): Refactored to support a 64-bit address. More size
9953 optimization.
9954 (setup_sectors): Likewise.
9955
53af98ad 99562006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
9957
9958 * DISTLIST: Added include/grub/i386/linux.h. Removed
9959 include/grub/i386/pc/linux.h
9960
9961 * configure.ac (AC_INIT): Bumped to 1.94.
9962
9963 * config.guess: Updated from gnulib.
9964 * config.sub: Likewise.
9965 * install-sh: Likewise.
9966 * mkinstalldirs: Likewise.
9967
b4c1940a 99682006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9969
9970 * conf/common.rmk (grub_modules_init.lst): Depended on
9971 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
9972 MODSRCFILES.
9973
9974 * genmk.rb (PModule::rule): Reverted the previous change.
9975
cfca1cfd 99762006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
9977
9978 * conf/common.rmk (grub_modules_init.lst): Depends on
9979 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
9980 that the target does not exist before producing.
9981 (grub_modules_init.h): Remove the target before generating.
9982 (grub_emu_init.c): Likewise.
9983
9984 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
9985
aa6d7826 99862006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
9987
9988 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
9989 for the target-specific tests. Make sure that we also have the
9990 up-to-date target variables for those tests.
9991
26c607b9 99922006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9993
9994 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
9995 (PModule::rule): Likewise.
9996
0162321a 99972006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
9998
9999 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
10000 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
10001 target-specific flags should be prefixed.
10002 (PModule::rule): Likewise.
10003
6c826348 100042006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
10005
10006 * configure.ac (CMP): Check if cmp is available explicitly.
10007
b977bf01 100082006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
10009
10010 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
10011 (target_cpu): New variable.
10012 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 10013
b977bf01 10014 * util/i386/pc/grub-install.in (host_cpu): Removed.
10015 (target_cpu): New variable.
10016 (pkglibdir): Use target_cpu instead of host_cpu.
10017
10018 * util/genmoddep.c: Removed.
f19dbdb7 10019
b977bf01 10020 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
10021 instead of GRUB_HOST_SIZEOF_VOID_P.
10022 * kern/dl.c: Likewise.
10023
10024 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
10025 ...
10026 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
10027 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
10028 (GRUB_TARGET_SIZEOF_LONG): ... this.
10029 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
10030 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
10031 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
10032 to ...
10033 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
10034 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
10035 (GRUB_TARGET_SIZEOF_LONG): ... this.
10036 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
10037 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
10038 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
10039 to ...
10040 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
10041 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
10042 (GRUB_TARGET_SIZEOF_LONG): ... this.
10043 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
10044 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
10045
10046 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
10047 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
10048 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
10049 instead of GRUB_HOST_SIZEOF_LONG.
10050 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
10051 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
10052 GRUB_CPU_WORDS_BIGENDIAN.
10053 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
10054 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
10055 grub_host_ssize_t.
10056
10057 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
10058 (genmoddep_SOURCES): Likewise.
10059 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
10060 (genmoddep_SOURCES): Likewise.
10061 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
10062 (genmoddep_SOURCES): Likewise.
10063 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
10064 Likewise.
10065 (genmoddep_SOURCES): Likewise.
10066
10067 * genmoddep.awk: New file.
10068
10069 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
10070 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
10071 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
10072 (PModule::rule): Likewise.
10073 (Program::rule): Likewise.
10074 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
10075 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
10076 respectively.
10077
10078 * configure.ac: Rewritten intensively to use host and target
10079 instead of build and host, respectively.
10080
10081 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
10082 (host_cpu): Removed.
10083 (target_cpu): New variable.
10084 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
10085 (BUILD_CC): Removed.
10086 (BUILD_CFLAGS): Likewise.
10087 (BUILD_CPPFLAGS): Likewise.
10088 (TARGET_CC): New variable.
10089 (TARGET_CFLAGS): Likewise.
10090 (TARGET_CPPFLAGS): Likewise.
10091 (TARGET_LDFLAGS): Likewise.
10092 (AWK): Likewise.
10093 (include): Use target_cpu instead of host_cpu.
10094 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 10095
b977bf01 10096 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
10097
f09771a1 100982006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
10099
10100 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
10101 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
10102 field 'false' to 'exec_on_false'.
10103 (grub_script_create_cmdif): Renamed argument names to reflect above
10104 changes.
10105
10106 * normal/execute.c (grub_script_execute_cmdif): Likewise.
10107
10108 * normal/script.c (grub_script_create_cmdif): Likewise.
10109
118f4fb3 101102006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
10111
10112 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
10113 top.
10114 (grub_hfsplus_btree_recptr): Likewise.
10115 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
10116 FILEBLOCK both to pass a block number and store next block
10117 number.
10118 (grub_hfsplus_read_block): Rewritten heavily to support an extent
10119 overflow file correctly. Specify errors appropriately, because
10120 fshelp expects that GRUB_ERRNO is set when fails. Reuse
10121 grub_hfsplus_btree_recptr to get the pointer to a found key.
10122 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
10123 is found.
10124
10125 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
10126 linux.mod.
10127 (_linux_mod_SOURCES): New variable.
10128 (_linux_mod_CFLAGS): Likewise.
10129 (_linux_mod_LDFLAGS): Likewise.
10130 (linux_mod_SOURCES): Likewise.
10131 (linux_mod_CFLAGS): Likewise.
10132 (linux_mod_LDFLAGS): Likewise.
10133
10134 * DISTLIST: Added loader/i386/efi/linux.c,
10135 loader/i386/efi/linux_normal.c and
10136 include/grub/i386/efi/loader.h.
10137
10138 * loader/i386/efi/linux.c: New file.
10139 * loader/i386/efi/linux_normal.c: Likewise.
10140 * include/grub/i386/efi/loader.h: Likewise.
10141
89a7d726 101422006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
10143
10144 * commands/blocklist.c: New file.
10145
10146 * DISTLIST: Added commands/blocklist.c.
10147
10148 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 10149 color for the background, and a darker color for the foreground.
89a7d726 10150 (grub_console_checkkey): Return READ_KEY.
10151 (grub_console_cls): Set the background to
10152 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
10153
10154 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
10155
10156 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
10157 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
10158
10159 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
10160 prototype.
10161
10162 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
10163 BG. The spec is wrong again.
10164
10165 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
10166 prototype.
10167 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
10168
10169 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
10170 commands/blocklist.c.
10171 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 10172
89a7d726 10173 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
10174 (blocklist_mod_SOURCES): New variable.
10175 (blocklist_mod_CFLAGS): Likewise.
10176 (blocklist_mod_LDFLAGS): Likewise.
10177
75c8f258 101782006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
10179
10180 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
10181 duplication.
10182 (lba_mode): Use %eax more intensively to reduce the code size.
10183
da2eb181 101842006-05-20 Marco Gerards <marco@gnu.org>
10185
10186 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
10187
10188 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
10189 for `menuentry'.
10190 (script): Accept leading newlines.
10191 (newlines): New rule to describe 0 or more newlines.
10192 (commands): Accept `command' with trailing newline. Fixed the
10193 order in which arguments were passed to `grub_script_add_cmd'.
10194 Accept commands separated by newlines.
10195 (function): Changed to accept newlines.
10196 (menuentry) Rewritten.
10197
10198 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
10199 front of the list, instead of to the end.
10200
577b4050 102012006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
10202
10203 * util/i386/pc/grub-install.in (bindir): New variable.
10204 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
10205 Shaver <lbgwjl@gmail.com>.
10206
0d6e1189 102072006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
10208
10209 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
10210 grub/machine/linux.h
10211 * loader/i386/pc/linux.c: Likewise.
10212
10213 * include/grub/i386/pc/linux.h: Moved to ...
10214 * include/grub/i386/linux.h: ... here.
10215
10216 * include/grub/i386/linux.h (struct linux_kernel_params): New
10217 struct.
f19dbdb7 10218
31b86e9f 102192006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
10220
10221 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
10222 checking.
10223 (grub_video_vbe_blit_glyph): Likewise.
10224 (grub_video_vbe_blit_bitmap): Likewise.
10225 (grub_video_vbe_blit_render_target): Likewise.
10226
83b984de 102272006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
10228
10229 * configure.ac (--with-platform): Properly quote the square
10230 brackets.
10231
5f0413bd 102322006-05-08 Marco Gerards <marco@gnu.org>
10233
10234 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
10235 this...
10236 (kernel_elf_HEADERS): ...to this. Updated all users.
10237 (grubof_symlist.c): Renamed from this...
10238 (kernel_elf_symlist.c): ...to this. Updated all users.
10239 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10240 (grubof_SOURCES): Renamed from this...
10241 (kernel_elf_SOURCES): ...to this.
10242 (grubof_HEADERS): Renamed from this...
10243 (kernel_elf_HEADERS): ...to this.
10244 (grubof_CFLAGS): Renamed from this...
10245 (kernel_elf_CFLAGS): ...to this.
10246 (grubof_ASFLAGS): Renamed from this...
10247 (kernel_elf_ASFLAGS): ...to this.
10248 (grubof_LDFLAGS): Renamed from this...
10249 (kernel_elf_LDFLAGS): ...to this.
10250
10251 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
10252 this...
10253 (kernel_elf_HEADERS): ...to this. Updated all users.
10254 (grubof_symlist.c): Renamed from this...
10255 (kernel_elf_symlist.c): ...to this. Updated all users.
10256 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
10257 (grubof_SOURCES): Renamed from this...
10258 (kernel_elf_SOURCES): ...to this.
10259 (grubof_HEADERS): Renamed from this...
10260 (kernel_elf_HEADERS): ...to this.
10261 (grubof_CFLAGS): Renamed from this...
10262 (kernel_elf_CFLAGS): ...to this.
10263 (grubof_ASFLAGS): Renamed from this...
10264 (kernel_elf_ASFLAGS): ...to this.
10265 (grubof_LDFLAGS): Renamed from this...
10266 (kernel_elf_LDFLAGS): ...to this.
10267
10268 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
10269 `kernel.elf' instead of `grubof'.
10270
05568c2e 102712006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
10272
10273 Add --with-platform to configure. Use pkglibdir instead of
10274 pkgdatadir. This is reported by Roger Leigh.
10275
10276 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
10277 (host_vendor): Likewise.
10278 (host_os): Likewise.
10279 (pkgdatadir): Likewise.
10280 (platform): New variable.
10281 (pkglibdir): Likewise.
10282 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 10283
05568c2e 10284 * util/i386/pc/grub-install.in (datadir): Removed.
10285 (host_vendor): Likewise.
10286 (host_os): Likewise.
10287 (pkgdatadir): Likewise.
10288 (platform): New variable.
10289 (pkglibdir): Likewise.
10290 Use PKGLIBDIR instead of PKGDATADIR.
10291
10292 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
10293 instead of GRUB_DATADIR.
10294 (main): Likewise.
10295 * util/i386/pc/grub-mkimage.c (usage): Likewise.
10296 (main): Likewise.
10297 * util/i386/efi/grub-mkimage.c (usage): Likewise.
10298 (main): Likewise.
10299
10300 * configure.ac (--with-platform): New option.
10301 Use PLATFORM instead of HOST_VENDOR to specify a platform.
10302
10303 * Makefile.in: Include a makefile based on PLATFORM instead of
10304 HOST_VENDOR.
10305 (pkgdatadir): Not appended by the machine type.
10306 (pkglibdir): Appended by the machine type.
10307 (host_vendor): Removed.
10308 (platform): New variable.
10309 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
10310 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
10311 (uninstall): Likewise.
10312
4e93851c 103132006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
10314
10315 Use the environment context in the menu. Remove the commands
10316 "default" and "timeout", and use variables instead.
f19dbdb7 10317
4e93851c 10318 * normal/menu.c: Include grub/env.h.
10319 (print_entry): Cast TITLE to silence gcc.
10320 (get_timeout): New function.
10321 (set_timeout): Likewise.
10322 (get_entry_number): Likewise.
10323 (run_menu): Use a default entry, a fallback entry and a timeout
10324 in the environment variables "default", "fallback" and
10325 "timeout". Also, tweak the default entry if it is not within the
10326 current menu entries.
10327 (grub_menu_run): Use a fallback entry in the environment variable
10328 "fallback".
10329
10330 * normal/main.c (read_config_file): Do not initialize
10331 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
10332 NEWMENU->TIMEOUT.
10333 (grub_normal_execute): Use a data slot to store the menu.
10334
10335 * include/grub/normal.h (struct grub_menu): Removed default_entry,
10336 fallback_entry and timeout.
10337 (struct grub_menu_list): Removed.
10338 (grub_menu_list_t): Likewise.
10339 (struct grub_context): Likewise.
10340 (grub_context_t): Likewise.
10341 (grub_context_get): Likewise.
10342 (grub_context_get_current_menu): Likewise.
10343 (grub_context_push_menu): Likewise.
10344 (grub_context_pop_menu): Likewise.
10345 (grub_default_init): Likewise.
10346 (grub_default_fini): Likewise.
10347 (grub_timeout_init): Likewise.
10348 (grub_timeout_fini): Likewise.
10349
10350 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
10351 and timeout.mod.
10352 (normal_mod_SOURCES): Removed normal/context.c.
10353
10354 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
10355 commands/default.c, commands/timeout.c and normal/context.c.
10356 (normal_mod_SOURCES): Removed normal/context.c.
10357
10358 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
10359 commands/timeout.c and normal/context.c.
10360 (normal_mod_SOURCES): Removed normal/context.c.
10361
10362 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
10363 commands/default.c, commands/timeout.c and normal/context.c.
10364 (normal_mod_SOURCES): Removed normal/context.c.
10365
10366 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
10367 timeout.mod.
10368 (default_mod_SOURCES): Removed.
10369 (default_mod_CFLAGS): Likewise.
10370 (default_mod_LDFLAGS): Likewise.
10371 (timeout_mod_SOURCES): Removed.
10372 (timeout_mod_CFLAGS): Likewise.
10373 (timeout_mod_LDFLAGS): Likewise.
10374
10375 * DISTLIST: Removed commands/default.c, commands/timeout.c and
10376 normal/context.c.
10377
10378 * commands/default.c: Removed.
10379 * commands/timeout.c: Likewise.
10380 * normal/context.c: Likewise.
10381
1eb9cc1d 103822006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
10383
10384 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
10385
385bd9c1 103862006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
10387
10388 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
10389 "next" to "prev" for readability.
10390 (struct grub_env_sorted_var): New struct.
10391 (grub_env_context): Renamed to ...
10392 (initial_context): ... this.
10393 (grub_env_var_context): Renamed to ...
10394 (current_context): ... this.
10395 (grub_env_find): Look only at CURRENT_CONTEXT.
10396 (grub_env_context_open): Rewritten to copy exported variables from
10397 previous context.
10398 (grub_env_context_close): Rewritten according to the new
10399 scheme. Also, add an assertion to prevent the initial context from
10400 removed.
10401 (grub_env_insert): Removed the code for the sorted list.
10402 (grub_env_remove): Likewise.
10403 (grub_env_export): Simply mark the variable with
10404 GRUB_ENV_VAR_GLOBAL.
10405 (grub_env_set): A cosmetic change for naming consistency.
10406 (grub_env_get): Likewise.
10407 (grub_env_unset): Likewise.
10408 (grub_env_iterate): Rewritten to sort variables within this
10409 function.
10410 (grub_register_variable_hook): Fixed for naming consistency. Call
10411 grub_env_find again, only if NAME is not found at the first time.
10412 (mangle_data_slot_name): New function.
10413 (grub_env_set_data_slot): Likewise.
10414 (grub_env_get_data_slot): Likewise.
10415 (grub_env_unset_data_slot): Likewise.
10416
10417 * include/grub/env.h (grub_env_var_type): New enum.
10418 (GRUB_ENV_VAR_LOCAL): New constant.
10419 (GRUB_ENV_VAR_GLOBAL): Likewise.
10420 (GRUB_ENV_VAR_DATA): Likewise.
10421 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
10422 "type".
10423 (grub_env_set): Replace VAR with NAME for consistency.
10424 (grub_register_variable_hook): Likewise.
10425 (grub_env_export): Specify the name of the argument.
10426 (grub_env_set_data_slot): New prototype.
10427 (grub_env_get_data_slot): Likewise.
10428 (grub_env_unset_data_slot): Likewise.
10429
7f362539 104302006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10431
10432 Extend the loader so that GRUB can accept a loader which comes
10433 back to GRUB when a loaded image exits. Also, this change adds
10434 support for a chainloader on EFI.
f19dbdb7 10435
7f362539 10436 * term/efi/console.c: Include grub/misc.h.
10437 (grub_console_checkkey): Display a scan code on the top for
10438 debugging. This will be removed once the EFI port gets stable.
10439 Correct the scan code mapping.
10440
10441 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
10442 allocate memory from larger regions, in order to reduce the number
10443 of allocated regions. Otherwise, the MacOSX loader panics.
10444 (filter_memory_map): Avoid less than 1MB for compatibility with
10445 other loaders.
10446 (add_memory_regions): Allocate from the tail of a region, if
10447 possible, to avoid allocating a region near to 1MB, for the MacOSX
10448 loader.
10449
10450 * kern/efi/init.c (grub_efi_set_prefix): Specify
10451 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
10452
10453 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
10454 argument IMAGE_HANDLE and specify it to get a loaded image.
10455 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
10456 grub_efi_get_loaded_image.
fe6b695a 10457 (grub_efi_get_filename): Divide the length by the size of
7f362539 10458 grub_efi_char16_t.
10459 (grub_efi_get_device_path): New function.
10460 (grub_efi_print_device_path): Print End Device Path nodes. Divide
10461 the length by the size of grub_efi_char16_t for a file path device
10462 path node.
10463
10464 * kern/loader.c (grub_loader_noreturn): New variable.
10465 (grub_loader_set): Accept a new argument NORETURN. Set
10466 GRUB_LOADER_NORETURN to NORETURN.
10467 All callers changed.
10468 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
10469 grub_machine_fini.
10470
10471 * include/grub/efi/efi.h (grub_efi_get_device_path): New
10472 prototype.
10473 (grub_efi_get_loaded_image): Take an argument to specify an image
10474 handle.
10475
10476 * include/grub/loader.h (grub_loader_set): Added one more argument
10477 NORETURN.
10478
10479 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
10480 instead of grub_efi_open_protocol.
10481 (grub_efidisk_get_device_name): Likewise.
10482 (grub_efidisk_close): Print a newline.
10483 (grub_efidisk_get_device_handle): Fixed to use
10484 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
10485 GRUB_EFI_DEVICE_PATH_TYPE.
10486
10487 * disk/efi/efidisk.c (device_path_guid): Moved to ...
10488 * kern/efi/efi.c (device_path_guid): ... here.
10489
10490 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
10491 chain.mod.
10492 (kernel_mod_HEADERS): Added efi/disk.h.
10493 (_chain_mod_SOURCES): New variable.
10494 (_chain_mod_CFLAGS): Likewise.
10495 (_chain_mod_LDFLAGS): Likewise.
10496 (chain_mod_SOURCES): Likewise.
10497 (chain_mod_CFLAGS): Likewise.
10498 (chain_mod_LDFLAGS): Likewise.
10499
10500 * DISTLIST: Added include/grub/efi/chainloader.h,
10501 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
10502
10503 * include/grub/efi/chainloader.h: New file.
10504 * loader/efi/chainloader.c: Likewise.
10505 * loader/efi/chainloader_normal.c: Likewise.
10506
c0111d6e 105072006-04-30 Marco Gerards <marco@gnu.org>
10508
10509 * commands/configfile.c (grub_cmd_source): New function.
10510 (GRUB_MOD_INIT): Register the commands `source' and `.'.
10511 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
10512
df5341da 105132006-04-30 Marco Gerards <marco@gnu.org>
10514
10515 * normal/execute.c (grub_script_execute_cmd): Change the return
10516 type to `grub_err_t'. Correctly return the error.
10517 (grub_script_execute_cmdline): In case a command line is not a
10518 command or a function, try to interpret it as an assignment.
10519
f85934bd 105202006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
10521
10522 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
10523 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
10524 skip a node whose name is obviously invalid as UTF-16,
10525 i.e. contains a NUL character. Stop the iteration when the last
10526 directory entry is found. Instead of using the return value of
10527 grub_hfsplus_btree_iterate_node, store the value in RET and use
10528 it, because the iterator can be stopped by the last directory
10529 entry.
10530
8f8a2cf8 105312006-04-30 Marco Gerards <marco@gnu.org>
10532
10533 * include/grub/env.h (grub_env_export): New prototype. Reported
10534 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
10535
a27e84ce 105362006-04-30 Marco Gerards <marco@gnu.org>
10537
10538 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
10539 size of the extents in a catalog file record.
10540
eaef0553 105412006-04-29 Marco Gerards <marco@gnu.org>
10542
10543 * commands/configfile.c (grub_cmd_configfile): Execute the
10544 configfile within its own context.
10545
10546 * include/grub/env.h (grub_env_context_open): New prototype.
10547 (grub_env_context_close): Likewise.
10548
10549 * kern/env.c (grub_env): Removed.
10550 (grub_env_sorted): Likewise.
10551 (grub_env_context): New variable.
10552 (grub_env_var_context): Likewise.
10553 (grub_env_find): Search both the active context and the global
10554 context.
10555 (grub_env_context_open): New function.
10556 (grub_env_context_close): Likewise.
10557 (grub_env_insert): Likewise.
10558 (grub_env_remove): Likewise.
10559 (grub_env_export): Likewise.
10560 (grub_env_set): Changed to use helper functions to avoid code
10561 duplication.
10562 (grub_env_iterate): Rewritten so both the current context and the
10563 global context are being used.
10564
10565 * normal/command.c (export_command): New function.
10566 (grub_command_init): Register the `export' function.
10567
7b455f4d 105682006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
10569
10570 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
10571 explicitly to suppress gcc's warnings.
10572 * fs/fat.c (grub_fat_find_dir): Likewise.
10573 (grub_fat_label): Likewise.
10574 * fs/xfs.c (grub_xfs_read_inode): Likewise.
10575 (grub_xfs_mount): Likewise.
10576 (grub_xfs_label): Likewise.
10577 * fs/affs.c (grub_affs_mount): Likewise.
10578 (grub_affs_label): Likewise.
10579 (grub_affs_iterate_dir): Likewise.
10580 * fs/sfs.c (grub_sfs_mount): Likewise.
10581 (grub_sfs_iterate_dir): Likewise.
10582 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
10583 * fs/hfs.c (grub_hfs_mount): Likewise.
10584 (grub_hfs_cmp_catkeys): Likewise.
10585 (grub_hfs_find_dir): Likewise.
10586 (grub_hfs_dir): Likewise.
10587 (grub_hfs_label): Likewise.
10588 * fs/jfs.c (grub_jfs_mount): Likewise.
10589 (grub_jfs_opendir): Likewise.
10590 (grub_jfs_getent): Likewise.
10591 (grub_jfs_lookup_symlink): Likewise.
10592 (grub_jfs_label): Likewise.
10593 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
10594 (grub_hfsplus_iterate_dir): Likewise.
10595 (grub_hfsplus_btree_iterate_node): Made static.
10596
10597 * util/grub-emu.c (prefix): New variable.
10598 (grub_machine_set_prefix): New function.
10599 (main): Do not set the environment variable "prefix" here. Only
10600 set PREFIX, which is used later by grub_machine_set_prefix.
10601
10602 * include/grub/video.h: Do not include grub/symbol.h.
10603 (grub_video_register): Not exported. This symbol is not defined in
10604 the kernel.
10605 (grub_video_unregister): Likewise.
10606 (grub_video_iterate): Likewise.
10607 (grub_video_setup): Likewise.
10608 (grub_video_restore): Likewise.
10609 (grub_video_get_info): Likewise.
10610 (grub_video_get_blit_format): Likewise.
10611 (grub_video_set_palette): Likewise.
10612 (grub_video_get_palette): Likewise.
10613 (grub_video_set_viewport): Likewise.
10614 (grub_video_get_viewport): Likewise.
10615 (grub_video_map_color): Likewise.
10616 (grub_video_map_rgb): Likewise.
10617 (grub_video_map_rgba): Likewise.
10618 (grub_video_fill_rect): Likewise.
10619 (grub_video_blit_glyph): Likewise.
10620 (grub_video_blit_bitmap): Likewise.
10621 (grub_video_blit_render_target): Likewise.
10622 (grub_video_scroll): Likewise.
10623 (grub_video_swap_buffers): Likewise.
10624 (grub_video_create_render_target): Likewise.
10625 (grub_video_delete_render_target): Likewise.
10626 (grub_video_set_active_render_target): Likewise.
10627
10628 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
10629 Undefined.
10630 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
10631
10632 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
10633 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10634 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10635 instead of $(srcdir)/genkernsyms.sh.
10636
10637 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
10638 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10639 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10640 instead of $(srcdir)/genkernsyms.sh.
10641
10642 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
10643 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10644 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10645 instead of $(srcdir)/genkernsyms.sh.
10646
10647 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
10648 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
10649 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
10650 instead of $(srcdir)/genkernsyms.sh.
10651
10652 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
10653 genkernsyms.sh.
10654
10655 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
10656 genkernsyms.sh.
10657 (gensymlist.sh): New target.
10658 (genkernsyms.sh): Likewise.
10659
10660 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
10661 genkernsyms.sh.in and gensymlist.sh.in.
10662
10663 * genkernsyms.sh: Removed.
10664 * gensymlist.sh: Likewise.
f19dbdb7 10665
7b455f4d 10666 * genkernsyms.sh.in: New file.
10667 * gensymlist.sh.in: Likewise.
10668
1885bb27 106692006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10670
10671 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
10672 clobber "prefix", since we may have already set it manually.
10673
71538dff 106742006-04-25 Hollis Blanchard <hollis@penguinppc.org>
10675
10676 * kern/misc.c (abort): New alias for grub_abort.
10677
2965c7cc 106782006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
10679
10680 A new machine-specific function "grub_machine_set_prefix" is
10681 defined. This is called after loading modules, so that a prefix
10682 initialization can use modules. Also, this change adds an
10683 intensive debugging feature for the memory manager via the
10684 configure option "--enable-mm-debug".
f19dbdb7 10685
2965c7cc 10686 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
10687 PART.LEN.
10688
10689 * kern/sparc64/ieee1275/init.c (abort): Removed.
10690 (grub_stop): Likewise.
10691 (grub_exit): New function.
10692 (grub_set_prefix): Renamed to ...
10693 (grub_machine_set_prefix): ... this.
10694 (grub_machine_init): Do not call grub_set_prefix.
10695
10696 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
10697 (grub_machine_set_prefix): ... this.
10698 (grub_machine_init): Do not call grub_set_prefix.
10699
10700 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
10701 (grub_machine_init): Do not set the prefix here.
10702
10703 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
10704
10705 * kern/efi/init.c: Include grub/mm.h.
10706 (grub_efi_set_prefix): New function.
10707
10708 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
10709 (grub_efi_get_filename): New function.
10710 (grub_print_device_path): Renamed to ...
10711 (grub_efi_print_device_path): ... this.
10712
10713 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
10714 [MM_DEBUG] (grub_realloc): Likewise.
10715 [MM_DEBUG] (grub_free): Likewise.
10716 [MM_DEBUG] (grub_memalign): Likewise.
10717 [MM_DEBUG] (grub_mm_debug): New variable.
10718 [MM_DEBUG] (grub_debug_malloc): New function.
10719 [MM_DEBUG] (grub_debug_free): New function.
10720 [MM_DEBUG] (grub_debug_realloc): New function.
10721 [MM_DEBUG] (grub_debug_memalign): New function.
10722
10723 * kern/misc.c (grub_abort): Print a newline to distinguish
10724 the message.
10725
10726 * kern/main.c (grub_main): Call grub_machine_set_prefix and
10727 grub_set_root_dev after loading modules. This is necessary when
10728 setting a prefix depends on modules.
10729
10730 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
10731 (grub_efi_print_device_path): ... this.
10732 (grub_efi_get_filename): New prototype.
10733 (grub_efi_set_prefix): Likewise.
10734
10735 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
10736 and grub/disk.h.
10737 (grub_efidisk_get_device_handle): New prototype.
10738 (grub_efidisk_get_device_name): Likewise.
10739
10740 * include/grub/mm.h: Include config.h.
10741 (MM_DEBUG): Removed.
10742 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
10743 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
10744 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
10745 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
10746 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
10747 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
10748 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
10749 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
10750 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
10751
10752 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
10753
10754 * disk/efi/efidisk.c: Include grub/partition.h.
10755 (iterate_child_devices): New function.
10756 (add_device): First, compare only last device path nodes, so that
10757 devices are sorted by the types.
10758 (grub_efidisk_get_device_handle): New function.
10759 (grub_efidisk_get_device_name): Likewise.
10760
10761 * configure.ac (--enable-mm-debug): New option to enable the
10762 memory manager debugging feature. This makes the binary much
10763 bigger, so is disabled by default.
10764
9cacaa17 107652006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
10766
10767 Use grub_abort instead of grub_stop, and grub_exit must be
10768 define in each architecture now. Also, this change adds support
10769 for EFI disks.
f19dbdb7 10770
9cacaa17 10771 * util/i386/pc/grub-probefs.c: Include grub/term.h.
10772 (grub_getkey): New function.
10773 (grub_term_get_current): Likewise.
10774
10775 * util/i386/pc/grub-setup.c: Include grub/term.h.
10776 (grub_getkey): New function.
10777 (grub_term_get_current): Likewise.
10778
10779 * util/misc.c (grub_stop): Renamed to ...
10780 (grub_exit): ... this.
10781
10782 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
10783 (grub_exit): ... this.
10784 (grub_machine_init): Use grub_abort instead of abort.
10785 (grub_stop): Removed.
10786
10787 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
10788 abort.
10789
10790 * kern/i386/pc/startup.S (grub_exit): New function.
10791 (cold_reboot): New label.
10792
10793 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
10794 (grub_efi_init): Call grub_efidisk_init.
10795 (grub_efi_fini): Call grub_efidisk_fini.
10796
10797 * kern/efi/efi.c: Include grub/mm.h.
10798 (grub_efi_console_control_guid): Renamed to ...
10799 (console_control_guid): ... this.
10800 (grub_efi_loaded_image_guid): Renamed to ...
10801 (loaded_image_guid): ... this.
10802 (grub_efi_locate_handle): New function.
10803 (grub_efi_open_protocol): Likewise.
10804 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
10805 GRUB_EFI_CONSOLE_CONTROL_GUID.
10806 (grub_efi_exit): Removed.
10807 (grub_stop): Likewise.
10808 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
10809 (grub_exit): New function.
10810 (grub_print_device_path): Likewise.
10811
10812 * kern/rescue.c (grub_rescue_cmd_exit): New function.
10813 (grub_enter_rescue_mode): Register "exit".
10814
10815 * kern/misc.c (grub_real_dprintf): A cosmetic change.
10816 (grub_abort): New function.
10817
10818 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
10819
10820 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
10821
10822 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
10823
10824 * include/grub/efi/efi.h (grub_efi_exit): Removed.
10825 (grub_print_device_path): New prototype.
10826 (grub_efi_locate_handle): Likewise.
10827 (grub_efi_open_protocol): Likewise.
10828
10829 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
10830 * disk/efi/efidisk.c: Likewise.
10831
10832 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
10833
10834 * include/grub/efi/console_control.h
10835 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
10836
10837 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
10838 last 8 bytes as an array.
10839 (GRUB_EFI_DISK_IO_GUID): New macro.
10840 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
10841 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
10842 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
10843 grub_uint8_t.
10844 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
10845 (struct grub_efi_device_path): Rename the member "sub_type" to
10846 "subtype".
10847 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
10848 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
10849 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
10850 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
10851 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
10852 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
10853 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
10854 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
10855 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
10856 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
10857 (struct grub_efi_pci_device_path): New structure.
10858 (grub_efi_pci_device_path_t): New type.
10859 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
10860 (struct grub_efi_pccard_device_path): New structure.
10861 (grub_efi_pccard_device_path_t): New type.
10862 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
10863 (struct grub_efi_memory_mapped_device_path): New structure.
10864 (grub_efi_memory_mapped_device_path_t): New type.
10865 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
10866 (struct grub_efi_vendor_device_path): New structure.
10867 (grub_efi_vendor_device_path_t): New type.
10868 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
10869 (struct grub_efi_controller_device_path): New structure.
10870 (grub_efi_controller_device_path_t): New type.
10871 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
10872 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
10873 (struct grub_efi_acpi_device_path): New structure.
10874 (grub_efi_acpi_device_path_t): New type.
10875 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
10876 (struct grub_efi_expanded_acpi_device_path): New structure.
10877 (grub_efi_expanded_acpi_device_path_t): New type.
10878 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
10879 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
10880 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
10881 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
10882 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
10883 (struct grub_efi_atapi_device_path): New structure.
10884 (grub_efi_atapi_device_path_t): New type.
10885 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
10886 (struct grub_efi_fibre_channel_device_path): New structure.
10887 (grub_efi_fibre_channel_device_path_t): New type.
10888 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
10889 (struct grub_efi_1394_device_path): New structure.
10890 (grub_efi_1394_device_path_t): New type.
10891 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
10892 (struct grub_efi_usb_device_path): New structure.
10893 (grub_efi_usb_device_path_t): New type.
10894 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
10895 (struct grub_efi_usb_class_device_path): New structure.
10896 (grub_efi_usb_class_device_path_t): New type.
10897 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
10898 (struct grub_efi_i2o_device_path): New structure.
10899 (grub_efi_i2o_device_path_t): New type.
10900 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
10901 (struct grub_efi_mac_address_device_path): New structure.
10902 (grub_efi_mac_address_device_path_t): New type.
10903 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
10904 (struct grub_efi_ipv4_device_path): New structure.
10905 (grub_efi_ipv4_device_path_t): New type.
10906 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
10907 (struct grub_efi_ipv6_device_path): New structure.
10908 (grub_efi_ipv6_device_path_t): New type.
10909 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
10910 (struct grub_efi_infiniband_device_path): New structure.
10911 (grub_efi_infiniband_device_path_t): New type.
10912 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
10913 (struct grub_efi_uart_device_path): New structure.
10914 (grub_efi_uart_device_path_t): New type.
10915 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
10916 (struct grub_efi_vendor_messaging_device_path): New structure.
10917 (grub_efi_vendor_messaging_device_path_t): New type.
10918 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
10919 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
10920 (struct grub_efi_hard_drive_device_path): New structure.
10921 (grub_efi_hard_drive_device_path_t): New type.
10922 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
10923 (struct grub_efi_cdrom_device_path): New structure.
10924 (grub_efi_cdrom_device_path_t): New type.
10925 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
10926 (struct grub_efi_vendor_media_device_path): New structure.
10927 (grub_efi_vendor_media_device_path_t): New type.
10928 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
10929 (struct grub_efi_file_path_device_path): New structure.
10930 (grub_efi_file_path_device_path_t): New type.
10931 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
10932 (struct grub_efi_protocol_device_path): New structure.
10933 (grub_efi_protocol_device_path_t): New type.
10934 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
10935 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
10936 (struct grub_efi_bios_device_path): New structure.
10937 (grub_efi_bios_device_path_t): New type.
10938 (struct grub_efi_disk_io): New structure.
10939 (grub_efi_disk_io_t): New type.
10940 (struct grub_efi_block_io_media): New structure.
10941 (grub_efi_block_io_media_t): New type.
10942 (struct grub_efi_block_io): New structure.
10943 (grub_efi_block_io_t): New type.
10944
10945 * include/grub/misc.h (grub_stop): Removed.
10946 (grub_exit): New prototype.
10947 (grub_abort): Likewise.
10948
10949 * include/grub/disk.h (enum grub_disk_dev_id): Added
10950 GRUB_DISK_DEVICE_EFIDISK_ID.
10951
10952 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
10953 disk/efi/efidisk.c.
10954 (kernel_syms.lst): Remove the target if an error occurs.
10955
49986a9f 109562006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
10957
10958 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
10959 as it was simply too buggy.
10960
970d3b8a 109612006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
10962
10963 * kern/misc.c (grub_lltoa): New function.
10964 (grub_vsprintf): Added support for the long long suffix,
10965 i.e. "ll".
10966
ff04ec24 109672006-04-20 Hollis Blanchard <hollis@penguinppc.org>
10968
10969 * Makefile.in (LDFLAGS): Add variable.
10970 (LD): Remove variable.
10971 * configure.ac: Add -m32 to LDFLAGS.
10972 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
10973 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
10974 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
10975 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
10976 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
10977 variables.
10978 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
10979 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
10980 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
10981
37e5e1a4 109822006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
10983
10984 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
10985 length for unknown glyph.
10986
c352d8dd 109872006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
10988
2eab1c0d 10989 Add support for pre-loaded modules into the EFI port.
f19dbdb7 10990
2eab1c0d 10991 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
10992 completely. Accept one more argument DIR. The caller has changed.
10993
10994 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
10995
10996 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
10997 (grub_efi_loaded_image_guid): New variable.
10998 (grub_efi_get_loaded_image): New function.
10999 (grub_arch_modules_addr): Likewise.
11000
11001 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
11002 prototype.
11003
11004 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
11005 (struct grub_efi_loaded_image): New structure.
11006 (grub_efi_loaded_image_t): New type.
11007
110082006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 11009
c352d8dd 11010 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
11011 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
11012 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
11013
6d01d6b4 110142006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
11015
11016 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
11017
976a4ea0 110182006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
11019
11020 * DISTLIST: Added include/grub/efi/console.h,
11021 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
11022 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
11023
11024 * include/grub/efi/console.h: New file.
11025 * include/grub/efi/time.h: Likewise.
11026 * include/grub/i386/efi/kernel.h: Likewise.
11027 * kern/efi/init.c: Likewise.
11028 * kern/efi/mm.c: Likewise.
11029 * term/efi/console.c: Likewise.
f19dbdb7 11030
976a4ea0 11031 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
11032 (grub_stop): Removed.
11033 (grub_get_rtc): Likewise.
11034 (grub_machine_init): Simply call grub_efi_init.
11035 (grub_machine_fini): Call grub_efi_fini.
11036
11037 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
11038 (grub_efi_output_string): Removed.
11039 (grub_efi_stall): New function.
11040 (grub_stop): Likewise.
11041 (grub_get_rtc): Likewise.
11042
11043 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
11044 (grub_efi_stall): New prototype.
11045 (grub_efi_allocate_pages): Likewise.
11046 (grub_efi_free_pages): Likewise.
11047 (grub_efi_get_memory_map): Likewise.
11048 (grub_efi_mm_init): Likewise.
11049 (grub_efi_mm_fini): Likewise.
11050 (grub_efi_init): Likewise.
11051 (grub_efi_fini): Likewise.
11052
11053 * include/grub/i386/efi/time.h: Do not include
11054 grub/symbol.h. Include grub/efi/time.h.
11055 (GRUB_TICKS_PER_SECOND): Removed.
11056 (grub_get_rtc): Likewise.
11057
11058 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
11059 Added padding. The EFI spec is buggy.
11060 (GRUB_EFI_BLACK): New macro.
11061 (GRUB_EFI_BLUE): Likewise.
11062 (GRUB_EFI_GREEN): Likewise.
11063 (GRUB_EFI_CYAN): Likewise.
11064 (GRUB_EFI_RED): Likewise.
11065 (GRUB_EFI_MAGENTA): Likewise.
11066 (GRUB_EFI_BROWN): Likewise.
11067 (GRUB_EFI_LIGHTGRAY): Likewise.
11068 (GRUB_EFI_BRIGHT): Likewise.
11069 (GRUB_EFI_DARKGRAY): Likewise.
11070 (GRUB_EFI_LIGHTBLUE): Likewise.
11071 (GRUB_EFI_LIGHTGREEN): Likewise.
11072 (GRUB_EFI_LIGHTCYAN): Likewise.
11073 (GRUB_EFI_LIGHTRED): Likewise.
11074 (GRUB_EFI_LIGHTMAGENTA): Likewise.
11075 (GRUB_EFI_YELLOW): Likewise.
11076 (GRUB_EFI_WHITE): Likewise.
11077 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
11078 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
11079 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
11080 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
11081 (GRUB_EFI_BACKGROUND_RED): Likewise.
11082 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
11083 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
11084 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
11085 (GRUB_EFI_TEXT_ATTR): Likewise.
11086
11087 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
11088 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
11089 (kernel_mod_HEADERS): Added efi/time.h.
11090
83709125 110912006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
11092
11093 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
11094 include/grub/efi/api.h, include/grub/efi/console_control.h,
11095 include/grub/efi/efi.h, include/grub/efi/pe32.h,
11096 include/grub/i386/efi/time.h, kern/efi/efi.c,
11097 kern/i386/efi/init.c, kern/i386/efi/startup.S,
11098 and util/i386/efi/grub-mkimage.c.
11099
11100 * Makefile.in (RMKFILES): Added i386-efi.rmk.
11101
11102 * genmk.rb (PModule#rule): Do not export symbols if
11103 #{prefix}_EXPORTS is set to "no".
11104
11105 * conf/i386-efi.mk: New file.
11106 * conf/i386-efi.rmk: Likewise.
11107 * include/grub/efi/api.h: Likewise.
11108 * include/grub/efi/console_control.h: Likewise.
11109 * include/grub/efi/efi.h: Likewise.
11110 * include/grub/efi/pe32.h: Likewise.
11111 * include/grub/i386/efi/time.h: Likewise.
11112 * kern/efi/efi.c: Likewise.
11113 * kern/i386/efi/init.c: Likewise.
11114 * kern/i386/efi/startup.S: Likewise.
11115 * util/i386/efi/grub-mkimage.c: Likewise.
11116
111172006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 11118
11119 * include/grub/script.h: Include <grub/parser.h> and
11120 "grub_script.tab.h".
11121 (struct grub_lexer_param): New struct.
11122 (struct grub_parser_param): Likewise.
11123 (grub_script_create_arglist): Pass the state in an argument.
11124 (grub_script_add_arglist): Likewise.
11125 (grub_script_create_cmdline): Likewise.
11126 (grub_script_create_cmdblock): Likewise.
11127 (grub_script_create_cmdif): Likewise.
11128 (grub_script_create_cmdmenu): Likewise.
11129 (grub_script_add_cmd): Likewise.
11130 (grub_script_arg_add): Likewise.
11131 (grub_script_lexer_ref): Likewise.
11132 (grub_script_lexer_deref): Likewise.
11133 (grub_script_lexer_record_start): Likewise.
11134 (grub_script_lexer_record_stop): Likewise.
11135 (grub_script_mem_record): Likewise.
11136 (grub_script_mem_record_stop): Likewise.
11137 (grub_script_malloc): Likewise.
11138 (grub_script_yylex): Likewise.
11139 (grub_script_yyparse): Likewise.
11140 (grub_script_yyerror): Likewise.
11141 (grub_script_yylex): Likewise.
11142 (grub_script_lexer_init): Return the state.
11143
11144 * normal/lexer.c (grub_script_lexer_state): Removed variable.
11145 (grub_script_lexer_done): Likewise.
11146 (grub_script_lexer_getline): Likewise.
11147 (grub_script_lexer_refs): Likewise.
11148 (script): Likewise.
11149 (newscript): Likewise.
11150 (record): Likewise.
11151 (recording): Likewise.
11152 (recordpos): Likewise.
11153 (recordlen): Likewise.
11154 (grub_script_lexer_init): Return the state instead of setting
11155 global variables.
11156 (grub_script_lexer_ref): Use the newly added argument for state
11157 instead of globals.
11158 (grub_script_lexer_deref): Likewise.
11159 (grub_script_lexer_record_start): Likewise.
11160 (grub_script_lexer_record_stop): Likewise.
11161 (recordchar): Likewise.
11162 (nextchar): Likewise.
11163 (grub_script_yylex2): Likewise.
11164 (grub_script_yylex): Likewise.
11165 (grub_script_yyerror): Likewise.
11166
11167 * normal/parser.y (func_mem): Removed variable.
11168 (menu_entry): Likewise.
11169 (err): Likewise.
11170 (%lex-param): New parser option.
11171 (%parse-param): Likewise.
11172 (script): Always return the AST.
11173 (argument): Pass the state around.
11174 (arguments): Likewise.
11175 (grubcmd): Likewise.
11176 (commands): Likewise.
11177 (function): Likewise.
11178 (menuentry): Likewise.
11179 (if_statement): Likewise.
11180 (if): Likewise.
11181
11182 * normal/script.c (grub_script_memused): Removed variable.
11183 (grub_script_parsed): Likewise.
11184 (grub_script_malloc): Added a state argument. Use that instead of
11185 global variables.
11186 (grub_script_mem_record): Likewise.
11187 (grub_script_mem_record_stop): Likewise.
11188 (grub_script_arg_add): Likewise.
11189 (grub_script_add_arglist): Likewise.
11190 (grub_script_create_cmdline): Likewise.
11191 (grub_script_create_cmdif): Likewise.
11192 (grub_script_create_cmdmenu): Likewise.
11193 (grub_script_add_cmd): Likewise.
11194 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 11195
e2a8c904 111962006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 11197
11198 * normal/command.c (grub_command_init): Remove the title command.
11199
11200 * normal/lexer.c (grub_script_yylex): Renamed from this...
11201 (grub_script_yylex2): ... to this.
11202 (grub_script_yylex): New function. Temporary
11203 introduced to filter some tokens.
11204 (grub_script_yyerror): Print a newline.
11205
11206 * normal/main.c (read_config_file): Output information about the
11207 lines that contain errors. Wait for a key after all lines have
11208 been processed. Don't return an empty menu.
11209
11210 * normal/parser.y (func_mem): Don't initialize.
11211 (menu_entry): Likewise.
11212 (err): New variable.
11213 (script): Don't return anything when an error was encountered.
11214 (ws, returns): Removed rules.
11215 (argument): Disabled concatenated variable support.
11216 (arguments): Remove explicit separators.
11217 (grubcmd): Likewise.
11218 (function): Likewise.
11219 (menuentry): Likewise.
11220 (if): Likewise.
11221 (commands): Likewise. Add error handling.
11222
11223 * normal/script.c (grub_script_create_cmdline): If
11224 `grub_script_parsed' is 0, assume the parser encountered an error.
11225
c9a86192 112262006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
11227
11228 * configure.ac: Add support for EFI. Fix the typo
11229 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
11230
70f3b243 112312006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11232
11233 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
11234 foreign multibyte characters should be shown correctly.
11235
65f201ad 112362006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
11237
11238 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
11239 calculation.
11240 (read_config_file): Made it to close file before returning.
11241
b4b93674 112422006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
11243
11244 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
11245 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
11246 video/i386/pc/vbefill.c.
11247
11248 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
11249 video/i386/pc/vbefill.c.
11250
11251 * include/grub/video.h (grub_video_blit_format): New enum.
11252 (grub_video_mode_info): Added new member blit_format.
11253 (grub_video_get_blit_format): New function prototype.
11254
11255 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
11256 function prototype.
11257 (grub_video_vbe_map_rgb): Likewise.
11258 (grub_video_vbe_unmap_color): Likewise.
11259
11260 * include/grub/i386/pc/vbeblit.h: New file.
11261
11262 * include/grub/i386/pc/vbefill.h: New file.
11263
11264 * video/video.c (grub_video_get_blit_format): New function.
11265 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
11266 (grub_video_vbe_map_rgb): Likewise.
11267 (grub_video_vbe_unmap_color): Likewise.
11268
11269 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
11270 optimized fills.
11271 (grub_video_vbe_blit_render_target): Changed to use more optimized
11272 blits.
11273 (grub_video_vbe_setup): Added detection for optimized settings.
11274 (grub_video_vbe_create_render_target): Likewise.
11275
11276 * video/i386/pc/vbeblit.c: New file.
11277
11278 * video/i386/pc/vbefill.c: New file.
11279
c2379b9c 112802006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
11281
11282 * font/manager.c (grub_font_get_glyph): Removed font fixup from
11283 here...
11284
11285 * util/unifont2pff.rb: ... and moved it to here. Improved argument
11286 parsing to support both hex and dec ranges. If filename was missing
11287 show usage information.
11288
bd0d7896 112892006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
11290
11291 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
11292 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
11293
11294 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
11295 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
11296 (video_mod_SOURCES): Added.
11297 (video_mod_CFLAGS): Likewise.
11298 (video_mod_LDFLAGS): Likewise.
11299 (gfxterm_mod_SOURCES): Likewise.
11300 (gfxterm_mod_CFLAGS): Likewise.
11301 (gfxterm_mod_LDFLAGS): Likewise.
11302 (videotest_mod_SOURCES): Likewise.
11303 (videotest_mod_CFLAGS): Likewise.
11304 (videotest_mod_LDFLAGS): Likewise.
11305 (vesafb_mod_SOURCES): Removed.
11306 (vesafb_mod_CFLAGS): Likewise.
11307 (vesafb_mod_LDFLAGS): Likewise.
11308 (vga_mod_SOURCES): Likewise.
11309 (vga_mod_CFLAGS): Likewise.
11310 (vga_mod_LDFLAGS): Likewise.
11311
11312 * commands/videotest.c: New file.
11313
11314 * font/manager.c (fill_with_default_glyph): Modified to use
11315 grub_font_glyph.
11316 (grub_font_get_glyph): Likewise.
11317 (fontmanager): Renamed from this...
11318 (font_manager): ... to this.
11319
11320 * include/grub/font.h (grub_font_glyph): Added new structure.
11321 (grub_font_get_glyph): Modified to use grub_font_glyph.
11322
11323 * include/grub/misc.h (grub_abs): Added as inline function.
11324
11325 * include/grub/video.h: New file.
11326
11327 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
11328 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
11329 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
11330 (grub_vbe_get_controller_info): Renamed from this...
11331 (grub_vbe_bios_get_controller_info): ... to this.
11332 (grub_vbe_get_mode_info): Renamed from this...
11333 (grub_vbe_bios_get_mode_info): ... to this.
11334 (grub_vbe_set_mode): Renamed from this...
11335 (grub_vbe_bios_set_mode): ... to this.
11336 (grub_vbe_get_mode): Renamed from this...
11337 (grub_vbe_bios_get_mode): ... to this.
11338 (grub_vbe_set_memory_window): Renamed from this...
11339 (grub_vbe_bios_set_memory_window): ... to this.
11340 (grub_vbe_get_memory_window): Renamed from this...
11341 (grub_vbe_bios_get_memory_window): ... to this.
11342 (grub_vbe_set_scanline_length): Renamed from this...
11343 (grub_vbe_set_scanline_length): ... to this.
11344 (grub_vbe_get_scanline_length): Renamed from this...
11345 (grub_vbe_bios_get_scanline_length): ... to this.
11346 (grub_vbe_set_display_start): Renamed from this...
11347 (grub_vbe_bios_set_display_start): ... to this.
11348 (grub_vbe_get_display_start): Renamed from this...
11349 (grub_vbe_bios_get_display_start): ... to this.
11350 (grub_vbe_set_palette_data): Renamed from this...
11351 (grub_vbe_bios_set_palette_data): ... to this.
11352 (grub_vbe_set_pixel_rgb): Removed.
11353 (grub_vbe_set_pixel_index): Likewise.
11354
11355 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
11356 from this...
11357 (grub_vbe_bios_get_controller_info): ... to this.
11358 (grub_vbe_get_mode_info): Renamed from this...
11359 (grub_vbe_bios_get_mode_info): ... to this.
11360 (grub_vbe_set_mode): Renamed from this...
11361 (grub_vbe_bios_set_mode): ... to this.
11362 (grub_vbe_get_mode): Renamed from this...
11363 (grub_vbe_bios_get_mode): ... to this.
11364 (grub_vbe_set_memory_window): Renamed from this...
11365 (grub_vbe_bios_set_memory_window): ... to this.
11366 (grub_vbe_get_memory_window): Renamed from this...
11367 (grub_vbe_bios_get_memory_window): ... to this.
11368 (grub_vbe_set_scanline_length): Renamed from this...
11369 (grub_vbe_set_scanline_length): ... to this.
11370 (grub_vbe_get_scanline_length): Renamed from this...
11371 (grub_vbe_bios_get_scanline_length): ... to this.
11372 (grub_vbe_set_display_start): Renamed from this...
11373 (grub_vbe_bios_set_display_start): ... to this.
11374 (grub_vbe_get_display_start): Renamed from this...
11375 (grub_vbe_bios_get_display_start): ... to this.
11376 (grub_vbe_set_palette_data): Renamed from this...
11377 (grub_vbe_bios_set_palette_data): ... to this.
11378 (grub_vbe_bios_get_controller_info): Fixed problem with registers
11379 getting corrupted after calling it. Added more pushes and pops.
11380 (grub_vbe_bios_set_mode): Likewise.
11381 (grub_vbe_bios_get_mode): Likewise.
11382 (grub_vbe_bios_get_memory_window): Likewise.
11383 (grub_vbe_bios_set_scanline_length): Likewise.
11384 (grub_vbe_bios_get_scanline_length): Likewise.
11385 (grub_vbe_bios_get_display_start): Likewise.
11386 (grub_vbe_bios_set_palette_data): Likewise.
11387
11388 * normal/cmdline.c (cl_set_pos): Refresh the screen.
11389 (cl_insert): Likewise.
11390 (cl_delete): Likewise.
11391
11392 * term/gfxterm.c: New file.
11393
11394 * term/i386/pc/vesafb.c: Removed file.
11395
11396 * video/video.c: New file.
11397
11398 * video/i386/pc/vbe.c (real2pm): Added new function.
11399 (grub_video_vbe_draw_pixel): Likewise.
11400 (grub_video_vbe_get_video_ptr): Likewise.
11401 (grub_video_vbe_get_pixel): Likewise
11402 (grub_video_vbe_init): Likewise.
11403 (grub_video_vbe_fini): Likewise.
11404 (grub_video_vbe_setup): Likewise.
11405 (grub_video_vbe_get_info): Likewise.
11406 (grub_video_vbe_set_palette): Likewise.
11407 (grub_video_vbe_get_palette): Likewise.
11408 (grub_video_vbe_set_viewport): Likewise.
11409 (grub_video_vbe_get_viewport): Likewise.
11410 (grub_video_vbe_map_color): Likewise.
11411 (grub_video_vbe_map_rgb): Likewise.
11412 (grub_video_vbe_map_rgba): Likewise.
11413 (grub_video_vbe_unmap_color): Likewise.
11414 (grub_video_vbe_fill_rect): Likewise.
11415 (grub_video_vbe_blit_glyph): Likewise.
11416 (grub_video_vbe_blit_bitmap): Likewise.
11417 (grub_video_vbe_blit_render_target): Likewise.
11418 (grub_video_vbe_scroll): Likewise.
11419 (grub_video_vbe_swap_buffers): Likewise.
11420 (grub_video_vbe_create_render_target): Likewise.
11421 (grub_video_vbe_delete_render_target): Likewise.
11422 (grub_video_vbe_set_active_render_target): Likewise.
11423 (grub_vbe_set_pixel_rgb): Remove function.
11424 (grub_vbe_set_pixel_index): Likewise.
11425 (index_color_mode): Remove static variable.
11426 (active_mode): Likewise.
11427 (framebuffer): Likewise.
11428 (bytes_per_scan_line): Likewise.
11429 (grub_video_vbe_adapter): Added new static variable.
11430 (framebuffer): Likewise.
11431 (render_target): Likewise.
11432 (initial_mode): Likewise.
11433 (mode_in_use): Likewise.
11434 (mode_list): Likewise.
11435
5f97350b 114362006-03-10 Marco Gerards <marco@gnu.org>
11437
11438 * configure.ac (AC_INIT): Bumped to 1.93.
11439
11440 * DISTLIST: Added `include/grub/hfs.h'.
11441
a3c5c6f8 114422006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
11443
11444 * boot/i386/pc/boot.S (general_error): Before looping, try INT
11445 18H, which might help the BIOS falling back to next boot media.
11446
6de53d26 114472006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
11448
11449 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
11450 Poe Chen <poe.poechen@gmail.com>.
11451
77c4a393 114522006-01-17 Marco Gerards <marco@gnu.org>
11453
11454 * include/grub/normal.h: Include <grub/script.h>.
11455 (grub_command_list): Removed struct.
11456 (grub_command_list_t): Removed type.
11457 (grub_menu_entry): Remove members `num' and `command_list'. Add
11458 members `commands' and `sourcecode'.
11459 * include/grub/script.h: Add inclusion guards.
11460 (grub_script_cmd_menuentry): New struct.
11461 (grub_script_execute_menuentry): New prototype.
11462 (grub_script_lexer_record_start): Likewise.
11463 (grub_script_lexer_record_stop): Likewise.
11464 * normal/execute.c (grub_script_execute_menuentry): New function.
11465 * normal/lexer.c (record, recording, recordpos, recordlen): New
11466 variables.
11467 (grub_script_lexer_record_start): New function.
11468 (grub_script_lexer_record_stop): Likewise.
11469 (recordchar): Likewise.
11470 (nextchar): Likewise.
11471 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
11472 2048 as the buffer size. Add the tokens `menuentry' and `@'.
11473 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
11474 (current_menu): New variable.
11475 (free_menu): Mainly rewritten.
11476 (grub_normal_menu_addentry): New function.
11477 (read_config_file): Rewritten.
11478 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 11479 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 11480 the menu entry.
11481 (run): Mainly rewritten.
11482 * normal/parser.y (menu_entry): New variable.
11483 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
11484 (menuentry): New rule.
11485 (command): Add `menuentry'.
11486 (if_statement): Allow additional returns before `fi'.
11487 * normal/script.c (grub_script_create_cmdmenu): New function.
11488
144f1f98 114892006-01-03 Marco Gerards <marco@gnu.org>
11490
11491 * INSTALL: GNU Bison is required.
11492 * configure.ac: Rewritten the test to detect Bison.
11493 * Makefile.in (YACC): New variable. Reported by Xun Sun
11494 <xun.sun.cn@gmail.com>.
11495
af4b2d89 114962006-01-03 Marco Gerards <marco@gnu.org>
11497
11498 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
11499 the HFS+ filesystem to filesystem blocks.
11500 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
11501 GCC warning is silenced.
11502
15643b71 115032006-01-03 Marco Gerards <marco@gnu.org>
11504
11505 * partmap/apple.c (apple_partition_map_iterate): Convert the data
11506 read from disk from big endian to host byte order.
11507
00905879 115082006-01-03 Hollis Blanchard <hollis@penguinppc.org>
11509
11510 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
11511 documentation.
11512 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
11513 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
11514 embedded HFS+ filesystem.
11515 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
11516 (grub_hfs_sblock): Move from here...
11517 * include/grub/hfs.h: To here... New file.
11518 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
11519 documentation.
11520 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
11521 New macros.
11522 (grub_hfsplus_volheader): Change type of member `magic' to
11523 `grub_uint16_t'.
11524 (grub_hfsplus_data): Add new member `embedded_offset'.
11525 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
11526 returned block.
11527 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
11528 Calculate the offset.
11529
8899bc3e 115302005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11531
11532 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
11533 Removed.
11534 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
11535
ae8c0277 115362005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11537
11538 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
11539 ENV->NAME is NULL after allocating ENV->VALUE.
11540
07084456 115412005-12-25 Marco Gerards <marco@gnu.org>
11542
11543 * kern/env.c (grub_env_set): Rewritten the error handling code.
11544
4750f5f1 115452005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11546
11547 * geninit.sh: Made more robust, and more portable.
11548
50214199 115492005-12-25 Marco Gerards <marco@gnu.org>
11550
11551 Add support for Apple HFS+ filesystems.
f19dbdb7 11552
50214199 11553 * fs/hfsplus.c: New file.
11554
11555 * DISTLIST: Added `fs/hfsplus.c'.
11556
11557 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
11558 (hfsplus_mod_SOURCES): New variable.
11559 (hfsplus_mod_CFLAGS): Likewise.
11560 (hfsplus_mod_LDFLAGS): Likewise.
11561 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
11562 (grub_setup_SOURCES): Likewise.
11563 (grub_mkdevicemap_SOURCES): Likewise.
11564 (grub_emu_SOURCES): Likewise.
11565 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11566
11567 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
11568
11569 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
11570
befaed6c 115712005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
11572
11573 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
11574 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
11575 include/grub/parser.h, include/grub/script.h, kern/parser.c,
11576 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
11577 normal/lexer.c, normal/parser.y, normal/script.c, and
11578 partmap/gpt.c.
11579 Removed kern/sparc64/cache.c.
11580
11581 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
11582 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
11583 grub_emu_init.c.
11584
11585 * configure.ac (AC_INIT): Bumped to 1.92.
11586
6a124103 115872005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
11588
11589 * kern/err.c (grub_error_push): Added new function to support error
11590 stacks.
11591 (grub_error_pop): Likewise.
11592 (grub_error_stack_items): New local variable to support error stacks.
11593 (grub_error_stack_pos): Likewise.
11594 (grub_error_stack_assert): Likewise.
11595 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
11596 stack depth.
11597 (grub_print_error): Added support to print errors from error stack.
11598
11599 * include/grub/err.h (grub_error_push): Added function prototype.
11600 (grub_error_pop): Likewise.
11601
be973c1b 116022005-12-09 Hollis Blanchard <hollis@penguinppc.org>
11603
11604 * configure.ac: Accept `powerpc64' as host_cpu.
11605 (amd64): Rename to `biarch32'.
11606
11607 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
11608 non-cacheline-aligned addresses.
11609
11610 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
11611 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
11612 if `size' is non-zero.
11613
b04216ab 116142005-12-03 Marco Gerards <mgerards@xs4all.nl>
11615
11616 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
11617 and `cd' to make sure the filename is not prefixed with a
11618 directory name.
11619 (pkgdata_MODULES): Add `gpt.mod'.
11620 (gpt_mod_SOURCES): New variable.
11621 (gpt_mod_CFLAGS): Likewise.
11622 (gpt_mod_LDFLAGS): Likewise.
11623
11624 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
11625
11626 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
11627 New macro.
11628
11629 * partmap/gpt.c: New file.
11630
11631 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
11632 GPT partition map is detected.
11633
41730ed9 116342005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
11635
11636 * commands/i386/pc/play.c: New file.
11637 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
11638 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
11639 macros.
f19dbdb7 11640
95dc3643 116412005-11-27 Marco Gerards <mgerards@xs4all.nl>
11642
11643 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
11644 ((unused))' to silence gcc warning.
11645
1569ec51 116462005-11-26 Hollis Blanchard <hollis@penguinppc.org>
11647
11648 * configure.ac: Correct `AC_PROG_YACC' test.
11649
9abde152 116502005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11651
11652 * util/powerpc/ieee1275/grub-install.in: Run the mount point
11653 check before installing files.
11654
44b83271 116552005-11-22 Mike Small <smallm@panix.com>
11656
11657 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
11658 number regex so multidigit numbers are recognized correctly.
11659
116602005-11-22 Mike Small <smallm@panix.com>
11661
11662 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
11663 debugging message before attempting to claim memory.
11664 (grub_rescue_cmd_initrd): Add a claim debugging message and try
11665 multiple addresses in case of failure.
11666
9c12956b 116672005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11668
11669 * term/tparm.c (get_space): Remove empty `if' statement.
11670
11671 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
11672
11673 * kern/parser.c (check_varstate): Rename `state' to 's'.
11674
aeaf81d9 116752005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11676
11677 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
11678 variable definitions to the beginning of each function. Sort stack
11679 variables by size.
11680 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
11681 `buf' argument to `char *'.
11682
79bbb63f 116832005-11-22 Hollis Blanchard <hollis@penguinppc.org>
11684
11685 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
11686 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11687 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 11688 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11689 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11690 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11691 configfile.mod, search.mod, gzio.mod and test.mod.
11692 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11693 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11694 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11695 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11696 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11697 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11698 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11699 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11700 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11701 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11702 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11703 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11704 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11705 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11706 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11707 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11708 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11709 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11710 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11711 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11712 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11713 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11714 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
11715
11716 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
11717 `grep --include'.
11718 (pkgdata_MODULES): Add test.mod.
11719
233b1628 117202005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11721
11722 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
11723 appending to variables with "+=".
11724 (PModule): Use full pathname to generate *.lst filenames.
11725
11726 * Makefile.in: Fixed list rules moved from genmk.rb.
11727 (.DELETE_ON_ERROR): New special target.
11728 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
11729
11730 * conf/i386-pc.rmk: Include conf/common.mk.
11731 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 11732 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 11733 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
11734 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
11735 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
11736 configfile.mod, search.mod, gzio.mod and test.mod.
11737 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
11738 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
11739 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
11740 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
11741 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
11742 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
11743 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
11744 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
11745 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
11746 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
11747 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
11748 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
11749 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
11750 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
11751 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
11752 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
11753 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11754 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
11755 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
11756 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
11757 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
11758 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
11759 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
11760 here...
11761 * conf/common.rmk: ... to here. New file.
11762
11763 * conf/common.mk: New file.
11764
16f820c8 117652005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
11766
11767 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
11768 (grub_script.tab.c): ... here.
11769
11770 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
11771 (grub_script.tab.c): ... here.
11772
11773 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
11774 (grub_script.tab.c): ... here.
11775
11776 * normal/command.c (grub_command_find): Fixed a memory leak of
11777 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
11778
63ba1554 117792005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11780
11781 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
11782 "@" which marks the start of a comment on ARM.
11783 (VARIABLE): Likewise.
11784
7f67dc13 117852005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11786
79bbb63f 11787 Add support for Linux/ADFS partition tables.
7f67dc13 11788
11789 * partmap/acorn.c: New file.
11790
11791 * include/grub/acorn_filecore.h: Likewise.
11792
11793 * DISTLIST: Added `partmap/acorn.c' and
11794 `include/grub/acorn_filecore.h'.
f19dbdb7 11795
7f67dc13 11796 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11797 `partmap/acorn.c'.
11798 (pkgdata_MODULES): Add `acorn.mod'.
11799 (acorn_mod_SOURCES): New variable.
11800 (acorn_mod_CFLAGS): Likewise.
11801
11802 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11803 `partmap/acorn.c'.
11804 (pkgdata_MODULES): Add `acorn.mod'.
11805 (acorn_mod_SOURCES): New variable.
11806 (acorn_mod_CFLAGS): Likewise.
11807
11808 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
11809 (pkgdata_MODULES): Add `acorn.mod'.
11810 (acorn_mod_SOURCES): New variable.
11811 (acorn_mod_CFLAGS): Likewise.
11812 (acorn_mod_LDFLAGS): Likewise.
11813
11814 * include/types.h (grub_disk_addr_t): New typedef.
11815
6d099807 118162005-11-13 Marco Gerards <mgerards@xs4all.nl>
11817
11818 * geninit.sh: New file.
11819
11820 * geninitheader.sh: Likewise.
11821
11822 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
11823 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
11824 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
11825 * commands/configfile.c (grub_configfile_init)
11826 (grub_configfile_fini): Likewise.
11827 * commands/default.c (grub_default_init, grub_default_fini):
11828 Likewise.
11829 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
11830 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
11831 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
11832 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
11833 Likewise.
11834 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
11835 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
11836 Likewise.
11837 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 11838 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 11839 Likewise.
11840 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
11841 Likewise.
fe6b695a 11842 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 11843 Likewise.
11844 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
11845 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
11846 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
11847 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
11848 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
11849 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
11850 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
11851 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
11852 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
11853 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
11854 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
11855 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
11856 * partmap/amiga.c (grub_amiga_partition_map_init)
11857 (grub_amiga_partition_map_fini): Likewise.
11858 * partmap/apple.c (grub_apple_partition_map_init)
11859 (grub_apple_partition_map_fini): Likewise.
11860 * partmap/pc.c (grub_pc_partition_map_init)
11861 (grub_pc_partition_map_fini): Likewise.
11862 * partmap/sun.c (grub_sun_partition_map_init,
11863 grub_sun_partition_map_fini): Likewise.
11864 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
11865 Likewise.
11866
11867 * util/grub-emu.c: Include <grub_modules_init.h>.
11868 (main): Don't initialize and de-initialize any modules directly,
11869 use `grub_init_all' and `grub_fini_all' instead.
11870
11871 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
11872 `grub_vesafb_mod_init'.
11873 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
11874 all users.
11875 * term/i386/pc/vga.c (grub_vga_init): Renamed to
11876 `grub_vga_mod_init'. Updated all users.
11877 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 11878
6d099807 11879 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
11880 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
11881 rules.
11882
11883 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
11884 Generate a function to initialize the module in utilities.
11885 Updated all callers.
11886 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
11887 initialize the module in utilities. Updated all callers.
11888
9046bcf0 118892005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11890
11891 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
11892 escape sequence and a literal ^L to clear the screen.
11893
11894 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
11895 when returning from Open Firmware.
11896
d13ea639 118972005-11-09 Hollis Blanchard <hollis@penguinppc.org>
11898
11899 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
11900 (grub_ofconsole_height): Likewise.
11901 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
11902 manually insert a '\n'.
11903 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
11904 `grub_ofconsole_height'. Return early if these are already set.
11905
a8fcf206 119062005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
11907
11908 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
11909 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
11910 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
11911 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
11912 and `normal/script.c'.
11913 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11914 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11915 (test_mod_SOURCES): New variable.
11916 (test_mod_CFLAGS): Likewise.
11917 (test_mod_LDFLAGS): Likewise.
11918 (pkgdata_MODULES): Add `test.mod'.
11919 (grub_script.tab.c): New rule.
11920 (grub_script.tab.h): Likewise.
11921
b6b32745 119222005-11-07 Marco Gerards <mgerards@xs4all.nl>
11923
11924 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11925 `commands/test.c', `normal/execute.c', `normal/lexer.c',
11926 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11927 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11928 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
11929 (test_mod_SOURCES): New variable.
11930 (test_mod_CFLAGS): Likewise.
11931 (pkgdata_MODULES): Add `test.mod'.
11932 (grub_script.tab.c): New rule.
11933 (grub_script.tab.h): Likewise.
11934
daac212a 119352005-11-06 Marco Gerards <mgerards@xs4all.nl>
11936
11937 Add initial scripting support.
11938
11939 * commands/test.c: New file.
11940 * include/grub/script.h: Likewise.
11941 * normal/execute.c: Likewise.
11942 * normal/function.c: Likewise.
11943 * normal/lexer.c: Likewise.
11944 * normal/parser.y: Likewise.
11945 * normal/script.c: Likewise.
11946
11947 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 11948
daac212a 11949 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
11950 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
11951 `normal/function.c' and `normal/script.c'.
11952 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
11953 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 11954 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
11955 variables.
daac212a 11956 (pkgdata_MODULES): Add `test.mod'.
11957 (grub_script.tab.c): New rule.
11958 (grub_script.tab.h): Likewise.
11959
11960 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
11961
11962 * include/grub/normal.h (grub_test_init): New prototype.
11963 (grub_test_fini): Likewise.
f19dbdb7 11964
daac212a 11965 * normal/command.c: Include <grub/script.h>.
11966 (grub_command_execute): Rewritten.
f19dbdb7 11967
daac212a 11968 * util/grub-emu.c (main): Call `grub_test_init' and
11969 `grub_test_fini'.
11970
77500b2b 119712005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11972
11973 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
11974 to 0.
11975 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
11976 there are no pending characters.
11977
e45deb9e 119782005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11979
11980 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
11981 `grub_strndup' to drop device arguments. Replace unnecessary
11982 `grub_strndup' with `grub_strdup'.
11983
4ce32619 119842005-11-03 Hollis Blanchard <hollis@penguinppc.org>
11985
11986 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
11987 `debug' environment variable has been set.
11988
119892005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11990
4ce32619 11991 * Makefile.in (install-local): Use $(DATA).
11992 (uninstall): Likewise.
11993 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
11994 (sbin_UTILITIES): ... to here.
11995 (sbin_SCRIPTS): New variable.
11996 (grub_install_SOURCES): New variable.
11997 * util/powerpc/ieee1275/grub-install.in: New file.
11998 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
11999 variable.
12000 (add_segments): Call `grub_util_get_path'.
12001
25fe6f03 120022005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
12003
12004 From Timothy Baldwin:
12005 * commands/ls.c (grub_ls_list_files): Close FILE with
12006 grub_file_close.
12007 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
12008
04ccf3ec 120092005-10-24 Marco Gerards <mgerards@xs4all.nl>
12010
12011 * include/grub/parser.h: New file.
12012
12013 * kern/parser.c: Likewise.
12014
12015 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
12016 (grub_setup_SOURCES): Likewise.
12017 (grub_probefs_SOURCES): Likewise.
12018 (grub_emu_SOURCES): Likewise.
12019 (kernel_img_HEADERS): Add `parser.h'.
12020
12021 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
12022 (grub_emu_SOURCES): Add `kern/parser.c'.
12023 (grubof_SOURCES): Likewise.
12024
12025 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
12026 (grubof_SOURCES): Add `kern/parser.c'.
12027
12028 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
12029
12030 * kern/misc.c (grub_split_cmdline): Removed function.
12031
12032 * kern/rescue.c: Include <grub/parser.h>.
12033 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
12034 of `grub_split_cmdline'.
12035
12036 * normal/command.c: Include <grub/parser.h>.
12037 (grub_command_execute): Use `grub_parser_split_cmdline' instead
12038 of `grub_split_cmdline'.
12039
12040 * normal/completion.c: Include <grub/parser.h>.
12041 (cmdline_state): New variable.
12042 (iterate_dir): End the filename with a quote depending on the
12043 command line state.
12044 (get_state): new function.
12045 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
12046 split the arguments and determine the current argument. When the
12047 argument string is not quoted, escape all spaces.
12048
6d8f4b0e 120492005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
12050
12051 * normal/sparc64/setjmp.S: New file.
12052
15cf03ed 120532005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
12054
12055 * include/grub/sparc64/libgcc.h: New file.
12056 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
12057 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
12058 normal/sparc64/setjmp.c.
12059
03e8661a 120602005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
12061
12062 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
12063 * kern/sparc64/cache.S: New file.
12064 * kern/sparc64/cache.c: Removed.
12065 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
12066 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
12067 -mtune=ultrasparc.
12068 (COMMON_LDFLAGS): Add -melf64_sparc.
12069 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
12070 (grubof_SOURCES): Use cache.S instead of cache.c.
12071 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
12072 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
12073 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
12074 commented though.
12075 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
12076 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
12077 (linux_mod_CFLAGS): Commented out.
12078 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
12079 out because module isn't built.
12080 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
12081 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
12082 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
12083 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
12084 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
12085 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
12086 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
12087 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
12088 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
12089 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
12090 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
12091 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
12092 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
12093 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
12094
34eeec8a 120952005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
12096
12097 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
12098 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
12099 longer, because HFS should not be used on PC.
12100
708367a3 121012005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
12102
12103 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
12104 consistently within the loop.
12105
6fa1251a 121062005-10-15 Marco Gerards <mgerards@xs4all.nl>
12107
12108 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
12109 directory can not be read.
12110
4801580b 121112005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
12112
12113 * configure.ac (AC_INIT): Increase the version number to 1.91.
12114
12115 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
12116 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
12117 term/i386/pc/serial.c.
12118
219ad426 121192005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
12120
12121 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
12122 file size must be permitted.
12123
12124 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
12125 between %ah and %al.
12126
688e5699 121272005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
12128
12129 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
12130 grub_uint64_t.
12131 Call the hook with a NUL-terminated filename.
12132 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
12133 grub_cpu_to_be32.
12134
12135 * kern/term.c (cursor_state): New variable.
12136 (grub_term_set_current): Reset the cursor state on a new
12137 terminal.
12138 (grub_setcursor): Rewritten to use CURSOR_STATE.
12139 (grub_getcursor): New function.
12140
12141 * include/grub/term.h (grub_getcursor): New prototype.
12142
12143 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
12144 integers on ARM. Reported by Timothy Baldwin
12145 <T.E.Baldwin99@members.leeds.ac.uk>.
12146
bb34586c 121472005-10-11 Marco Gerards <mgerards@xs4all.nl>
12148
12149 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
12150 allocated.
12151 (grub_sfs_dir): Likewise.
12152
9a909877 121532005-10-09 Marco Gerards <mgerards@xs4all.nl>
12154
12155 Add support for the SFS filesystem.
12156
12157 * fs/sfs.c: New file.
12158
12159 * DISTLIST: Added `fs/sfs.c'.
12160
12161 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
12162 (grub_probefs_SOURCES): Likewise.
12163 (grub_emu_SOURCES): Likewise.
12164 (pkgdata_MODULES): Add `sfs.mod'.
12165 (sfs_mod_SOURCES): New variable.
12166 (sfs_mod_CFLAGS): Likewise.
12167 (sfs_mod_LDFLAGS): Likewise.
12168
12169 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
12170 (pkgdata_MODULES): Add `sfs.mod'.
12171 (sfs_mod_SOURCES): New variable.
12172 (sfs_mod_CFLAGS): Likewise.
12173
12174 * util/grub-emu.c (main): Call `grub_sfs_init' and
12175 `grub_sfs_fini'.
12176
12177 * include/grub/fs.h (grub_sfs_init): New prototype.
12178 (grub_sfs_fini): Likewise.
12179
57bdbde3 121802005-10-07 Marco Gerards <mgerards@xs4all.nl>
12181
12182 Add support for the AFFS filesystem.
12183
12184 * fs/affs.c: New file.
12185
12186 * DISTLIST: Added `fs/affs.c'.
12187
12188 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
12189 (grub_probefs_SOURCES): Likewise.
12190 (grub_emu_SOURCES): Likewise.
12191 (pkgdata_MODULES): Add `affs.mod'.
12192 (affs_mod_SOURCES): New variable.
12193 (affs_mod_CFLAGS): Likewise.
12194 (affs_mod_LDFLAGS): Likewise.
12195
12196 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
12197 (pkgdata_MODULES): Add `affs.mod'.
12198 (affs_mod_SOURCES): New variable.
12199 (affs_mod_CFLAGS): Likewise.
12200
12201 * util/grub-emu.c (main): Call `grub_affs_init' and
12202 `grub_affs_fini'.
12203
12204 * include/grub/fs.h (grub_affs_init): New prototype.
12205 (grub_affs_fini): Likewise.
12206
047b67e0 122072005-10-01 Marco Gerards <mgerards@xs4all.nl>
12208
12209 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
12210
59b8208a 122112005-10-01 Marco Gerards <mgerards@xs4all.nl>
12212
12213 * configure.ac: Accept `x86_64' as host_cpu. In that case add
12214 `-m32' to CFLAGS.
12215
12216 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
12217 linking.
f19dbdb7 12218
59b8208a 12219 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
12220 (COMMON_LDFLAGS): New variable.
12221 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
12222 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
12223 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
12224 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
12225 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
12226 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
12227 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
12228 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
12229 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
12230 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
12231 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
12232 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
12233 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
12234 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
12235 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
12236 variables.
12237 (normal_mod_ASFLAGS): Add `-m32'.
12238
12239 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
12240 (grub_host_size_t, grub_host_ssize_t): New types.
12241 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 12242 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 12243 `GRUB_HOST_SIZEOF_VOID_P'.
12244
12245 * include/grub/kernel.h (struct grub_module_header): Type of
12246 member offset changed to `grub_host_off_t'. Type of member size
12247 changed to `grub_host_size_t'.
12248 (struct grub_module_info): Type of member offset changed to
12249 `grub_host_off_t'. Type of member size changed to
12250 `grub_host_size_t'.
12251
b4093103 122522005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
12253
12254 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 12255
b4093103 12256 * kern/i386/pc/startup.S (multiboot_header): New label.
12257 (multiboot_entry): Likewise.
12258 (multiboot_trampoline): Likewise.
12259
12260 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
12261 Increased to 0x4A0.
12262
12263 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
12264 put parentheses after a question mark.
12265 [!GRUB_UTIL] (my_mod): New variable.
12266
12267 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
12268
b2499b29 122692005-09-28 Marco Gerards <mgerards@xs4all.nl>
12270
12271 Adds support for the XFS filesystem. Btrees are not supported
12272 yet.
12273
12274 * fs/xfs.c: New file.
12275
12276 * DISTLIST: Added `fs/xfs.c'.
12277
12278 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
12279 (grub_probefs_SOURCES): Likewise.
12280 (grub_emu_SOURCES): Likewise.
12281 (pkgdata_MODULES): Add `xfs.mod'.
12282 (xfs_mod_SOURCES): New variable.
12283 (xfs_mod_CFLAGS): Likewise.
12284
12285 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
12286 (pkgdata_MODULES): Add `xfs.mod'.
12287 (xfs_mod_SOURCES): New variable.
12288 (xfs_mod_CFLAGS): Likewise.
12289
12290 * util/grub-emu.c (main): Call `grub_xfs_init' and
12291 `grub_xfs_fini'.
12292
12293 * include/grub/fs.h (grub_xfs_init): New prototype.
12294 (grub_xfs_fini): Likewise.
12295
f19dbdb7 12296
83d37a62 122972005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
12298
12299 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
12300 color modes, allow greater than 16 colors to be configured as
12301 a default palette.
12302
47d2d65e 123032005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
12304
12305 * normal/completion.c (complete_arguments): Add the qualifier
12306 const into OPTIONS.
12307
12308 From Omniflux <omniflux+lists@omniflux.com>:
12309 * include/grub/terminfo.h: New file.
12310 * include/grub/tparm.h: Likewise.
12311 * include/grub/i386/pc/serial.h: Likewise.
12312 * term/terminfo.c: Likewise.
12313 * term/tparm.c: Likewise.
12314 * term/i386/pc/serial.c: Likewise.
12315 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
12316 serial.mod.
12317 (terminfo_mod_SOURCES): New variable.
12318 (terminfo_mod_CFLAGS): Likewise.
12319 (serial_mod_SOURCES): Likewise.
12320 (serial_mod_CFLAGS): Likewise.
12321
48b671ff 123222005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
12323
12324 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
12325 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
12326 and kern/powerpc/ieee1275/cmain.c, respectively.
12327
12328 * boot/powerpc/ieee1275/crt0.S: Moved to ...
12329 * kern/powerpc/ieee1275/crt0.S: ... here.
12330
12331 * boot/powerpc/ieee1275/cmain.c: Moved to ...
12332 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 12333
48b671ff 12334 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
12335 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
12336 instead of boot/powerpc/ieee1275/crt0.S and
12337 boot/powerpc/ieee1275/cmain.c, respectively.
12338
12339 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
12340 sectors. It was not used anyway.
12341
09fc77a7 123422005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12343
12344 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
12345 `unused parameter' warning.
12346
003789c7 123472005-08-30 Hollis Blanchard <hollis@penguinppc.org>
12348
12349 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
12350 function.
12351 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
12352 getcharwidth.
12353
67f44c86 123542005-08-28 Marco Gerards <metgerards@student.han.nl>
12355
12356 * include/grub/normal.h (enum grub_completion_type): Added
12357 `GRUB_COMPLETION_TYPE_ARGUMENT'.
12358
12359 * normal/cmdline.c (print_completion): Handle
12360 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
12361 * normal/menu_entry.c (store_completion): Likewise.
12362
12363 * normal/completion.c (complete_arguments): New function.
12364 (grub_normal_do_completion): Call `complete_arguments' when the
12365 current words start with a dash.
12366
0b5abe02 123672005-08-27 Marco Gerards <metgerards@student.han.nl>
12368
12369 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
12370 `gzio.mod' instead of `io.mod').
12371
d9864ee1 123722005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
12373
12374 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
12375 (DISTDIRS): Added io and video.
12376 Rewrite the search routine to make an output consistently.
12377
12378 * DISTLIST: Added conf/sparc64-ieee1275.mk,
12379 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
12380 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
12381 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
12382 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
12383 util/powerpc/ieee1275/misc.c.
f19dbdb7 12384
d9864ee1 12385 * include/grub/gzio.h: New file.
12386 * io/gzio.c: Likewise.
f19dbdb7 12387
d9864ee1 12388 * kern/file.c (grub_file_close): Call grub_device_close only if
12389 FILE->DEVICE is not NULL.
12390
12391 * include/grub/mm.h [!NULL] (NULL): New macro.
12392
12393 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
12394
12395 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
12396 (pkgdata_MODULES): Added gzio.mod.
12397 (gzio_mod_SOURCES): New variable.
12398 (gzio_mod_CFLAGS): Likewise.
12399
12400 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
12401 (pkgdata_MODULES): Added gzio.mod.
12402 (gzio_mod_SOURCES): New variable.
12403 (gzio_mod_CFLAGS): Likewise.
12404
12405 * commands/cat.c: Include grub/gzio.h.
12406 (grub_cmd_cat): Use grub_gzfile_open instead of
12407 grub_file_open.
f19dbdb7 12408
d9864ee1 12409 * commands/cmp.c: Include grub/gzio.h.
12410 (grub_cmd_cmp): Use grub_gzfile_open instead of
12411 grub_file_open.
12412
12413 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
12414 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
12415 grub_file_open.
12416 (grub_rescue_cmd_module): Likewise.
12417
fa46f4b5 124182005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12419
12420 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
12421 kern/sparc64/ieee1275/init.c because it contains _start.
12422 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
12423
e9211b5d 124242005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
12425
12426 * configure.ac: Add support for sparc64 host with ieee1275
12427 firmware.
12428 * configure: Generated from configure.ac.
12429 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
12430 instead of int.
12431 (grub_ofdisk_read): Likewise.
12432 (grub_ofdisk_open): Use %p to print pointer values, and cast the
12433 pointers as (void *) to remove a warning.
12434 (grub_ofdisk_close): Likewise.
12435 (grub_ofdisk_read): Likewise.
12436 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
12437 returns, so make it return void to remove a warning.
12438 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
12439 Corresponding prototype change.
12440 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
12441 values, and cast the pointers as (void *) to remove a warning.
12442 (grub_mm_dump): Likewise.
12443 * conf/sparc64-ieee1275.mk: New file.
12444 * conf/sparc64-ieee1275.rmk: Likewise.
12445 * include/grub/sparc64/setjmp.h: Likewise.
12446 * include/grub/sparc64/types.h: Likewise.
12447 * include/grub/sparc64/ieee1275/console.h: Likewise.
12448 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
12449 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
12450 * include/grub/sparc64/ieee1275/time.h: Likewise.
12451 * kern/sparc64/cache.c: Likewise.
12452 * kern/sparc64/dl.c: Likewise.
12453 * kern/sparc64/ieee1275/init.c: Likewise.
12454 * kern/sparc64/ieee1275/openfw.c: Likewise.
12455
385c6a92 124562005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12457
12458 * util/console.c (grub_ncurses_putchar): If C is greater than
12459 0x7f, set C to a question mark.
12460 (grub_ncurses_getcharwidth): New function.
12461 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
12462 getcharwidth.
12463
12464 * normal/menu.c (print_entry): Made aware of Unicode. First,
12465 convert TITLE to UCS-4, and predict the cursor position by
12466 grub_getcharwidth.
12467
12468 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
12469 const to SRC.
12470 * kern/misc.c (grub_utf16_to_utf8): Likewise.
12471
16ccb8b1 124722005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12473
12474 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
12475 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12476 grub_strcat.
12477
12478 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
12479 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
12480 grub_strcpy and grub_strlen. Take it into account that a space
12481 character is inserted as a delimiter.
12482
6a85ce79 124832005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12484
12485 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 12486 invalid magic in the error.
6a85ce79 12487
12488 * commands/search.c: New file.
f19dbdb7 12489
6a85ce79 12490 * util/grub-emu.c (main): Call grub_search_init and
12491 grub_search_fini.
12492
12493 * kern/rescue.c (grub_rescue_print_disks): Removed.
12494 (grub_rescue_print_devices): New function.
12495 (grub_rescue_cmd_ls): Use grub_device_iterate with
12496 grub_rescue_print_devices instead of grub_disk_dev_iterate with
12497 grub_rescue_print_disks.
12498
12499 * kern/partition.c (grub_partition_iterate): Return the result of
12500 PARTMAP->ITERATE instead of GRUB_ERRNO.
12501
12502 * kern/device.c: Include grub/partition.h.
12503 (grub_device_iterate): New function.
12504
12505 * include/grub/partition.h (grub_partition_iterate): Return int
12506 instead of grub_err_t.
12507
12508 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
12509 prototype.
12510 [GRUB_UTIL] (grub_search_fini): Likewise.
12511
12512 * include/grub/device.h (grub_device_iterate): New prototype.
12513
12514 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12515 commands/search.c.
12516 (pkgdata_MODULES): Added search.mod.
12517 (search_mod_SOURCES): New variable.
12518 (search_mod_CFLAGS): Likewise.
12519
12520 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
12521 (pkgdata_MODULES): Added search.mod.
12522 (search_mod_SOURCES): New variable.
12523 (search_mod_CFLAGS): Likewise.
12524
12525 * commands/ls.c (grub_ls_list_disks): Renamed to ...
12526 (grub_ls_list_devices): ... this, and use grub_device_iterate.
12527 All callers changed.
12528
12529 * DISTLIST: Added commands/search.c.
12530
ef095434 125312005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
12532
12533 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
12534 conversion.
12535 (grub_getcharwidth): New function.
12536
12537 * kern/misc.c (grub_utf8_to_ucs4): New function.
12538
12539 * include/grub/term.h (struct grub_term): Added a new member
12540 "getcharwidth".
12541 (grub_getcharwidth): New prototype.
12542
12543 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
12544
12545 * term/i386/pc/console.c (map_char): New function. Segregated from
12546 grub_console_putchar.
12547 (grub_console_putchar): Use map_char.
12548 (grub_console_getcharwidth): New function.
12549 (grub_console_term): Specified grub_console_getcharwidth as
12550 getcharwidth.
12551
12552 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
12553 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
12554
12555 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
12556 GRUB_ERRNO.
12557 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
12558 on grub_strtoul completely.
12559 (write_char): Declare local variables in the beginning of the
12560 function.
12561 (grub_vesafb_getcharwidth): New function.
12562 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
12563 getcharwidth.
12564
1f0a95e4 125652005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
12566
12567 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
12568 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
12569 commands/i386/pc/vbetest.c.
12570
12571 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
12572 call grub_vbe_get_controller_info again, because the returned
12573 information is volatile.
12574 (grub_vbe_set_video_mode): Mostly rewritten.
12575 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
12576 grub_vbe_status_t correctly.
12577 (grub_vbe_get_video_mode_info): Likewise.
12578 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
12579 several if statements.
12580
12581 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
12582 * commands/i386/pc/vbeinfo.c: ... this.
12583
12584 * commands/i386/pc/vbe_test.c: Renamed to ...
12585 * commands/i386/pc/vbetest.c: ... this.
12586
12587 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
12588 ...
12589 (grub_cmd_vbeinfo): ... this. Save video modes before
12590 iterating. Skip a video mode, if it is not available, not enough
12591 information is given or it is monochrome. Show the memory
12592 model. Leave the interpretation of MODEVAR to grub_strtoul
12593 completely.
12594 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
12595 (GRUB_MOD_FINI): Likewise.
12596
12597 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
12598 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
12599 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
12600 duplicated grub_env_get. Leave the interpretation of MODEVAR to
12601 grub_strtoul completely.
12602 (real2pm): Removed.
12603 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
12604 (GRUB_MOD_FINI): Likewise.
12605
12606 * normal/misc.c: Include grub/mm.h.
12607
12608 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
12609 vbe_list_modes with vbetest.mod and vbeinfo.mod.
12610 (vbe_list_modes_mod_SOURCES): Removed.
12611 (vbe_list_modes_mod_CFLAGS): Likewise.
12612 (vbe_test_mod_SOURCES): Likewise.
12613 (vbe_test_mod_CFLAGS): Likewise.
12614 (vbeinfo_mod_SOURCES): New variable.
12615 (vbeinfo_mod_CFLAGS): Likewise.
12616 (vbetest_mod_SOURCES): Likewise.
12617 (vbetest_mod_CFLAGS): Likewise.
12618
992ffbbe 126192005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
12620
12621 * normal/misc.c: New file.
12622
12623 * DISTLIST: Added normal/misc.c.
f19dbdb7 12624
992ffbbe 12625 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
12626 DISK to HOOK. Call HOOK with DISK.
12627 * partmap/apple.c (apple_partition_map_iterate): Likewise.
12628 * partmap/pc.c (pc_partition_map_iterate): Likewise.
12629 * partmap/sun.c (sun_partition_map_iterate): Likewise.
12630
12631 * normal/menu_entry.c (struct screen): Added a new member
12632 "completion_shown".
12633 (completion_buffer): New global variable.
12634 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
12635 (store_completion): New function.
12636 (complete): Likewise.
12637 (clear_completions): Likewise.
12638 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
12639 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
12640 a tab, call complete.
12641
12642 * normal/completion.c (disk_dev): Removed.
12643 (print_simple_completion): Likewise.
12644 (print_partition_completion): Likewise.
12645 (print_func): New global variable.
12646 (add_completion): Do not take the arguments WHAT or PRINT any
12647 longer. Added a new argument TYPE. Instead of printing directly,
12648 call PRINT_FUNC if not NULL.
12649 All callers changed.
12650 (complete_device): Use a local variable DEV instead of
12651 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
12652 (grub_normal_do_completion): Take a new argument HOOK. Do not
12653 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
12654 empty string, return NULL instead.
12655 All callers changed.
12656
12657 * normal/cmdline.c (print_completion): New function.
12658
12659 * kern/partition.c (grub_partition_iterate): Add an argument DISK
12660 to HOOK.
12661 All callers changed.
12662
12663 * kern/disk.c (grub_print_partinfo): Removed.
12664
12665 * include/grub/partition.h (struct grub_partition_map): Add a new
12666 argument DISK into HOOK of ITERATE.
12667 (grub_partition_iterate): Add a new argument DISK to HOOK.
12668
12669 * include/grub/normal.h (enum grub_completion_type): New enum.
12670 (grub_completion_type_t): New type.
12671 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
12672 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
12673 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
12674 (GRUB_COMPLETION_TYPE_FILE): Likewise.
12675 (grub_normal_do_completion): Added a new argument HOOK.
12676 (grub_normal_print_device_info): New prototype.
12677
12678 * include/grub/disk.h (grub_print_partinfo): Removed.
12679
12680 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
12681 (normal_mod_SOURCES): Likewise.
12682 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12683 (normal_mod_SOURCES): Likewise.
12684
12685 * commands/ls.c (grub_ls_list_disks): Use
12686 grub_normal_print_device_info instead of grub_print_partinfo. Free
12687 PNAME.
12688 (grub_ls_list_files): Use grub_normal_print_device_info instead of
12689 duplicating the code.
12690
0bd41162 126912005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12692
12693 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 12694 follow GCS more precisely.
12695 * commands/i386/pc/vbe_test.c: Likewise.
12696 * include/grub/i386/pc/vbe.h: Likewise.
12697 * term/i386/pc/vesafb.c: Likewise.
12698 * video/i386/pc/vbe.c: Likewise.
0bd41162 12699
6323696a 127002005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
12701
12702 * DISTLIST: Added term/i386/pc/vesafb.c
12703 DISTLIST: Added video/i386/pc/vbe.c
12704 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
12705 DISTLIST: Added commands/i386/pc/vbe_test.c.
12706 * commands/i386/pc/vbe_list_modes.c: New file.
12707 * commands/i386/pc/vbe_test.c: Likewise.
12708 * term/i386/pc/vesafb.c: Likewise.
12709 * video/i386/pc/vbe.c: Likewise.
12710 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
12711 (grub_vbe_probe) Added prototype.
12712 (grub_vbe_set_video_mode) Likewise.
12713 (grub_vbe_get_video_mode) Likewise.
12714 (grub_vbe_get_video_mode_info) Likewise.
12715 (grub_vbe_set_pixel_rgb) Likewise.
12716 (grub_vbe_set_pixel_index) Likewise.
12717 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
12718 (pkgdata_MODULES): Added vesafb.mod.
12719 (pkgdata_MODULES): Added vbe_list_modes.mod.
12720 (pkgdata_MODULES): Added vbe_test.mod.
12721 (vbe_mod_SOURCES): Added.
12722 (vbe_mod_CFLAGS): Likewise.
12723 (vesafb_mod_SOURCES): Likewise.
12724 (vesafb_mod_CFLAGS): Likewise.
12725 (vbe_list_modes_mod_SOURCES): Likewise.
12726 (vbe_list_modes_mod_CFLAGS): Likewise.
12727 (vbe_test_mod_SOURCES): Likewise.
12728 (vbe_test_mod_CFLAGS): Likewise.
12729
0a74e62f 127302005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
12731
0a74e62f 12732 * normal/command.c (grub_command_execute): If INTERACTIVE is
12733 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
12734 CMDLINE. Disable the pager if INTERACTIVE is true.
12735 All callers are changed.
12736
12737 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
12738 before reading a config file.
12739 * normal/main.c (read_config_file): Even if a command is not
12740 found, register it if it is within an entry.
12741
12742 * util/grub-emu.c: Include sys/types.h and unistd.h.
12743 (options): Added --hold.
12744 (struct arguments): Added a new member "hold".
12745 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
12746 missing.
12747 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
12748 cleared by a debugger, if it is not zero.
12749
12750 * include/grub/normal.h (grub_command_execute): Add an argument
12751 INTERACTIVE.
12752
e51f85ae 127532005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
12754
12755 * DISTLIST: Added include/grub/i386/pc/vbe.h.
12756
e9c6f39b 127572005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
12758
12759 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
12760 program with another one, because the old one didn't detect a bug
12761 in gcc-3.4. Always use regparm 2, because the new test is still
12762 not enough for gcc-4.0. Someone must investigate a simple test
12763 case which detects a bug in gcc-4.0.
12764
8de3495c 127652005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
12766
12767 * DISTLIST: Added normal/completion.c.
12768
12769 * normal/completion.c: New file.
f19dbdb7 12770
8de3495c 12771 * term/i386/pc/console.c (grub_console_getwh): New function.
12772 (grub_console_term): Assign grub_console_getwh to getwh.
12773
12774 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
12775 function is defined in normal/completion.c as
12776 grub_normal_do_completion.
12777 (grub_cmdline_get): Use grub_normal_do_completion instead of
12778 grub_tab_complete.
12779
12780 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
12781 returns non-zero, otherwise return 0.
12782 (grub_partition_iterate): First, probe the partition map. Then,
12783 call ITERATE only for this partition map.
12784
12785 * kern/misc.c (grub_strncmp): Rewritten.
12786
12787 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
12788 returns non-zero. Otherwise return 0.
12789
12790 * include/grub/partition.h (grub_partition_map_iterate): Return
12791 int instead of void.
12792
12793 * include/grub/normal.h (grub_normal_do_completion): New prototype.
12794
12795 * include/grub/misc.h (grub_strncmp): Change the type of N to
12796 grub_size_t.
12797
12798 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
12799 of void.
12800
12801 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 12802 unsigned explicitly before comparing it with I.
8de3495c 12803
12804 * kern/main.c (grub_env_write_root): Add the attribute unused into
12805 VAR.
12806
12807 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
12808 normal/completion.c.
12809 (normal_mod_SOURCES): Likewise.
12810 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
12811 (normal_mod_SOURCES): Likewise.
12812
12813 * normal/command.c (grub_iterate_commands): If ITERATE returns
12814 non-zero, return one immediately.
12815
e85e144b 128162005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
12817
12818 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
12819 * kern/i386/pc/startup.S: Updated Global Descriptor table's
12820 descriptions.
12821 (grub_vbe_get_controller_info): New function.
12822 (grub_vbe_get_mode_info): Likewise.
12823 (grub_vbe_set_mode): Likewise.
12824 (grub_vbe_get_mode): Likewise.
12825 (grub_vbe_set_memory_window): Likewise.
12826 (grub_vbe_get_memory_window): Likewise.
12827 (grub_vbe_set_scanline_length): Likewise.
12828 (grub_vbe_get_scanline_length): Likewise.
12829 (grub_vbe_set_display_start): Likewise.
12830 (grub_vbe_get_display_start): Likewise.
12831 (grub_vbe_set_palette_data): Likewise.
12832 * include/grub/i386/pc/vbe.h: New file.
12833
c46153d2 128342005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12835
12836 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12837 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
12838 * DISTLIST: Likewise.
12839 * kern/ieee1275/of.c: Moved to ...
12840 * kern/ieee1275/ieee1275.c: ... here.
12841
0cb90c45 128422005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12843
12844 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
12845 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
12846 Pass 0 as `end' parameter to grub_strtoul().
12847
a19fb360 128482005-08-08 Hollis Blanchard <hollis@penguinppc.org>
12849
12850 * include/grub/powerpc/ieee1275/console.h: Do not include
12851 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
12852 ifdef.
12853 (grub_console_cur_color): Remove i386-specific prototype.
12854 (grub_console_real_putchar): Likewise.
12855 (grub_console_checkkey): Likewise.
12856 (grub_console_getkey): Likewise.
12857 (grub_console_getxy): Likewise.
12858 (grub_console_gotoxy): Likewise.
12859 (grub_console_cls): Likewise.
12860 (grub_console_setcursor): Likewise.
12861 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
12862 Include <grub/machine/console.h>.
12863 * term/ieee1275/ofconsole.c: Likewise.
12864
4ac9bd04 128652005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
12866
12867 * Makefile.in (LIBLZO): New variable.
12868
12869 * configure.ac: Check for LZO version 2.
12870
12871 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
12872 lzo/lzo1x.h instead of lzo1x.h.
12873
12874 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
12875 of -llzo.
12876
12877 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
12878 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
12879
12880 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
12881 copying the data from PARTITION to P.
12882
f4917dfd 128832005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12884
12885 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
12886 negative, unload the module.
12887
12888 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
12889 map is "pc_partition_map" but not "pc".
12890 (usage): Fix the description. The options are --boot-image and
12891 --core-image but not --boot-file or --core-file.
12892 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
12893 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
12894 DEFAULT_DIRECTORY.
12895
12896 * util/i386/pc/grub-install.in: Do not specify --boot-file or
12897 --core-file. Specify INSTALL_DEVICE as an argument.
12898
12899 * util/console.c: Include config.h.
12900 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
12901 [HAVE_NCURSES_H]: Include ncurses.h.
12902 [HAVE_CURSES_H]: Include curses.h.
12903 [!A_NORMAL] (A_NORMAL): Defined as zero.
12904 [!A_STANDOUT] (A_STANDOUT): Likewise.
12905
12906 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
12907 -lncurses.
12908 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
12909
12910 * configure.ac: Check for curses libraries and headers.
12911
12912 * Makefile.in (LIBCURSES): New variable.
12913
12914 * genmk.rb (Script::rule): Set the executable bits.
12915
12916 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
12917 name of the PC partition map is "pc_partition_map" but not "pc".
12918
0e143073 129192005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12920
12921 * util/i386/pc/grub-install.in (grub_probefs): New variable.
12922 (modules): Likewise.
12923 (usage): Added descriptions for --modules and --grub-probefs.
12924 Handle --modules and --grub-probefs. Save the arguments in MODULES
12925 and GRUB_PROBEFS, respectively.
12926 Auto-detect a filesystem module against GRUBDIR. If the result is
12927 empty and modules are not specified explicitly, abort the
12928 installation. Add the result to MODULES.
12929
12930 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
12931 disk/powerpc/ieee1275/ofdisk.c,
12932 include/grub/powerpc/ieee1275/init.h and
12933 term/powerpc/ieee1275/ofconsole.c.
12934 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
12935 term/ieee1275/ofconsole.c.
12936
12937 * include/grub/powerpc/ieee1275/console.h: Resurrected.
12938
12939 * COPYING: Upgraded to the latest version. Only the address of the
12940 FSF office has changed.
f19dbdb7 12941
efd6e6d5 129422005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
12943
12944 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
12945 kern/ieee1275.c with kern/ieee1275/of.c.
12946
12947 * kern/ieee1275.c: Moved to ...
12948 * kern/ieee1275/of.c: ... here.
12949
8ceafda2 129502005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
12951
12952 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 12953 readability.
8ceafda2 12954
12955 * config.guess: Updated to the latest version from gnulib.
12956 * config.sub: Likewise.
12957 * install.sh: Likewise.
12958 * mkinstalldirs: Likewise.
12959
12960 * include/grub/console.h: Removed. This file is arch-specific. Do
12961 not put this in include/grub.
12962
12963 * include/grub/i386/pc/console.h: Resurrected.
12964
12965 * util/console.c: Include grub/machine/console.h instead of
12966 grub/console.h.
12967 * util/grub-emu.c: Likewise.
12968
267f6cd9 129692005-08-04 Marco Gerards <metgerards@student.han.nl>
12970
12971 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
12972 hardcoded value.
f19dbdb7 12973
267f6cd9 12974 From Vincent Pelletier <subdino2004@yahoo.fr>
12975 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
12976 Redefined to use grub_getwh.
12977 (grub_term): New member named getwh.
12978 (grub_getwh): New prototype.
12979 * kern/term.c (grub_getwh): New function.
12980 * term/i386/pc/console.c (grub_console_getwh): New function.
12981 (grub_console_term): New member `getwh'.
12982 * term/i386/pc/vga.c (grub_vga_getwh): New function.
12983 (grub_vga_term): New member `getwh'.
0b5abe02 12984 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 12985 grub_ssize_t.
12986 (grub_ofconsole_getw): New function.
12987 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
12988 (grub_ofconsole_term): New field named getwh and new initial
12989 value.
12990
3be7266d 129912005-08-03 Hollis Blanchard <hollis@penguinppc.org>
12992
12993 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
12994 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
12995 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
12996 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
12997 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
12998 of <grub/machine/ieee1275.h>.
12999 * commands/ieee1275/reboot.c: Likewise.
13000 * boot/powerpc/ieee1275/ieee1275.c: Move ...
13001 * kern/ieee1275.c: ... to here. All users updated. Change all
13002 parameter structs to use new type `grub_ieee1275_cell_t'.
13003 * term/powerpc/ieee1275/ofconsole.c: Move ...
13004 * term/ieee1275/ofconsole.c: ... to here. All users updated.
13005 * disk/powerpc/ieee1275/ofdisk.c: Move ...
13006 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
13007 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
13008 to return int.
13009 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
13010 Remove unused prototypes. All users updated.
13011 * include/grub/powerpc/ieee1275/console.h: Removed.
13012 * include/grub/powerpc/ieee1275/ieee1275.h: Define
13013 `grub_ieee1275_cell_t'.
13014 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
13015 Cast comparisons with -1 to the correct type.
13016 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
13017 type to match `grub_ieee1275_entry_fn'.
13018
8b5f3938 130192005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
13020
13021 * DISTLIST: Added util/i386/pc/grub-probefs.c.
13022
13023 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
13024 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
13025 partmap/sun.c.
13026 (grub_probefs_SOURCES): New variable.
13027
13028 * util/i386/pc/grub-probefs.c: New file.
13029
13030 * util/i386/pc/grub-setup.c (main): Call
13031 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
13032 grub_hfs_init and grub_jfs_init to initialize the system. Call
13033 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
13034 grub_pc_partition_map_fini to finish the system.
13035
ea409713 130362005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
13037
13038 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
13039 function.
13040 (grub_multiboot_load_elf32): Likewise.
13041 (grub_multiboot_is_elf64): Likewise.
13042 (grub_multiboot_load_elf64): Likewise.
13043 (grub_multiboot_load_elf): Likewise.
13044 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
13045 an ELF32 or ELF64 file.
13046 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
13047
13048 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
13049 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
13050 NULL before calling FS->LABEL.
13051 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
13052 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
13053 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
13054 before calling FS->LABEL.
13055
141a288b 130562005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
13057
13058 * util/i386/pc/grub-install.in (datadir): New variable.
13059 (libdir): Removed.
13060 (pkgdatadir): New variable.
13061 (pkglibdir): Removed.
13062
0d5f8a54 130632005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
13064
13065 * DISTLIST: Added util/i386/pc/grub-install.in.
13066
13067 * util/i386/pc/grub-install.in: New file.
13068
13069 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
13070 (grub_install_SOURCES): Likewise.
13071
13072 * genmk.rb: Added support for scripts.
13073 (Script): New class.
13074 (scripts): New variable.
13075
13076 * Makefile.in (install-local): Install sbin_SCRIPTS by
13077 INSTALL_SCRIPT.
13078 (uninstall): Remove sbin_SCRIPTS.
13079
13080 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
13081 device, try to get a GRUB device by
13082 grub_util_biosdisk_get_grub_dev.
13083 Free DEST_DEV.
13084
13085 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
13086 description for --device-map.
13087
5f968e1e 130882005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
13089
13090 Change the semantics of variable hooks. They now return strings
13091 instead of error values.
f19dbdb7 13092
5f968e1e 13093 * util/i386/pc/grub-setup.c: Include grub/env.h.
13094 (setup): Use grub_device_set_root instead of grub_env_set.
13095
13096 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
13097 grub_env_get instead of grub_device_set_root and
13098 grub_device_get_root, respectively.
13099
13100 * kern/main.c (grub_env_write_root): New function.
13101 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
13102 grub_env_set instead of grub_device_set_root.
13103
13104 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
13105 many variables.
13106 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
13107 rather than calling ENV->WRITE_HOOK afterwards.
13108 (grub_env_get): Return the result of ENV->READ_HOOK rather than
13109 passing a pointer of a pointer.
13110 (grub_register_variable_hook): Change the types of "read_hook" and
13111 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
13112 respectively.
13113 Allocate the default empty string on the heap, because this string
13114 may be freed later.
13115
13116 * kern/device.c: Include grub/env.h.
13117 (grub_device_set_root): Removed.
13118 (grub_device_get_root): Likewise.
13119 (grub_device_open): Use grub_env_get instead of
13120 grub_device_get_root.
13121
13122 * include/grub/env.h (grub_env_read_hook_t): New type.
13123 (grub_env_write_hook_t): Likewise.
13124 (grub_env_var): Change the types of "read_hook" and "write_hook"
13125 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
13126 (grub_register_variable_hook): Likewise.
13127
13128 * include/grub/device.h (grub_device_set_root): Removed.
13129 (grub_device_set_root): Likewise.
13130
13131 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
13132 make sure that DIRNAME terminates with '/', so that
13133 grub_fat_find_dir will fail if PATH is not a directory.
13134
13135 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
13136 from DIRNAME.
13137 Use the qualifier auto for print_files and print_files_long.
13138 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
13139 as a regular file.
13140 Put a newline only if there is no error.
13141 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
13142 used.
13143
896f0afd 131442005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
13145
13146 * kern/partition.c (grub_partition_probe): Initialize PART to
13147 NULL. Otherwise, when no partition map is registered, this returns
13148 a garbage.
13149
b28b81b2 131502005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
13151
13152 * partmap/apple.c (apple_partition_map_iterate): Check if POS
13153 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
13154 valid.
13155
5f3607e0 131562005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
13157
13158 * commands/ls.c (grub_ls_list_disks): Print the filesystem
13159 information on each device, if it does not have partitions. Print
13160 "Device" instead of "Disk", because this function is not specific
13161 to disk devices.
13162
13163 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
13164 static to ensure that it is put on the memory rather than a
13165 register.
13166
502c87e8 131672005-07-17 Yoshinori Okuji <okuji@enbug.org>
13168
13169 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
13170 (grub_cat_init): Likewise.
13171 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
13172 (options): Likewise.
13173 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
13174 (grub_configfile_init): Likewise.
13175 * font/manager.c (GRUB_MOD_INIT): Likewise.
13176 * commands/help.c (GRUB_MOD_INIT): Likewise.
13177 (grub_help_init): Likewise.
13178 * normal/command.c (grub_command_init): Likewise.
13179 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
13180 * disk/loopback.c (grub_loop_init): Likewise.
13181 (GRUB_MOD_INIT): Likewise.
13182 * commands/ls.c (grub_ls_init): Likewise.
13183 (GRUB_MOD_INIT): Likewise.
13184 (options): Likewise.
13185 * commands/boot.c (grub_boot_init): Likewise.
13186 (GRUB_MOD_INIT): Likewise.
13187 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
13188 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
13189 (GRUB_MOD_INIT): Likewise.
13190 * commands/cmp.c (grub_cmp_init): Likewise.
13191 (GRUB_MOD_INIT): Likewise.
13192
13193 * normal/arg.c: Use <> instead of "" to include header files.
13194 (SHORT_ARG_HELP): New macro.
13195 (SHORT_ARG_USAGE): Likewise.
13196 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
13197 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
13198 descriptions.
13199 (find_short): Check if C is 'h' or 'u' explicitly.
13200 (grub_arg_show_help): Use space characters instead of tabs. Treat
13201 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
13202 are shown with --help and --usage only if they are not used for
13203 the command itself.
13204 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
13205 'h' and 'u'.
13206
13207 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
13208 const into "longarg". Change the type of "shortarg" to int.
13209
f806d18e 132102005-07-17 Yoshinori Okuji <okuji@enbug.org>
13211
13212 * boot/i386/pc/boot.S (boot_drive_check): New label.
13213
13214 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
13215 macro.
13216
13217 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
13218 which do not pass a boot drive correctly. Copied from GRUB Legacy.
13219
e293232b 132202005-07-17 Yoshinori Okuji <okuji@enbug.org>
13221
13222 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
13223 When turning off Gate A20, skip the check and return immediately,
13224 because this is not fatal usually.
13225
ebedfd00 132262005-07-17 Yoshinori Okuji <okuji@enbug.org>
13227
13228 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
13229 be 0x7C00 instead of 0x8000.
13230
13231 * boot/i386/pc/pxeboot.S: Rewritten.
13232
13233 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
13234 EXT_C.
13235 (gate_a20_check_state): Read a byte from 0x108000. Invert the
13236 result.
13237
654fc59f 132382005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
13239
13240 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
13241 robustness. This routine now supports a BIOS call and System
13242 Control Port A to modify the gate A20.
13243
13244 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
13245 Increased to 0x440.
13246
09f9923f 132472005-07-12 Hollis Blanchard <hollis@penguinppc.org>
13248
13249 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
13250 device path and resulting ihandle.
13251 (grub_ofdisk_close): dprintf the ihandle being closed.
13252 (grub_ofdisk_read): dprintf function parameters.
13253 * kern/mm.c (grub_mm_init_region): Likewise.
13254 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
13255 (grub_linux_boot): dprintf the Linux entry point, initrd address and
13256 size, and boot arguments.
13257 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
13258 before loading into memory.
13259 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
13260 before loading into memory.
13261
7ef504d8 132622005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
13263
13264 * kern/mm.c: Added much documentation.
13265 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
13266 8, set to 5 instead of 8.
13267
e0f050c2 132682005-07-10 Yoshinori Okuji <okuji@enbug.org>
13269
13270 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
13271
13272 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
13273 (grub_mkdevicemap_SOURCES): New variable.
13274
13275 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
13276 lib/device.c of GRUB Legacy.
13277
7224189a 132782005-07-10 Yoshinori Okuji <okuji@enbug.org>
13279
13280 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
13281 instead of PATH is NULL.
13282
68c864eb 132832005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
13284
13285 * commands/cmp.c (BUFFER_SIZE): New macro.
13286 (grub_cmd_cmp): Close the right file at the right time. Compare
13287 only data just read. Don't report files of different size as
13288 identical. Dynamically allocate buffers. Move variable
13289 declarations at the beginning of function.
13290
e6f3e614 132912005-07-09 Yoshinori Okuji <okuji@enbug.org>
13292
13293 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
13294 reverse.
13295
f8f1559a 132962004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
13297
13298 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
13299 when backspace is pressed at beginning of line.
13300
39c9d41d 133012005-07-03 Yoshinori Okuji <okuji@enbug.org>
13302
13303 * DISTLIST: Added genfslist.sh.
13304
13305 * normal/main.c (fs_module_list): New variable.
13306 (autoload_fs_module): New function.
13307 (read_fs_list): Likewise.
13308 (grub_normal_execute): Call read_fs_list.
13309
13310 * kern/fs.c (grub_fs_autoload_hook): New variable.
13311 (grub_fs_probe): Added support for auto-loading.
13312
13313 * include/grub/normal.h (struct grub_fs_module_list): New struct.
13314 (grub_fs_module_list_t): New type.
13315
13316 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
13317 (grub_fs_autoload_hook): New prototype.
13318
13319 * genfslist.sh: New file.
f19dbdb7 13320
39c9d41d 13321 * genmk.rb: Added a rule to generate a filesystem list.
13322
121c1d83 133232005-06-30 Marco Gerards <metgerards@student.han.nl>
13324
13325 * configure.ac: Fix the test for cross-compiling.
13326
13327 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
13328 define GRUB_UTIL anymore.
13329
13330 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
13331 so this function works on other systems than just big endian.
13332 (load_modules): Likewise.
13333 (add_segments): Likewise.
13334
e75d76e1 133352005-06-23 Hollis Blanchard <hollis@penguinppc.org>
13336
13337 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
13338 contains `l' modifier, get a long from va_arg().
13339
50b5a0a7 133402005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
13341
13342 * kern/mm.c (grub_free): If the next free block which is being
13343 merged is the first free block, set the first block to the block
13344 being freed.
13345 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
13346
89371b20 133472005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13348
13349 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
13350 `grub_ieee1275_chosen'.
13351
168d6e58 133522005-05-08 Hollis Blanchard <hollis@penguinppc.org>
13353
13354 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
13355 (grub_ieee1275_chosen): New variable.
13356 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
13357 `chosen'.
13358 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
13359 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
13360 Rename first argument to `phandle' for consistency.
13361 (grub_ieee1275_get_property_length): Likewise.
13362 (grub_ieee1275_next_property): Likewise. Change type of first argument
13363 to grub_ieee1275_phandle_t.
13364 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
13365 Move export next to declaration.
13366 (grub_ieee1275_chosen): New variable.
13367 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
13368 Correct cosmetic typo.
13369 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
13370 `grub_ieee1275_chosen'.
13371 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
13372 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
13373 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
13374 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
13375 `grub_ieee1275_chosen'.
13376
ca5baa3f 133772005-05-10 Hollis Blanchard <hollis@penguinppc.org>
13378
13379 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
13380 /chosen/bootargs.
13381 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
13382 /chosen/bootargs as "variable=value" pairs.
13383
708b345f 133842005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
13385
13386 * include/grub/misc.h (grub_dprintf): New macro.
13387 (grub_real_dprintf): New prototype.
13388 (grub_strword): Likewise.
13389 (grub_iswordseparator): Likewise.
13390 * kern/misc.c (grub_real_dprintf): New function.
13391 (grub_strword): Likewise.
13392 (grub_iswordseparator): Likewise.
13393
f4c5e67c 133942005-04-30 Hollis Blanchard <hollis@penguinppc.org>
13395
13396 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
13397 (roundup): Remove macro.
13398 (grub_ieee1275_flags): Make static.
13399 (grub_ieee1275_realmode): Remove.
13400 (grub_ieee1275_test_flag): New function.
13401 (grub_ieee1275_set_flag): Likewise.
13402 (find_options): Rename to `grub_ieee1275_find_options'; update
13403 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
13404 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
13405 (cmain): New prototype.
13406 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
13407 `grub_ieee1275_flags' directly.
13408 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
13409 machine/biosdisk.h.
13410 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
13411 Don't include grub/machine/init.h.
13412 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
13413 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
13414 Remove prototype.
13415 (grub_ieee1275_realmode): Likewise.
13416 (grub_ieee1275_flag): New enum.
13417 (grub_ieee1275_test_flag): New prototype.
13418 (grub_ieee1275_set_flag): New prototype.
13419 * include/grub/powerpc/ieee1275/init.h: Remove file.
13420 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
13421 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
13422 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
13423 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
13424 comment.
13425 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
13426 `grub_ieee1275_test_flag'.
13427 (grub_ieee1275_encode_devname): Likewise.
13428
ed16607e 134292005-04-21 Hollis Blanchard <hollis@penguinppc.org>
13430
13431 * include/grub/powerpc/ieee1275/ieee1275.h
13432 (grub_ieee1275_encode_devname): New prototype.
13433 (grub_ieee1275_get_filename): Likewise.
13434 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
13435 function.
13436 (grub_set_prefix): Likewise.
13437 (grub_machine_init): Call grub_set_prefix.
13438 * kern/powerpc/ieee1275/openfw.c: Fix typos.
13439 (grub_parse_type): New enum.
13440 (grub_ieee1275_get_devargs): New function.
13441 (grub_ieee1275_get_devname): Likewise.
13442 (grub_ieee1275_parse_args): Likewise.
13443 (grub_ieee1275_get_filename): Likewise.
13444 (grub_ieee1275_encode_devname): Likewise.
13445
be369920 134462005-03-30 Marco Gerards <metgerards@student.han.nl>
13447
13448 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
13449 `grub_loader_unset'.
13450
a5ce3a4a 134512005-03-26 Hollis Blanchard <hollis@penguinppc.org>
13452
13453 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
13454 instead of grub_ieee1275_interpret.
13455 (grub_halt_init): New function.
13456 (grub_halt_fini): Likewise.
13457 (GRUB_MOD_INIT): Correct message grammar.
13458 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
13459 instead of grub_ieee1275_interpret.
13460 (grub_reboot_init): New function.
13461 (grub_reboot_fini): Likewise.
13462 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
13463 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
13464 util/i386/pc/misc.c with commands/ieee1275/halt.c,
13465 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
13466 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
13467 function.
13468 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
13469 Add prototype.
13470 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
13471 prototype.
13472 (grub_halt): Likewise.
13473 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
13474 (cmain): Remove __attribute__((unused)).
13475 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
13476 (grub_heap_len): Likewise.
13477 (grub_machine_fini): New function.
13478 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
13479 (grub_halt): Likewise.
13480 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
13481 function.
13482 * util/powerpc/ieee1275/misc.c: New file.
13483
0058f771 134842005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
13485
13486 * DISTLIST: New file.
13487 * gendistlist.sh: Likewise.
f19dbdb7 13488
0058f771 13489 * Makefile.in (COMMON_DISTFILES): Removed.
13490 (BOOT_DISTFILES): Likewise.
13491 (CONF_DISTFILES): Likewise.
13492 (DISK_DISTFILES): Likewise.
13493 (FS_DISTFILES): Likewise.
13494 (INCLUDE_DISTFILES): Likewise.
13495 (KERN_DISTFILES): Likewise.
13496 (LOADER_DISTFILES): Likewise.
13497 (TERM_DISTFILES): Likewise.
13498 (UTIL_DISTFILES): Likewise.
13499 (DISTFILES): Likewise.
13500 (uninstall): Uninstall files in $(pkgdata_DATA).
13501 (DISTLIST): New target.
13502 (distdir): Use the contents of the file DISTLIST to get a list of
13503 distributed files.
13504
46b3b8a5 135052005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
13506
13507 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
13508 descriptor. This is ported from GRUB Legacy.
13509
13510 * gencmdlist.sh: Added an extra semicolon to make it work with
13511 old sed versions. Reported by Robert Bihlmeyer
13512 <robbe@orcus.priv.at>.
13513
5822ff87 135142005-03-08 Yoshinori Okuji <okuji@enbug.org>
13515
13516 Automatic loading of commands is supported.
f19dbdb7 13517
5822ff87 13518 * normal/main.c (read_command_list): New function.
13519 (grub_normal_execute): Call read_command_list.
13520
13521 * normal/command.c (grub_register_command): Return zero or CMD.
13522 Allocate CMD->NAME from the heap.
13523 Initialize CMD->MODULE_NAME to zero.
13524 Find the same name as well. If the same command is found and it is
13525 a dummy command, overwrite members. If it is not a dummy command,
13526 return zero.
13527 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
13528 (grub_command_find): If a dummy command is found, load a module
13529 and retry to find a command only once.
13530
13531 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
13532 make sure that each command is loaded.
13533
13534 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
13535 macro.
13536 (struct grub_command): Remove const from the member `name'.
13537 Add a new member `module_name'.
13538 (grub_register_command): Return grub_command_t.
13539
13540 * commands/help.c (grub_cmd_help): Call grub_command_find to make
13541 sure that each command is loaded.
13542
13543 * genmk.rb (PModule::rule): Specify a module name without the
13544 suffix ".mod" to gencmdlist.sh.
13545
7b1f4b57 135462005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13547
13548 * gencmdlist.sh: New file.
f19dbdb7 13549
7b1f4b57 13550 * genmk.rb (PModule::rule): Generate a rule for a command list.
13551 Clean command.lst.
13552 Generate command.lst from $(COMMANDFILES).
13553
13554 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
13555 (DATA): Added $(pkgdata_DATA).
13556 (install-local): Install files in $(pkgdata_DATA).
13557
062aaf39 135582005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
13559
13560 * term/i386/pc/vga.c (debug_command): Removed.
13561 (GRUB_MOD_INIT): Do not register the command "debug".
13562
13563 From Hollis Blanchard:
13564 * commands/configfile.c: New file.
13565 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13566 commands/configfile.c.
13567 (pkgdata_MODULES): Added configfile.mod.
13568 (configfile_mod_SOURCES): New variable.
13569 (configfile_mod_CFLAGS): Likewise.
13570 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
13571 commands/configfile.c.
13572 (pkgdata_MODULES): Added configfile.mod.
13573 (configfile_mod_SOURCES): New variable.
13574 (configfile_mod_CFLAGS): Likewise.
13575 * util/grub-emu.c (main): Call grub_configfile_init and
13576 grub_configfile_fini.
13577 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
13578 prototype.
13579 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 13580
cee01aa6 135812005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13582
13583 * normal/arg.c (grub_arg_show_help): Do not show the bug report
13584 address.
13585
13586 * commands/help.c (grub_cmd_help): Do not print newlines after
13587 the last command in print_command_help.
13588
93f3a1d8 135892005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
13590
13591 * commands/default.h: New file.
13592 * commands/timeout.h: Likewise.
13593 * normal/context.c: Likewise.
f19dbdb7 13594
93f3a1d8 13595 * util/misc.c: Do not include sys/times.h.
13596 Include sys/time.h and grub/machine/time.h.
13597 (grub_get_rtc): Rewritten with gettimeofday.
13598
13599 * util/grub-emu.c (main): Call grub_default_init and
13600 grub_timeout_init before grub_normal_init, and call
13601 grub_timeout_fini and grub_default_fini after grub_main.
13602
13603 * util/console.c (grub_ncurses_checkkey): Return the read
13604 character or -1.
13605
13606 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
13607 timeouts.
13608
13609 * normal/main.c (read_config_file): Push MENU. If this fails,
13610 print an error and wait for a user input.
13611 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
13612 If a menu is empty or an error occurs, pop MENU.
13613 (grub_normal_execute): Pop and free MENU after grub_menu_run
13614 returns.
13615
13616 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
13617
13618 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
13619 include time.h.
13620 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13621 without GRUB_UTIL.
13622 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
13623 time.h.
13624 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
13625 without GRUB_UTIL.
13626
13627 * include/grub/normal.h (struct grub_menu_list): New struct.
13628 (grub_menu_list_t): New type.
13629 (struct grub_context): New struct.
13630 (grub_context_t): New type.
13631 (grub_register_command): Got rid of EXPORT_FUNC.
13632 (grub_unregister_command): Likewise.
13633 (grub_context_get): New prototype.
13634 (grub_context_get_current_menu): Likewise.
13635 (grub_context_push_menu): Likewise.
13636 (grub_context_pop_menu): Likewise.
13637 [GRUB_UTIL] (grub_default_init): Likewise.
13638 [GRUB_UTIL] (grub_default_fini): Likewise.
13639 [GRUB_UTIL] (grub_timeout_init): Likewise.
13640 [GRUB_UTIL] (grub_timeout_fini): Likewise.
13641
13642 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
13643 commands/timeout.c and normal/context.c.
13644 (pkgdata_MODULES): Added default.mod and timeout.mod.
13645 (normal_mod_SOURCES): Added normal/context.c.
13646 (default_mod_SOURCES): New variable.
13647 (default_mod_CFLAGS): Likewise.
13648 (timeout_mod_SOURCES): Likewise.
13649 (timeout_mod_CFLAGS): Likewise.
13650 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
13651 conf/i386-pc.rmk.
13652 (pkgdata_MODULES): Added default.mod and timeout.mod.
13653 (normal_mod_SOURCES): Added normal/context.c.
13654 (default_mod_SOURCES): New variable.
13655 (default_mod_CFLAGS): Likewise.
13656 (timeout_mod_SOURCES): Likewise.
13657 (timeout_mod_CFLAGS): Likewise.
13658
13659 * Makefile.in (all-local): Added $(MKFILES).
13660
4ed2e1dd 136612005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
13662
13663 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
13664 (grub_emu_SOURCES): Likewise.
13665 (pkgdata_MODULES): Add `sun.mod'.
13666 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13667 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13668 `partmap/sun.c'.
13669 (pkgdata_MODULES): Add `sun.mod'.
13670 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
13671 * include/grub/partition.h (grub_sun_partition_map_init): New
13672 prototype.
13673 (grub_sun_partition_map_fini): Likewise.
13674 * partmap/sun.c: New file.
13675 * util/grub-emu.c (main): Initialize and de-initialize the sun
13676 partitionmap support.
13677
4d4e372e 136782005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
13679
13680 This implements an Emacs-like menu entry editor.
f19dbdb7 13681
4d4e372e 13682 * normal/menu_entry.c: New file.
f19dbdb7 13683
4d4e372e 13684 * util/console.c (grub_ncurses_putchar): Translate some Unicode
13685 characters to ASCII.
13686 (saved_char): New variable.
13687 (grub_ncurses_checkkey): Rewritten completely.
13688 (grub_ncurses_getkey): Likewise.
13689 (grub_ncurses_init): Call raw instead of cbreak.
13690
13691 * normal/menu.c (print_entry): Do not put a space.
13692 (init_page): Renamed to ...
13693 (grub_menu_init_page): ... this. All callers changed.
13694 (edit_menu_entry): Removed.
13695 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
13696
13697 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
13698
13699 * kern/misc.c (grub_vprintf): Call grub_refresh.
13700
13701 * normal/menu.c (DISP_LEFT): Renamed to ...
13702 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
13703 * normal/menu.c (DISP_UP): Renamed to ...
13704 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
13705 * normal/menu.c (DISP_RIGHT): Renamed to ...
13706 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
13707 * normal/menu.c (DISP_DOWN): Renamed to ...
13708 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
13709 * normal/menu.c (DISP_HLINE): Renamed to ...
13710 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
13711 * normal/menu.c (DISP_VLINE): Renamed to ...
13712 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
13713 * normal/menu.c (DISP_UL): Renamed to ...
13714 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
13715 * normal/menu.c (DISP_UR): Renamed to ...
13716 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
13717 * normal/menu.c (DISP_LL): Renamed to ...
13718 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
13719 * normal/menu.c (DISP_LR): Renamed to ...
13720 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
13721 * normal/menu.c (TERM_WIDTH): Renamed to ...
13722 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
13723 * normal/menu.c (TERM_HEIGHT): Renamed to ...
13724 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
13725 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
13726 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
13727 * normal/menu.c (TERM_MARGIN): Renamed to ...
13728 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
13729 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
13730 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
13731 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
13732 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
13733 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
13734 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
13735 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
13736 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
13737 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
13738 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
13739 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
13740 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
13741 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
13742 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
13743 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
13744 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
13745 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
13746 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
13747 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
13748 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
13749 All callers changed.
13750
13751 * include/grub/normal.h: New prototype.
13752
13753 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13754 normal/menu_entry.c.
13755 (normal_mod_SOURCES): Likewise.
13756 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13757 (normal_mod_SOURCES): Likewise.
13758
e6b92c8a 137592005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
13760
13761 * include/grub/normal.h (grub_halt_init): New prototype.
13762 (grub_halt_fini): Likewise.
13763 (grub_reboot_init): Likewise.
13764 (grub_reboot_fini): Likewise.
13765
13766 * util/grub-emu.c: Include signal.h.
13767 (main_env): New global variable.
13768 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
13769 catch C-c.
13770 (grub_machine_fini): New function.
13771 (main): Call grub_halt_init and grub_reboot_init before
13772 grub_main, and grub_reboot_fini and grub_halt_fini after it.
13773 Call setjmp with MAIN_ENV to go back afterwards.
13774 Call grub_machine_fini right before return.
13775
13776 * include/grub/util/misc.h: Include setjmp.h.
13777 (main_env): New prototype.
13778
13779 * include/grub/kernel.h (grub_machine_fini): New prototype.
13780 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
13781 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
13782
13783 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
13784 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
13785 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 13786
e6b92c8a 13787 * util/i386/pc/misc.c: New file.
f19dbdb7 13788
e6b92c8a 13789 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
13790 util/i386/pc/misc.c, commands/i386/pc/halt.c and
13791 commands/i386/pc/reboot.c.
13792
c642636f 137932005-02-14 Guillem Jover <guillem@hadrons.org>
13794
13795 * include/grub/dl.h (grub_dl_check_header): New prototype.
13796 (grub_arch_dl_check_header): Change return type to grub_err_t,
13797 remove size parameter and export function. Update all callers.
13798 * kern/dl.c (grub_dl_check_header): New function.
13799 (grub_dl_load_core): Use `grub_dl_check_header' instead of
13800 `grub_arch_dl_check_header'. Check ELF type. Check if sections
13801 are inside the core.
13802 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
13803 independent ELF header checks.
13804 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13805 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
13806 `grub_dl_check_header' instead of explicit checks. Check for the
13807 ELF type.
13808 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
13809 `grub_dl_check_header' instead of explicit checks. Remove arch
13810 specific ELF header checks.
13811
e6b92c8a 13812 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
13813 argument SIZE.
13814
5eabe94b 138152005-02-13 Hollis Blanchard <hollis@penguinppc.org>
13816
13817 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
13818 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
13819
1b14a681 138202005-02-12 Hollis Blanchard <hollis@penguinppc.org>
13821
13822 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 13823 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 13824 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 13825 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 13826 * partmap/amiga.c (amiga_partition_map_iterate): Return
13827 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
13828 * partmap/apple.c (apple_partition_map_iterate): Likewise.
13829
aca108aa 138302005-02-01 Guillem Jover <guillem@hadrons.org>
13831
13832 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
13833 help info.
13834
c9f9c556 138352005-01-31 Marco Gerards <metgerards@student.han.nl>
13836
13837 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
13838 Removed prototype.
13839 (grub_rescue_cmd_linux): New prototype.
13840 (grub_rescue_cmd_initrd): Likewise.
13841 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
13842 `bi_rec'.
13843 (grub_linux_release_mem): Release the memory for the initrd.
13844 (grub_load_linux): Renamed from this...
13845 (grub_rescue_cmd_linux): ...To this. Changed all callers.
13846 Changed `entry' not to be static. Loop over memory regions to
13847 find another one when the default fails.
13848 (grub_rescue_cmd_initrd): New function.
13849 (grub_linux_init): Remove function.
13850 (grub_linux_fini): Likewise.
13851 (GRUB_MOD_INIT): Register `initrd'.
13852 (GRUB_MOD_FINI): Unregister `initrd'.
13853 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
13854 Function removed.
13855 (grub_linux_normal_fini): Likewise.
13856 (GRUB_MOD_INIT): Register `initrd'.
13857 (GRUB_MOD_FINI): Unregister `initrd'.
13858
990cf3aa 138592005-01-31 Marco Gerards <metgerards@student.han.nl>
13860
13861 * commands/help.c: New file.
13862 * normal/arg.c (show_help): Renamed to...
13863 (grub_arg_show_help): ... this.
13864 * commands/i386/pc/halt.c: New file.
13865 * commands/i386/pc/reboot.c: Likewise.
13866 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
13867 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
13868 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
13869 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
13870 variables.
13871 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13872 `commands/help.c'.
13873 (pkgdata_MODULES): Add `help.mod'.
13874 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
13875 * grub/i386/pc/init.h (grub_reboot): New prototype.
13876 (grub_halt): Likewise.
13877 * include/grub/normal.h (grub_arg_show_help): New prototype.
13878 (grub_help_init): Likewise.
13879 (grub_help_fini): Likewise.
13880 * util/grub-emu.c (main): Initialize and deinitialize the help
13881 command.
13882
13883 * normal/cmdline.c (grub_cmdline_get): Doc fix.
13884
13885 * normal/command.c (grub_command_init): Fixed the description of
13886 the `set' and `unset' commands.
13887
138882005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 13889
13890 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
13891 function.
13892 * commands/ieee1275/halt.c: New file.
13893 * commands/ieee1275/reboot.c: Likewise.
13894 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
13895 `__attribute__ ((unused))'. Some GCS related fixed.
13896 (grub_suspend_init) [GRUB_UTIL]: Function removed.
13897 (grub_suspend_fini): Likewise.
13898 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
13899 and `halt.mod'.
13900 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
13901 (halt_mod_CFLAGS): New variables.
13902 * include/grub/powerpc/ieee1275/ieee1275.h
13903 (grub_ieee1275_interpret): New prototype.
13904
1ab09cc7 139052005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
13906
13907 * include/grub/misc.h (memmove): New prototype.
13908 (memcpy): Likewise.
13909
8b8cbdb2 139102005-01-22 Hollis Blanchard <hollis@penguinppc.org>
13911
13912 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
13913 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
13914
e3741a27 139152005-01-22 Marco Gerards <metgerards@student.han.nl>
13916
13917 * kern/misc.c (grub_strndup): Function rewritten.
13918
776bd780 139192005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
13920
13921 * normal/menu.c (TERM_WIDTH): Macro redefined.
13922 (TERM_TOP_BORDER_Y): Likewise.
13923 (draw_border): Replaced while-loop by a for-loop. Make the number
13924 of lines consistent with the number of lines displayed in
13925 print_entries. Added a margin below the rectangle.
13926 (print_entry): Make the entry fit in the rectangle.
13927 (print_entries): Display the scroll arrows next to the right
13928 border.
13929
78026bce 139302005-01-21 Marco Gerards <metgerards@student.han.nl>
13931
13932 * fs/minix.c (grub_minix_find_file): Reserve more space for
13933 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
13934 `grub_strncpy' to copy `path' into it.
13935
67bbaf0f 139362005-01-21 Marco Gerards <metgerards@student.han.nl>
13937
13938 Add the loopback device, a device via which files can be accessed
13939 as devices.
f19dbdb7 13940
67bbaf0f 13941 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
13942 (pkgdata_MODULES): Add loopback.mod.
13943 (loopback_mod_SOURCES): New variable.
13944 (loopback_mod_CFLAGS): Likewise.
13945 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13946 `disk/loopback.c'.
13947 (pkgdata_MODULES): Add loopback.mod.
13948 (loopback_mod_SOURCES): New variable.
13949 (loopback_mod_CFLAGS): Likewise.
13950 * disk/loopback.c: new file.
13951 * include/grub/normal.h (grub_loop_init): New prototype.
13952 (grub_loop_fini): New prototype.
13953 * util/grub-emu.c (main): Initialize and de-initialize loopback
13954 support.
13955 * include/grub/disk.h (grub_disk_dev_id): Add
13956 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
13957
6f1c18bd 139582005-01-20 Hollis Blanchard <hollis@penguinppc.org>
13959
13960 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
13961 function.
13962 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
13963 (suspend_mod_SOURCES): New variable.
13964 (suspend_mod_CFLAGS): Likewise.
13965 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
13966 New prototype.
13967 * commands/ieee1275/suspend.c: New file.
13968
b38551da 139692005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13970
13971 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 13972 ((unused))' to `__attribute__ ((used))'.
b38551da 13973 (GRUB_MOD_FINI): Likewise.
13974 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
13975 * genmk.rb (PModule): Assign space to common symbols when linking
13976 modules.
13977
777aff39 139782005-01-20 Marco Gerards <metgerards@student.han.nl>
13979
13980 * include/grub/mm.h (grub_mm_init_region): Change the type of the
13981 `unsigned' arguments to `grub_size_t'.
13982 (grub_malloc): Likewise.
13983 (grub_realloc): Likewise.
13984 (grub_memalign): Likewise.
13985 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
13986 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
13987 * util/misc.c (grub_malloc): Likewise.
13988 (grub_realloc): Likewise.
13989 * kern/mm.c (get_header_from_pointer): Change the casts to
13990 `unsigned' into a cast to `grub_size_t'.
13991
13992 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
13993 point to `currnode' when `currnode' is changed.
13994
13995 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
13996 Schottelius <nico-linux@schottelius.org>.
13997
d0ff18e1 139982005-01-09 Hollis Blanchard <hollis@penguinppc.org>
13999
14000 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
14001 (note_path): Remove variable.
14002 (GRUB_IEEE1275_NOTE_NAME): New macro.
14003 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
14004 (grub_ieee1275_note_hdr): New structure.
14005 (grub_ieee1275_note_desc): Likewise.
14006 (grub_ieee1275_note): Likewise.
14007 (load_note): Remove `dir' argument. All callers updated. Remove
14008 `note_img' and `path'. Do not load a file from `note_path'.
14009 Initialize a struct grub_ieee1275_note and write that to `out'.
14010 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
14011
4ca7004c 140122005-01-05 Marco Gerards <metgerards@student.han.nl>
14013
14014 * util/misc.c (grub_util_read_image): Revert last change. It
14015 called `grub_util_read_at', which seeks from the beginning of the
14016 file.
14017
0b412211 140182005-01-04 Hollis Blanchard <hollis@penguinppc.org>
14019
14020 * TODO: Add note about endianness in grub-mkimage.
14021 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
14022 section.
14023 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
14024 (grub_mkimage_SOURCES): New target.
14025 * include/grub/kernel.h (grub_start_addr): Remove variable.
14026 (grub_end_addr): Likewise.
14027 (grub_total_module_size): Likewise.
14028 (grub_kernel_image_size): Likewise.
14029 (GRUB_MODULE_MAGIC): New constant.
14030 (grub_module_info): New structure.
14031 (grub_arch_modules_addr): New prototype.
14032 (grub_get_end_addr): Remove prototype.
14033 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
14034 * include/grub/powerpc/ieee1275/kernel.h: New file.
14035 * include/grub/util/misc.h (grub_util_get_fp_size): New
14036 prototype.
14037 (grub_util_read_at): Likewise.
14038 (grub_util_write_image_at): Likewise.
14039 * kern/main.c (grub_get_end_addr): Remove function.
14040 (grub_load_modules): Call grub_arch_modules_addr instead of using
14041 grub_end_addr. Look for a grub_module_info struct in memory. Use
14042 the grub_module_info fields instead of calling grub_get_end_addr
14043 as loop conditions. Move grub_add_unused_region code here.
14044 (grub_add_unused_region): Remove function.
14045 * kern/i386/pc/init.c: Include grub/cache.h.
14046 (grub_machine_init): Remove call to grub_get_end_addr. Remove
14047 one call to add_mem_region.
14048 (grub_arch_modules_addr): New function.
14049 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
14050 (grub_total_module_size): Likewise.
14051 Include grub/machine/kernel.h.
14052 (grub_arch_modules_addr): New function.
14053 * util/grub-emu.c (grub_end_addr): Remove variable.
14054 (grub_total_module_size): Likewise.
14055 (grub_arch_modules_addr): New function.
14056 * util/misc.c: Include unistd.h.
14057 (grub_util_get_fp_size): New function.
14058 (grub_util_read_at): Likewise.
14059 (grub_util_write_image_at): Likewise.
14060 (grub_util_read_image): Call grub_util_read_at.
14061 (grub_util_write_image): Call grub_util_write_image_at.
14062 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
14063 additional memory in kernel_img for a struct grub_module_info.
14064 Fill in that grub_module_info.
14065 * util/powerpc/ieee1275/grub-mkimage.c: New file.
14066
458786f8 140672005-01-03 Hollis Blanchard <hollis@penguinppc.org>
14068
14069 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
14070 New function.
14071 * include/grub/powerpc/ieee1275/ieee1275.h
14072 (grub_ieee1275_milliseconds): New prototype.
14073 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
14074 Change to 1000.
14075 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
14076 grub_ieee1275_milliseconds.
14077
ac507d1b 140782005-01-03 Hollis Blanchard <hollis@penguinppc.org>
14079
14080 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
14081 variable.
14082 (find_options): New function.
14083 (cmain): Call find_options.
14084 * include/grub/powerpc/ieee1275/ieee1275.h
14085 (grub_ieee1275_realmode): New extern variable.
14086 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
14087 grub_map if grub_ieee1275_realmode is false.
14088
6b8fd1c4 140892004-12-29 Marco Gerards <metgerards@student.han.nl>
14090
14091 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
14092 lines are inserted and make it work like readline. Reported by
14093 Vincent Pelletier <subdino2004@yahoo.fr>.
14094
8514a1e0 140952004-12-28 Marco Gerards <metgerards@student.han.nl>
14096
14097 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
14098
14099 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
14100 `kern/powerpc/cache.S'.
14101
924b6140 141022004-12-27 Marco Gerards <metgerards@student.han.nl>
14103
14104 * genmk.rb: Handle the `Program' class in the main loop. Written
14105 by Johan Rydberg <jrydberg@gnu.org>.
14106 (Program): New class.
14107 (programs): New variable.
14108 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
14109 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
14110 instead of "grub/kernel.h". Include <grub/machine/init.h>.
14111 (help_arch): Function removed.
14112 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
14113 `powerpc/libgcc.h' and `loader.h'.
14114 (pkgdata_PROGRAMS): New variable.
14115 (sbin_UTILITIES): Variable removed.
14116 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
14117 (grubof_SOURCES): Variable re-defined so it only includes the
14118 core functionality.
14119 (grubof_CFLAGS): Remove `-DGRUBOF'.
14120 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
14121 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
14122 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
14123 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
14124 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
14125 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
14126 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
14127 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
14128 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
14129 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
14130 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
14131 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
14132 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
14133 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
14134 (pc_mod_CFLAGS): New variables.
14135 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
14136 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
14137 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
14138 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
14139 Moved from here...
14140 * include/grub/i386/pc/init.h (grub_os_area_addr)
14141 (rub_os_area_size): ... to here.
14142 * include/grub/powerpc/ieee1275/ieee1275.h
14143 (grub_ieee1275_entry_fn): Export symbol.
14144 * include/grub/powerpc/ieee1275/init.h: New file.
14145 * include/grub/powerpc/libgcc.h: Likewise.
14146 * include/grub/cache.h: Likewise.
14147 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
14148 <hollis@penguinppc.org>.
14149 * kern/dl.c: Include <grub/cache.h>.
14150 (grub_dl_flush_cache): New function.
14151 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
14152 for this module.
14153 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
14154 (grub_console_init): Removed prototypes.
14155 (grub_machine_init): Don't initialize the modules anymore.
14156 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
14157 static.
14158 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
14159 Macro undef removed.
14160 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
14161 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
14162 relocation `R_PPC_REL32'. Return an error when the relocation is
14163 unknown.
14164 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
14165 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
14166 * util/misc.c (grub_arch_sync_caches): Likewise.
14167
e4b47e0c 141682004-12-19 Marco Gerards <metgerards@student.han.nl>
14169
14170 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
14171 `symlist.c', add `grubof_symlist.c'.
14172 (symlist.c): Variable removed.
14173 (grubof_HEADERS): Variable added.
14174 (grubof_symlist.c): New target.
14175 (kernel_syms.lst): Use `grubof_HEADERS' instead of
14176 `kernel_img_HEADERS'.
14177 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
14178 * kern/powerpc/dl.c: New file.
14179 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
14180 Function removed.
14181 (grub_arch_dl_relocate_symbols): Likewise.
14182 (grub_register_exported_symbols): Likewise.
14183
4ceb3636 141842004-12-13 Marco Gerards <metgerards@student.han.nl>
14185
14186 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
14187 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
14188 to fail instead. Reported by Vincent Pelletier
14189 <subdino2004@yahoo.fr>.
14190
14191 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
14192 it is not allocated. Reported by Vincent Pelletier
14193 <subdino2004@yahoo.fr>.
14194
14195 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
14196 output so the output looks better.
f19dbdb7 14197
3f1578fe 141982004-12-04 Marco Gerards <metgerards@student.han.nl>
14199
14200 Modulize the partition map support and add support for the amiga
14201 partition map.
f19dbdb7 14202
3f1578fe 14203 * commands/ls.c: Include <grub/partition.h> instead of
14204 <grub/machine/partition.h>.
14205 * kern/disk.c: Likewise.
14206 * kern/rescue.c: Likewise.
14207 * loader/i386/pc/chainloader.c: Likewise.
14208 * normal/cmdline.c: Likewise.
14209 * kern/powerpc/ieee1275/init.c: Likewise.
14210 (grub_machine_init): Call `grub_pc_partition_map_init',
14211 `grub_amiga_partition_map_init' and
14212 `grub_apple_partition_map_init'.
14213 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
14214 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
14215 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
14216 `partition.h' and `pc_partition.h'.
14217 (grub_setup_SOURCES): Remove
14218 `disk/i386/pc/partition.c'. Add `kern/partition.c',
14219 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14220 (grub_emu_SOURCES): Likewise.
14221 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
14222 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
14223 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
14224 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14225 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
14226 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
14227 (grubof_SOURCES): Likewise.
14228 * disk/i386/pc/partition.c: File removed.
14229 * disk/powerpc/ieee1275/partition.c: Likewise.
14230 * include/grub/powerpc/ieee1275/partition.h: Likewise.
14231 * include/grub/i386/pc/partition.h: Likewise.
14232 * kern/partition.c: New file.
14233 * partmap/amiga.c: Likewise.
14234 * partmap/apple.c: Likewise.
14235 * partmap/pc.c: Likewise.
14236 * include/grub/partition.h: Likewise..
14237 * include/grub/pc_partition.h: Likewise.
14238 * util/grub-emu.c: Include <grub/partition.h> instead of
14239 <grub/machine/partition.h>.
14240 (main): Call `grub_pc_partition_map_init',
14241 `grub_amiga_partition_map_init' and
14242 `grub_apple_partition_map_init' and deinitialize afterwards.
14243 * util/i386/pc/biosdisk.c: Include `#include
14244 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14245 `<grub/machine/partition.h>'.
14246 * util/i386/pc/grub-setup.c: Likewise.
14247 * util/i386/pc/biosdisk.c: Likewise.
14248 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
14249 partition information in case of a PC partition.
14250 * util/i386/pc/grub-setup.c: Include `#include
14251 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
14252 `<grub/machine/partition.h>'.
14253 (setup): Only access the PC specific partition information in case
14254 of a PC partition.
14255
0ef4ced9 142562004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 14257
0ef4ced9 14258 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
14259 (grub_longjmp): Likewise.
14260 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
14261 20.
14262 * normal/powerpc/setjmp.S: New file.
14263 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14264 `normal/powerpc/setjmp.S'.
14265 (grubof_CFLAGS): Add `-DGRUBOF'.
14266 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
14267 [GRUB_UTIL && !GRUBOF].
f19dbdb7 14268
19950e29 142692004-11-16 Marco Gerards <metgerards@student.han.nl>
14270
14271 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
14272 property named `name'. Correctly handle the error returned by
14273 `grub_ieee1275_finddevice' if a device can not be opened.
14274
a2fea427 142752004-11-02 Hollis Blanchard <hollis@penguinppc.org>
14276
14277 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
14278 `actual' for negativity.
14279 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
14280 kern/fshelp.c.
14281
41ea0ea3 142822004-11-01 Marco Gerards <metgerards@student.han.nl>
14283
14284 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
14285 (PAGE_OFFSET): New macro.
14286 (CRTC_ADDR_PORT): Likewise.
14287 (CRTC_DATA_PORT): Likewise.
14288 (START_ADDR_HIGH_REGISTER): Likewise.
14289 (START_ADDR_LOW_REGISTER): Likewise.
14290 (GRAPHICS_ADDR_PORT): Likewise.
14291 (GRAPHICS_DATA_PORT): Likewise.
14292 (READ_MAP_REGISTER): Likewise.
14293 (INPUT_STATUS1_REGISTER): Likewise.
14294 (INPUT_STATUS1_VERTR_BIT): Likewise.
14295 (page): New variable.
14296 (wait_vretrace): New function.
14297 (set_read_map): Likewise.
14298 (set_start_address): Likewise.
14299 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
14300 the right page.
14301 (check_vga_mem): Take the page into account.
14302 (write_char): Likewise.
14303 (write_cursor): Likewise.
14304 (scroll_up): Likewise. Copy the page to the page that is not
14305 shown and switch between both pages.
14306 (grub_vga_putchar): Fix off by one error.
14307 (grub_vga_cls): Wait for the vertical retrace. Take the page into
14308 account.
14309
ad0bd20b 143102004-11-01 Marco Gerards <metgerards@student.han.nl>
14311
14312 Add support for iso9660 (including rockridge).
f19dbdb7 14313
ad0bd20b 14314 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14315 (iso9660_mod_SOURCES): New variable.
14316 (iso9660_mod_CFLAGS): Likewise.
14317 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
14318 * include/grub/fs.h (grub_iso9660_init): New prototype.
14319 * util/grub-emu.c (main): Call `grub_iso9660_init'.
14320 * fs/iso9660.c: New file.
14321
14322 * include/grub/misc.h (grub_strncat): New prototype.
14323 * kern/misc.c (grub_strncat): New function.
f19dbdb7 14324
ad0bd20b 14325 * fs/hfs.c (grub_hfs_mount): Translate the error
14326 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
14327 * fs/jfs.c (grub_jfs_mount): Likewise.
14328 * fs/ufs.c (grub_ufs_mount): Likewise.
14329
a5477a59 143302004-10-28 Hollis Blanchard <hollis@penguinppc.org>
14331
14332 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
14333 which initialized BAT registers.
14334 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
14335 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14336 Move from here...
14337 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
14338 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
14339 ... to here.
14340 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
14341 (grub_mapclaim): Likewise.
14342 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
14343 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
14344 hand.
14345
9304c1f8 143462004-10-19 Hollis Blanchard <hollis@penguinppc.org>
14347
14348 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
14349 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
14350 -ffreestanding and -msoft-float.
14351
86f4ae25 143522004-10-15 Hollis Blanchard <hollis@penguinppc.org>
14353
14354 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
14355 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
14356 set in grub_ieee1275_flags.
14357
38912228 143582004-10-14 Hollis Blanchard <hollis@penguinppc.org>
14359
14360 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
14361 prototype.
14362 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
14363 grub_console_init first.
14364 Change the memory range used for grub_ieee1275_claim and
14365 grub_mm_init_region.
14366 Print an error message if the claim fails.
14367 Include <grub/misc.h>.
14368
d1923dc8 143692004-10-13 Hollis Blanchard <hollis@penguinppc.org>
14370
14371 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
14372 Call grub_children_iterate for device nodes of type `scsi',
14373 `ide', or `ata'.
14374 (grub_ofdisk_open): Remove manual device alias resolution.
14375 Fix memory leak when device cannot be opened.
f19dbdb7 14376 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 14377 (grub_children_iterate): New prototype.
14378 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
14379 New function.
14380 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
14381 Return -1 if args.size was -1.
14382
4512e4f3 143832004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14384
14385 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
14386 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
14387 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
14388 Open Firmware's memory for it; claim memory from _start to _end.
14389 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
14390 (_end): New extern.
14391 (_start): Zero BSS from __bss_start to _end.
14392 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
14393 New extern.
14394 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
14395
4d61feb0 143962004-10-11 Hollis Blanchard <hollis@penguinppc.org>
14397
ad0bd20b 14398 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
14399 -1 if args.base was -1.
4d61feb0 14400
026fa2f9 144012004-10-08 Hollis Blanchard <hollis@penguinppc.org>
14402
14403 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
14404 escape sequence instead of a literal ^L. Also call
14405 grub_ofconsole_gotoxy.
14406
9f2220ef 144072004-10-03 Hollis Blanchard <hollis@penguinppc.org>
14408
14409 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
14410 void * arguments to grub_addr_t. All callers updated. Also make
14411 the `result' argument optional.
14412 (grub_ieee1275_release): change void * arguments to grub_addr_t.
14413 All callers updated.
14414
8a572cd7 144152004-09-22 Hollis Blanchard <hollis@penguinppc.org>
14416
14417 * commands/ls.c (grub_ls_list_files): Use the string following the
14418 initial ')', if present, as the filesystem path.
14419 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
14420
14421 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
14422
18aa81f2 144232004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
14424
14425 Make the source code of the menu interface more readable.
f19dbdb7 14426
18aa81f2 14427 * normal/menu.c: Include grub/mm.h.
14428 (TERM_WIDTH): New macro.
14429 (TERM_HEIGHT): Likewise.
14430 (TERM_INFO_HEIGHT): Likewise.
14431 (TERM_MARGIN): Likewise.
14432 (TERM_SCROLL_WIDTH): Likewise.
14433 (TERM_TOP_BORDER_Y): Likewise.
14434 (TERM_LEFT_BORDER_X): Likewise.
14435 (TERM_BORDER_WIDTH): Likewise.
14436 (TERM_MESSAGE_HEIGHT): Likewise.
14437 (TERM_BORDER_HEIGHT): Likewise.
14438 (TERM_NUM_ENTRIES): Likewise.
14439 (TERM_FIRST_ENTRY_Y): Likewise.
14440 (TERM_ENTRY_WIDTH): Likewise.
14441 (TERM_CURSOR_X): Likewise.
14442 (draw_border): Use macros instead of magic numbers.
14443 (print_entry): Likewise.
14444 (print_entries): Likewise.
14445 (run_menu): Likewise. Also, handle the key 'e'.
14446 (run_menu_entry): Ignore empty command lines.
14447 (print_message): Added a new argument EDIT. If EDIT is true,
14448 print a different message.
14449 (init_page): Likewise.
14450 (edit_menu_entry): New function. Not implemented yet.
14451
b47efe30 144522004-09-17 Marco Gerards <metgerards@student.han.nl>
14453
14454 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
14455 can be loaded from normal mode.
f19dbdb7 14456
b47efe30 14457 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
14458 `multiboot.mod'.
14459 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
14460 (multiboot_mod_CFLAGS): New variables.
14461 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 14462 * loader/i386/pc/multiboot_normal.c: Likewise.
14463
b47efe30 14464 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
14465 attribute `unused'.
f19dbdb7 14466
b47efe30 14467 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
14468 `fdiro' to read the mode information from instead of `diro'.
14469
14470 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
14471 looking up a symlink.
14472
14473 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
14474 macro.
14475 * normal/command.c (grub_command_execute): Don't parse the
14476 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
14477 flags of the command.
14478
14479 * normal/menu.c (grub_menu_run): Fix typo.
14480
da75ac71 144812004-09-14 Hollis Blanchard <hollis@penguinppc.org>
14482
14483 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
14484
14485 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
14486 `y + 1' instead of `y - 1'.
14487
14488 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 14489
062b24c2 144902004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
14491
14492 From Hollis Blanchard <hollis@penguinppc.org>:
14493 * kern/misc.c (memmove): New alias for grub_memmove.
14494 (memcmp): New alias for grub_memcmp.
14495 (memset): New alias for grub_memset.
f19dbdb7 14496 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 14497 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 14498 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 14499 (grub_ieee1275_get_property): Likewise.
f19dbdb7 14500
8ddad845 145012004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
14502
14503 Added normal mode command `chainloader' as module chain.mod, which
14504 depends on normal.mod and _chain.mod.
f19dbdb7 14505
8ddad845 14506 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
14507 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
14508 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
14509 Deleted prototype.
14510 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
14511 but arguments parsing moved to ...
14512 (grub_chainloader_cmd): ... here. New function.
14513 * include/grub/i386/pc/chainloader.h: New file.
14514 * loader/i386/pc/chainloader_normal.c: Likewise.
14515
2c1f4ce3 145162004-09-11 Marco Gerards <metgerards@student.han.nl>
14517
14518 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
14519 (grub_mkimage_LDFLAGS): Likewise.
14520 (grub_emu_SOURCES): Likewise.
14521 (kernel_img_HEADERS): Added fshelp.h.
14522 * fs/ext2.c: Include <grub/fshelp.h>.
14523 (FILETYPE_REG): New macro.
14524 (FILETYPE_INO_REG): Likewise.
14525 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
14526 Changed all users.
14527 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
14528 all users.
14529 (grub_fshelp_node): New struct.
14530 (grub_ext2_data): Added member `diropen'. Changed member `inode'
14531 to a pointer.
14532 (grub_ext2_get_file_block): Removed function.
14533 (grub_ext2_read_block): New function.
14534 (grub_ext2_read_file): Replaced parameter `data' by `node'.
14535 This function was written.
14536 (grub_ext2_mount): Read the root inode. Create a diropen struct.
14537 (grub_ext2_find_file): Removed function.
14538 (grub_ext2_read_symlink): New function.
14539 (grub_ext2_iterate_dir): Likewise.
14540 (grub_ext2_open): Rewritten.
14541 (grub_ext2_dir): Rewritten.
14542 * include/grub/fshelp.h: New file.
14543 * fs/fshelp.c: Likewise.
14544
3c52136a 145452004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
14546
14547 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
14548 (print_message): Add a missing newline.
14549 (run_menu): Added timeout support.
14550 (run_menu_entry): New local function.
14551 (grub_menu_run): Added support for booting.
14552
14553 * kern/loader.c (grub_loader_is_loaded): New function.
14554
14555 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
14556 (grub_get_rtc): Exported.
14557
14558 * include/grub/i386/pc/time.h: Include grub/symbol.h.
14559 (grub_get_rtc): Exported.
14560
14561 * include/grub/normal.h (struct grub_command_list): Remove
14562 constant from the member `command'.
14563
14564 * include/grub/loader.h (grub_loader_is_loaded): Declared.
14565
14566 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
14567
14568 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
14569
aa033560 145702004-08-28 Marco Gerards <metgerards@student.han.nl>
14571
14572 Add support for the JFS filesystem.
14573
14574 * fs/jfs.c: New file.
14575 * include/grub/fs.h (grub_jfs_init): New prototype.
14576 (grub_jfs_fini): New prototype.
14577 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
14578 (grub_emu_SOURCES): Likewise.
14579 (pkgdata_MODULES): Add jfs.mod.
14580 (jfs_mod_SOURCES): New variable.
14581 (jfs_mod_CFLAGS): Likewise.
14582 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
14583 (grubof_SOURCES): Likewise.
14584 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
14585
14586 * fs/fat.c (grub_fat_find_dir): Convert the filename little
14587 endian to the host endian.
14588 (grub_fat_utf16_to_utf8): Move function from there...
14589 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 14590 the endianness of the source string anymore.
aa033560 14591 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
14592
94bc45af 145932004-08-24 Marco Gerards <metgerards@student.han.nl>
14594
14595 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
14596 (grub_boot_fini) [GRUB_UTIL]: Likewise.
14597 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
14598 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 14599
94bc45af 14600 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
14601 (grub_hfs_iterate_dir): Make the function static. Add prototypes
14602 for `node_found' and `it_dir'.
14603 (grub_hfs_dir): Add prototype for `dir_hook'.
14604
14605 * fs/minix.c (grub_minix_get_file_block): Add prototype for
14606 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
14607 and `indir32' to silence a gcc warning.
14608
14609 * include/grub/fs.h (grub_hfs_init): New prototype.
14610 (grub_hfs_fini): Likewise.
f19dbdb7 14611
14612
97543f08 146132004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14614
14615 Each disk device has its own id now. This is useful to make use
14616 of multiple disk devices.
f19dbdb7 14617
97543f08 14618 * include/grub/disk.h (grub_disk_dev_id): New enum.
14619 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
14620 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
14621
14622 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
14623 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14624
14625 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
14626 GRUB_DISK_DEVICE_OFDISK_ID as an id.
14627
14628 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
14629 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
14630
14631 * include/grub/disk.h (struct grub_disk_dev): Added a new member
14632 "id" which is used by the cache manager.
14633
14634 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
14635 of just "GRUB".
14636
64372eb4 146372004-08-18 Marco Gerards <metgerards@student.han.nl>
14638
14639 * fs/hfs.c: New file.
14640 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
14641 (grub_emu_SOURCES): Likewise.
14642 (pkgdata_MODULES): Add hfs.mod.
14643 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
14644 (grubof_SOURCES): Likewise.
14645 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
14646
14647 * include/grub/misc.h (grub_strncasecmp): Add prototype.
14648 * kern/misc.c (grub_strncasecmp): Add function.
14649
cc61b58f 146502004-08-14 Marco Gerards <metgerards@student.han.nl>
14651
14652 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
14653 with parentheses.
14654
14655 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
14656 (grub_ext2_dir): In case the directory entry type is unknown, read
14657 it from the inode.
14658
0ef123f6 146592004-08-02 Peter Bruin <pjbruin@dds.nl>
14660
14661 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
14662 grub_load_linux instead of grub_rescue_cmd_linux as second
14663 argument of grub_rescue_register_command.
14664
14665 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
14666
a447c5df 146672004-07-27 Marco Gerards <metgerards@student.han.nl>
14668
14669 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
14670 function.
14671 * commands/boot.c: Remove the check for `GRUB_UTIL'.
14672 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
14673 `loader/powerpc/ieee1275/linux.c',
14674 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
14675 * include/grub/powerpc/ieee1275/ieee1275.h
14676 (grub_ieee1275_release): New prototype.
14677 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
14678 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
14679 normal, boot, linux and linux_normal.
14680 * loader/powerpc/ieee1275/linux.c: New file.
14681 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
14682
5a9e3546 146832004-07-12 Marco Gerards <metgerards@student.han.nl>
14684
14685 * normal/arg.c (grub_arg_parse): Correct error handling after
14686 reallocating the argumentlist (check if `argl' is not null instead
14687 of checking if `args' is not null).
14688 * kern/mm.c (grub_realloc): Return the same pointer when using the
14689 same region, instead of returning the header address.
14690
e15199cb 146912004-07-11 Marco Gerards <metgerards@student.han.nl>
14692
14693 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
14694 one block instead of two when looking for the initial partition.
14695 (grub_partition_probe): Initialize the local variable `p' with 0.
14696 Use base 10 for the grub_strtoul call.
14697 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
14698 need for one local variable.
14699 (grub_strtoul): Don't add the new value to `num', instead of that
14700 just assign it.
14701
020616c2 147022004-07-11 Marco Gerards <metgerards@student.han.nl>
14703
14704 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
14705 (pxeboot_img_SOURCES): New variable.
14706 (pxeboot_img_ASFLAGS): Likewise.
14707 (pxeboot_img_LDFLAGS): Likewise.
14708 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
14709 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
14710 <lode_leroy@hotmail.com>.
14711
6c51eb64 147122004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14713
14714 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
14715 there was no input.
14716
cfb12aff 147172004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14718
14719 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
14720 the history buffer logic.
14721
6eabba74 147222004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
14723
14724 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
14725 (FILETYPE_INO_SYMLINK): New macros.
14726 (grub_ext2_find_file): Check if the node is a directory using the
14727 inode stat information instead of using the filetype in the
14728 dirent. Exclude the first character of an absolute symlink.
14729 (grub_ext2_dir): Mask out the filetype part of the mode member of
14730 the inode.
14731
66e19ef8 147322004-05-24 Marco Gerards <metgerards@student.han.nl>
14733
14734 Add support for UFS version 1 and 2. Add support for the minix
14735 filesystem version 1 and 2, both the variants with 14 and 30 long
14736 filenames.
f19dbdb7 14737
66e19ef8 14738 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
14739 fs/minix.c.
14740 (grub_emu_SOURCES): Likewise.
14741 (pkgdata_MODULES): Add ufs.mod and minix.mod.
14742 (ufs_mod_SOURCES): New variable.
14743 (ufs_mod_CFLAGS): Likewise.
14744 (minix_mod_SOURCES): Likewise.
14745 (minix_mod_CFLAGS): Likewise.
14746 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
14747 fs/minix.c.
14748 (grubof_SOURCES): Likewise.
14749 * fs/ufs.c: New file.
14750 * fs/minix.c: New file.
14751 * include/grub/fs.h (grub_ufs_init): New prototype.
14752 (grub_ufs_fini): Likewise.
14753 (grub_minix_init): Likewise.
14754 (grub_minix_fini): Likewise.
14755 * util/grub-emu.c (main): Initialize and deinitialize UFS and
14756 minix fs.
14757
cc2e748a 147582004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
14759
14760 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
14761 commands/ls.c, commands/terminal.c, commands/boot.c,
14762 commands/cmp.c and commands/cat.c.
14763 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
14764
14765 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
14766 "env.h"
14767
4b13b216 147682004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14769
14770 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
14771 and grub_, respectively. Because the conversion is trivial and
14772 mechanical, I omit the details here. Please refer to the CVS
14773 if you need more information.
14774
6a142551 147752004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
14776
14777 * include/pupa: Renamed to ...
14778 * include/grub: ... this.
14779 * util/i386/pc/pupa-mkimage.c: Renamed to ...
14780 * util/i386/pc/grub-mkimage.c: ... this.
14781 * util/i386/pc/pupa-setup.c: Renamed to ...
14782 * util/i386/pc/grub-setup.c: ... this.
14783 * util/pupa-emu.c: Renamed to ...
14784 * util/grub-emu.c: ... this.
14785
e56cdf21 147862004-03-29 Marco Gerards <metgerards@student.han.nl>
14787
14788 Add support for the newworld apple macintosh (PPC). This has been
14789 tested on the powerbook 2000 only. It only adds support for
14790 generic ieee1275 functions, console and disk support. This should
14791 be easy to port to other architectures with support for Open
14792 Firmware.
f19dbdb7 14793
e56cdf21 14794 * configure.ac: Accept the powerpc as host_cpu. In the case of
14795 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
14796 specific tests are only executed while building for the i386.
14797 Inverse test for crosscompile.
14798 * genmk.rb (Utility): Allow assembler files.
14799 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
14800 * conf/powerpc-ieee1275.rmk: New file.
14801 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
14802 * disk/powerpc/ieee1275/partition.c: Likewise.
14803 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
14804 * include/pupa/powerpc/ieee1275/console.h: Likewise.
14805 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
14806 * include/pupa/powerpc/ieee1275/time.h: Likewise.
14807 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
14808 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
14809 * include/pupa/powerpc/ieee1275/loader.h
14810 * include/pupa/powerpc/setjmp.h: Likewise.
14811 * include/pupa/powerpc/types.h: Likewise.
14812 * kern/powerpc/ieee1275/init.c: Likewise.
14813 * kern/powerpc/ieee1275/openfw.c: Likewise.
14814 * term/powerpc/ieee1275/ofconsole.c: Likewise.
14815
14816 These files were written by Johan Rydberg
14817 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 14818
e56cdf21 14819 * boot/powerpc/ieee1275/cmain.c: New file.
14820 * boot/powerpc/ieee1275/crt0.S: Likewise.
14821 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
14822 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
14823
8c8cc205 148242004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
14825
14826 * Makefile.in: Update copyright.
14827 * genmodsrc.sh: Likewise.
14828 * gensymlist.sh: Likewise.
14829 * term/i386/pc/vga.c: Indent correctly.
14830
14831 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
14832 bugreporting address.
14833 * util/i386/pc/pupa-setup.c (usage): Likewise,
14834 (main): Call pupa_ext2_init and pupa_ext2_fini.
14835
f19dbdb7 14836 * fs/fat.c (log2): Renamed to ...
8c8cc205 14837 (fat_log2): ... this.
14838 All callers changed.
14839 * kern/misc.c (memcpy): Alias to pupa_memmove.
14840 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
14841 lvalue cast.
14842 * util/console.c (pupa_ncurses_fini): Return 0.
14843
14844 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
14845 Move fail label here.
14846 [__GNU__]: Don't warn when using stat.
14847 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
14848 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
14849 long int. Use strtol instead of strtoul.
f19dbdb7 14850
db1771cf 148512004-03-14 Marco Gerards <metgerards@student.han.nl>
14852
14853 * commands/boot.c: New file.
14854 * commands/cat.c: Likewise.
14855 * commands/cmp.c: Likewise.
14856 * commands/ls.c: Likewise.
14857 * commands/terminal.c: Likewise.
14858 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
14859 (pupa_register_command): Changed interface to match the new
14860 argument parser.
14861 (pupa_command_execute): Changed (almost rewritten) so it uses
14862 pupa_split_command. Added support for setting variables using the
14863 syntax `foo=bar'.
14864 (rescue_command): Changed to work with the new argument parser.
14865 (terminal_command): Moved from here to commands/terminal.c.
14866 (set_command): New function.
14867 (unset_command): New function.
14868 (insmod_command): New function.
14869 (rmmod_command): New function.
14870 (lsmod_command): New function.
14871 (pupa_command_init): Don't initialize the command terminal
14872 anymore. Initialize the commands set, unset, insmod, rmmod and
14873 lsmod.
14874 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
14875 (kernel_img_HEADERS): Add arg.h and env.h.
14876 (pupa_mkimage_LDFLAGS): Add kern/env.c.
14877 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
14878 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
14879 normal/arg.c.
14880 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
14881 terminal.mod.
14882 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
14883 (boot_mod_SOURCES): New variable.
14884 (terminal_mod_SOURCES): Likewise.
14885 (ls_mod_SOURCES): Likewise.
14886 (cmp_mod_SOURCES): Likewise.
14887 (cat_mod_SOURCES): Likewise.
14888
14889 * normal/arg.c: New file.
14890 * kern/env.c: Likewise.
14891 * include/pupa/arg.h: Likewise.
14892 * include/pupa/env.h: Likewise.
14893 * font/manager.c (font_command): Changed to match argument parsing
14894 interface changes.
14895 (PUPA_MOD_INIT): Likewise.
14896 * hello/hello.c (pupa_cmd_hello): Likewise.
14897 (PUPA_MOD_INIT): Likewise.
14898 * include/pupa/disk.h: Include <pupa/device.h>.
14899 (pupa_print_partinfo): New prototype.
14900 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
14901 (pupa_dl_get_prefix): Likewise.
14902 * include/pupa/misc.h: Include <pupa/err.h>.
14903 (pupa_isgraph): New prototype.
14904 (pupa_isdigit): Likewise.
14905 (pupa_split_cmdline): Likewise.
14906 * include/pupa/normal.h: Include <pupa/arg.h>.
14907 (pupa_command): Changed the prototype of the member `func' to
14908 match the argument parsing interface. Added member `options'.
14909 (pupa_register_command): Updated to match function.
14910 (pupa_arg_parse): New prototype.
14911 (pupa_hello_init) [PUPA_UTIL]: New prototype.
14912 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
14913 (pupa_ls_init) [PUPA_UTIL]: Likewise.
14914 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
14915 (pupa_cat_init) [PUPA_UTIL]: Likewise.
14916 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
14917 (pupa_boot_init) [PUPA_UTIL]: Likewise.
14918 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
14919 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
14920 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
14921 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
14922 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
14923 * kern/disk.c: Include <pupa/file.h>.
14924 (pupa_print_partinfo): New function.
14925 * kern/dl.c: Include <pupa/env.h>.
14926 (pupa_dl_dir): Variable removed.
14927 (pupa_dl_load): Use the environment variable `prefix' instead of
14928 the variable pupa_dl_dir.
14929 (pupa_dl_set_prefix): Function removed.
14930 (pupa_dl_get_prefix): Likewise.
14931 * kern/i386/pc/init.c: Include <pupa/env.h>.
14932 (pupa_machine_init): Use the environment variable `prefix' instead of
14933 using pupa_dl_set_prefix to set the prefix.
14934 * kern/main.c: Include <pupa/env.h>.
14935 (pupa_set_root_dev): Use the environment variable `prefix' instead of
14936 using pupa_dl_get_prefix to get the prefix.
14937 * kern/misc.c: Include <pupa/env.h>.
14938 (pupa_isdigit): New function.
14939 (pupa_isgraph): Likewise.
14940 (pupa_ftoa): Likewise.
14941 (pupa_vsprintf): Added support for printing values of the type
14942 `double'. Make it possible to format variable output when using
14943 formatting like `%1.2%f'.
14944 (pupa_split_cmdline): New function.
14945 * kern/rescue.c: Include <pupa/env.h>.
14946 (next_word): Removed function.
14947 (pupa_rescue_cmd_prefix): Likewise.
14948 (pupa_rescue_cmd_set): New function.
14949 (pupa_rescue_cmd_unset): New function.
14950 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
14951 split the command line instead of splitting it here. Added
14952 support for setting variables using the syntax `foo=bar'. Don't
14953 initialize the prefix command anymore. Initialized the set and
14954 unset commands.
14955 * normal/cmdline.c: Include <pupa/env.h>.
14956 (pupa_tab_complete): Added prototypes for print_simple_completion,
14957 print_partition_completion, add_completion, iterate_commands,
14958 iterate_dev, iterate_part and iterate_dir. Moved code to print
14959 partition information from here to kern/disk.c.
fe6b695a 14960 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 14961 * normal/main.c: Include <pupa/env.h>.
14962 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
14963 instead of using pupa_dl_get_prefix to get the prefix.
14964 * term/i386/pc/vga.c: Include <pupa/arg.h>.
14965 (check_vga_mem): Cast pointers to `void *' to silence a gcc
14966 warning.
14967 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
14968 (pupa_vga_setcolor): Declare unused variables with `__attribute__
14969 ((unused))' to silence a gcc warning.
14970 (pupa_vga_setcolor): Likewise.
14971 (debug_command): Changed to match argument parsing
14972 interface changes.
14973 * util/pupa-emu.c: Include <pupa/env.h>.
14974 (options): Added 0's for unused fields to silence a gcc warning.
14975 (argp): Likewise.
14976 (main): Use the environment variable `prefix' instead of using
14977 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
14978 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
14979 and terminal.
14980
14981 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
14982 * util/misc.c: Include <malloc.h>.
14983 (pupa_malloc): Rewritten so errors are correctly reported.
14984 (pupa_realloc): Likewise.
14985 (pupa_memalign): Likewise.
14986 (pupa_mm_init_region): Declare unused variables with
14987 `__attribute__ ((unused))' to silence a gcc warning.
14988 * normal/i386/setjmp.S: Remove tab at the end of the file to
14989 silence a gcc warning.
14990 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
14991 variables with `__attribute__ ((unused))' to silence a gcc
14992 warning.
14993 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
14994 local variable i unsigned to silence a gcc warning.
14995
14996 * kern/term.c: Include <pupa/misc.h>.
14997 (pupa_more_lines): New variable.
14998 (pupa_more): Likewise.
14999 (pupa_putcode): When the pager is active pause at the end of every
15000 screen.
15001 (pupa_set_more): New function.
15002 * include/pupa/term.h (pupa_set_more): New prototype.
15003
15004
3b1139cb 150052004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
15006
15007 Now this project is GRUB 2 rather than PUPA. The location of
15008 the CVS repository was moved to GRUB's.
f19dbdb7 15009
3b1139cb 15010 * configure.ac: Use bug-grub as the reporting address.
15011 Use GRUB instead of PUPA.
15012 Change the version number to 1.90.
15013
8367695c 150142004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
15015
15016 * genkernsyms.sh: Updated copyright information.
15017 * genmk.rb: Likewise.
15018 * genmodsrc.sh: Likewise.
15019 * gensymlist.sh: Likewise.
15020 * boot/i386/pc/boot.S: Likewise.
15021 * boot/i386/pc/diskboot.S: Likewise.
15022 * disk/i386/pc/biosdisk.c: Likewise.
15023 * disk/i386/pc/partition.c: Likewise.
15024 * font/manager.c: Likewise.
15025 * fs/ext2.c: Likewise.
15026 * fs/fat.c: Likewise.
15027 * include/pupa/boot.h: Likewise.
15028 * include/pupa/device.h: Likewise.
15029 * include/pupa/disk.h: Likewise.
15030 * include/pupa/dl.h: Likewise.
15031 * include/pupa/elf.h: Likewise.
15032 * include/pupa/err.h: Likewise.
15033 * include/pupa/file.h: Likewise.
15034 * include/pupa/font.h: Likewise.
15035 * include/pupa/fs.h: Likewise.
15036 * include/pupa/kernel.h: Likewise.
15037 * include/pupa/loader.h: Likewise.
15038 * include/pupa/misc.h: Likewise.
15039 * include/pupa/mm.h: Likewise.
15040 * include/pupa/net.h: Likewise.
15041 * include/pupa/normal.h: Likewise.
15042 * include/pupa/rescue.h: Likewise.
15043 * include/pupa/setjmp.h: Likewise.
15044 * include/pupa/symbol.h: Likewise.
15045 * include/pupa/term.h: Likewise.
15046 * include/pupa/types.h: Likewise.
15047 * include/pupa/i386/setjmp.h: Likewise.
15048 * include/pupa/i386/types.h: Likewise.
15049 * include/pupa/i386/pc/biosdisk.h: Likewise.
15050 * include/pupa/i386/pc/boot.h: Likewise.
15051 * include/pupa/i386/pc/console.h: Likewise.
15052 * include/pupa/i386/pc/init.h: Likewise.
15053 * include/pupa/i386/pc/kernel.h: Likewise.
15054 * include/pupa/i386/pc/linux.h: Likewise.
15055 * include/pupa/i386/pc/loader.h: Likewise.
15056 * include/pupa/i386/pc/memory.h: Likewise.
15057 * include/pupa/i386/pc/multiboot.h: Likewise.
15058 * include/pupa/i386/pc/partition.h: Likewise.
15059 * include/pupa/i386/pc/time.h: Likewise.
15060 * include/pupa/i386/pc/vga.h: Likewise.
15061 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
15062 * include/pupa/util/getroot.h: Likewise.
15063 * include/pupa/util/misc.h: Likewise.
15064 * include/pupa/util/resolve.h: Likewise.
15065 * kern/device.c: Likewise.
15066 * kern/disk.c: Likewise.
15067 * kern/dl.c: Likewise.
15068 * kern/err.c: Likewise.
15069 * kern/file.c: Likewise.
15070 * kern/fs.c: Likewise.
15071 * kern/loader.c: Likewise.
15072 * kern/main.c: Likewise.
15073 * kern/misc.c: Likewise.
15074 * kern/mm.c: Likewise.
15075 * kern/rescue.c: Likewise.
15076 * kern/term.c: Likewise.
15077 * kern/i386/dl.c: Likewise.
15078 * kern/i386/pc/init.c: Likewise.
15079 * kern/i386/pc/lzo1x.S: Likewise.
15080 * kern/i386/pc/startup.S: Likewise.
15081 * loader/i386/pc/chainloader.c: Likewise.
15082 * loader/i386/pc/linux.c: Likewise.
15083 * loader/i386/pc/multiboot.c: Likewise.
15084 * normal/cmdline.c: Likewise.
15085 * normal/command.c: Likewise.
15086 * normal/main.c: Likewise.
15087 * normal/menu.c: Likewise.
15088 * normal/i386/setjmp.S: Likewise.
15089 * term/i386/pc/console.c: Likewise.
15090 * term/i386/pc/vga.c: Likewise.
15091 * util/console.c: Likewise.
15092 * util/genmoddep.c: Likewise.
15093 * util/misc.c: Likewise.
15094 * util/pupa-emu.c: Likewise.
15095 * util/resolve.c: Likewise.
15096 * util/unifont2pff.rb: Likewise.
15097 * util/i386/pc/biosdisk.c: Likewise.
15098 * util/i386/pc/getroot.c: Likewise.
15099 * util/i386/pc/pupa-mkimage.c: Likewise.
15100 * util/i386/pc/pupa-setup.c: Likewise.
15101
e6eced71 151022004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
15103
15104 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
15105 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
15106 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
15107 reading and reset it after reading.
15108 (pupa_ext2_close): Return PUPA_ERR_NONE.
15109
15110 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
15111 Correct value.
15112 (struct linux_kernel_header): Add kernel_version and
15113 initrd_addr_max.
15114 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
15115 pupa_file_read succeeds.
15116 (pupa_rescue_cmd_initrd): Implement.
15117
5aded270 151182003-12-03 Marco Gerards <metgerards@student.han.nl>
15119
15120 * fs/ext2.c (pupa_ext2_label): New function.
15121 (pupa_ext2_fs): Added label.
15122 * fs/fat.c (pupa_fat_label): New function.
15123 (pupa_fat_fs): Added label.
15124 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
15125
15126 * kern/misc.c (pupa_strndup): New function.
15127 * include/pupa/misc.h (pupa_strndup): New prototype.
15128
15129 * include/pupa/normal.h: Include <pupa/err.h>.
15130 (pupa_set_history): New prototype.
15131 (pupa_iterate_commands): New prototype.
15132 * normal/cmdline.c: Include <pupa/machine/partition.h>,
15133 <pupa/disk.h>, <pupa/file.h>.
15134 (hist_size): New variable.
15135 (hist_lines): Likewise.
15136 (hist_end): Likewise.
15137 (hist_used): Likewise.
15138 (pupa_set_history): New function.
15139 (pupa_history_get): Likewise.
15140 (pupa_history_add): Likewise.
15141 (pupa_history_replace): Likewise.
15142 (pupa_tab_complete): Likewise.
15143 (pupa_cmdline_run): Added tab completion and history buffer. Tab
15144 completion shows partitionnames while completing partitions, this
15145 feature was suggested by Jeff Bailey.
15146 * normal/command.c (pupa_iterate_commands): New function.
15147 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
15148 (pupa_normal_init): Initialize history buffer.
15149 (PUPA_MOD_INIT): Likewise.
15150 (pupa_normal_fini): Free the history buffer.
15151 (PUPA_MOD_FINI): Likewise.
15152
15153 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
15154 key.
15155
15156 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
15157 * configure.ac [i386]: Check for regparam bug.
15158 (NESTED_FUNC_ATTR) [! i386]: Defined.
15159
1f7315a3 151602003-11-17 Marco Gerards <metgerards@student.han.nl>
15161
15162 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
15163 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
15164 (pupa_emu_SOURCES): New variable.
15165 (pupa_emu_LDFLAGS): Likewise.
15166 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
15167 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
15168 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
15169 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
15170 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
15171 (pupa_jmp_buf): New typedef.
15172 (pupa_setjmp) [PUPA_UTIL]: New macro.
15173 (pupa_longjmp) [PUPA_UTIL]: Likewise.
15174 * include/pupa/term.h (struct pupa_term): New member `refresh'.
15175 (pupa_refresh): New prototype.
15176 * include/pupa/util/getroot.h: New file.
15177 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
15178 it.
15179 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
15180 (pupa_rescue_cmd_cat): Likewise.
15181 (pupa_rescue_cmd_ls): Likewise.
15182 (pupa_rescue_cmd_testload): Likewise.
15183 (pupa_rescue_cmd_lsmod): Likewise.
15184 * normal/cmdline.c (pupa_cmdline_get): Likewise.
15185 * normal/menu.c (run_menu): Likewise.
15186 * kern/term.c (pupa_cls): Likewise.
15187 (pupa_refresh): New function.
15188 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
15189 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
15190 * util/console.c: New file.
f19dbdb7 15191
1f7315a3 15192 * util/i386/pc/getroot.c: New file.
15193 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
15194 (pupa_putchar): New function.
15195 (pupa_refresh): Likewise.
15196 (xgetcwd): Function moved to ...
15197 (strip_extra_slashes): Likewise.
15198 (get_prefix): Likewise.
f19dbdb7 15199 * util/i386/pc/getroot.c: ... here.
1f7315a3 15200 (find_root_device): Function moved and renamed to...
15201 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
15202 Changed all callers.
15203 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
15204 and renamed to...
15205 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
15206 Changed all callers.
15207 * util/misc.c (pupa_memalign): New function.
15208 (pupa_mm_init_region): Likewise.
15209 (pupa_register_exported_symbols): Likewise.
15210 (pupa_putchar): Function removed.
15211 * util/pupa-emu.c: New file.
15212
9a5c1ade 152132003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
15214
15215 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
15216 (_multiboot_mod_SOURCES): New variable.
15217 (_multiboot_mod_CFLAGS): Likewise.
15218 * loader/i386/pc/multiboot.c: New file.
15219 * include/pupa/i386/pc/multiboot.h: Likewise.
15220 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
15221 (pupa_multiboot_real_boot): New function.
15222 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
15223 (pupa_multiboot_real_boot): New prototype.
15224 (pupa_rescue_cmd_multiboot): Likewise
15225 (pupa_rescue_cmd_module): Likewise.
15226
15227 * kern/loader.c (pupa_loader_set): Continue when
15228 pupa_loader_unload_func() fails.
15229 (pupa_loader_unset): New function.
15230 * include/pupa/loader.h (pupa_loader_unset): New prototype.
15231
15232 * kern/misc.c (pupa_stpcpy): New function.
15233 * include/pupa/misc.h (pupa_stpcpy): New prototype.
15234
8e72a9c0 152352003-11-12 Marco Gerards <metgerards@student.han.nl>
15236
15237 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
15238 for available extensions.
15239
15240 * include/pupa/i386/pc/time.h: New file.
15241 * kern/disk.c: Include <pupa/machine/time.h>.
15242 (PUPA_CACHE_TIMEOUT): New macro.
15243 (pupa_last_time): New variable.
15244 (pupa_disk_open): Flush the cache when there was a timeout.
15245 (pupa_disk_close): Reset the timer.
15246 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
15247 pupa_currticks.
15248 * util/misc.c: Include <sys/times.h>
15249 (pupa_get_rtc): New function.
15250
c4adbd32 152512003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
15252
15253 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
15254 as blocks.
15255 (pupa_ext2_get_file_block): Use blocks member.
15256
15257 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
15258 first block. Return -1 instead of pupa_errno on error.
15259
bfd30f06 152602003-10-27 Marco Gerards <metgerards@student.han.nl>
15261
15262 * README: In the pupa-mkimage example use _chain instead of chain
15263 and ext2 instead of fat.
15264 * TODO: Replace ext2fs with jfs as an example. Add an item for
15265 adding journal playback for ext2fs.
15266 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
15267 (pkgdata_MODULES): Added ext2.mod.
15268 (ext2_mod_SOURCES): New variable.
15269 (ext2_mod_CFLAGS): Likewise.
15270 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
15271 * include/pupa/misc.h (pupa_strncpy): New prototype.
15272 (pupa_strcat): Likewise.
15273 (pupa_strncmp): Likewise.
15274 * kern/misc.c (pupa_strcat): Enable function.
15275 (pupa_strncpy): New function.
15276 (pupa_strncmp): Likewise.
15277 * fs/ext2.c: New file.
f19dbdb7 15278
bfd30f06 15279 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
15280 when the read failed before retrying.
15281 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
15282 (_FILE_OFFSET_BITS): Likewise.
15283 * configure.ac: Added AC_SYS_LARGEFILE.
15284
98d15063 152852003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15286
15287 * genmk.rb (PModule#rule): Make sure to get only symbol names
15288 from the output of nm.
15289 Reported by Robert Millan <zeratul2@wanadoo.es>.
15290
18d9c7cd 152912003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
15292
15293 I forgot to check in these changes for a long time. This adds
15294 incomplete support for VGA console, and this is still very
15295 buggy. Also, a lot of consideration is required for I18N,
15296 UNICODE, and VGA font issues. Therefore, assume that this is
15297 such that "better than nothing".
f19dbdb7 15298
18d9c7cd 15299 * font/manager.c: New file.
15300 * include/pupa/font.h: Likewise.
15301 * include/pupa/i386/pc/vga.h: Likewise.
15302 * term/i386/pc/vga.c: Likewise.
15303 * util/unifont2pff.rb: Likewise.
15304
15305 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
15306 (pkgdata_MODULES): Added vga.mod and font.mod.
15307 (vga_mod_SOURCES): New variables.
15308 (vga_mod_CFLAGS): Likewise.
15309 (font_mod_SOURCES): Likewise.
15310 (font_mod_CFLAGS): Likewise.
15311
15312 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
15313
15314 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 15315 (struct pupa_term): Added init and fini.
18d9c7cd 15316 Changed the argument of putchar to pupa_uint32_t.
15317
15318 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
15319 (pupa_console_real_putchar): New prototype.
15320 (pupa_console_putchar): Removed.
15321 (pupa_console_checkkey): Exported.
15322 (pupa_console_getkey): Likewise.
15323
15324 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
15325 characters.
15326
15327 * kern/term.c (pupa_term_set_current): Rewritten.
15328 (pupa_putchar): Likewise.
15329 (pupa_putcode): New function.
15330
15331 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
15332 (pupa_console_real_putchar): ... this.
15333 (pupa_vga_set_mode): New function.
15334 (pupa_vga_get_font): Likewise.
15335
15336 * normal/command.c: Include pupa/term.h.
15337 (terminal_command): New function.
15338 (pupa_command_init): Register the command "terminal".
15339
15340 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
15341 (DISP_UP): Likewise.
15342 (DISP_RIGHT): Likewise.
15343 (DISP_DOWN): Likewise.
15344 (DISP_HLINE): Likewise.
15345 (DISP_VLINE): Likewise.
15346 (DISP_UL): Likewise.
15347 (DISP_UR): Likewise.
15348 (DISP_LL): Likewise.
15349 (DISP_LR): Likewise.
15350
15351 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 15352
977329f5 153532003-02-08 NIIBE Yutaka <gniibe@m17n.org>
15354
15355 * util/resolve.c (pupa_util_resolve_dependencies): BUG
15356 FIX. Reverse the path_list.
15357
15358 * include/pupa/normal.h: Export pupa_register_command and
15359 pupa_unregister_command.
15360
15361 * hello/hello.c (pupa_cmd_hello): New module.
15362 * conf/i386-pc.rmk: Added hello.mod.
15363
1f5ab428 153642003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
15365
15366 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 15367
1f5ab428 15368 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
15369 (compress_kernel): New variable.
15370 (generate_image): Heavily modified to support compressing a
15371 large part of the core image.
15372
15373 * util/misc.c (pupa_util_read_image): Fix a file descriptor
15374 leak.
15375 (pupa_util_load_image): New function.
15376
15377 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
15378 (pupa_compressed_size): New variable.
15379 (codestart): Enable Gate A20 here.
15380 Decompress the compressed part of the core image.
15381 Rearrange the code to put functions and variables which are
15382 required for initialization in the non-compressed part.
15383 Include lzo1x.S.
15384
15385 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
15386 here.
15387
15388 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
15389
f19dbdb7 15390 * include/pupa/i386/pc/kernel.h
1f5ab428 15391 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
15392 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
15393 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15394 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15395 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
15396
15397 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
15398
15399 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
15400 (Utility#rule): Likewise.
15401
15402 * configure.ac: Check if LZO is available.
15403
ce5bf700 154042003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
15405
15406 * include/pupa/normal.h: New file.
15407 * include/pupa/setjmp.h: Likewise.
15408 * include/pupa/i386/setjmp.h: Likewise.
15409 * normal/cmdline.c: Likewise.
15410 * normal/command.c: Likewise.
15411 * normal/main.c: Likewise.
15412 * normal/menu.c: Likewise.
15413 * normal/i386/setjmp.S: Likewise.
f19dbdb7 15414
ce5bf700 15415 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
15416 (pupa_rescue_cmd_initrd): Likewise.
15417
15418 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
15419 Likewise.
15420
15421 * kern/i386/pc/startup.S (translation_table): New variable.
15422 (translate_keycode): New function.
15423 (pupa_console_getkey): Call translate_keycode.
15424
15425 * kern/rescue.c (attempt_normal_mode): New function.
15426 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
15427 it failed, print a message.
15428
15429 * kern/mm.c (pupa_real_malloc): Print more information when a
15430 free magic is broken.
15431 (pupa_free): If the first free header is not free actually, set
15432 it to P.
15433
15434 * kern/main.c (pupa_load_normal_mode): Just load the module
15435 "normal".
15436 (pupa_main): Don't print the message
15437 "Entering into rescue mode..." here.
15438
15439 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
15440 Declared.
15441 (pupa_rescue_cmd_initrd): Likewise.
15442 (pupa_rescue_cmd_initrd): Likewise.
15443
15444 * include/pupa/symbol.h (FUNCTION): Specify the type.
15445 (VARIABLE): Likewise.
15446
15447 * include/pupa/err.h (pupa_err_t): Added
15448 PUPA_ERR_UNKNOWN_COMMAND.
15449
15450 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
15451 (pupa_dl_get_prefix): Likewise.
15452
15453 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
15454 Added _chain.mod and _linux.mod instead of chain.mod and
15455 linux.mod.
15456 (chain_mod_SOURCES): Renamed to ...
15457 (_chain_mod_SOURCES): ... this.
15458 (chain_mod_CFLAGS): Renamed to ...
15459 (_chain_mod_CFLAGS): ... this.
15460 (linux_mod_SOURCES): Renamed to ...
15461 (_linux_mod_SOURCES): ... this.
15462 (linux_mod_CFLAGS): Renamed to ...
15463 (_linux_mod_CFLAGS): ... this.
15464 (normal_mod_SOURCES): New variable.
15465 (normal_mod_CFLAGS): Likewise.
15466 (normal_mod_ASFLAGS): Likewise.
15467
154682003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
15469
15470 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
15471 possible.
15472
fe6b695a 15473 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 15474 recursively.
15475 (pupa_dl_unref): Unrefer depending modules recursively.
15476 Don't call pupa_dl_unload implicitly, because PUPA can crash if
15477 a module is unloaded before one depending on that module is
15478 unloaded.
15479 (pupa_dl_unload): Unload depending modules explicitly,
15480 if possible.
15481
c04da074 154822003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
15483
15484 * include/pupa/i386/pc/linux.h: New file.
15485 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 15486
c04da074 15487 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
15488 Removed.
15489 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
15490 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
15491 of PUPA_CHAINLOADER_BOOT_SECTOR.
15492
15493 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
15494 (pupa_linux_prot_size): New variable.
15495 (pupa_linux_tmp_addr): Likewise.
15496 (pupa_linux_real_addr): Likewise.
15497 (pupa_linux_boot_zimage): New function.
15498 (pupa_linux_boot_bzimage): Likewise.
15499
15500 * kern/i386/pc/init.c (struct mem_region): New structure.
15501 (MAX_REGIONS): New macro.
15502 (mem_regions): New variable.
15503 (num_regions): Likewise.
15504 (pupa_os_area_addr): Likewise.
15505 (pupa_os_area_size): Likewise.
15506 (pupa_lower_mem): Likewise.
15507 (pupa_upper_mem): Likewise.
15508 (add_mem_region): New function.
15509 (compact_mem_regions): Likewise.
15510 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
15511 the size of the conventional memory and that of so-called upper
15512 memory (before the first memory hole).
15513 Instead of adding each found region to free memory, use
15514 add_mem_region and add them after removing overlaps.
15515 Also, add only 1/4 of the upper memory to free memory. The rest
15516 is used for loading OS images. Maybe this is ad hoc, but this
15517 makes it much easier to relocate OS images when booting.
15518
15519 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
15520 (pupa_enter_rescue_mode): Don't register initrd and module.
15521
15522 * kern/mm.c: Include pupa/dl.h.
15523
15524 * kern/main.c: Include pupa/file.h and pupa/device.h.
15525
15526 * kern/loader.c (pupa_loader_load_module_func): Removed.
15527 (pupa_loader_load_module): Likewise.
15528
15529 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
15530 ``.o''.
15531
15532 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
15533 (pupa_linux_tmp_addr): Likewise.
15534 (pupa_linux_real_addr): Likewise.
15535 (pupa_linux_boot_zimage): Likewise.
15536 (pupa_linux_boot_bzimage): Likewise.
15537
15538 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
15539 (pupa_upper_mem): Likewise.
15540 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
15541 module is too dangerous.
15542
15543 * include/pupa/loader.h (pupa_os_area_addr): Declared.
15544 (pupa_os_area_size): Likewise.
15545 (pupa_loader_set): Remove the first argument. Loader doesn't
15546 manage modules or initrd any longer.
15547 (pupa_loader_load_module): Removed.
15548
15549 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
15550 (linux_mod_SOURCES): New variable.
15551 (linux_mod_CFLAGS): Likewise.
15552
a13f9237 155532003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
15554
15555 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
15556 the length of a blocklist correctly.
15557
15558 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
15559 Use ioctl only if the OS file is a block device.
15560 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
15561 not very useful for normal files.
15562
15563 * kern/main.c (pupa_set_root_dev): New function.
15564 (pupa_load_normal_mode): Likewise.
15565 (pupa_main): Call those above.
15566
15567 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
15568 pupa_uint16_t.
15569
15570 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
15571
a5ffe966 155722003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
15573
15574 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
15575 (setup): Configure the installed partition information and the
15576 dl prefix.
15577
15578 * loader/i386/pc/chainloader.c (my_mod): New variable.
15579 (pupa_chainloader_unload): New function.
15580 (pupa_rescue_cmd_chainloader): Refer itself.
15581 (PUPA_MOD_INIT): Save its own module in MY_MOD.
15582
15583 * kern/i386/pc/startup.S (install_partition): Removed.
15584 (version_string): Likewise.
15585 (config_file): Likewise.
15586 (pupa_install_dos_part): New variable.
15587 (pupa_install_bsd_part): Likewise.
15588 (pupa_prefix): Likewise.
15589 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
15590
15591 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
15592 and pupa/misc.h.
15593 (make_install_device): New function.
15594 (pupa_machine_init): Set the dl prefix.
15595
15596 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
15597 (buf): Renamed to ...
15598 (linebuf): ... this.
15599 (pupa_rescue_cmd_prefix): New function.
15600 (pupa_rescue_cmd_insmod): Likewise.
15601 (pupa_rescue_cmd_rmmod): Likewise.
15602 (pupa_rescue_cmd_lsmod): Likewise.
15603 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
15604 rmmod and lsmod.
15605
15606 * kern/mm.c (pupa_memalign): If failed even after invalidating
15607 disk caches, unload unneeded modules and retry.
15608
15609 * kern/misc.c (pupa_memmove): New function.
15610 (pupa_memcpy): Removed.
15611 (pupa_strcpy): New function.
15612 (pupa_itoa): Made static.
15613
15614 * kern/dl.c (pupa_dl_iterate): New function.
15615 (pupa_dl_ref): Likewise.
15616 (pupa_dl_unref): Likewise.
15617 (pupa_dl_unload): Return if succeeded or not.
15618 (pupa_dl_unload_unneeded): New function.
15619 (pupa_dl_unload_all): Likewise.
15620 (pupa_dl_init): Renamed to ...
15621 (pupa_dl_set_prefix): ... this.
15622 (pupa_dl_get_prefix): New function.
15623
15624 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
15625 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
15626 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
15627 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
15628 (pupa_install_dos_part): Declared.
15629 (pupa_install_bsd_part): Likewise.
15630 (pupa_prefix): Likewise.
15631 (pupa_boot_drive): Likewise.
15632
15633 * include/pupa/types.h: Fix a typo.
15634
15635 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
15636 pupa_memmove.
15637 (pupa_memmove): Declared.
15638 (pupa_strcpy): Likewise.
15639
15640 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
15641 pupa_mod_init takes one argument, its own module.
15642 (pupa_dl_unload_unneeded): Declared.
15643 (pupa_dl_unload_all): Likewise.
15644 (pupa_dl_ref): Likewise.
15645 (pupa_dl_unref): Likewise.
15646 (pupa_dl_iterate): Likewise.
15647 (pupa_dl_init): Renamed to ...
15648 (pupa_dl_set_prefix): ... this.
15649 (pupa_dl_get_prefix): Declared.
15650
15651 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 15652 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 15653 unloaded.
15654 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
15655 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
15656
15657 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
15658 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
15659
012d7999 156602003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15661
15662 * util/i386/pc/pupa-setup.c (setup): Define the internal
15663 function find_first_partition_start at the top level, because GCC
15664 3.0.x cannot compile internal functions in deeper scopes
15665 correctly.
15666 (find_root_device): Use lstat instead of stat.
15667 Don't follow symbolic links.
15668 Fix the path-constructing code.
15669
15670 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
15671 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
15672 by a BLKGETSIZE ioctl first, because block devices don't fill
15673 the member st_mode of the structure stat on Linux.
15674 [__linux__] (linux_find_partition): Use a temporary buffer
15675 REAL_DEV for the working space. Copy it to DEV before returning.
15676 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
15677 buffer cache consistent.
15678 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
15679 strncmp. The previous value was merely wrong.
15680 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
15681
15682 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
15683 FAT size is 12. The previous value was merely wrong.
15684
15685 * kern/main.c (pupa_main): Don't split the starting message from
15686 newlines.
15687
15688 * kern/term.c (pupa_putchar): Put CR after LF instead of before
15689 LF, because BIOS goes crazy about character attributes in this
15690 case.
15691
1cc73a62 156922003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
15693
15694 * include/i386/pc/util/biosdisk.h: New file.
15695 * util/i386/pc/biosdisk.c: Likewise.
15696 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 15697
1cc73a62 15698 * Makefile.in (INCLUDE_DISTFILES): Added
15699 include/pupa/i386/pc/util/biosdisk.h.
15700 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
15701 directory util/i386/pc.
15702 (install-local): Added a rule for sbin_UTILITIES.
15703 (uninstall): Likewise.
15704
15705 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
15706
15707 * util/misc.c (xrealloc): New function.
15708 (pupa_malloc): Likewise.
15709 (pupa_free): Likewise.
15710 (pupa_realloc): Likewise.
15711 (pupa_stop): Likewise.
15712 (pupa_putchar): Likewise.
15713
15714 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
15715
15716 * include/pupa/util/misc.h (xrealloc): Declared.
15717
15718 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
15719 macro.
15720 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
15721 (PUPA_BOOT_MACHINE_BPB_END): ... this.
15722
15723 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
15724 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15725
15726 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
15727 way should be implemented.
15728 [PUPA_UTIL] (pupa_fat_fini): Likewise.
15729
15730 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
15731 the size of NAME for safety.
15732 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
15733 0x88.
15734
15735 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
15736 (pupa_setup_SOURCES): Likewise.
15737
15738 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
15739
08b70fe8 157402002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15741
15742 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
15743 bunch of pushl's from pusha, because this destroys the return
15744 value.
15745
62ddcc8f 157462002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
15747
15748 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
15749 This means that any missing prototypes could be fatal. Also, you
15750 must take care when writing assembly code. See the comments at
15751 the beginning of startup.S, for more details.
f19dbdb7 15752
62ddcc8f 15753 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
15754 compilation mechanism.
15755 (pupa_chainloader_real_boot): Likewise.
15756 (pupa_biosdisk_rw_int13_extensions): Likewise.
15757 (pupa_biosdisk_rw_standard): Likewise.
15758 (pupa_biosdisk_check_int13_extensions): Likewise.
15759 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
15760 (pupa_biosdisk_get_diskinfo_standard): Likewise.
15761 (pupa_get_memsize): Likewise.
15762 (pupa_get_mmap_entry): Likewise.
15763 (pupa_console_putchar): Likewise.
15764 (pupa_console_setcursor): Likewise.
15765 (pupa_getrtsecs): Use pushl instead of push.
15766
15767 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
15768 memory instead of the stack for a mmap entry, because some
15769 BIOSes may ignore the maximum size and overflow.
15770
15771 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
15772
15773 * genmk.rb (PModule#rule): Compile automatically generated
15774 sources with module-specific CFLAGS as well as other sources.
15775
9962ed99 157762002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15777
15778 * configure.ac: Check ld.
15779 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
15780 respectively, before checking endianness and sizes.
15781
15782 * Makefile.in (LD): New variable.
f19dbdb7 15783
abdfc3c5 157842002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15785
15786 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
15787
6a161fa9 157882002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
15789
15790 * Changelog: New file.
15791