]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-08-05 Bean <bean123ch@gmail.com>
[grub2.git] / ChangeLog
CommitLineData
9e7007b3 12008-08-05 Bean <bean123ch@gmail.com>
2
3 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
4
5 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
6 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
7 (pxe_mod_SOURCES): New macro.
8 (pxe_mod_CFLAGS): Likewise.
9 (pxe_mod_LDFLAGS): Likewise.
10 (pxecmd_mod_SOURCES): Likewise.
11 (pxecmd_mod_CFLAGS): Likewise.
12 (pxecmd_mod_LDFLAGS): Likewise.
13
14 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
15 (grub_pxe_call): Likewise.
16
17 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
18
19 * commands/i386/pc/pxecmd.c: New file.
20
21 * disk/i386/pc/pxe.c: Likewise.
22
23 * include/grub/i386/pc/pxe.h: Likewise.
24
6977d49f 252008-08-05 Bean <bean123ch@gmail.com>
26
27 * util/console.c (grub_console_cur_color): New variable.
28 (grub_console_standard_color): Likewise.
29 (grub_console_normal_color): Likewise.
30 (grub_console_highlight_color): Likewise.
31 (color_map): Likewise.
32 (use_color): Likewise.
33 (NUM_COLORS): New macro.
34 (grub_ncurses_setcolorstate): Handle color properly.
35 (grub_ncurses_setcolor): Don't change color here, just remember the
36 settings, color will be set in grub_ncurses_setcolorstate.
37 (grub_ncurses_getcolor): New function.
38 (grub_ncurses_init): Initialize color pairs.
39 (grub_ncurses_term): New member grub_ncurses_getcolor.
40
9c2ff3ee 412008-08-05 Colin D Bennett <colin@gibibit.com>
42
43 High resolution timer support. Implemented for x86 CPUs using TSC.
44 Extracted generic grub_millisleep() so it's linked in only as needed.
45 This requires a Pentium compatible CPU; if the RDTSC instruction is
46 not supported, then it falls back on the generic grub_get_time_ms()
47 implementation that uses the machine's RTC.
48
49 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
50 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
51 `kern/generic/millisleep.c'.
52
53 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
54 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
55
56 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
57 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
58
59 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
60
61 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
62 `kern/generic/millisleep.c'.
63
64 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
65
66 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
67
68 * kern/generic/rtc_get_time_ms.c: New file.
69
70 * kern/generic/millisleep.c: New file.
71
72 * kern/misc.c: Don't include
73 <kern/time.h> anymore.
74 (grub_millisleep_generic): Removed.
75
76 * commands/sleep.c (grub_interruptible_millisleep): Uses
77 grub_get_time_ms() instead of grub_get_rtc().
78
79 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
80 function.
81 (grub_cpu_is_cpuid_supported): New inline function.
82 (grub_cpu_is_tsc_supported): New inline function.
83 (grub_tsc_init): New function prototype.
84 (grub_tsc_get_time_ms): New function prototype.
85
86 * kern/i386/tsc.c (grub_get_time_ms): New file.
87
88 * include/grub/time.h: Include <grub/types.h.
89 (grub_millisleep_generic): Removed.
90 (grub_get_time_ms): New prototype.
91 (grub_install_get_time_ms): New prototype.
92 (grub_rtc_get_time_ms): New prototype.
93
94 * kern/time.c (grub_get_time_ms): New function.
95 (grub_install_get_time_ms): New function.
96
97 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
98 <grub/time.h> anymore.
99 (grub_millisleep): Removed.
100 (grub_machine_init): Call grub_tsc_init.
101
102 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
103 get_time_ms() implementation.
104
105 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
106 (ieee1275_get_time_ms): New function.
107 (grub_machine_init): Install get_time_ms() implementation.
108
109 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
110 (grub_machine_init): Call grub_tsc_init().
111 (grub_millisleep): Removed.
bf06a93f 112
9c2ff3ee 113 * kern/ieee1275/init.c (grub_millisleep): Removed.
114 (grub_machine_init): Install ieee1275_get_time_ms()
115 implementation.
116 (ieee1275_get_time_ms): New function.
117 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
118 real work.
119
9ec92aaf 1202008-08-05 Marco Gerards <marco@gnu.org>
121
122 * disk/ata.c: Include <grub/pci.h>.
123 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
124 (grub_ata_initialize): Rewritten.
125 (grub_ata_device_initialize): New function.
126
8d23f507 1272008-08-04 Pavel Roskin <proski@gnu.org>
128
129 * kern/main.c: Include grub/mm.h.
130
5e15ee3d 1312008-08-04 Robert Millan <rmh@aybabtu.com>
132
133 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
134 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
135 corruption problem).
136
a9053f8f 1372008-08-04 Robert Millan <rmh@aybabtu.com>
138
139 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
140 warnings introduced in my last commit.
141
dd19c7d7 1422008-08-03 Robert Millan <rmh@aybabtu.com>
143
144 Make PCI available on all i386 architectures.
145
146 * include/grub/i386/pc/pci.h: Move from here ...
147 * include/grub/i386/pci.h: ... to here.
148
149 * include/grub/i386/pc/pci.h: Remove.
150 * include/grub/i386/efi/pci.h: Remove.
151 * include/grub/x86_64/efi/pci.h: Remove.
152
153 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
154 `<grub/cpu/pci.h>'.
155
156 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
157 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
158 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
159
160 * conf/i386-ieee1275.rmk: Likewise.
161
e14a6184 1622008-08-03 Robert Millan <rmh@aybabtu.com>
163
164 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
165 (grub_console_setcursor): Make it possible to set cursor off.
166
52768e37 1672008-08-03 Robert Millan <rmh@aybabtu.com>
168
169 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
170 of modules instead of assuming which platform provides what.
171 * util/update-grub.in: Likewise.
172
2d52f57f 1732008-08-03 Robert Millan <rmh@aybabtu.com>
174
175 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
176 instead of `grub_install_dos_part' to determine whether a drive needs
177 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 178 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 179
2a5cd121 1802008-08-02 Robert Millan <rmh@aybabtu.com>
181
182 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
183
93808428 1842008-08-02 Robert Millan <rmh@aybabtu.com>
185
186 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
187 of informational grub_dprintf() calls.
188
3bd0a12a 1892008-08-02 Robert Millan <rmh@aybabtu.com>
190
191 * disk/memdisk.c (memdisk_size): Don't initialize.
192 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
193
194 * include/grub/i386/pc/kernel.h
195 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
196 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
197 (grub_memdisk_image_size, grub_arch_memdisk_addr)
198 (grub_arch_memdisk_size): Remove.
199
200 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
201 field (was only used to transfer a constant). Add `type' field to
202 support multiple module types.
203 (grub_module_iterate): New function.
204
205 * kern/device.c (grub_device_open): Do not hide error messages
206 when grub_disk_open() fails. Use grub_print_error() instead.
207
208 * kern/i386/pc/init.c (grub_arch_modules_addr)
209 (grub_arch_memdisk_size): Remove functions.
210 (grub_arch_modules_addr): Return the module address in high memory
211 (now that it isn't copied anymore).
212
213 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
214 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
215 decompression routine (grub_total_module_size already includes that
216 now). Don't copy modules back to low memory.
217
218 * kern/main.c: Include `<grub/mm.h>'.
219 (grub_load_modules): Split out (and use) ...
220 (grub_module_iterate): ... this function, which iterates through
221 module objects and runs a hook.
222 Comment out grub_mm_init_region() call, as it would cause non-ELF
223 modules to be overwritten.
224
225 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
226 the memdisk image in its own region, make it part of the module list.
227 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
228 (main): Parse --memdisk|-m option, and pass user-provided path as
229 parameter to generate_image().
230 (add_segments): Pass `memdisk_path' down to load_modules().
231 (load_modules): Embed memdisk image in module section when requested.
232 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
233 `header.type' instead of `header.offset'.
234
235 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
236 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
237 (memdisk_mod_LDFLAGS): New variables.
238 * conf/i386-coreboot.rmk: Likewise.
239 * conf/i386-ieee1275.rmk: Likewise.
240
a927cc73 2412008-08-02 Robert Millan <rmh@aybabtu.com>
242
243 * loader/i386/pc/multiboot.c (playground, forward_relocator)
244 (backward_relocator): New variables. Used to allocate and relocate
245 the payload, respectively.
246 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 247 address, install the appropriate relocator code in each bound of
a927cc73 248 the payload, and set the entry point such that
249 grub_multiboot_real_boot() will jump to one of them.
250
251 * kern/i386/loader.S (grub_multiboot_payload_size)
252 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
253 (grub_multiboot_payload_entry_offset): New variables.
254 (grub_multiboot_real_boot): Set cpu context to what the relocator
255 expects, and jump to the relocator instead of the payload.
256
257 * include/grub/i386/loader.h (grub_multiboot_payload_size)
258 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
259 (grub_multiboot_payload_entry_offset): Export.
260
b15d8a0c 2612008-08-01 Bean <bean123ch@gmail.com>
262
263 * normal/menu_entry.c (editor_getline): Don't return the original
264 string as result, as it will be released by lexer once it has done
265 using it.
266
cdfb3d22 2672008-08-01 Robert Millan <rmh@aybabtu.com>
268
269 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
270 within menuentries, not before them.
271 util/grub.d/10_hurd.in: Likewise.
272
9175e93d 2732008-08-01 Bean <bean123ch@gmail.com>
274
275 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
276 (bufio_mod_SOURCES): New macro.
277 (bufio_mod_CFLAGS): Likewise.
278 (bufio_mod_LDFLAGS): Likewise.
279
280 * include/grub/bufio.h: New file.
281
282 * io/bufio.c: Likewise.
283
284 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
285 (grub_video_reader_png): Use grub_buffile_open to open file.
286
287 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
288 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
289
290 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
291 (grub_video_reader_tga): Use grub_buffile_open to open file.
292
293 * font/manager.c: Include <grub/bufio.h>.
294 (add_font): Use grub_buffile_open to open file.
295
3d8383e7 2962008-07-31 Robert Millan <rmh@aybabtu.com>
297
298 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
299 ELF segments, use a macro for arbitrarily accessing any of them instead
300 of preparing a pointer that allows access to one at a time.
301 (grub_multiboot_load_elf64): Likewise.
302
16e641b6 3032008-07-31 Bean <bean123ch@gmail.com>
304
305 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
306 GRUB_KERNEL_MACHINE_DATA_END.
307
59198b72 3082008-07-30 Robert Millan <rmh@aybabtu.com>
309
310 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
311 Increase from 0x50 to 0x60.
312 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
313 use UUIDs to identify the root drive for them. If that's not
314 possible, abort.
315 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
316 check, for cross-disk installs.
317
ae88bca3 3182008-07-30 Robert Millan <rmh@aybabtu.com>
319
320 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
321 is non-empty, use it to set the `prefix' environment variable instead
322 of the usual approach.
323 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
324 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
325 environment variable instead of dummy make_install_device().
326
327 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
328 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 329 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 330
331 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
332 New variable reference.
333 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
334 New macro. Defines offset of `grub_prefix' within startup.S (relative
335 to `start').
336 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
337 section within startup.S (relative to `start').
338 * include/grub/i386/coreboot/kernel.h: Likewise.
339
340 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
341 Overwrite grub_prefix with its contents, at the beginning of the
342 first segment.
343 (main): Understand -p|--prefix.
344
14f41dd1 3452008-07-30 Robert Millan <rmh@aybabtu.com>
346
347 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
348
4ca049a3 3492008-07-30 Robert Millan <rmh@aybabtu.com>
350
351 * term/i386/pc/vga_text.c (grub_console_cls): Use
352 grub_console_gotoxy() to go back to beginning of the screen.
353 Found by Patrick Georgi <patrick.georgi@coresystems.de>
354
2921d337 3552008-07-29 Christian Franke <franke@computer.org>
356
357 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
358 Add conversion of emulated mount points on Cygwin.
359
b609876d 3602008-07-29 Christian Franke <franke@computer.org>
361
362 * util/update-grub.in: Add a check for admin
363 group on Cygwin.
364 Remove old `grub.cfg.new' before creation.
365 Add `-f' to `mv' to handle the different filesystem
366 semantics of Windows.
367
e93e4679 3682008-07-29 Bean <bean123ch@gmail.com>
369
370 * normal/main.c (get_line): Fix buffer overflow bug.
371
41694fd0 3722008-07-28 Robert Millan <rmh@aybabtu.com>
373
374 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
375 (struct grub_apple_header): New struct. Describes the layout of
376 the partmap header.
377 (apple_partition_map_iterate): Check the header magic as well as the
378 partition magic (which was already being checked).
379
cfd0b4e6 3802008-07-28 Pavel Roskin <proski@gnu.org>
381
382 * genmk.rb: Add a warning to the beginning of the output that
383 it's a generated file and should not be edited.
384
93cce016 3852008-07-28 Robert Millan <rmh@aybabtu.com>
386
387 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
388 with the same number are found, just use issue a warning with
389 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 390
cd1df915 3912008-07-27 Robert Millan <rmh@aybabtu.com>
392
393 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
394 information.
395
b70a8427 3962008-07-27 Bean <bean123ch@gmail.com>
397
398 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
399 (grub_fat_find_dir): Ignore case when comparing filename.
400
8f5e379f 4012008-07-27 Bean <bean123ch@gmail.com>
402
403 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
404 smallino, as it's more descriptive, and i8count can be confused with
405 the other field count.
406 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
407 inode type.
408
a85cd5a0 4092008-07-27 Bean <bean123ch@gmail.com>
410
411 * commands/crc.c: New file.
412
413 * lib/crc.c: Likewise.
414
415 * include/grub/lib/crc.h: Likewise.
416
417 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
418
419 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
420 (hexdump): Move this function to ...
421
422 * lib/hexdump.c: ... here.
423
424 * include/grub/hexdump.h: Renamed to ...
425
426 * include/grub/lib/hexdump.h: ... this.
427
428 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
429
430 * util/grub-editenv.c: Likewise.
431
432 * include/envblk.h: Renamed to ...
433
434 * include/lib/envblk.h: ... this.
435
436 * util/envblk.c: Renamed to ...
437
438 * lib/envblk.c: ... this.
439
440 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
441 lib/hexdump.c.
442 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
443 (pkglib_MODULES): Add crc.mod.
444 (hexdump_mod_SOURCES): Add lib/hexdump.c.
445 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
446 (crc_mod_SOURCES): New macro.
447 (crc_mod_CFLAGS): Likewise.
448 (crc_mod_LDFLAGS): Likewise.
449
450 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
451
452 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
453
454 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
455
456 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
457
458 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
459
c298def0 4602008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 461
462 * commands/help.c: Include <grub/term.h>.
463 (TERM_WIDTH): Removed. Updated all users.
464
cc349fb3 4652008-07-27 Pavel Roskin <proski@gnu.org>
466
467 * util/getroot.c (find_root_device): Rephrase a comment to avoid
468 spurious warnings about a comment within a comment.
469
9051607e 4702008-07-25 Robert Millan <rmh@aybabtu.com>
471
472 * util/getroot.c (find_root_device): Skip devices that match
473 /dev/dm-[0-9]. This lets the real device be found for any type of
474 abstraction (LVM, EVMS, RAID..).
475 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
476 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
477 device is found first, find_root_device() will now skip it.
478
01453bfc 4792008-07-24 Pavel Roskin <proski@gnu.org>
480
481 * include/grub/types.h: Use __builtin_bswap32() and
482 __builtin_bswap64() with gcc 4.3 and newer.
483
6af9849f 4842008-07-24 Christian Franke <franke@computer.org>
485
3a0fa256 486 * util/i386/pc/grub-install.in: If `--debug' is specified,
487 pass `--verbose' to grub-setup.
488 Abort script if make_system_path_relative_to_its_root() fails.
489
7810e747 4902008-07-24 Bean <bean123ch@gmail.com>
491
492 * configure.ac: Fixed a bug caused by the previous cygwin patch,
493 variable `target_platform' should be `platform'.
494
42290e17 4952008-07-24 Bean <bean123ch@gmail.com>
496
51cc5193 497 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 498 (grub_png_init_fixed_block): New function.
499 (grub_png_decode_image_data): Handle fixed huffman code compression.
500
2a8a80e4 5012008-07-24 Bean <bean123ch@gmail.com>
502
503 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
504 (grub_pe2elf_SOURCES): New macro.
505 (CLEANFILES): Add grub-pe2elf.
506
507 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
508 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
509 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
510 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
511 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
512 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
513 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
514 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
515 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
516 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
517 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
518 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
519 (GRUB_PE32_DT_FUNCTION): Likewise.
520 (GRUB_PE32_REL_I386_DIR32): Likewise.
521 (GRUB_PE32_REL_I386_REL32): Likewise.
522 (grub_pe32_symbol): New structure.
523 (grub_pe32_reloc): Likewise.
524
525 * util/grub-pe2elf.c: New file.
526
527 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
528 start symbol in non pc platform.
529
530 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
531
532 The following patches are from Christian Franke.
533
534 * include/grub/dl.h: Remove .previous, gas supports this only
535 for ELF format.
536
537 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
538 Remove .type, gas supports this only for ELF format.
539
540 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
541 nullbytes in symbol table. This fixes an infinite loop if table is
542 zero filled.
543
544 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
545 TARGET_IMG_LDFLAGS and EXEEXT.
546
547 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
548 TARGET_IMG_LDFLAGS_AC.
549 (grub_CHECK_STACK_ARG_PROBE): New function.
550
551 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
552
553 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
554
555 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
556 to set TARGET_IMG_LD* accordingly.
557 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
558 Add call to grub_CHECK_STACK_ARG_PROBE.
559 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
560
561 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
562
563 * genmk.rb: Add EXEEXT to CLEANFILES.
564
12ccdb75 5652008-07-23 Robert Millan <rmh@aybabtu.com>
566
567 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
568 define the codes for arrows and lines used for the menu).
569 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
570 as well.
571
572 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
573 fonts, because the latter are too slow.
574
18eeaf04 5752008-07-21 Bean <bean123ch@gmail.com>
576
577 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
578 a20. Run keyboard test last, as it will cause macbook to halt.
579
b095e2ad 5802008-07-18 Pavel Roskin <proski@gnu.org>
581
582 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
583 load foreign architecture modules correctly anyway. Keep
584 support for loading host architecture modules, whether we
585 compile them or not.
586
737feb35 5872008-07-17 Pavel Roskin <proski@gnu.org>
588
3f4ce737 589 * configure.ac: Use -m32 or -m64 regardless of whether we had to
590 change target_cpu. The compiler default can mismatch target_cpu
591 in any case.
592
4ad2d049 593 * disk/efi/efidisk.c: Fix format warnings on x86_64.
594 * kern/efi/efi.c: Likewise.
595
f6130a12 596 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
597 target compiler is functional.
598 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
599 are set up.
600
58393a2d 601 * configure.ac: Default to efi platform for x86_64-apple. Allow
602 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
603 adjustments from the rest, only do them if target is not
604 explicitly given. Merge other adjustments with the final sanity
605 check. Remove an extraneous check for supported CPU. Be
606 specific which CPU and which platform is not supported.
607
737feb35 608 * configure.ac: Default to pc platform for x86_64.
609
546f966a 6102008-07-17 Robert Millan <rmh@aybabtu.com>
611
612 Partial LinuxBIOS -> Coreboot rename.
613
614 * conf/i386-linuxbios.rmk: Renamed to ...
615 * conf/i386-coreboot.rmk: ... this.
616 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
617 * configure.ac: Accept "coreboot" as input platform (but maintain
618 compatibility with "linuxbios").
619 * include/grub/i386/linuxbios: Renamed to ...
620 * include/grub/i386/coreboot: ... this.
621
20011694 6222008-07-17 Bean <bean123ch@gmail.com>
623
624 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 625 (appleldr_mod_SOURCE): New variable.
20011694 626 (appleldr_mod_CFLAGS): Likewise.
627 (appleldr_mod_LDFLAGS): Likewise.
628 (pci_mod_SOURCES): Likewise.
629 (pci_mod_CFLAGS): Likewise.
630 (pci_mod_LDFLAGS): Likewise.
631 (lspci_mod_SOURCES): Likewise.
632 (lspci_mod_CFLAGS): Likewise.
633 (lspci_mod_LDFLAGS): Likewise.
634
635 * conf/x86_64-efi.rmk: New file.
636
637 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
638 macro.
639 (grub_efidisk_write): Likewise.
640
641 * include/efi/api.h (efi_call_0): New macro.
642 (efi_call_1): Likewise.
643 (efi_call_2): Likewise.
644 (efi_call_3): Likewise.
645 (efi_call_4): Likewise.
646 (efi_call_5): Likewise.
647 (efi_call_6): Likewise.
648
649 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
650 grub_rescue_cmd_chainloader.
651
652 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
653 (grub_pe32_optional_header): Change some fields based on i386 or
654 x86_64 platform.
655 (GRUB_PE32_PE32_MAGIC): Likewise.
656
657 * include/grub/efi/uga_draw.h: New file.
658
659 * include/grub/elf.h (STN_ABS): New constant.
660 (R_X86_64_NONE): Relocation constant for x86_64.
661 (R_X86_64_64): Likewise.
662 (R_X86_64_PC32): Likewise.
663 (R_X86_64_GOT32): Likewise.
664 (R_X86_64_PLT32): Likewise.
665 (R_X86_64_COPY): Likewise.
666 (R_X86_64_GLOB_DAT): Likewise.
667 (R_X86_64_JUMP_SLOT): Likewise.
668 (R_X86_64_RELATIVE): Likewise.
669 (R_X86_64_GOTPCREL): Likewise.
670 (R_X86_64_32): Likewise.
671 (R_X86_64_32S): Likewise.
672 (R_X86_64_16): Likewise.
673 (R_X86_64_PC16): Likewise.
674 (R_X86_64_8): Likewise.
675 (R_X86_64_PC8): Likewise.
676
677 * include/grub/i386/efi/pci.h: New file.
678
679 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
680 Change it value based on platform.
681 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
682 (GRUB_E820_RAM): Likewise.
683 (GRUB_E820_RESERVED): Likewise.
684 (GRUB_E820_ACPI): Likewise.
685 (GRUB_E820_NVS): Likewise.
686 (GRUB_E820_EXEC_CODE): Likewise.
687 (GRUB_E820_MAX_ENTRY): Likewise.
688 (grub_e820_mmap): New structure.
689 (linux_kernel_header): Change the efi field according to different
690 kernel version, also field from linux_kernel_header.
691
692 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
693
694 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
695 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
696 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
697 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
698 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
699 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
700 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
701 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
702 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
703 (GRUB_PCI_ADDR_IO_MASK): Likewise.
704
705 * include/grub/x86_64/efi/kernel.h: New file.
706
707 * include/grub/x86_64/efi/loader.h: Likewise.
708
709 * include/grub/x86_64/efi/machine.h: Likewise.
710
711 * include/grub/x86_64/efi/pci.h: Likewise.
712
713 * include/grub/x86_64/efi/time.h: Likewise.
714
715 * include/grub/x86_64/linux.h: Likewise.
716
717 * include/grub/x86_64/setjmp.h: Likewise.
718
719 * include/grub/x86_64/time.h: Likewise.
720
721 * include/grub/x86_64/types.h: Likewise.
722
723 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
724 GRUB_TARGET_SIZEOF_VOID_P.
725
726 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
727 (grub_efi_locate_handle): Likewise.
728 (grub_efi_open_protocol): Likewise.
729 (grub_efi_set_text_mode): Likewise.
730 (grub_efi_stall): Likewise.
731 (grub_exit): Likewise.
732 (grub_reboot): Likewise.
733 (grub_halt): Likewise.
734 (grub_efi_exit_boot_services): Likewise.
735 (grub_get_rtc): Likewise.
736
737 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
738 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
739 (grub_efi_allocate_pages): Wrap efi calls.
740 (grub_efi_free_pages): Wrap efi calls.
741 (grub_efi_get_memory_map): Wrap efi calls.
742
743 * kern/x86_64/dl.c: New file.
744
745 * kern/x86_64/efi/callwrap.S: Likewise.
746
747 * kern/x86_64/efi/startup.S: Likewise.
748
749 * loader/efi/appleloader.c: Likewise.
750
751 * loader/efi/chainloader.c (cmdline): New variable.
752 (grub_chainloader_unload): Wrap efi calls.
753 (grub_chainloader_boot): Likewise.
754 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
755 command line.
756
757 * loader/efi/chainloader_normal.c (chainloader_command):
758 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
759 command line.
760
761 * loader/i386/efi/linux.c (allocate_pages): Change allocation
762 method.
763 (grub_e820_add_region): New function.
764 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
765 booting.
766 (grub_find_video_card): New function.
767 (grub_linux_setup_video): New function.
768 (grub_rescue_cmd_linux): Probe for video information.
769
770 * normal/x86_64/setjmp.S: New file.
771
772 * term/efi/console.c (map_char): New function.
773 (grub_console_putchar): Map unicode char.
774 (grub_console_checkkey): Wrap efi calls.
775 (grub_console_getkey): Likewise.
776 (grub_console_getwh): Likewise.
777 (grub_console_gotoxy): Likewise.
778 (grub_console_cls): Likewise.
779 (grub_console_setcolorstate): Likewise.
780 (grub_console_setcursor): Likewise.
781
782 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
783
59652a20 7842008-07-16 Pavel Roskin <proski@gnu.org>
785
ef294055 786 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
787 format strings.
788
59652a20 789 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
790 pointer, not an integer. This fixes a warning and prevents
791 precision loss on 64-bit systems.
792 (relocate_addresses): Remove unneeded cast.
793
afc3b5d7 7942008-07-15 Pavel Roskin <proski@gnu.org>
795
506b2b3e 796 * kern/i386/ieee1275/init.c: Include grub/cache.h.
797
62ead89c 798 * term/ieee1275/ofconsole.c: Disable code unused on i386.
799
c4cd51d7 800 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
801 Fix comparison between signed and unsigned.
802
0d3d8f28 803 * include/grub/i386/ieee1275/console.h: Declare
804 grub_console_init() and grub_console_fini().
805
8804b286 806 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
807 It's empty and unused.
808
ee01cf35 809 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
810 beginning to avoid warnings with some compilers.
811
afc3b5d7 812 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
813 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
814
e4e8eaa5 8152008-07-14 Pavel Roskin <proski@gnu.org>
816
407aceb4 817 * kern/env.c (grub_register_variable_hook): Don't copy empty
818 string, it leaks memory. Pass "" to grub_env_set(), it should
819 handle constant strings.
820
e4e8eaa5 821 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
822 * commands/cmp.c (grub_cmd_cmp): Likewise.
823 * kern/dl.c (grub_dl_flush_cache): Likewise.
824 (grub_dl_load_core): Likewise.
825 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
826 (grub_elf64_load_phdrs): Likewise.
827
d4e2dad3 8282008-07-13 Pavel Roskin <proski@gnu.org>
829
830 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
831 between signed and unsigned.
832 (LzmaEnc_Finish): Fix warning about an unused parameter.
833
aa24b516 8342008-07-13 Bean <bean123ch@gmail.com>
835
836 * Makefile.in (enable_lzo): New rule.
837
838 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
839
840 * configure.ac (ENABLE_LZO): New option --enable-lzo.
841
842 * boot/i386/pc/lnxboot.S: #include <config.h>.
843
844 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 845 its value according to the compression algorithm used, lzo or lzma.
aa24b516 846
847 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
848 compression algorithm according to configure macro.
849
850 * kern/i386/pc/startup.S (codestart): Likewise.
851
852 * kern/i386/pc/lzma_decode.S: New file.
853
854 * include/grub/lib/LzFind.h: Likewise.
855
856 * include/grub/lib/LzHash.h: Likewise.
857
858 * include/grub/lib/LzmaDec.h: Likewise.
859
860 * include/grub/lib/LzmaEnc.h: Likewise.
861
862 * include/grub/lib/LzmaTypes.h: Likewise.
863
864 * lib/LzFind.c: Likewise.
865
866 * lib/LzmaDec.c: Likewise.
867
868 * lib/LzmaEnc.c: Likewise.
869
4ae821ac 8702008-07-13 Bean <bean123ch@gmail.com>
871
872 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
873 (grub_ext4_extent_header): New structure.
874 (grub_ext4_extent): Likewise.
875 (grub_ext4_extent_idx): Likewise.
876 (grub_ext4_find_leaf): New function.
877 (grub_ext2_read_block): Handle extents.
878
9a745147 8792008-07-12 Robert Millan <rmh@aybabtu.com>
880
881 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
882
d49a4cf6 8832008-07-11 Robert Millan <rmh@aybabtu.com>
884
885 * util/grub.d/40_custom.in: New file. Example on how to add custom
886 entries to /etc/grub.d.
887 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
888 40_custom (implicitly, by merging all the grub.d rules).
889
947414b4 8902008-07-11 Pavel Roskin <proski@gnu.org>
891
0059cf6f 892 * commands/read.c (grub_getline): Fix invalid memory access.
893 Don't add newline to the variable value.
894
947414b4 895 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
896 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
897 (serial_hw_get_port): Check validity of the port number.
898 (grub_cmd_serial): Check return value of serial_hw_get_port().
899
62a02d00 9002008-07-07 Pavel Roskin <proski@gnu.org>
901
902 * boot/i386/pc/diskboot.S (notification_string): Replace
903 "Loading kernel" with just "loading". This is shorter, less
904 confusing and saves a few bytes for possible future changes.
905
3e5581b0 9062008-07-05 Pavel Roskin <proski@gnu.org>
907
ea387a48 908 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
909 size for ATAPI devices, they are undefined. Output sector
910 number in decimal form.
911
3e5581b0 912 * disk/ata.c: Use named constants for status bits.
913
fdecb8fd 9142008-07-04 Pavel Roskin <proski@gnu.org>
915
bcd35b90 916 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
917 grub_addr_t before casting it to the void pointer to fix a
918 warning. Non-addressable regions are discarded earlier.
919 (grub_arch_modules_addr): Cast _end to grub_addr_t.
920 * kern/i386/linuxbios/table.c: Include grub/misc.h.
921 (check_signature): Don't shadow table_header.
922 (grub_linuxbios_table_iterate): Cast numeric constants to
923 grub_linuxbios_table_header_t.
924 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
925 grub_stop().
926
af58ab3d 927 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
928 prevent warnings.
929
1759aa57 930 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
931 pointer, which can cause warnings. Support 64-bit addresses.
932
fdecb8fd 933 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
934 of sizeof(long). This fixes PowerPC image generation on x86_64.
935
8516d2a8 9362008-07-04 Robert Millan <rmh@aybabtu.com>
937
938 This fixes a performance issue when pc & gpt partmap iterators
939 didn't abort iteration even after our hook found what it was
fe987087 940 looking for (often causing expensive probes of non-existent drives).
8516d2a8 941
942 Some callers relied on previous buggy behaviour, since they would
943 rise an error when their own hooks caused early abortion of its
944 iteration.
945
946 * kern/device.c (grub_device_open): Improve error message.
947 * disk/lvm.c (grub_lvm_open): Likewise.
948 * disk/raid.c (grub_raid_open): Likewise.
949
950 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
951 when hook requests it, independently of grub_errno.
952 (pc_partition_map_probe): Do not fail when find_func() caused
953 early abortion of pc_partition_map_iterate().
954
955 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
956 when hook requests it, independently of grub_errno.
957 (gpt_partition_map_probe): Do not fail when find_func() caused
958 early abortion of gpt_partition_map_iterate().
959
960 * kern/partition.c (grub_partition_iterate): Abort parent iteration
961 when hook requests it, independently of grub_errno. Do not fail when
962 part_map_iterate_hook() caused early abortion of p->iterate().
963
964 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
965 when grub_partition_iterate() returned with non-zero.
966
277d0de9 9672008-07-03 Pavel Roskin <proski@gnu.org>
968
969 * disk/ata.c (grub_ata_pio_write): Check status before writing,
970 like we do in grub_ata_pio_read().
971 (grub_ata_readwrite): Always write individual sectors. Fix the
972 sector count for the remainder.
973 (grub_ata_write): Enable writing to ATA devices. Correctly
974 report error for ATAPI devices.
975
d4c9b428 9762008-07-02 Pavel Roskin <proski@gnu.org>
977
e43fc690 978 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
979 warning.
980
f707af42 981 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
982 for every read sector, we already increment it for the whole
983 batch. This fixes reading more than 256 sectors at once.
984
11e16b15 985 * util/grub-editenv.c (cmd_info): Cast argument to long
986 explicitly. ptrdiff_t reduces to int on i386.
987
cbabfdd4 988 * util/grub-editenv.c (main): Be specific which parameter is
989 missing.
990
b8fbce0a 991 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
992 (memdisk): Make memdisk_orig_addr a pointer.
993
c9c8e606 994 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
995 for file offsets, use grub_off_t instead. Fix printf format
996 warnings.
997
ca62e598 998 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
999 there. Real unexpected warnings should not drown in the noise
1000 about known problems.
1001
ce8d1766 1002 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
1003 grub_disk_addr_t for memory addresses.
1004
00c7a56a 1005 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
1006 explicitly to fix a warning.
1007
08d3ef09 1008 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
1009
cb71ba20 1010 * Makefile.in (MODULE_LDFLAGS): New variable.
1011 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
1012 the linker accepts --build-id=none.
1013 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
1014 MODULE_LDFLAGS.
1015 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
1016
d4c9b428 1017 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
1018 those in Linux XFS code. Provide a way to access 64-bit parent
1019 inode.
1020 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
1021 the end of struct grub_xfs_dir_header.
1022
d4156eee 10232008-07-02 Bean <bean123ch@gmail.com>
1024
1025 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
1026 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
1027 and GRUB_IEEE1275_FLAG_NO_ANSI.
1028
1029 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
1030 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
1031 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
1032
1033 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
1034 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
1035
1036 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
1037 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
1038
1039 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
1040 esc sequence on non ANSI terminal.
1041 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
1042
1043 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
1044 beginning of file.
1045
2270f77b 10462008-07-02 Bean <bean123ch@gmail.com>
1047
1048 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
1049 (grub_editenv_SOURCES): New variable.
1050 (pkglib_MODULES): Add loadenv.mod.
1051 (loadenv_mod_SOURCES): New variable.
1052 (loadenv_mod_CFLAGS): Likewise.
1053 (loadenv_mod_LDFLAGS): Likewise.
1054
1055 * include/grub/envblk.h: New file.
1056
1057 * util/envblk.c: New file.
1058
1059 * util/grub-editenv.c: New file.
1060
1061 * commands/loadenv.c: New file.
1062
0e9e51ec 10632008-07-01 Pavel Roskin <proski@gnu.org>
1064
d89b7634 1065 * include/multiboot2.h (struct multiboot_tag_module): Use char,
1066 not unsigned char. This fixes warnings and is consistent with
1067 other tags.
1068
bf1835b1 1069 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
1070
8222a04b 1071 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
1072
6a42d99d 1073 * term/tparm.c (analyze): Always set *popcount.
1074
10b159d1 1075 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
1076 cast to fix a warning.
1077
b8789f6c 1078 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
1079 cast to suppress a warning.
1080
29d7e38a 1081 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
1082 grub_fshelp_read_file() expects.
1083
f341f669 1084 * fs/fat.c: Fix UUID calculation on big-endian systems. We
1085 write uuid as a 32-bit value in CPU byte order, so declare and
1086 use it as such.
1087
0e9e51ec 1088 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
1089 long if the format specifier expects it.
1090 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
1091 * partmap/pc.c (pc_partition_map_iterate): Likewise.
1092 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
1093 long to fix a warning.
1094 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
1095 grub_dprintf() arguments to fix warnings.
1096
3aefa857 10972008-06-30 Pavel Roskin <proski@gnu.org>
1098
56c7668b 1099 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
1100 install_bsd_part immediately before core.img is embedded or
1101 modified on disk. This fixes core.img verification if core.img
1102 cannot be embedded.
1103
3aefa857 1104 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
1105 core_path to calculate the blocklist.
1106 Patch from Javier Martín <lordhabbit@gmail.com>
1107
5444088d 11082008-06-29 Robert Millan <rmh@aybabtu.com>
1109
1110 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
1111 block to disk block.
1112 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
1113 Patch from Niels Böhm <bitbucket@arcor.de>
1114
674835c8 11152008-06-29 Robert Millan <rmh@aybabtu.com>
1116
1117 * util/update-grub_lib.in (font_path): Search for fonts in
1118 /boot/grub first, which is more likely to be readable (we aren't
1119 deciding where fonts live, just looking for them).
1120
f527dbc8 11212008-06-26 Pavel Roskin <proski@gnu.org>
1122
6c2d8df6 1123 * util/biosdisk.c (read_device_map): Don't leave dead map
1124 entries for devices failing stat() check.
1125
f527dbc8 1126 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
1127 core_path_dev for the core.img path on the target device.
1128
aebe3d13 11292008-06-26 Robert Millan <rmh@aybabtu.com>
1130
1131 * disk/fs_uuid.c: New file.
1132 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
1133 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
1134 (fs_uuid_mod_LDFLAGS): New variables.
1135 * include/grub/disk.h (grub_disk_dev_id): Add
1136 `GRUB_DISK_DEVICE_UUID_ID'.
1137 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
1138 implement iterate().
1139
37aaf354 11402008-06-26 Robert Millan <rmh@aybabtu.com>
1141
1142 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
1143 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
1144 Linux image includes no initrd.
1145
25ff262a 11462008-06-21 Javier Martín <lordhabbit@gmail.com>
1147
1148 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
1149 call to resolve the core image location that effectively appended the
1150 name twice.
1151
76a2bd44 11522008-06-21 Robert Millan <rmh@aybabtu.com>
1153
1154 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
1155 call from here ...
1156
1157 * util/grub.d/10_hurd.in: ... to here ...
1158 * util/grub.d/10_linux.in: ... and here.
1159
650e1c79 11602008-06-19 Robert Millan <rmh@aybabtu.com>
1161
fe987087 1162 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 1163 after it has been set by grub_machine_set_prefix().
1164
6ce63911 11652008-06-19 Robert Millan <rmh@aybabtu.com>
1166
1167 * commands/search.c (search_label, search_fs_uuid, search_file): Print
1168 search result when not saving to variable, not the other way around.
1169 When saving to variable, abort iteration as soon as a match is found.
1170
73940cec 11712008-06-19 Robert Millan <rmh@aybabtu.com>
1172
1173 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
1174 check for partition that provides /boot/grub. Its logic is flawed,
1175 as it prevents prepare_grub_to_access_device() from being called
1176 multiple times.
1177
3c62a39d 11782008-06-19 Robert Millan <rmh@aybabtu.com>
1179
1180 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
1181 "insmod" command directly when abstraction modules are needed,
fe987087 1182 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 1183 since it had already been processed).
1184
47395a42 11852008-06-19 Pavel Roskin <proski@gnu.org>
1186
1187 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
1188 changed. This is needed in case GRUB_LIBDIR changes.
1189 * conf/i386-ieee1275.rmk: Likewise.
1190 * conf/i386-linuxbios.rmk: Likewise.
1191 * conf/i386-pc.rmk: Likewise.
1192 * conf/powerpc-ieee1275.rmk: Likewise.
1193
a145ac2d 11942008-06-18 Pavel Roskin <proski@gnu.org>
1195
1196 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
1197 kernel_elf_symlist.c to symlist.c for consistency with other
1198 architectures. Update all users.
1199 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1200
7847c51e 12012008-06-18 Robert Millan <rmh@aybabtu.com>
1202
1203 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
1204 it in prefix.
1205
1206 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
1207 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
1208 a RAID device, run setup() for all members independently on whether
1209 LVM abstraction is being used.
1210 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
1211 If grub-mkimage has set `*install_dos_part == -2', don't override this
1212 value.
1213 Perform *install_dos_part adjustments independently on whether
1214 we're embedding or not.
1215 Clarify error message when image is too big for embedding.
1216 Remove duplicate *install_dos_part stanza.
1217
b23e5644 12182008-06-17 Robert Millan <rmh@aybabtu.com>
1219
1220 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
1221 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
1222 variables.
1223 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
1224 values in grub_ofconsole_normal_color and
1225 grub_ofconsole_highlight_color (they're not directly related to
1226 background and foreground).
1227 (grub_ofconsole_setcolorstate): Extract background and foreground
1228 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
1229
0aac2f79 12302008-06-17 Robert Millan <rmh@aybabtu.com>
1231
1232 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
1233 /boot/grub for the check in last commit, not /boot (they could be
1234 different partitions).
1235
3cca7ef3 12362008-06-16 Robert Millan <rmh@aybabtu.com>
1237
1238 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
1239 asked to setup access for the same partition that provides /boot,
1240 don't bother using UUIDs since our root already has the value we
1241 want.
1242
347396d8 12432008-06-16 Robert Millan <rmh@aybabtu.com>
1244
1245 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
1246 I2O devices.
1247 Patch from Sven Mueller <sven@debian.org>.
1248
991477f8 12492008-06-16 Robert Millan <rmh@aybabtu.com>
1250
1251 * util/update-grub.in: Check for $EUID instead of $UID.
1252 Reported by Vincent Zweije.
1253
d31a32a1 12542008-06-16 Bean <bean123ch@gmail.com>
1255
fe987087 1256 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 1257 (grub_ext2_read_block): Likewise.
1258 (grub_ext2_read_inode): Likewise.
1259 (grub_ext2_mount): Likewise.
1260 (grub_ext2_close): Likewise.
1261 (grub_ext3_get_journal): Removed.
1262
fe987087 1263 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 1264 (grub_reiserfs_read_symlink): Likewise.
1265 (grub_reiserfs_mount): Likewise.
1266 (grub_reiserfs_open): Likewise.
1267 (grub_reiserfs_read): Likewise.
1268 (grub_reiserfs_close): Likewise.
1269 (grub_reiserfs_get_journal): Removed.
1270
1271 * fs/fshelp.c (grub_fshelp_read): Removed.
1272 (grub_fshelp_map_block): Likewise.
1273
1274 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
1275 (grub_fshelp_journal): Likewise.
1276 (grub_fshelp_read): Likewise.
1277 (grub_fshelp_map_block): Likewise.
1278
3540a760 12792008-06-16 Pavel Roskin <proski@gnu.org>
1280
1281 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
1282 floating point anymore.
1283 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
1284
95614c84 12852008-06-15 Pavel Roskin <proski@gnu.org>
1286
1287 * commands/ls.c (grub_ls_list_files): Use integer calculations
1288 for human readable format, avoid floating point use.
1289 * kern/misc.c (grub_ftoa): Remove.
1290 (grub_vsprintf): Remove floating point support.
1291
50465dd6 12922008-06-15 Robert Millan <rmh@aybabtu.com>
1293
fe6b695a 1294 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 1295 devices.
1296 Reported by Max Vozeler.
1297
a9207284 12982008-06-15 Robert Millan <rmh@aybabtu.com>
1299
1300 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
1301 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
1302 skipped later.
1303 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
1304 the beginning of the prefix.
1305
1306 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
1307 It is assumed that if we have a memdisk, grub-mkimage has set
1308 grub_prefix to include the "(memdisk)" drive in it.
1309
a7cbd45a 13102008-06-15 Robert Millan <rmh@aybabtu.com>
1311
1312 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
1313 Initialize keyboard controller after registering the terminal, so that
1314 grub_printf() can be called from grub_keyboard_controller_init().
1315
21cf716a 13162008-06-15 Robert Millan <rmh@aybabtu.com>
1317
1318 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
1319 extent-btree which is written as big endian on disk.
1320 Reported by Alain Greppin <al@chilibi.org>.
1321
23a64d8e 13222008-06-14 Robert Millan <rmh@aybabtu.com>
1323
1324 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
1325 * util/i386/pc/grub-install.in (modules): Likewise.
1326
d687651c 13272008-06-13 Pavel Roskin <proski@gnu.org>
1328
1329 * commands/ls.c (grub_ls_list_files): Fix format warnings.
1330
dfe9ddd4 13312008-06-13 Bean <bean123ch@gmail.com>
1332
1333 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
1334
1335 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
1336
1337 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
1338 to indicate sparse block.
1339
16ae7781 13402008-06-12 Pavel Roskin <proski@gnu.org>
1341
e6d1a308 1342 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
1343 number, grub_fshelp_read() does it for us.
1344
16ae7781 1345 * fs/fshelp.c (grub_fshelp_read): New function. Implement
1346 linear disk read with journal translation.
1347 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
1348 * include/grub/fshelp.h: Declare grub_fshelp_read().
1349
40fd3a2b 13502008-06-09 Pavel Roskin <proski@gnu.org>
1351
1352 * fs/minix.c (grub_minix_mount): Handle error reading
1353 superblock.
1354
f5679726 13552008-06-08 Robert Millan <rmh@aybabtu.com>
1356
1357 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
1358 don't append the RAID prefix afterwards.
1359 Reported by Clint Adams.
1360
ce525529 13612008-06-08 Robert Millan <rmh@aybabtu.com>
1362
1363 Based on description from Pavel:
1364 * kern/disk.c (grub_disk_check_range): Rename to ...
1365 (grub_disk_adjust_range): ... this. Add a comment explaining the
1366 tasks performed by this function.
1367
ad4936a0 13682008-06-08 Robert Millan <rmh@aybabtu.com>
1369
1370 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
1371 `num_serial' (for consistency with other variables).
1372 (struct grub_ntfs_data): Add `uuid' member.
1373 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
1374 (grub_ntfs_uuid): New function.
1375 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
1376
dc20b0f9 13772008-06-07 Pavel Roskin <proski@gnu.org>
1378
1379 * util/biosdisk.c (open_device): Revert last change to the
1380 function, it broke installation. The sector needs to be
1381 different dependent on which device is opened.
1382
c5e3cfba 13832008-06-06 Robert Millan <rmh@aybabtu.com>
1384
1385 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
1386 rest of GRUB, and breakage doesn't happen if its value were modified.
1387
1388 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
1389 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
1390 a constant (same value).
1391 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
1392 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
1393
26a1f8c4 13942008-06-06 Robert Millan <rmh@aybabtu.com>
1395
1396 * util/biosdisk.c (open_device): Do not modify sector offset when
1397 accessing a partition. kern/disk.c already handles this for us.
1398
25d6b327 13992008-06-06 Robert Millan <rmh@aybabtu.com>
1400
1401 * util/grub-emu.c (grub_machine_init): Move code in this function from
1402 here ...
1403 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
1404 segfault in case grub_printf() is called).
1405
1406 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
1407 grub_probe. Update all users not to explicitly add it again.
1408 (grub_device): New variable; contains corresponding device for grubdir.
1409 (fs_module, partmap_module, devabstraction_module): Pass
1410 `--device ${grub_device}' to grub_probe to avoid traversing /dev
1411 every time.
1412
9ece62fb 14132008-06-05 Robert Millan <rmh@aybabtu.com>
1414
1415 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
1416 is found, print it (same layout as with labels).
1417
1ad36d37 14182008-06-04 Robert Millan <rmh@aybabtu.com>
1419
1420 * util/biosdisk.c (get_drive): Rename to ...
1421 (find_grub_drive): ... this. Update all users.
1422
1423 (get_os_disk): Rename to ...
1424 (convert_system_partition_to_system_disk): ... this. Update all users.
1425
1426 (find_drive): Rename to ...
1427 (find_system_device): ... this. Update all users.
1428
e6a30859 14292008-06-04 Robert Millan <rmh@aybabtu.com>
1430
1431 * util/biosdisk.c (get_os_disk): Handle IDA devices.
1432 * util/grub-mkdevicemap.c (get_mmc_disk_name)
1433 (make_device_map): Likewise.
1434
00c108a4 14352008-06-01 Robert Millan <rmh@aybabtu.com>
1436
1437 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
1438 before dereferencing it.
1439
1440 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
1441 union with fat12/fat16-specific ones. Add some new fields, including
1442 `num_serial' for both versions.
1443 (struct grub_fat_data): Add `uuid' member.
1444 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
1445 names. Initialize `data->uuid' using `num_serial'.
1446 (grub_fat_uuid): New function.
1447 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
1448
1449 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
1450 (grub_reiserfs_uuid): New function.
1451 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
1452 member.
1453
1454 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
1455 (grub_xfs_uuid): New function.
1456 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
1457
1385c5bb 14582008-06-01 Robert Millan <rmh@aybabtu.com>
1459
1460 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
1461 code that is backward compatible with pre-uuid search command.
1462
c682dfd7 14632008-05-31 Robert Millan <rmh@aybabtu.com>
1464
1465 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
1466 floppies after everything else, to ensure floppy drive isn't accessed
1467 unnecessarily (patch from Bean).
1468
b7db5d47 14692008-05-31 Robert Millan <rmh@aybabtu.com>
1470
1471 * commands/search.c (search_label, search_fs_uuid, search_file): Do
1472 not print device names when we were asked to set a variable.
1473
6e037aa9 14742008-05-31 Robert Millan <rmh@aybabtu.com>
1475
1476 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
1477 using "cursor-on" and "cursor-off" commands (understood at least by
1478 the Open Firmware flavour on OLPC).
1479
41305bc8 14802008-05-31 Michael Gorven <michael@gorven.za.net>
1481
1482 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
1483 on and off sequences.
1484
69ba137e 14852008-05-31 Robert Millan <rmh@aybabtu.com>
1486
1487 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
1488 * util/update-grub.in: Likewise.
1489
520ae21b 14902008-05-30 Pavel Roskin <proski@gnu.org>
1491
1492 * util/biosdisk.c (linux_find_partition): Simplify logic and
1493 make the code more universal. Keep special processing for
1494 devfs, but use a simple rule for all other devices. If the
1495 device ends with a number, append 'p' and the partition number.
1496 Otherwise, append only the partition number.
1497
5786569b 14982008-05-30 Robert Millan <rmh@aybabtu.com>
1499
1500 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
1501 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
1502 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
1503 the `root' parameter to Linux.
1504
51500452 15052008-05-30 Robert Millan <rmh@aybabtu.com>
1506
1507 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
1508 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
1509 --fs_uuid with --fs-uuid.
1510 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
1511 all filesystems support them).
1512
811d3878 15132008-05-30 Robert Millan <rmh@aybabtu.com>
1514
1515 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 1516 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 1517
cab63c95 15182008-05-30 Robert Millan <rmh@aybabtu.com>
1519
1520 * util/grub.d/00_header.in: Remove obsolete comment referencing
1521 convert_system_path_to_grub_path().
1522 * util/update-grub.in: Likewise.
1523 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
1524 (convert_system_path_to_grub_path): Add a warning message explaining
1525 that this function is deprecated. Rely on is_path_readable_by_grub()
1526 for the readability checks.
1527 (font_path): Use is_path_readable_by_grub() for the readability
1528 check rather than convert_system_path_to_grub_path().
1529
972e2f7a 15302008-05-30 Robert Millan <rmh@aybabtu.com>
1531
1532 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
1533 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
1534 converting it first.
1535 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
1536 grub.cfg for access to font file, and afterwards call it again to set
1537 the root device.
1538
62191274 15392008-05-30 Robert Millan <rmh@aybabtu.com>
1540
1541 * commands/search.c (options): Add --fs_uuid option.
1542 (search_fs_uuid): New function.
1543 (grub_cmd_search): Fix --set argument passing.
1544 Use search_fs_uuid() when requested via --fs_uuid.
1545 (grub_search_init): Update help message.
1546 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
1547 and redeclare it as an array of 16-bit words.
1548 (grub_ext2_uuid): New function.
1549 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
1550 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
1551 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
1552 (GRUB_DEVICE_BOOT_UUID): New variables.
1553 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
1554 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
1555 whenever possible.
1556 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
1557 just assume `root' variable has the right value.
1558 * util/grub.d/10_linux.in: Likewise.
1559 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
1560 via PRINT_FS_UUID.
1561 (main): Recognise `-t fs_uuid' argument.
1562
01b73ec8 15632008-05-30 Robert Millan <rmh@aybabtu.com>
1564
1565 * util/biosdisk.c (map): Redefine structure to hold information
1566 about GRUB drive name.
fe6b695a 1567 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 1568 drive names.
1569 (call_hook): Remove.
1570 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
1571 member. Assume drive has partitions.
1572 (grub_util_biosdisk_open): Access device names via `.device' struct
1573 member.
1574 (open_device): Likewise.
1575 (find_drive): Likewise.
1576 (read_device_map): Adjust map[] usage to match the new struct
1577 definition. Don't check for duplicates (still possible, but not cheap
1578 anymore).
1579 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
1580 (make_device_name): Remove assumption of BIOS-like drive names.
1581
22f16596 15822008-05-30 Pavel Roskin <proski@gnu.org>
1583
1584 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
1585 compiling execute.c doesn't need grub_script.tab.h anymore.
1586 (normal/command.c_DEPENDENCIES): Likewise.
1587 (normal/function.c_DEPENDENCIES): Likewise.
1588 * conf/i386-ieee1275.rmk: Likewise.
1589 * conf/i386-linuxbios.rmk: Likewise.
1590 * conf/i386-pc.rmk: Likewise.
1591 * conf/powerpc-ieee1275.rmk: Likewise.
1592 * conf/sparc64-ieee1275.rmk: Likewise.
1593
528ad8f2 15942008-05-29 Pavel Roskin <proski@gnu.org>
1595
d1dff95d 1596 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
1597 when scanning metadata for volume group name.
1598
528ad8f2 1599 * include/grub/script.h: Don't include grub_script.tab.h. It's
1600 a generated file, which may only be included from the files with
1601 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
1602 use union YYSTYPE, as the later allows forward declaration.
1603 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
1604
47248e08 16052008-05-29 Robert Millan <rmh@aybabtu.com>
1606
1607 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
1608 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
1609 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
1610 (grub_console_checkkey): Add grub_dprintf() call to report unknown
1611 scan codes.
1612
ee632529 16132008-05-29 Robert Millan <rmh@aybabtu.com>
1614
1615 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
1616 control key combinations.
1617
eee96e08 16182008-05-29 Robert Millan <rmh@aybabtu.com>
1619
1620 * util/powerpc/ieee1275/grub-install.in: Move from here ...
1621 * util/ieee1275/grub-install.in: ... to here.
1622 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
1623 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
1624 (grub_install_SOURCES): Likewise.
1625
da9a6a94 16262008-05-29 Robert Millan <rmh@aybabtu.com>
1627
1628 * fs/affs.c: Update copyright year.
1629 * fs/ext2.c: Likewise.
1630 * fs/fshelp.c: Likewise.
1631 * fs/hfsplus.c: Likewise.
1632 * fs/ntfs.c: Likewise.
1633 * fs/xfs.c: Likewise.
1634 * include/grub/fshelp.h: Likewise.
1635 * util/grub-mkdevicemap.c: Likewise.
1636
12e65f3a 16372008-05-28 Robert Millan <rmh@aybabtu.com>
1638
1639 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
1640 might need to be fatfs to support some firmware implementations
1641 (e.g. OFW or EFI).
1642
23023641 16432008-05-28 Robert Millan <rmh@aybabtu.com>
1644
1645 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
1646 devices.
1647 * util/grub-mkdevicemap.c (get_mmc_disk_name)
1648 (make_device_map): Likewise.
1649
887d2619 16502008-05-20 Bean <bean123ch@gmail.com>
1651
1652 * fs/fshelp.c (grub_fshelp_map_block): New function.
1653 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
1654 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
1655
1656 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
1657 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
1658 (grub_fshelp_journal): New structure.
1659 (grub_fshelp_map_block): New function prototype.
1660 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
1661 (grub_fshelp_map_block): Likewise.
1662
1663 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
1664 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
1665 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
1666 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
1667 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
1668 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
1669 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
1670 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
1671 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
1672 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
1673 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
1674 (grub_ext2_sblock): New members for journal support.
1675 (grub_ext3_journal_header): New structure.
1676 (grub_ext3_journal_revoke_header): Likewise.
1677 (grub_ext3_journal_block_tag): Likewise.
1678 (grub_ext3_journal_sblock): Likewise.
1679 (grub_fshelp_node): New members logfile and journal.
1680 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
1681 grub_fshelp_map_block to get real block number.
1682 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
1683 number.
1684 (grub_ext2_read_inode): Likewise.
1685 (grub_ext3_get_journal): New function.
1686 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
1687 (grub_ext2_close): Release memory used by journal.
1688
1689 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
1690 (REISERFS_MAGIC_DESC_BLOCK): New macro.
1691 (grub_reiserfs_transaction_header): Renamed to
1692 grub_reiserfs_description_block, replace field data with real_blocks.
1693 (grub_reiserfs_commit_block): New structure.
1694 (grub_reiserfs_data): New member journal.
1695 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
1696 number.
1697 (grub_reiserfs_read_symlink): Likewise.
1698 (grub_reiserfs_iterate_dir): Likewise.
1699 (grub_reiserfs_open): Likewise.
1700 (grub_reiserfs_read): Likewise.
1701 (grub_reiserfs_get_journal): New function.
1702 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
1703 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
1704 using grub_reiserfs_get_journal.
1705 (grub_reiserfs_close): Release memory used by journal.
1706
1707 * fs/affs.c (grub_affs_read_block): Change block type to
1708 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
1709
1710 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
1711
1712 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
1713
1714 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
1715
1716 * fs/udf.c (grub_udf_read_block): Change block type to
1717 grub_disk_addr_t. Use type cast to avoid warning.
1718
1719 * fs/xfs.c (grub_xfs_read_block): Likewise.
1720
b7c6bed5 17212008-05-16 Christian Franke <franke@computer.org>
1722
1723 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
1724 to ensure that break with ESC will always work.
1725 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
1726 Remove ESC from keyboard queue.
1727
eedf167f 17282008-05-16 Christian Franke <franke@computer.org>
1729
1730 * util/biosdisk.c: [__CYGWIN__] Add includes.
1731 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
1732 (get_os_disk): Move variable declarations to OS specific
1733 parts to avoid warning.
1734 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
1735 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
1736 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
1737 Cygwin.
1738 * util/getroot.c: [__CYGWIN__] Add includes.
1739 (strip_extra_slashes): Fix "/" case.
1740 [__CYGWIN__] (get_win32_path): New function.
1741 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
1742 [__CYGWIN__] (find_root_device): Disable.
1743 [__CYGWIN__] (get_bootsec_serial): New function.
1744 [__CYGWIN__] (find_cygwin_root_device): Likewise.
1745 [__linux__] (grub_guess_root_device): Add early returns to simplify
1746 structure.
1747 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
1748 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
1749 check for Linux only.
1750
a079699e 17512008-05-15 Bean <bean123ch@gmail.com>
1752
1753 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
1754 keyboard hang problem in apple's intel mac.
1755
1cf4059a 17562008-05-09 Robert Millan <rmh@aybabtu.com>
1757
1758 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
1759 devices.
1760 * util/grub-mkdevicemap.c (get_virtio_disk_name)
1761 (make_device_map): Likewise.
1762 Reported by Aurelien Jarno <aurel32@debian.org>
1763
ed759390 17642008-05-07 Ian Campbell <ijc@hellion.org.uk>
1765
1766 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
1767 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
1768 (make_device_map): Output entries for xvd type disks.
1769
b56c4eaa 17702008-05-07 Robert Millan <rmh@aybabtu.com>
1771
1772 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
1773 devices.
1774 * util/grub-mkdevicemap.c (get_cciss_disk_name)
1775 (make_device_map): Likewise.
1776 Reported by Roland Dreier <rdreier@cisco.com>
1777
7f8866ed 17782008-05-07 Robert Millan <rmh@aybabtu.com>
1779
1780 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
1781 grub_strstr() call. Correct a few mistakes in failure path handling.
1782
b0346e0f 17832008-05-06 Robert Millan <rmh@aybabtu.com>
1784
1785 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
1786 Do not print a trailing slash (therefore, the root directory is an
1787 empty string).
1788 (convert_system_path_to_grub_path): Do not remove trailing slash
1789 from make_system_path_relative_to_its_root() output.
1790
1791 * util/i386/pc/grub-install.in: Add trailing slash to output from
1792 make_system_path_relative_to_its_root().
1793
6cf12cbd 17942008-05-06 Robert Millan <rmh@aybabtu.com>
1795
1796 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
1797 ensures that output lines aren't intermangled with those sent to
1798 stderr (via grub_util_info()).
1799 * util/grub-probe.c (grub_refresh): Likewise.
1800 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
1801
0fbb3117 18022008-05-05 Christian Franke <franke@computer.org>
1803
1804 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
1805 Add Cygwin device names.
1806 (get_ide_disk_name) [__CYGWIN__]: Likewise.
1807 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
1808 (check_device): Return error instead of success on empty name.
1809 (make_device_map): Move label inside linux specific code to
1810 prevent compiler warning.
1811
8124cdb7 18122008-04-30 Robert Millan <rmh@aybabtu.com>
1813
1814 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
1815 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
1816 first boot option.
1817 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
1818
094c01d0 18192008-04-29 Robert Millan <rmh@aybabtu.com>
1820
1821 * docs/grub.cfg: New file (example GRUB configuration).
1822
f4b1fc02 18232008-04-26 Robert Millan <rmh@aybabtu.com>
1824
329ce2a5 1825 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
1826 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
1827 and `disk/ieee1275/nand.c'.
f4b1fc02 1828
25f16ec1 18292008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 1830
25f16ec1 1831 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
1832 i386-linuxbios.
1833
1834 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
1835 change the buffer size to 4096 for cdrom device.
1836
1837 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
1838 and nand.mod.
1839 (_linux_mod_SOURCES): New variable.
1840 (_linux_mod_CFLAGS): Likewise.
1841 (_linux_mod_LDFLAGS): Likewise.
1842 (linux_mod_SOURCES): Likewise.
1843 (linux_mod_CFLAGS): Likewise.
1844 (linux_mod_LDFLAGS): Likewise.
1845 (nand_mod_SOURCES): Likewise.
1846 (nand_mod_CFLAGS): Likewise.
1847 (nand_mod_LDFLAGS): Likewise.
1848
1849 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
1850 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
1851 type property. (nand device in olpc don't have this property)
1852
1853 * include/grub/disk.h (grub_disk_dev_id): New macro
1854 GRUB_DISK_DEVICE_NAND_ID.
1855
1856 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
1857 function prototype.
1858 (grub_rescue_cmd_initrd): Likewise.
1859
1860 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
1861 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
1862 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 1863
25f16ec1 1864 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
1865 GRUB_MACHINE_IEEE1275 is defined.
1866
1867 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
1868 Use NESTED_FUNC_ATTR attribute on the hook parameter.
1869
1870 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
1871 on nested function heap_init.
1872 (grub_upper_mem): New variable for i386-ieee1275.
1873 (grub_get_extended_memory): New function for i386-ieee1275.
1874 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
1875
1876 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
1877 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
1878 property.
f19dbdb7 1879
25f16ec1 1880 * loader/i386/ieee1275/linux.c: New file.
1881
1882 * loader/i386/ieee1275/linux_normal.c: New file.
1883
1884 * disk/ieee1275/nand.c: New file.
1885
e89d61e9 18862008-04-18 Thomas Schwinge <tschwinge@gnu.org>
1887
1888 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
1889 value.
1890 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
1891
602566f6 18922008-04-18 Robert Millan <rmh@aybabtu.com>
1893
1894 Restructures early code path on ieee1275 to unify grub_main() as
1895 the first C function that is executed in every platform.
1896
1897 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
1898 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
1899 cmain().
1900 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
1901 * kern/ieee1275/cmain.c (cmain): Rename to ...
1902 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
1903 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
1904 at the beginning.
1905
57490c2b 19062008-04-18 Robert Millan <rmh@aybabtu.com>
1907
1908 * util/update-grub.in: Fix syntax error when setting
1909 `GRUB_PRELOAD_MODULES'.
1910 Reported by Stephane Chazelas <stephane@artesyncp.com>
1911
1977517d 19122008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
1913
1914 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
1915 section into account, newer toolchains generate unique build ids
1916 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 1917 we want build ids to be preserved
1977517d 1918 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
1919 far from other sections don't cause the raw binary images grow
1920 size
1921
bfb1f1a2 19222008-04-15 Robert Millan <rmh@aybabtu.com>
1923
1924 * disk/lvm.c: Update copyright year.
1925 * kern/misc.c: Likewise.
1926
01979850 19272008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
1928
1929 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 1930 there is no memory left for physical volume name.
01979850 1931
0a1150e2 19322008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
1933
1934 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
1935 volume name mapping to support bigger than 9 character names properly.
1936
82ead3fe 19372008-04-13 Robert Millan <rmh@aybabtu.com>
1938
1939 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
1940 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
1941
e54a72f5 19422008-04-13 Christian Franke <franke@computer.org>
1943
1944 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
1945 to create a floppy emulation boot CD when non emulation mode
1946 does not work.
1947 Enable Joliet CD filesystem extension.
1948
9fe86034 19492008-04-13 Robert Millan <rmh@aybabtu.com>
1950
1951 * kern/misc.c (grub_strncat): Fix off-by-one error.
1952 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
1953
1954 * kern/env.c (grub_env_context_close): Clear current context, not
1955 previous one.
1956 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
1957
1958 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
1959
7ceeee39 19602008-04-13 Robert Millan <rmh@aybabtu.com>
1961
1962 Improve robustness when handling LVM.
1963
1964 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 1965 (and leave `*p' unmodified).
7ceeee39 1966 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
1967 through it.
1968 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
1969 iterating through it.
1970 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
1971 through it.
fe6b695a 1972 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 1973 when due) on each grub_lvm_getvalue() or grub_strstr() call.
1974 Don't assume `vg->pvs != NULL' when iterating through it.
1975
58cd3d85 19762008-04-13 Robert Millan <rmh@aybabtu.com>
1977
1978 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
1979 * genmk.rb (partmap): New variable.
1980 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
1981 (#{partmap}): New target rule.
1982 * genpartmaplist.sh: New file.
1983 * Makefile.in (pkglib_DATA): Add partmap.lst.
1984 (partmap.lst): New target rule.
1985 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
1986 modules (including all partition maps), instead of preloading them.
1987
78b51059 19882007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
1989
1990 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
1991 `linux-boot-prober' (if installed) to detect other operating
1992 systems which are installed on the computer and add them to
1993 the boot menu.
1994 * conf/common.rmk: Build and install 30_os-prober.
1995
a91627b4 19962008-04-12 Robert Millan <rmh@aybabtu.com>
1997
1998 * kern/powerpc/ieee1275/init.c: Move from here ...
1999 * kern/ieee1275/init.c: ... to here. Update all users.
2000
2001 * kern/powerpc/ieee1275/cmain.c: Move from here ...
2002 * kern/ieee1275/cmain.c: ... to here. Update all users.
2003
2004 * kern/powerpc/ieee1275/openfw.c: Move from here ...
2005 * kern/ieee1275/openfw.c: ... to here. Update all users.
2006
2007 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
2008 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
2009
322562ea 20102008-04-10 Pavel Roskin <proski@gnu.org>
2011
2012 * configure.ac: Always use "_cv_" in cache variables for
2013 compatibility with Autoconf 2.62.
2014
a02a73c5 20152008-04-07 Robert Millan <rmh@aybabtu.com>
2016
2017 Revert grub/machine/init.h addition by Pavel (since it breaks on
2018 i386-ieee1275 and others):
2019 * util/i386/pc/misc.c: Remove grub/machine/init.h.
2020 * util/powerpc/ieee1275/misc.c: Likewise.
2021
25c024b1 20222008-04-07 Robert Millan <rmh@aybabtu.com>
2023
2024 * util/grub-probe.c (probe): Improve error message.
2025
3cbd2f98 20262008-04-07 Robert Millan <rmh@aybabtu.com>
2027
2028 * util/biosdisk.c (read_device_map): Skip devices that don't exist
2029 (this prevents the presence of a bogus entry from ruining the whole
2030 thing).
2031
87a297bf 20322008-04-06 Pavel Roskin <proski@gnu.org>
2033
36747a62 2034 * util/biosdisk.c: Include grub/util/biosdisk.h.
2035 * util/grub-fstest.c (execute_command): Make static.
2036 * util/grub-mkdevicemap.c (check_device): Likewise.
2037 * util/i386/pc/misc.c: Include grub/machine/init.h.
2038 * util/powerpc/ieee1275/misc.c: Likewise.
2039 * util/lvm.c: Include grub/util/lvm.h.
2040 * util/misc.c: Include grub/kernel.h, grub/misc.h and
2041 grub/cache.h.
2042 * util/raid.c: Include grub/util/raid.h.
2043 (grub_util_getdiskname): Make static.
2044
87a297bf 2045 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
2046 grub_hostfs_fini(), as they are called from grub_init_all() and
2047 grub_fini_all() respectively. This fixes an infinite loop in
2048 grub-fstest due to double registration of hostfs.
2049 Reported by Christian Franke <Christian.Franke@t-online.de>
2050
f6ce7629 20512008-04-05 Pavel Roskin <proski@gnu.org>
2052
2053 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
2054 all 8 functions. Otherwise, probe function 0 only.
2055
070e49e4 20562008-04-04 Pavel Roskin <proski@gnu.org>
2057
8b088a4c 2058 * commands/lspci.c (grub_lspci_iter): Print the bus number
2059 correctly.
2060
4f657021 2061 * commands/lspci.c (grub_pci_classes): Fix typos.
2062 (grub_lspci_iter): Don't print func twice. Print vendor ID
2063 before device ID, as it's normally done.
2064
070e49e4 2065 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
2066 Fix signedness warnings.
2067 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
2068 Likewise.
2069 * util/ieee1275/get_disk_name.c: Include config.h so that
2070 _GNU_SOURCE is defined and getline() is declared. Mark an
2071 unused argument as such. Fix a signedness warning.
2072
ba7328dc 20732008-04-02 Pavel Roskin <proski@gnu.org>
2074
26887f22 2075 * genkernsyms.sh.in: Use more robust assignments for CC and
2076 srcdir. Quote srcdir.
2077 * gensymlist.sh.in: Likewise. Assert at the compile time that
2078 the symbol table is not empty.
2079
ba7328dc 2080 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
2081 * fs/cpio.c (grub_cpio_read): Likewise.
2082
0f582c6b 20832008-04-01 Pavel Roskin <proski@gnu.org>
2084
4b6e1995 2085 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
2086 * disk/host.c (grub_host_open): Likewise.
2087 * disk/loopback.c (grub_loopback_open): Likewise.
2088 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
2089 disk->id as in disk/host.c, not a multi-character constant.
2090
828a2768 2091 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
2092 later is obsolete, potentially dangerous and sets a bad example.
2093 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
2094 * util/misc.c (grub_util_get_image_size): Likewise.
2095
2bb4fb47 2096 * disk/loopback.c (options): Improve help for "--partitions".
2097
0f582c6b 2098 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
2099 options to align them with the short options, e.g. "echo -e".
2100
a33224e0 21012008-03-31 Bean <bean123ch@gmail.com>
2102
2103 * video/reader/png.c (grub_png_data): New member is_16bit and
2104 image_data.
2105 (grub_png_decode_image_header): Detect 16 bit png image.
2106 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
2107 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
2108 (grub_video_reader_png): Release memory occupied by image_data.
2109
2110 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
2111 4096 bytes.
2112 (grub_nfs_mount): Skip the test for sector per cluster.
2113
2114 * include/grub/ntfs.h (MAX_SPC): Removed.
2115
86cb4f54 21162008-03-31 Bean <bean123ch@gmail.com>
2117
2118 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
2119 (grub_probe_SOURCES): Add fs/afs.c.
2120 (grub_fstest_SOURCES): Likewise.
2121 (afs_mod_SOURCES): New variable.
2122 (afs_mod_CFLAGS): Likewise.
2123 (afs_mod_LDFLAGS): Likewise.
2124
2125 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
2126 (grub_emu_SOURCES): Likewise.
2127
2128 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2129
2130 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2131
2132 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
2133
2134 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2135
2136 * fs/afs.c: New file.
2137
17c74c21 21382008-03-30 Pavel Roskin <proski@gnu.org>
2139
4cb68e89 2140 * disk/host.c: Include grub/misc.h to fix a warning.
2141 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
2142 warnings about implicit declarations.
2143
8790bb04 2144 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
2145 variable.
2146 * include/grub/i386/loader.h: Change declaration of
2147 grub_linux_boot() to match what grub_loader_set() expects.
2148 * util/getroot.c (grub_guess_root_device): Return const char* to
2149 fix a warning.
2150 * util/grub-probe.c (probe): Fix a warning about uninitialized
2151 abstraction_name variable.
2152 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
2153 second argument as unused to fix a warning.
2154
9a3f3296 2155 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
2156 missing grub_error() call.
2157
0ecef90d 2158 * util/update-grub_lib.in: Define datarootdir, since Autoconf
2159 2.60 and newer uses it to define datadir.
2160
0bf6d401 2161 * commands/sleep.c: Fix warning about implicit declaration.
2162 * disk/memdisk.c: Likewise.
2163 * loader/aout.c: Likewise.
2164 * loader/i386/bsd_normal.c: Likewise.
2165 * util/grub-probe.c: Likewise.
2166
7cdacf97 2167 * commands/i386/cpuid.c (has_longmode): Make static.
2168 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
2169 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
2170
17c74c21 2171 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
2172 GDT. This is more robust, as %ds can change.
2173 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
2174 calling real_to_prot().
2175 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
2176
80a3e68b 21772008-03-28 Pavel Roskin <proski@gnu.org>
2178
2179 * kern/i386/pc/startup.S: Assert that uncompressed functions
2180 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
2181 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
2182 code, as they push parts of the code (error handlers) beyond
2183 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
2184 code as correctness and size.
2185
77bcd272 21862008-03-28 Pavel Roskin <proski@gnu.org>
2187
2188 * kern/i386/pc/startup.S
2189 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
2190 data block address to the real mode, keep offset minimal. This
2191 works around a bug in AWARD BIOS on old Athlon systems, which
2192 makes CD detection hang.
2193
c5dfd43b 21942008-03-26 Pavel Roskin <proski@gnu.org>
2195
2196 * normal/color.c (grub_parse_color_name_pair): Make `name' a
2197 const.
2198 * include/grub/normal.h: Add grub_parse_color_name_pair()
2199 declaration.
2200
bf962df2 22012008-03-24 Bean <bean123ch@gmail.com>
2202
2203 * disk/i386/pc/biosdisk.c (cd_start): Removed.
2204 (cd_count): Removed.
2205 (cd_drive): New variable.
2206 (grub_biosdisk_get_drive): Don't check for (cdN) device.
2207 (grub_biosdisk_call_hook): Likewise.
2208 (grub_biosdisk_iterate): Change cdrom detection method.
2209 (grub_biosdisk_open): Replace cd_start with cd_drive.
2210 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
2211 detect cdrom device.
2212
2213 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
2214 Removed.
2215 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
2216 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
2217 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
2218 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
2219 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
2220 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
2221 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
2222 (grub_biosdisk_cdrp): New structure.
2223 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
2224
2225 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
2226
2227 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
2228 device.
2229
2230 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
2231 New function.
2232
68e7fc7a 22332008-03-20 Robert Millan <rmh@aybabtu.com>
2234
2235 Remove 2 TiB limit in ata.mod.
2236 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
2237 (grub_ata_dumpinfo): Print sector count with 0x%llx.
2238 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
2239 grub_uint64_t instead of grub_uint32_t.
2240
38ad2cf5 22412008-03-05 Bean <bean123ch@gmail.com>
2242
2243 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
2244 (grub_multiboot): Set boot device.
2245
2246 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
2247
2b89344e 22482008-03-02 Bean <bean123ch@gmail.com>
2249
2250 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
2251 symlink_buffer.
2252
87a95d1f 22532008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
2254
2255 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
2256 texinfo.tex.
2257
2258 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
2259 modified.
2260
2261 * docs/fdl.texi: New file.
f19dbdb7 2262
87a95d1f 2263 * docs/mdate-sh: New file. Copied from gnulib.
2264 * docs/texinfo.tex: Likewise.
2265
2266 * config.guess: Updated from gnulib.
2267 * install-sh: Likewise.
2268
7dc15d8e 22692008-02-28 Robert Millan <rmh@aybabtu.com>
2270
2271 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
2272 (aout_mod_SOURCES): New variable.
2273 (aout_mod_CFLAGS): Likewise.
2274 (aout_mod_LDFLAGS): Likewise.
2275
2276 * conf/i386-ieee1275.rmk: Likewise.
2277
b00ab696 22782008-02-28 Robert Millan <rmh@aybabtu.com>
2279
2280 * util/update-grub.in: Reorganise terminal validity check. Accept
2281 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
2282 Based on suggestion by Franklin PIAT.
2283
79ca2d78 22842008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
2285
2286 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
2287 function.
2288 * util/getroot.c (grub_util_check_block_device): New function that
2289 returns the given argument if it is a block device and returns NULL else.
2290 * util/grub-probe.c (argument_is_device): New variable.
2291 (probe): Promote device_name from a variable to an argument. Receive
2292 device_name from grub_util_check_block_device() if path is NULL and from
2293 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 2294 (options): Introduce new parameter '-d, --device'.
79ca2d78 2295 (main): Add description of the new parameter to the help screen.
2296 Rename path variable to argument. Set argument_is_device if the '-d'
2297 option is given. Pass argument to probe() depending on
2298 argument_is_device.
2299
0d16e571 23002008-02-24 Bean <bean123ch@gmail.com>
2301
2302 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
2303 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
2304 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
2305 (GRUB_ISO9660_VOLDESC_PART): Likewise.
2306 (GRUB_ISO9660_VOLDESC_END): Likewise.
2307 (grub_iso9660_primary_voldesc): New member escape.
2308 (grub_iso9660_data): New member joliet.
2309 (grub_iso9660_convert_string): New function.
2310 (grub_iso9660_mount): Detect joliet extension.
2311 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
2312 (grub_iso9660_iso9660_label): Likewise.
2313
2314 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
2315 (grub_setup_SOURCES): Add fs/udf.c.
2316 (grub_fstest_SOURCES): Likewise.
2317 (udf_mod_SOURCES): New variable.
2318 (udf_mod_CFLAGS): Likewise.
2319 (udf_mod_LDFLAGS): Likewise.
2320
2321 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
2322 (grub_emu_SOURCES): Likewise.
2323
2324 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2325
2326 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2327
2328 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
2329
2330 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2331
2332 * fs/udf.c: New file.
2333
8a594a17 23342008-02-24 Robert Millan <rmh@aybabtu.com>
2335
2336 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
2337 (normal/lexer.c_DEPENDENCIES): New variables.
2338 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
2339 (normal/lexer.c_DEPENDENCIES): Likewise.
2340 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
2341 (normal/lexer.c_DEPENDENCIES): Likewise.
2342 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
2343 (normal/lexer.c_DEPENDENCIES): Likewise.
2344 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
2345 (normal/lexer.c_DEPENDENCIES): Likewise.
2346 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
2347 (normal/lexer.c_DEPENDENCIES): Likewise.
2348
2dc33c03 23492008-02-23 Robert Millan <rmh@aybabtu.com>
2350
2351 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
2352 since they were intended to be in hex. This didn't break previously
2353 because of a bug in gpt_partition_map_iterate() (see below).
2354
2355 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
2356 when checking the validity of GPT header.
2357 Remove `partno', since it always provides the same information as `i'.
2358
f6f4cfb0 23592008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
2360
2361 * include/grub/efi/time.h: Fix a wrong comment.
2362
79ff665f 23632008-02-19 Pavel Roskin <proski@gnu.org>
2364
2365 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
2366 message.
2367
d38e24c2 23682008-02-19 Bean <bean123ch@gmail.com>
2369
2370 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
2371 (aout_mod_SOURCES): New variable.
2372 (aout_mod_CFLAGS): Likewise.
2373 (aout_mod_LDFLAGS): Likewise.
2374 (_bsd_mod_SOURCES): New variable.
2375 (_bsd_mod_CFLAGS): Likewise.
2376 (_bsd_mod_LDFLAGS): Likewise.
2377 (bsd_mod_SOURCES): New variable.
2378 (bsd_mod_CFLAGS): Likewise.
2379 (bsd_mod_LDFLAGS): Likewise.
2380
2381 * include/grub/aout.h: New file.
2382
2383 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
2384
2385 * include/grub/i386/bsd.h: New file.
2386
2387 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
2388 to make it public.
2389
2390 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
2391 function is called, so that it's possible to change it inside the hook.
2392 (grub_elf64_load): Likewise.
2393 (grub_elf_file): Don't close the file if elf header is not found.
2394 (grub_elf_close): Close the file if grub_elf_file fails (The new
2395 grub_elf_file won't close it).
2396 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
2397 (grub_elf64_size): Likewise.
2398
2399 * kern/i386/loader.S (grub_unix_real_boot): New function.
2400
2401 * loader/aout.c: New file.
2402
2403 * loader/i386/bsd.c: New file.
2404
2405 * loader/i386/bsd_normal.c: New file.
2406
2407 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
2408
2409 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 2410 can test other formats.
d38e24c2 2411
b93bdb0f 24122008-02-19 Robert Millan <rmh@aybabtu.com>
2413
2414 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
2415 (grub_gpt_partition_type_empty): Redefine with macro from
2416 `<grub/gpt_partition.h>'.
2417 (gpt_partition_map_iterate): Adjust partition type comparison.
2418
2419 Export `entry' as partmap-specific `part.data' struct.
2420 (grub_gpt_header, grub_gpt_partentry): Move from here ...
2421
2422 * include/grub/gpt_partition.h (grub_gpt_header)
2423 (grub_gpt_partentry): ... to here (new file).
2424
2425 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
2426
2427 (grub_gpt_partition_type_bios_boot): New const variable, defined
2428 with macro from `<grub/gpt_partition.h>'.
2429
2430 (setup): Replace `first_start' with `embed_region', which keeps
2431 track of the embed region (and is partmap-agnostic).
2432
2433 Replace find_first_partition_start() with find_usable_region(),
2434 which finds a usable region for embedding using partmap-specific
2435 knowledge (supports PC/MSDOS and GPT).
2436
2437 Fix all assumptions that the embed region start at sector 1, using
2438 `embed_region.start' from now on. Similarly, use `embed_region.end'
2439 rather than `first_start' to calculate available size.
2440
2441 In grub_util_info() message, replace "into after the MBR" with an
2442 indication of the specific sector our embed region starts at.
2443
66cb40f6 24442008-02-19 Robert Millan <rmh@aybabtu.com>
2445
2446 * DISTLIST: Replace `commands/ieee1275/halt.c' and
2447 `commands/ieee1275/reboot.c' with `commands/halt.c' and
2448 `commands/reboot.c'.
2449 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
2450 (halt_mod_SOURCES): Likewise.
2451 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
2452 (halt_mod_SOURCES): Likewise.
2453
b7202015 24542008-02-17 Christian Franke <franke@computer.org>
2455
2456 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
2457
32b0fc49 24582008-02-17 Robert Millan <rmh@aybabtu.com>
2459
2460 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
2461 set `first_start' to 0 for non-PC/MSDOS partition maps.
2462
aca63502 24632008-02-16 Robert Millan <rmh@aybabtu.com>
2464
2465 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
2466 do not assume partition map is PC/MSDOS before performing checks that
2467 are specific to that layout.
2468
0de8be86 24692008-02-13 Robert Millan <rmh@aybabtu.com>
2470
2471 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
2472 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
2473 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
2474
c3db8364 24752008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
2476
2477 * configure.ac: Only a cosmetic change on the handling of
2478 -fno-stack-protector.
2479
f714229e 24802008-02-12 Alexandre Boeglin <alex@boeglin.org>
2481
c3db8364 2482 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
2483 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
2484 reboot.c.
f714229e 2485 (grub_install_SOURCES): Add halt.mod and reboot.mod.
2486 (halt_mod_SOURCES): New variable.
2487 (halt_mod_CFLAGS): Likewise.
2488 (halt_mod_LDFLAGS): Likewise.
2489 (reboot_mod_SOURCES): Likewise.
2490 (reboot_mod_CFLAGS): Likewise.
2491 (reboot_mod_LDFLAGS): Likewise.
2492
c3db8364 2493 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
2494 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
2495 reboot.c.
f714229e 2496 (halt_mod_SOURCES): Likewise.
2497 (reboot_mod_SOURCES): Likewise.
2498
c3db8364 2499 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
2500 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 2501 (reboot_mod_SOURCES): Likewise.
2502
2503 * commands/i386/pc/reboot.c: merge this file ...
2504
2505 * commands/ieee1275/reboot.c: ... and this file ...
2506
2507 * commands/reboot.c: ... to this file.
c3db8364 2508 Add some precompiler directive to include the correct header for
2509 each machine.
f714229e 2510
2511 * commands/ieee1275/halt.c: move this file ...
2512
2513 * commands/halt.c: ... to here.
c3db8364 2514 Add some precompiler directive to include the correct header for
2515 each machine.
f714229e 2516
2517 * include/grub/efi/efi.h (grub_reboot): New function declaration.
2518 (grub_halt): Likewise.
2519
2520 * kern/efi/efi.c (grub_reboot): New function.
2521 (grub_halt): Likewise.
2522
c74493e0 25232008-02-12 Robert Millan <rmh@aybabtu.com>
2524
2525 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
2526 /dev (like it is done for /dev/mapper). This doesn't provide support
2527 for EVMS, but at least it is now easy to identify the problem when it
2528 arises.
2529
d0db4b04 25302008-02-11 Robert Millan <rmh@aybabtu.com>
2531
2532 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
2533 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
2534 comparing it with -1, not 0.
2535
bf748642 25362008-02-10 Robert Millan <rmh@aybabtu.com>
2537
2538 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
2539 `disk/lvm.c'.
2540 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2541 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
2542
2543 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
2544 `disk/lvm.c' to the end of the list.
2545 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
2546 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2547
b5db202a 25482008-02-10 Robert Millan <rmh@aybabtu.com>
2549
2550 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
2551 grub_print_error() instead. This will let user know why we're entering
2552 rescue mode.
2553 Based on suggestions from Sam Morris.
2554
83abee31 25552008-02-10 Alexandre Boeglin <alex@boeglin.org>
2556
2557 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
2558 on remaining N args, instead of "--" arg N times.
2559
78d5a08b 25602008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
2561
2562 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
2563 (fill_with_default_glyph): Changed to use unknown_glyph for fill
2564 pattern for unknown glyphs.
2565
68807e5f 25662008-02-09 Robert Millan <rmh@aybabtu.com>
2567
2568 * configure.ac: Probe for `help2man'.
2569 * Makefile.in (builddir): New variable.
2570 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
2571 or otherwise add a few flags/options to it.
2572 (install-local): For every executable utility or script that is
2573 installed, invoke $(HELP2MAN) to install a manpage based on --help
2574 output.
2575
2576 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
2577 that it doesn't prevent --help from working in build tree.
2578
2579 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
2580 with `bug-grub@gnu.org'.
2581 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
2582 * util/update-grub.in (usage): New function.
2583 Implement proper argument check, with support for --help and --version
2584 (as well as existing -y).
2585
25862008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 2587
2588 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
2589 avoid overwriting previous output.
2590 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
2591
c1962162 25922008-02-09 Robert Millan <rmh@aybabtu.com>
2593
2594 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
2595 drawing the menu.
2596
3dac2e3f 25972008-02-09 Robert Millan <rmh@aybabtu.com>
2598
2599 * commands/sleep.c: New file.
2600 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
2601 (sleep_mod_SOURCES): New variable.
2602 (sleep_mod_CFLAGS): Likewise.
2603 (sleep_mod_LDFLAGS): Likewise.
2604
7a634e08 26052008-02-09 Robert Millan <rmh@aybabtu.com>
2606
2607 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
2608 situations in which we can deduce the RAID size and the superblock
2609 doesn't match it.
2610
b92f0c18 26112008-02-09 Robert Millan <rmh@aybabtu.com>
2612
2613 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
2614 and return a grub_diskmemberlist_t composed of LVM physical volumes.
2615 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
2616
2617 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
2618 and return a grub_diskmemberlist_t composed of physical array members.
2619 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
2620
2621 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
2622 prototype.
2623 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
2624 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
2625 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
2626
2627 * util/grub-probe.c (probe): Move partmap probing code from here ...
2628 (probe_partmap): ... to here.
2629 (probe): Use probe_partmap() once for the disk we're probing, and
2630 additionally, when such disk contains a memberlist() struct member,
2631 once for each disk that is contained in the structure returned by
2632 memberlist().
2633
91a4bf68 26342008-02-09 Robert Millan <rmh@aybabtu.com>
2635
2636 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
2637 environment variable to 'all' in order to obtain debug output from
2638 non-util/ code.
2639 * util/i386/pc/grub-setup.c (main): Likewise.
2640
a96f9caa 26412008-02-08 Robert Millan <rmh@aybabtu.com>
2642
2643 * disk/raid.c (grub_raid_scan_device): Check for
2644 `array->device[sb.this_disk.number]' rather than for
2645 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 2646 guaranteed to be accessible.
a96f9caa 2647
b37a9222 26482008-02-08 Robert Millan <rmh@aybabtu.com>
2649
2650 * disk/raid.c: Update copyright.
2651 * fs/cpio.c: Likewise.
2652 * include/grub/raid.h: Likewise.
2653 * loader/i386/pc/multiboot.c: Likewise.
2654 * util/hostfs.c: Likewise.
2655
5626aee1 26562008-02-08 Robert Millan <rmh@aybabtu.com>
2657
2658 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
2659 to a grub_disk_t array.
2660 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
2661 `device[x]'.
2662 (grub_raid_scan_device): Replace `device[x].name' accesses with
2663 `device[x]->name'. Simplify initialization of `array->device[x]'.
2664
554f0187 26652008-02-08 Robert Millan <rmh@aybabtu.com>
2666
2667 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
2668 grub_dprintf() calls.
2669 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
2670 error message.
2671
1ec8425d 26722008-02-07 Christian Franke <franke@computer.org>
2673
2674 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
2675 instead of fseek and ftell to support large files.
2676 (grub_hostfs_read): Likewise.
2677
f2156fda 26782008-02-07 Robert Millan <rmh@aybabtu.com>
2679
2680 Patch from Jeroen Dekkers.
2681 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 2682 failure, since successfully reading all array members might not be
f2156fda 2683 required.
2684
9216e0e7 26852008-02-06 Robert Millan <rmh@aybabtu.com>
2686
2687 * util/grub-probe.c (probe): Simplify partmap probing (with the
2688 assumption that the first word up to the underscore equals to
2689 the module name).
2690
b0dfd29a 26912008-02-06 Christian Franke <franke@computer.org>
2692
2693 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
2694 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
2695 last block of a cpio or tar stream.
2696 Check for "TRAILER!!!" instead of any empty data
2697 block to detect last block of a cpio stream.
2698 (grub_cpio_dir): Fix constness of variable np.
2699 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
2700 cpio or tar trailer is detected. This fixes a crash
2701 on open of a non existing file.
2702
c32865bf 27032008-02-05 Bean <bean123ch@gmail.com>
2704
2705 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
2706 address of entry.
2707 (grub_multiboot_load_elf64): Likewise.
2708 (grub_multiboot): Initialize mbi structure.
2709
2710 * util/grub-fstest.c: Don't include unused header file script.h.
2711
fe6b695a 2712 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 2713 of file.
2714 (grub_fstest_SOURCES): Likewise.
2715
409480b7 27162008-02-05 Robert Millan <rmh@aybabtu.com>
2717
2718 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
2719 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
2720 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
2721 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
2722
2723 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
2724 (translation_table): Replace hardcoded values with macros
2725 provided by `<grub/term.h>'.
2726
2727 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
2728 (keyboard_map): Correct/add a few values, with macros provided
2729 by `<grub/term.h>'.
2730 (keyboard_map_shift): Zero values that don't differ from their
2731 `keyboard_map' equivalents.
2732 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
2733 Discard the second scan code that is always sent by Caps lock.
2734 Only use `keyboard_map_shift' when it provides a non-zero value,
2735 otherwise fallback to `keyboard_map'.
2736
99fadbaa 27372008-02-04 Bean <bean123ch@gmail.com>
2738
2739 * Makefile.in (enable_grub_fstest): New variable.
2740
2741 * conf/common.rmk (grub_fstest_init.lst): New rule.
2742 (grub_fstest_init.h): Likewise.
2743 (grub_fstest_init.c): Likewise.
2744 (util/grub-fstest.c_DEPENDENCIES): New variable.
2745 (grub_fstest_SOURCES): Likewise.
2746
2747 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
2748
2749 * util/grub-fstest.c: New file.
2750
bf567c50 27512008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
2752
2753 Make grub-setup handle a separate root device.
f19dbdb7 2754
bf567c50 2755 * util/i386/pc/grub-setup.c (setup): Always open the root device,
2756 so that the root device can be compared with the destination
2757 device.
2758 When embedding the core image, if the root and destination devices
2759 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
2760 0xFF.
2761 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 2762
9be6b98b 27632008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
2764
2765 Add support for having a grub directory in a different drive. This
2766 is still only the data handling part.
f19dbdb7 2767
9be6b98b 2768 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
2769 (codestart): Save %dh in GRUB_ROOT_DRIVE.
2770 (grub_root_drive): New variable.
2771
2772 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
2773 instead of GRUB_BOOT_DRIVE to construct a device name. Set
2774 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
2775 as it was.
2776
2777 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
2778
2779 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
2780 macro.
2781 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
2782
2783 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
2784 is bogus, because PXE booting does not specify any drive
2785 correctly.
2786
2787 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
2788 am not sure if this is really correct.
2789
2790 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
2791 is always identical to the boot drive when booting from a CD.
2792
2793 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
2794 longer.
2795 (root_drive): New variable.
2796 (real_start): Unconditionally set %dh to ROOT_DRIVE.
2797 (setup_sectors): Push %dx right after popping it, because %dh will
2798 be modified later.
2799 (copy_buffer): Restore %dx.
2800
e0ca0677 28012008-02-03 Robert Millan <rmh@aybabtu.com>
2802
2803 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
2804 use `cdboot.img' for cdrom images.
2805
3b3f6629 28062008-02-03 Robert Millan <rmh@aybabtu.com>
2807
2808 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
2809 only setup gfxterm when `font' command has succeeded.
2810
d42b3672 28112008-02-03 Robert Millan <rmh@aybabtu.com>
2812
2813 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
2814 (grub_rescue_cmd_multiboot_loader)
2815 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
2816
fa370ea6 28172008-02-03 Pavel Roskin <proski@gnu.org>
2818
e0c5dacb 2819 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 2820 %edx and %esi from stack only after grub_gate_a20() is called.
2821 grub_gate_a20() clobbers %edx.
2822
f2a76e1d 28232008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
2824
2825 * configure.ac (AC_INIT): Bumped to 1.96.
2826
2827 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
2828 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
2829 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
2830 video/readers/png.c.
2831
90fd32d1 28322008-02-03 Bean <bean123ch@gmail.com>
9be665dd 2833
2834 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
2835 (cdboot_img_SOURCES): New variable.
2836 (cdboot_img_ASFLAGS): New variable.
2837 (cdboot_img_LDFLAGS): New variable.
2838
2839 * boot/i386/pc/cdboot.S: New file.
2840
2841 * disk/i386/pc/biosdisk.c (cd_start): New variable.
2842 (cd_count): Likewise.
2843 (grub_biosdisk_get_drive): Add support for cd device.
2844 (grub_biosdisk_call_hook): Likewise.
2845 (grub_biosdisk_iterate): Likewise.
2846 (grub_biosdisk_open): Likewise.
2847 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
2848 (grub_biosdisk_rw): Support reading from cd device.
2849 (GRUB_MOD_INIT): Iterate cd devices.
2850
2851 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
2852 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
2853 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
2854
2855 * kern/i386/pc/init.c (make_install_device): Check for cd device.
2856
4020aa53 28572008-02-02 Robert Millan <rmh@aybabtu.com>
2858
2859 * commands/read.c: New file.
2860 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
2861 (read_mod_SOURCES): New variable.
2862 (read_mod_CFLAGS): Likewise.
2863 (read_mod_LDFLAGS): Likewise.
2864
e03a1132 28652008-02-02 Robert Millan <rmh@aybabtu.com>
2866
2867 * normal/main.c (grub_normal_execute): Check for `menu->size' when
2868 determining whether menu has to be displayed.
2869
58c69220 28702008-02-02 Marco Gerards <marco@gnu.org>
2871
2872 * bus/pci.c: New file.
2873
2874 * include/grub/pci.h: Likewise.
2875
2876 * include/grub/i386/pc/pci.h: Likewise.
2877
2878 * commands/lspci.c: Likewise.
2879
2880 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
2881 `lspci.mod'.
2882 (pci_mod_SOURCES): New variable.
2883 (pci_mod_CFLAGS): Likewise.
2884 (pci_mod_LDFLAGS): Likewise.
2885 (lspci_mod_SOURCES): Likewise.
2886 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 2887 (lspci_mod_LDFLAGS): Likewise.
58c69220 2888
c004e1b4 28892008-02-02 Bean <bean123ch@gmail.com>
2890
2891 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
2892 (grub_ufs_get_file_block): Fix indirect block calculation problem.
2893
2894 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
2895 (grub_xfs_btree_node): New structure.
2896 (grub_xfs_btree_root): New structure.
2897 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
2898 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
2899 (GRUB_XFS_EXTENT_BLOCK): Likewise.
2900 (GRUB_XFS_EXTENT_SIZE): Likewise.
2901 (grub_xfs_read_block): Support btree format type.
2902 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
2903 Use directory block as basic unit.
2904
2905 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
2906
2907 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
2908 __attribute__ ((__regparm__ (1))).
2909
f95562bf 29102008-02-01 Robert Millan <rmh@aybabtu.com>
2911
2912 Correct a mistake in previous commit.
2913
2914 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
2915 top.
2916 (normal/command.c_DEPENDENCIES): New variable.
2917
7d31f41f 29182008-02-01 Robert Millan <rmh@aybabtu.com>
2919
2920 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
2921 top.
2922 (normal/command.c_DEPENDENCIES): New variable.
2923 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
2924 * conf/i386-ieee1275.rmk: Likewise.
2925 * conf/i386-linuxbios.rmk: Likewise.
2926 * conf/i386-pc.rmk: Likewise.
2927 * conf/sparc64-ieee1275.rmk: Likewise.
2928 * conf/powerpc-ieee1275.rmk: Likewise.
2929 (grub_emu_SOURCES): Add `fs/fshelp.c'.
2930
2931 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
2932
60b6be74 29332008-02-01 Robert Millan <rmh@aybabtu.com>
2934
2935 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
2936 call at beginning of function.
2937
078522ab 29382008-01-31 Pavel Roskin <proski@gnu.org>
2939
2940 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 2941 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
2942 (grub_mkrescue_SOURCES): Likewise.
078522ab 2943 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
2944
ccaa8a5f 29452008-01-30 Robert Millan <rmh@aybabtu.com>
2946
2947 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
2948 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
2949 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
2950 (grub_probe_SOURCES): ... to here.
2951
2952 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
2953 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
2954 * conf/i386-ieee1275.rmk: Likewise.
2955 * conf/i386-linuxbios.rmk: Likewise.
2956 * conf/powerpc-ieee1275.rmk: Likewise.
2957
ae5a9cd7 29582008-01-30 Tristan Gingold <gingold@free.fr>
2959
2960 * kern/rescue.c: Silently accept empty lines.
2961
70bc2ef2 29622008-01-29 Bean <bean123ch@gmail.com>
2963
2964 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
2965 (real_code_2): Code cleanup and change comment style.
2966 (move_memory): Avoid using 32-bit address mode.
2967
6a4d50ea 29682008-01-29 Bean <bean123ch@gmail.com>
2969
2970 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
2971 (png_mod_SOURCES): New variable.
2972 (png_mod_CFLAGS): Likewise.
2973 (png_mod_LDFLAGS): Likewise.
2974
2975 * video/readers/png.c: New file.
2976
11cc30ac 29772008-01-28 Robert Millan <rmh@aybabtu.com>
2978
2979 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
2980 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
2981 `ifndef GRUB_MOD_GAP' hack.
2982 * util/elf/grub-mkimage.c (add_segments): Likewise.
2983
3abc589f 29842008-01-27 Robert Millan <rmh@aybabtu.com>
2985
2986 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
2987 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 2988 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 2989
e1907778 29902008-01-27 Robert Millan <rmh@aybabtu.com>
2991
2992 Get grub-emu to build again (including parallel builds).
2993
2994 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
2995 Split into ...
2996 (util/grub-emu.c_DEPENDENCIES): ... this, ...
2997 (normal/execute.c_DEPENDENCIES): ... this, ...
2998 (grub-emu_DEPENDENCIES): ... and this.
2999
3000 * conf/i386-efi.rmk: Likewise.
3001 * conf/i386-linuxbios.rmk: Likewise.
3002 * conf/i386-ieee1275.rmk: Likewise.
3003 * conf/powerpc-ieee1275.rmk: Likewise.
3004 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
3005
2216b101 30062008-01-27 Robert Millan <rmh@aybabtu.com>
3007
3008 * NEWS: Add a few items.
3009
f75172d9 30102008-01-27 Robert Millan <rmh@aybabtu.com>
3011
3012 Fix parallel builds with grub-emu. Based on earlier commit for
3013 grub-probe and grub-setup.
3014
3015 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
3016 (util/grub-emu.c_DEPENDENCIES): ... this.
3017 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
3018 (util/grub-emu.c_DEPENDENCIES): ... this.
3019 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
3020 (util/grub-emu.c_DEPENDENCIES): ... this.
3021 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
3022 (util/grub-emu.c_DEPENDENCIES): ... this.
3023 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
3024 (util/grub-emu.c_DEPENDENCIES): ... this.
3025
3f51de77 30262008-01-27 Pavel Roskin <proski@gnu.org>
3027
3028 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
3029 to create a gap between _end and the modules added to the image
3030 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
3031 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
3032 * util/elf/grub-mkimage.c (add_segments): Likewise.
3033
2033f53e 30342008-01-26 Pavel Roskin <proski@gnu.org>
3035
3036 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
3037 just return an error.
3038
22da1f6f 30392008-01-26 Bean <bean123ch@gmail.com>
3040
3041 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
3042 (grub_reiserfs_get_item): Save offset of the next item.
3043 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
3044
2a9525e6 30452008-01-25 Robert Millan <rmh@aybabtu.com>
3046
3047 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
3048 make all filesystem sources appear together (possibly fixing omissions
3049 while at it).
3050 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3051 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3052 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3053 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3054
3055 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
3056 add `kern/file.c'.
3057 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
3058 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
3059 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
3060 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
3061
3062 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
3063 (probe): Add a sanity check to make sure of our ability to read
3064 requested files when probing for filesystem type.
3065
3066 * genmk.rb: Update copyright year (2007).
3067
3068 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
3069 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
3070 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
3071 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
3072 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
3073 : Remove function prototypes.
3074
b95f71b5 30752008-01-25 Robert Millan <rmh@aybabtu.com>
3076
3077 Revert my previous commits (based on wrong assumption of how grub_errno
3078 works).
3079
fe6b695a 3080 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 3081 * kern/file.c (grub_file_open): Likewise.
3082
d08bbb49 30832008-01-24 Pavel Roskin <proski@gnu.org>
3084
3085 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
3086 that hang if GRUB tries to setup colors.
3087 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
3088 colors for firmwares that don't support it.
3089 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
3090 Recognize Open Hack'Ware, set flags to work around its
3091 limitations.
3092
605e36ed 30932008-01-24 Robert Millan <rmh@aybabtu.com>
3094
3095 * kern/file.c (grub_file_open): Do not account previous failures of
3096 unrelated functions when grub_errno is checked for.
3097 Reported by Oleg Strikov.
3098
bac332a1 30992008-01-24 Bean <bean123ch@gmail.com>
3100
3101 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
3102 (grub_ufs_sblock): New member volume name.
3103 (grub_ufs_find_file): Fix string copy bug.
3104 (grub_ufs_label): Implement this function properly.
3105
3106 * fs/hfs.c (grub_hfs_cnid_type): New enum.
3107 (grub_hfs_iterate_records): Use the correct file number for extents
3108 and catalog file. Fix problem in next index calculation.
3109 (grub_hfs_find_node): Replace recursive function call with loop.
3110 (grub_hfs_iterate_dir): Replace recursive function call with loop.
3111
15c80c09 31122008-01-23 Robert Millan <rmh@aybabtu.com>
3113
3114 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
3115 `<grub/symbol.h>' and `<grub/multiboot.h>'.
3116 (grub_multiboot2_real_boot): New function prototype.
3117
3118 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
3119 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
3120
3121 * kern/i386/ieee1275/init.c (grub_os_area_addr)
3122 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
3123
305338fd 31242008-01-23 Robert Millan <rmh@aybabtu.com>
3125
3126 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
3127 #ifdef'ed out grub_printf().
3128
3ea52685 31292008-01-23 Robert Millan <rmh@aybabtu.com>
3130
3131 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
3132 grub_dprintf calls, since they make "debug=all" mode unusable.
3133 (grub_console_checkkey): Likewise.
3134
5882ae4b 31352008-01-23 Robert Millan <rmh@aybabtu.com>
3136
3137 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
3138 `term/i386/pc/at_keyboard.c'.
3139 (pkglib_MODULES): Add `serial.mod'.
3140 (serial_mod_SOURCES): New variable.
3141 (serial_mod_CFLAGS): Likewise.
3142 (serial_mod_LDFLAGS): Likewise.
3143
3144 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
3145 `<grub/powerpc/ieee1275/console.h>'.
3146 (grub_keyboard_controller_init): New function prototype.
3147 (grub_console_checkkey): Likewise.
3148 (grub_console_getkey): Likewise.
3149
3150 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
3151 keyboard on i386.
3152
3153 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
3154 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
3155
06ab5303 31562008-01-23 Robert Millan <rmh@aybabtu.com>
3157
3158 * kern/i386/pc/init.c (make_install_device): When memdisk image is
3159 present, "(memdisk)/boot/grub" becomes the default prefix.
3160
3161 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
3162 a memdisk tarball with all the modules. Add --overlay=DIR option that
3163 allows users to overlay additional files into the image.
3164
dbb475a4 31652008-01-23 Robert Millan <rmh@aybabtu.com>
3166
3167 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
3168 and `machine/memory.h'.
3169 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
3170 (_multiboot_mod_SOURCES): New variable.
3171 (_multiboot_mod_CFLAGS): Likewise.
3172 (_multiboot_mod_LDFLAGS): Likewise.
3173 (multiboot_mod_SOURCES): Likewise.
3174 (multiboot_mod_CFLAGS): Likewise.
3175 (multiboot_mod_LDFLAGS): Likewise.
3176
3177 * include/grub/i386/ieee1275/loader.h: New file.
3178
3179 * include/grub/i386/ieee1275/machine.h: Likewise.
3180
3181 * include/grub/i386/ieee1275/memory.h: Likewise.
3182
3183 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
3184 variable declaration.
3185 (grub_os_area_size): Likewise.
3186
3187 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
3188 (grub_lower_mem, grub_upper_mem): New variables.
3189 (grub_stop_floppy): New function (just to make
3190 grub_multiboot2_real_boot() happy).
3191
3192 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
3193 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
3194 (grub_stop): New function.
3195 Include `"../realmode.S"' and `"../loader.S"'.
3196
3197 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
3198 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
3199
3200 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
3201 rely on grub_multiboot2_real_boot() for final boot.
3202
25638629 32032008-01-22 Robert Millan <rmh@aybabtu.com>
3204
3205 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
3206 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
3207 device that doesn't look like an SD card.
3208 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
3209 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
3210 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
3211 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
3212 found.
3213
9dad816d 32142008-01-22 Robert Millan <rmh@aybabtu.com>
3215
3216 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
3217 avoid claiming over our own code.
3218
34842f2d 32192008-01-22 Bean <bean123ch@gmail.com>
3220
3221 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
3222 (jpeg_mod_SOURCES): New variable.
3223 (jpeg_mod_CFLAGS): Likewise.
3224 (jpeg_mod_LDFLAGS): Likewise.
3225
3226 * video/readers/jpeg.c : New file.
3227
44023a28 32282008-01-22 Bean <bean123ch@gmail.com>
3229
3230 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
3231 there are no more items.
3232
bc2d8ac6 32332008-01-21 Robert Millan <rmh@aybabtu.com>
3234
3235 * kern/mm.c (grub_mm_init_region): Improve debug message.
3236
261bd4bc 32372008-01-21 Robert Millan <rmh@aybabtu.com>
3238
3239 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
3240 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
3241 address.
3242 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
3243 a C macro.
3244 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
3245 Indicates start of upper memory.
3246 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
3247 (generate_image): Abort when image size is big enough to corrupt
3248 upper memory.
3249
3250 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
3251 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
3252 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
3253 instead of hardcoding 0xA0000.
3254 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
3255 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
3256 instead of hardcoding 0xA0000.
3257
f970b55e 32582008-01-21 Robert Millan <rmh@aybabtu.com>
3259
3260 * disk/memdisk.c (memdisk_size): New variable.
3261 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
3262 `memdisk_size'.
3263 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
3264 image to dynamic memory.
3265 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
3266 `memdisk_size'. Free memdisk block.
3267
1a8b0526 32682008-01-21 Robert Millan <rmh@aybabtu.com>
3269
3270 Fix detection of very small filesystems (like tar).
3271
3272 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
3273 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
3274 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
3275 a problem with this disk).
3276
6e9b4aab 32772008-01-21 Robert Millan <rmh@aybabtu.com>
3278
3279 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
3280 on grub_biosdisk_rw_standard() error.
3281
0d8837b2 32822008-01-21 Robert Millan <rmh@aybabtu.com>
3283
3284 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
3285 recent changes.
3286 * kern/elf.c: Likewise.
3287 * kern/ieee1275/ieee1275.c: Likewise.
3288 * kern/powerpc/ieee1275/openfw.c: Likewise.
3289 * term/ieee1275/ofconsole.c: Likewise.
3290
ffd36e34 32912008-01-21 Robert Millan <rmh@aybabtu.com>
3292
3293 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
3294
3f0093d0 3295 * include/grub/kernel.h (grub_arch_memdisk_addr)
3296 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 3297
3f0093d0 3298 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
3299 (grub_arch_memdisk_size): ... to here.
ffd36e34 3300
6c391b21 33012008-01-21 Robert Millan <rmh@aybabtu.com>
3302
3303 Mostly based on bugfix from Bean.
3304
3305 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
3306 attribute with hook() parameter.
3307 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
3308 declaration.
3309 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
3310 attribute with hook() parameter.
3311 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
3312 declaration.
3313
55a581dc 33142008-01-21 Robert Millan <rmh@aybabtu.com>
3315
3316 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
3317 (pkglib_MODULES): Add `memdisk.mod'.
3318 (memdisk_mod_SOURCES): New variable.
3319 (memdisk_mod_CFLAGS): Likewise.
3320 (memdisk_mod_LDFLAGS): Likewise.
3321
3322 * disk/memdisk.c: New file.
3323
3324 * include/grub/disk.h (grub_disk_dev_id): Add
3325 `GRUB_DISK_DEVICE_MEMDISK_ID'.
3326
3327 * include/grub/i386/pc/kernel.h
3328 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
3329 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
3330 (grub_kernel_image_size): New variable declaration.
3331 (grub_total_module_size): Likewise.
3332 (grub_memdisk_image_size): Likewise.
3333
3334 * include/grub/i386/pc/memory.h
3335 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
3336
3337 * include/grub/kernel.h: Include `<grub/symbol.h>'.
3338 (grub_arch_memdisk_addr): New variable declaration.
3339 (grub_arch_memdisk_size): Likewise.
3340
3341 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
3342 (grub_arch_memdisk_size): Likewise.
3343
3344 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
3345 (codestart): Replace hardcoded `0x100000' with
3346 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
3347
3348 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
3349 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
3350 not NULL, append the contents of the file it refers to, at the end of
3351 the compressed kernel image. Initialize `grub_memdisk_image_size'
3352 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
3353 (options): Add "memdisk"|'m' option.
3354 (main): Parse --memdisk|-m option, and pass user-provided path as
3355 parameter to generate_image().
3356
3d7f54c9 33572008-01-20 Robert Millan <rmh@aybabtu.com>
3358
3359 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
3360 grub_dprintf() calls from here ...
3361 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
3362
0bf74728 33632008-01-20 Robert Millan <rmh@aybabtu.com>
3364
3365 Fix detection of "real mode" when /options/real-mode? doesn't exist.
3366
3367 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
3368 declaration.
3369 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
3370 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
3371 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 3372 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 3373 property).
3374 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
3375 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
3376
33bf70a7 33772008-01-19 Robert Millan <rmh@aybabtu.com>
3378
fe6b695a 3379 Get rid of confusing function (superseded by
33bf70a7 3380 `grub_ieee1275_get_integer_property')
3381 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
3382 prototype.
3383 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
3384 function.
3385 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
3386 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 3387 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 3388
e2da7d26 33892008-01-19 Robert Millan <rmh@aybabtu.com>
3390
3391 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
3392 command after "shut-down", since implementations differ on which
3393 the command for halt is.
3394
59f1fd8d 33952008-01-19 Robert Millan <rmh@aybabtu.com>
3396
3397 * include/grub/i386/linuxbios/console.h: Add header protection.
3398 (grub_keyboard_controller_init): New function prototype.
3399 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
3400 (KEYBOARD_COMMAND_READ): Likewise.
3401 (KEYBOARD_COMMAND_WRITE): Likewise.
3402 (KEYBOARD_SCANCODE_SET1): Likewise.
3403 (grub_keyboard_controller_write): New function.
3404 (grub_keyboard_controller_read): Likewise.
3405 (grub_keyboard_controller_init): Likewise.
3406
3407 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
3408 (grub_console_init): On coreboot/LinuxBIOS, call
3409 grub_keyboard_controller_init().
3410
5f5a7c15 34112008-01-19 Robert Millan <rmh@aybabtu.com>
3412
3413 PowerPC changes provided by Pavel Roskin.
3414
3415 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
3416 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
3417 don't rely on cmain() doing it.
3418 * kern/i386/ieee1275/startup.S (_start): Store %eax in
3419 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
3420
1210e168 34212008-01-16 Robert Millan <rmh@aybabtu.com>
3422
3423 * include/grub/i386/linuxbios/memory.h
3424 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
3425 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
3426 receive `table_header' as argument. Instead, probe for it in the
3427 known memory ranges where it can be present.
3428 (grub_available_iterate): Do not pass a fixed `table_header' address
3429 to grub_linuxbios_table_iterate().
3430
3d04eab8 34312008-01-15 Robert Millan <rmh@aybabtu.com>
3432
3433 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
3434 * conf/i386-ieee1275.rmk: New file.
3435 * include/grub/i386/ieee1275/console.h: Likewise.
3436 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
3437 * include/grub/i386/ieee1275/kernel.h: Likewise.
3438 * include/grub/i386/ieee1275/time.h: Likewise.
3439 * kern/i386/ieee1275/init.c: Likewise.
3440 * kern/i386/ieee1275/startup.S: Likewise.
3441
d1bc1b73 34422008-01-15 Robert Millan <rmh@aybabtu.com>
3443
3444 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
3445 when pointers are 32-bit (but still do set it to one when they are
3446 64-bit).
3447
66a65807 34482008-01-15 Robert Millan <rmh@aybabtu.com>
3449
3450 * include/grub/ieee1275/ieee1275.h
3451 (grub_ieee1275_get_integer_property): New function prototype.
3452
3453 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
3454 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 3455 grub_ieee1275_get_property() to handle endianness.
66a65807 3456
3457 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
3458 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 3459 where appropriate.
66a65807 3460 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
3461 (grub_map): Likewise.
3462 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
3463
a83ccafd 34642008-01-15 Bean <bean123ch@gmail.com>
3465
3466 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
3467 (grub_script_execute_cmdline): Reset grub_errno.
3468
3469 * normal/main.c (read_config_file): Reset grub_errno.
3470
3471 * normal/parse.y (script_init): New.
3472 (script): Move function and menuentry here.
3473 (delimiter): New.
3474 (command): Add delimiter at the end of command.
3475 (commands): Adjust to match the new command.
3476 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 3477 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 3478 (if): Use the new commands.
3479
3480 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
3481
df6ecfc6 34822008-01-15 Robert Millan <rmh@aybabtu.com>
3483
3484 * normal/menu.c (run_menu): Move timeout message from here ...
3485 (print_timeout): ... to here.
3486 (run_menu): Use print_timeout() once during initial draw to print
3487 the whole message, and again in every clock tick to update only
3488 the number of seconds.
3489
87ae25eb 34902008-01-15 Robert Millan <rmh@aybabtu.com>
3491
3492 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
3493 actual size of `available' from grub_ieee1275_get_property(), and
3494 restrict parsing to that bound.
3495
47bf09a4 34962008-01-15 Christian Franke <franke@computer.org>
3497
3498 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
3499 (argp_program_version): Remove variable.
3500 (argp_program_bug_address): Likewise.
3501 (options): Convert from struct argp_option to struct option.
3502 (struct arguments): Remove.
3503 (parse_opt): Remove.
3504 (usage): New function.
3505 (main): Replace struct args members by simple variables.
3506 Replace argp_parse() by getopt_long().
3507 Add switch to evaluate options.
3508 Add missing "(...)" around root_dev in prefix string.
3509
c86f1469 35102008-01-14 Robert Millan <rmh@aybabtu.com>
3511
3512 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
3513 for grub_ieee1275_exit(), in order to improve portability.
3514
e622c559 35152008-01-14 Robert Millan <rmh@aybabtu.com>
3516
3517 * util/grub.d/10_linux.in (prefix): Define.
3518 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
3519
44cb1ec8 35202008-01-13 Pavel Roskin <proski@gnu.org>
3521
3522 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
3523 grub_errno if no errors have been detected.
3524
1eb8c802 35252008-01-12 Robert Millan <rmh@aybabtu.com>
3526
3527 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
3528 (grub_util_get_dev_abstraction): New function prototype.
3529
3530 * util/getroot.c: Include `<grub/util/getroot.h>'
3531 (grub_util_get_grub_dev): Move detection of abstraction type to ...
3532 (grub_util_get_dev_abstraction): ... here (new function).
3533
3534 * util/grub-probe.c: Convert PRINT_* to an enum. Add
3535 `PRINT_ABSTRACTION'.
3536 (probe): Probe for abstraction type when requested.
3537 (main): Understand `--target=abstraction'.
3538
3539 * util/i386/efi/grub-install.in: Add abstraction module to core
3540 image when it is found to be necessary.
3541 * util/i386/pc/grub-install.in: Likewise.
3542 * util/powerpc/ieee1275/grub-install.in: Likewise.
3543
3544 * util/update-grub_lib.in (font_path): Return system path without
3545 converting to GRUB path.
3546 * util/update-grub.in: Convert system path returned by font_path()
3547 to a GRUB path. Use `grub-probe -t abstraction' to determine what
3548 abstraction module is needed for loading fonts (if any). Export
3549 that as `GRUB_PRELOAD_MODULES'.
3550 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
3551 insmod commands).
3552
52bd3de9 35532008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
3554
3555 Remove some unused code from reiserfs.
f19dbdb7 3556
52bd3de9 3557 * fs/reiserfs.c (struct grub_reiserfs_key)
3558 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
3559 (struct grub_reiserfs_node_body): Removed.
3560 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
3561 Likewise.
3562 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
3563 Likewise.
3564 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
3565 Likewise.
3566 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
3567 Likewise.
3568 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
3569 Likewise.
3570 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
3571 Likewise.
3572 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
3573 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
3574 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
3575
2f80039d 35762008-01-10 Robert Millan <rmh@aybabtu.com>
3577
3578 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
3579 Determines if a file is garbage left by packaging systems, etc.
3580 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
3581 for processing /etc/grub.d scripts.
3582 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
3583 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
3584 as a condition for processing Linux images.
3585
87888032 35862008-01-10 Pavel Roskin <proski@gnu.org>
3587
3588 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
3589 to compile reiserfs.c on PowerPC.
3590
7e54fced 35912008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 3592
3593 * kern/device.c (grub_device_iterate): Do not abort device iteration
3594 when one of the devices cannot be opened.
3595 * kern/disk.c (grub_disk_open): Do not account previous failures of
3596 unrelated functions when grub_errno is checked for.
3597
5aa541e6 35982008-01-08 Robert Millan <rmh@aybabtu.com>
3599
3600 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
3601 `! grub_linux_is_bzimage', change order of address comparison to make
3602 it more intuitive, and improve "too big zImage" error message.
3603
7076340d 36042008-01-08 Robert Millan <rmh@aybabtu.com>
3605
3606 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
3607 `$(update-grub_DATA)'.
3608 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
3609 targets.
3610
9ca70333 36112008-01-07 Robert Millan <rmh@aybabtu.com>
3612
3613 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
3614 which instruction is modified by grub-setup during installation
3615 (since it wasn't obvious by only looking at this file).
3616
38ccf575 36172008-01-07 Robert Millan <rmh@aybabtu.com>
3618
3619 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
3620 listing actual TODO items.
3621
f5db4291 36222008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
3623
868967cf 3624 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
3625 correctly.
3626 (grub_reiserfs_get_key_offset): Likewise.
3627 (grub_reiserfs_set_key_offset): Likewise.
3628 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 3629 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 3630
3631 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
3632 better to remove the bitfield version completely.
f19dbdb7 3633
868967cf 36342008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 3635
f5db4291 3636 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
3637 allocated from the heap, due to the fshelp implementation.
3638 (grub_reiserfs_dir): Free NODE, due to the same reason.
3639
492e6d9d 36402008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
3641
3642 Mostly from Vincent Pelletier:
f19dbdb7 3643
492e6d9d 3644 * fs/reiserfs.c: New file.
f19dbdb7 3645
492e6d9d 3646 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
3647 (reiserfs_mod_SOURCES): New variable.
3648 (reiserfs_mod_CFLAGS): Likewise.
3649 (reiserfs_mod_LDFLAGS): Likewise.
3650
3651 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
3652 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
3653 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
3654 normal/color.c.
3655
9ce3e7c1 36562008-01-06 Robert Millan <rmh@aybabtu.com>
3657
3658 * normal/color.c: Remove `<grub/env.h>'.
3659
f3b58148 36602008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
3661
3662 * include/grub/normal.h: Include <grub/env.h>.
3663
7ac3bcfa 36642008-01-05 Robert Millan <rmh@aybabtu.com>
3665
3666 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
3667 usage example with `(hd0,1)'.
fb358190 3668 Reported by Samuel Thibault.
7ac3bcfa 3669
c8ee99d7 36702008-01-05 Robert Millan <rmh@aybabtu.com>
3671
3672 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
3673 (grub_linux_boot_zimage): Rename to ...
3674 (grub_linux_boot): ... this.
3675 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
3676 (grub_linux_boot_zimage): Conditionalize zImage copy.
3677
3678 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
3679 (grub_linux_boot_bzimage): Remove prototype.
3680 (grub_linux_boot_zimage): Rename to ...
3681 (grub_linux_boot): ... this.
3682
3683 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
3684 (grub_linux_boot): Remove function.
3685
0ece25b1 36862008-01-05 Robert Millan <rmh@aybabtu.com>
3687
3688 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
3689 (grub_env_write_color_highlight): Likewise.
3690 (grub_wait_after_message): Likewise.
3691
3692 * normal/color.c: New file.
3693
3694 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
3695 (normal_mod_DEPENDENCIES): Likewise.
3696
3697 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
3698 (normal_mod_DEPENDENCIES): Likewise.
3699
3700 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
3701 (normal_mod_DEPENDENCIES): Likewise.
3702
3703 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
3704 (normal_mod_DEPENDENCIES): Likewise.
3705
3706 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
3707 for waiting after a message is printed.
3708 * normal/main.c (read_config_file): Likewise.
3709 (grub_normal_init): Register grub_env_write_color_normal() and
3710 grub_env_write_color_highlight() hooks. Mark `color_normal' and
3711 `color_highlight' variables as global.
3712
3713 * normal/menu.c (grub_wait_after_message): New function.
3714 (grub_color_menu_normal): New variable. Replaces ...
3715 (GRUB_COLOR_MENU_NORMAL): ... this macro.
3716 (grub_color_menu_highlight): New variable. Replaces ...
3717 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
3718 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
3719 `GRUB_TERM_COLOR_STANDARD'.
3720 (print_message): Use `grub_setcolorstate' to reload colors. Rename
3721 `normal_code' and `highlight_code' to `old_color_normal' and
3722 `old_color_highlight', respectively.
3723 (grub_menu_init_page): Update colors when drawing the menu, based on
3724 `menu_color_normal' and `menu_color_highlight' variables.
3725 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
3726 a message is printed.
3727
182dd4e5 37282008-01-05 Robert Millan <rmh@aybabtu.com>
3729
3730 * kern/env.c (grub_env_context_open): Propagate hooks for global
3731 variables to new context.
3732
3733 * kern/main.c (grub_set_root_dev): Export `root' variable.
3734
ddf8f6ad 37352008-01-05 Robert Millan <rmh@aybabtu.com>
3736
3737 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 3738 discs unconditionally, since udev and others have options to provide
ddf8f6ad 3739 them.
3740
d8b43d9b 37412008-01-05 Robert Millan <rmh@aybabtu.com>
3742
3743 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
3744
2bff2de3 37452008-01-04 Christian Franke <franke@computer.org>
3746
3747 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
3748 of eisa_mmap.
3749
97eab917 37502008-01-03 Pavel Roskin <proski@gnu.org>
3751
3752 * kern/i386/linuxbios/init.c: Put "void" to all function
3753 declarations with no arguments.
3754 * kern/powerpc/ieee1275/init.c: Likewise.
3755 * term/i386/pc/at_keyboard.c: Likewise.
3756 * term/i386/pc/vga_text.c: Likewise.
3757 * util/grub-mkdevicemap.c: Likewise.
3758
b9416d00 37592008-01-02 Robert Millan <rmh@aybabtu.com>
3760
3761 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
3762 message when loaded image is out of bounds.
3763 (grub_multiboot_load_elf64): Likewise.
3764
92695df9 37652008-01-02 Pavel Roskin <proski@gnu.org>
3766
3767 * util/grub.d/10_linux.in: Try version without ".old" when
3768 looking for initrd. It's better to use initrd from the newer
3769 kernel of the same version than no initrd at all.
3770
d98d9cad 37712008-01-01 Robert Millan <rmh@aybabtu.com>
3772
3773 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
3774
dbfdce36 37752008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
3776
f19dbdb7 3777 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 3778 grub_video_get_active_render_target.
3779 (grub_video_adapter): Added unmap_color and get_active_render_target.
3780
f19dbdb7 3781 * video/video.c: Added grub_video_unmap_color and
dbfdce36 3782 grub_video_get_active_render_target.
3783 (grub_video_get_info): Changed method to accept NULL pointer as an
3784 argument to allow detection of active video adapter.
3785
3786 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
3787 grub_video_vbe_unmap_color_int.
3788 Added grub_video_vbe_unmap_color and
3789 grub_video_vbe_get_active_render_target.
3790 (grub_video_vbe_adapter): Added unmap_color and
3791 get_active_render_target.
3792
f19dbdb7 3793 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 3794 with grub_video_vbe_unmap_color_int.
3795
3796 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
3797 (DEFAULT_NORMAL_COLOR): Likewise.
3798 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
3799 (DEFAULT_FG_COLOR): Removed.
3800 (DEFAULT_BG_COLOR): Likewise.
3801 (DEFAULT_CURSOR_COLOR): Changed value.
3802 (grub_virtual_screen): Added standard_color_setting,
3803 normal_color_setting, highlight_color_setting and term_color.
3804 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
3805 (bitmap_width): Added.
3806 (bitmap_height): Likewise.
3807 (bitmap): Likewise.
3808 (set_term_color): Likewise.
3809 (grub_virtual_screen_setup): Changed to use new terminal coloring
3810 settings.
3811 (grub_gfxterm_init): Added init for bitmap.
3812 (grub_gfxterm_fini): Added destroy for bitmap.
3813 (redraw_screen_rect): Updated to use background bitmap and new
3814 terminal coloring.
3815 (scroll_up): Added optimization for case when there is no bitmap.
3816 (grub_gfxterm_cls): Fixed to use correct background color.
3817 (grub_virtual_screen_setcolorstate): Changed to use new terminal
3818 coloring.
3819 (grub_virtual_screen_setcolor): Likewise.
3820 (grub_virtual_screen_getcolor): Added.
3821 (grub_gfxterm_background_image_cmd): Likewise.
3822 (grub_video_term): Added setcolor and getcolor.
3823 (MOD_INIT): Added registration of background_image command.
3824 (MOD_TERM): Added unregistration for background_image command.
3825
c3c20931 38262007-12-30 Pavel Roskin <proski@gnu.org>
3827
3828 * loader/multiboot_loader.c: Fix multiboot command
3829 unregistration. Fix all typos in the word "multiboot".
3830
df266716 38312007-12-29 Pavel Roskin <proski@gnu.org>
94239199 3832
3833 * util/grub.d/10_linux.in: Refactor search for initrd. Add
3834 support for initrd names used in Fedora.
3835
fc6e896c 38362007-12-26 Bean <bean123ch@gmail.com>
3837
3838 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
3839 (cpio_mod_SOURCES): New variable.
3840 (cpio_mod_CFLAGS): Likewise.
3841 (cpio_mod_LDFLAGS): Likewise.
3842
3843 * fs/cpio.c: New file.
3844
3845 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
3846
3847 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3848
3849 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3850
3851 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3852
533110ad 38532007-12-25 Robert Millan <rmh@aybabtu.com>
3854
3855 * include/grub/term.h (struct grub_term): Add `getcolor' function.
3856 (grub_getcolor): New function.
3857
3858 * kern/term.c (grub_getcolor): New function.
3859 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
3860 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
3861 (print_entry): Set normal and highlight colors to
3862 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
3863 respectively, before printing and restore them to old
3864 values afterwards.
3865 (grub_menu_init_page): Likewise. Fill an additional colored space
3866 that would otherwise be left blank.
3867
3868 * term/efi/console.c (grub_console_getcolor): New function.
3869 (struct grub_console_term.getcolor): New variable.
3870 * term/i386/pc/console.c (grub_console_getcolor): New function.
3871 (struct grub_console_term.getcolor): New variable.
3872 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
3873 (struct grub_console_term.getcolor): New variable.
3874
3875 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
3876 (struct grub_console_term.setcolor): Remove variable.
3877 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
3878 (struct grub_console_term.setcolor): Remove variable.
3879 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
3880 (struct grub_console_term.setcolor): Remove variable.
3881 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
3882 (struct grub_console_term.setcolor): Remove variable.
3883
4931827f 38842007-12-25 Robert Millan <rmh@aybabtu.com>
3885
3886 * configure.ac: Search for possible unifont.hex locations, and
3887 define UNIFONT_HEX if found.
3888
3889 * Makefile.in (UNIFONT_HEX): Define variable.
3890 (DATA): Rename to ...
3891 (PKGLIB): ... this. Update all users.
3892 (PKGDATA): New variable.
3893 (pkgdata_IMAGES): Rename to ...
3894 (pkglib_IMAGES): ... this. Update all users.
3895 (pkgdata_MODULES): Rename to ...
3896 (pkglib_MODULES): ... this. Update all users.
3897 (pkgdata_PROGRAMS): Rename to ...
3898 (pkglib_PROGRAMS): ... this. Update all users.
3899 (pkgdata_DATA): Rename to ...
3900 (pkglib_DATA): ... this. Update all users.
3901 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
3902 (unicode.pff, ascii.pff): New rules.
3903 (all-local): Add `$(PKGDATA)' dependency.
3904 (install-local): Process `$(PKGDATA)'.
3905
3906 * util/update-grub_lib.in (font_path): Search for *.pff files in
3907 a few more locations, including `${pkgdata}'.
3908
57e57e31 39092007-12-23 Robert Millan <rmh@aybabtu.com>
3910
3911 Patch from Bean <bean123ch@gmail.com>:
3912 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
3913 `size'.
3914
4bc72aa9 39152007-12-21 Bean <bean123ch@gmail.com>
3916
3917 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
3918 (ntfscomp_mod_SOURCES): New variable.
3919 (ntfscomp_mod_CFLAGS): Likewise.
3920 (ntfscomp_mod_LDFLAGS): Likewise.
3921
3922 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
3923 (grub_probe_SOURCES): Likewise.
3924 (grub_emu_SOURCES): Likewise.
3925
3926 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
3927 (grub_emu_SOURCES): Likewise.
3928
3929 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
3930 (grub_emu_SOURCES): Likewise.
3931
3932 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
3933 (grub_emu_SOURCES): Likewise.
3934
3935 * fs/ntfs.c (grub_ntfscomp_func): New variable.
3936 (read_run_list): Renamed to grub_ntfs_read_run_list.
3937 (decomp_nextvcn): Moved to ntfscomp.c.
3938 (decomp_getch): Likewise.
3939 (decomp_get16): Likewise.
3940 (decomp_block): Likewise.
3941 (read_block): Likewise.
3942 (read_data): Partially moved to ntfscomp.c.
3943 (fixup): Change unsigned to grub_uint16_t.
3944 (read_mft): Change unsigned long to grub_uint32_t.
3945 (read_attr): Likewise.
3946 (read_data): Likewise.
3947 (read_run_data): Likewise.
3948 (read_run_list): Likewise.
3949 (read_mft): Likewise.
3950
3951 * fs/ntfscomp.c: New file.
3952
3953 * include/grub/ntfs.h: New file.
3954
af680a87 39552007-12-16 Robert Millan <rmh@aybabtu.com>
3956
3957 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
3958 IDE disk check, since Linux is known to support 20 IDE disks.
3959 Reported by Colin Watson.
3960
84be7599 39612007-12-15 Bean <bean123ch@gmail.com>
3962
3963 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
3964 (lnxboot_img_SOURCES): New variable.
3965 (lnxboot_img_ASFLAGS): Likewise.
3966 (lnxboot_img_LDFLAGS): Likewise.
3967
3968 * boot/i386/pc/lnxboot.S: New file.
3969
6af9db01 39702007-11-24 Pavel Roskin <proski@gnu.org>
3971
3972 * configure.ac: Test if '--build-id=none' is supported by the
3973 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
3974 objcopy to generate incorrect binary files (binutils
3975 2.17.50.0.18-1 as shipped by Fedora 8).
3976 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
3977 linking, so that build ID doesn't break the test.
3978
7361cfe6 39792007-11-24 Pavel Roskin <proski@gnu.org>
3980
3981 * include/grub/i386/time.h: use "void" in the argument list
3982 of grub_cpu_idle().
3983 * include/grub/powerpc/time.h: Likewise.
3984 * include/grub/sparc64/time.h: Likewise.
3985
1593e10c 39862007-11-18 Christian Franke <franke@computer.org>
3987
3988 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
3989 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
3990 This fixes the problem that function keys did not work in grub-emu.
3991
3b8db1a8 39922007-11-18 Christian Franke <franke@computer.org>
3993
3994 * disk/host.c (grub_host_open): Remove attribute unused from
3995 name parameter. Add check for "host". This fixes the problem
3996 that grub-emu does not find partitions.
3997
2e29408d 39982007-11-18 Christian Franke <franke@computer.org>
3999
4000 * util/hostfs.c (is_dir): New function.
4001 (grub_hostfs_dir): Handle missing dirent.d_type case.
4002 (grub_hostfs_read): Add missing fseek().
4003 (grub_hostfs_label): Clear label pointer. This fixes a crash
4004 of grub-emu on "ls (host)".
4005
398cd047 40062007-11-18 Christian Franke <franke@computer.org>
4007
4008 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
4009 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
4010 to 64 bit boundary by default.
4011
c405c391 40122007-11-18 Bean <bean123ch@gmail.com>
4013
4014 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
4015 (hexdump_mod_SOURCES): New variable.
4016 (hexdump_mod_CFLAGS): Likewise.
4017 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 4018
c405c391 4019 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
4020
4021 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
4022
4023 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
4024
4025 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
4026
4027 * include/grub/hexdump.h: New file.
4028
4029 * commands/hexdump.c: New file.
4030
5cced7fd 40312007-11-10 Robert Millan <rmh@aybabtu.com>
4032
4033 * commands/i386/pc/play.c (beep_off): Switch order of arguments
4034 in grub_outb() calls.
4035 (beep_on): Likewise.
4036
8b714eb0 40372007-11-10 Christian Franke <franke@computer.org>
4038
4039 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
4040 (grub_menu_run): Likewise.
4041
ce0f1839 40422007-11-10 Robert Millan <rmh@aybabtu.com>
4043
4044 * include/grub/i386/efi/machine.h: New file.
4045 * include/grub/i386/linuxbios/machine.h: Likewise.
4046 * include/grub/i386/pc/machine.h: Likewise.
4047 * include/grub/powerpc/ieee1275/machine.h: Likewise.
4048 * include/grub/sparc64/ieee1275/machine.h: Likewise.
4049
4050 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
4051 (serial_hw_io_addr): New variable.
4052 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
4053 instead of `(unsigned short *) 0x400'.
4054
270c237d 40552007-11-10 Bean <bean123ch@gmail.com>
4056
4057 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
4058
a87783bf 40592007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
4060
4061 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
4062 (vga_mod_SOURCES): Added.
4063 (vga_mod_CFLAGS): Likewise.
4064 (vga_mod_LDFLAGS): Likewise.
4065
4066 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
4067 grub_outb() calls.
4068 (set_map_mask): Likewise.
4069 (set_read_map): Likewise.
4070 (set_read_address): Likewise.
4071 (vga_font): Removed variable.
4072 (get_vga_glyph): Removed function.
4073 (invalidate_char): Likewise.
4074 (write_char): Changed to use grub_font_get_glyph() for font
4075 information.
4076 (grub_vga_putchar): Likewise.
4077 (grub_vga_getcharwidth): Likewise.
4078
6433b448 40792007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
4080
4081 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
4082 flags.
4083 (pxeboot_img_LDFLAGS): Likewise.
4084 (diskboot_img_LDFLAGS): Likewise.
4085 (kernel_img_LDFLAGS): Likewise.
4086
49178511 40872007-11-06 Robert Millan <rmh@aybabtu.com>
4088
4089 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
4090 in grub_outb() calls.
4091 (serial_hw_init): Likewise.
4092
53b052de 40932007-11-05 Robert Millan <rmh@aybabtu.com>
4094
4095 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
4096 spaces. Skip non-regular files.
4097
5ab33bba 40982007-11-05 Robert Millan <rmh@aybabtu.com>
4099
4100 * kern/disk.c (grub_disk_firmware_fini)
4101 (grub_disk_firmware_is_tainted): New variables.
4102
4103 * include/grub/disk.h (grub_disk_firmware_fini)
4104 (grub_disk_firmware_is_tainted): Likewise.
4105
4106 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
4107 (grub_disk_biosdisk_fini): ... to here.
4108 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
4109 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
4110 is set. Register grub_disk_biosdisk_fini() in
4111 `grub_disk_firmware_fini'.
4112
4113 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
4114 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
4115 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
4116 to finish existing firmware disk interface.
4117
4118 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
4119 (ata_mod_SOURCES): New variable.
4120 (ata_mod_CFLAGS): Likewise.
4121 (ata_mod_LDFLAGS): Likewise.
4122
0149ab7c 41232007-11-05 Robert Millan <rmh@aybabtu.com>
4124
4125 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
4126 (grub_ata_wait): Reimplement using grub_millisleep().
4127
4128 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
4129 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
4130
be7ac41e 41312007-11-03 Marco Gerards <marco@gnu.org>
4132
4133 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
4134 (CRTC_ADDR_PORT): New macro.
4135 (CRTC_DATA_PORT): Likewise.
4136 (CRTC_CURSOR): Likewise.
4137 (CRTC_CURSOR_ADDR_HIGH): Likewise.
4138 (CRTC_CURSOR_ADDR_LOW): Likewise.
4139 (update_cursor): New function.
4140 (grub_console_real_putchar): Call `update_cursor'.
4141 (grub_console_gotoxy): Likewise.
4142 (grub_console_cls): Set the default color when clearing the
4143 screen.
4144 (grub_console_setcursor): Implemented.
4145
bb06ab2e 41462007-11-03 Marco Gerards <marco@gnu.org>
4147
4148 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
4149 become activate.
4150 (grub_ata_pio_write): Likewise.
4151
4152 (grub_atapi_identify): Wait after issuing an ATA command.
4153 (grub_atapi_packet): Likewise.
4154 (grub_ata_identify): Likewise.
4155 (grub_ata_readwrite): Likewise.
4156
cf8f780b 41572007-11-03 Marco Gerards <marco@gnu.org>
4158
4159 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
4160 (grub_ata_pio_write): Likewise.
4161 (grub_ata_readwrite): Use `grub_error', instead of
4162 returning `grub_errno'.
4163
ed649e54 41642007-11-03 Marco Gerards <marco@gnu.org>
4165
4166 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
4167 grub_ata_pio_write once for every single sector, instead of for
4168 multiple sectors.
4169
ca25d8f0 41702007-10-31 Robert Millan <rmh@aybabtu.com>
4171
4172 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
4173
4174 * conf/i386-linuxbios.rmk: New file.
4175
4176 * kern/i386/pc/hardware.c: Likewise.
4177 * term/i386/pc/at_keyboard.c: Likewise.
4178 * term/i386/pc/vga_text.c: Likewise.
4179
4180 * include/grub/i386/linuxbios/boot.h: Likewise.
4181 * include/grub/i386/linuxbios/console.h: Likewise.
4182 * include/grub/i386/linuxbios/init.h: Likewise.
4183 * include/grub/i386/linuxbios/kernel.h: Likewise.
4184 * include/grub/i386/linuxbios/loader.h: Likewise.
4185 * include/grub/i386/linuxbios/memory.h: Likewise.
4186 * include/grub/i386/linuxbios/serial.h: Likewise.
4187 * include/grub/i386/linuxbios/time.h: Likewise.
4188
4189 * kern/i386/linuxbios/init.c: Likewise.
4190 * kern/i386/linuxbios/startup.S: Likewise.
4191 * kern/i386/linuxbios/table.c: Likewise.
4192
e911ecc1 41932007-10-31 Marco Gerards <marco@gnu.org>
4194
4195 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
4196 (ata_mod_SOURCES): New variable.
4197 (ata_mod_CFLAGS): Likewise.
4198 (ata_mod_LDFLAGS): Likewise.
4199
4200 * disk/ata.c: New file.
4201
4202 * include/grub/disk.h (grub_disk_dev_id): Add
4203 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 4204
7f66d0e0 42052007-10-31 Robert Millan <rmh@aybabtu.com>
4206
4207 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
4208 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
4209
4210 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
4211 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
4212
4213 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
4214 `<grub/types.h>'.
4215
4216 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
4217
5cd7dd46 42182007-10-27 Robert Millan <rmh@aybabtu.com>
4219
3236ca65 4220 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 4221
2ebfc90f 42222007-10-22 Robert Millan <rmh@aybabtu.com>
4223
4224 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
4225 `"../realmode.S"'.
4226 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
4227
73fcb0f3 42282007-10-22 Robert Millan <rmh@aybabtu.com>
4229
4230 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
4231 (pkgdata_MODULES): Add `biosdisk.mod'.
4232 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
4233 variables.
4234
4235 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
4236 (grub_biosdisk_init): Replace with ...
4237 (GRUB_MOD_INIT(biosdisk)): ... this.
4238 (grub_biosdisk_fini): Replace with ...
4239 (GRUB_MOD_FINI(biosdisk)): ... this.
4240
4241 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
4242 (grub_machine_init): Remove call to grub_biosdisk_init().
4243 (grub_machine_fini): Remove call to grub_machine_fini().
4244
4245 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
4246
3381d274 42472007-10-22 Robert Millan <rmh@aybabtu.com>
4248
4249 * include/grub/time.h: New file.
4250 * include/grub/i386/time.h: Likewise.
4251 * include/grub/powerpc/time.h: Likewise.
4252 * include/grub/sparc64/time.h: Likewise.
4253
4254 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
4255 instances to ...
4256 (KERNEL_MACHINE_TIME_HEADER): ... this.
4257 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
4258 instances to ...
4259 (KERNEL_MACHINE_TIME_HEADER): ... this.
4260 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
4261 instances to ...
4262 (KERNEL_MACHINE_TIME_HEADER): ... this.
4263
4264 * kern/i386/efi/init.c: Include `<grub/time.h>'.
4265 (grub_millisleep): New function.
4266 * kern/i386/pc/init.c: Include `<grub/time.h>'.
4267 (grub_millisleep): New function.
4268 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
4269 Remove `grub/machine/time.h' include.
4270 (grub_millisleep): New function.
4271 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
4272 Remove `grub/machine/time.h' include.
4273 (grub_millisleep): New function.
4274
4275 * include/grub/misc.h (grub_div_roundup): New function.
4276
4277 * kern/misc.c: Include `<grub/time.h>'.
4278 (grub_millisleep_generic): New function.
4279
4280 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
4281 Add `time.h'.
4282 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
4283 Add `time.h'.
4284 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
4285 `machine/time.h'. Add `time.h'.
4286 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
4287
a39a0312 42882007-10-21 Robert Millan <rmh@aybabtu.com>
4289
4290 * include/grub/misc.h (grub_max): New function.
4291
2aad70e2 42922007-10-21 Robert Millan <rmh@aybabtu.com>
4293
4294 * util/misc.c (grub_util_info): Call fflush() before returning.
4295
54b71c4b 42962007-10-20 Robert Millan <rmh@aybabtu.com>
4297
4298 * genmk.rb (Image): Copy `extra_flags' from here ...
4299 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
4300
4301 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
4302 to `argc' and `args' arguments.
4303
a979f513 43042007-10-17 Robert Millan <rmh@aybabtu.com>
4305
4306 * kern/i386/loader.S: New file.
4307
4308 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
4309 * kern/i386/loader.S (grub_linux_prot_size)... to here.
4310 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
4311 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
4312 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
4313 * kern/i386/loader.S (grub_linux_real_addr)... to here.
4314 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
4315 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
4316 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
4317 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
4318 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
4319 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
4320 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
4321 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
4322
4323 * kern/i386/realmode.S: New file.
4324
4325 * kern/i386/pc/startup.S (protstack): Moved from here ...
4326 * kern/i386/realmode.S (protstack)... to here.
4327 * kern/i386/pc/startup.S (gdt): Moved from here ...
4328 * kern/i386/realmode.S (gdt)... to here.
4329 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
4330 * kern/i386/realmode.S (prot_to_real)... to here.
4331
4332 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
4333 `kern/i386/realmode.S'.
4334
825fc8fd 43352007-10-17 Robert Millan <rmh@aybabtu.com>
4336
4337 * include/grub/i386/loader.h: New file.
4338
4339 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
4340 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
4341 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
4342 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
4343 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
4344 * include/grub/i386/loader.h (grub_linux_prot_size)
4345 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
4346 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
4347 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
4348 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
4349
4350 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
4351
e179b2f4 43522007-10-15 Robert Millan <rmh@aybabtu.com>
4353
4354 * normal/misc.c (grub_normal_print_device_info): Do not probe for
4355 filesystem when dev->disk is unset.
4356 Do probe for filesystem even when dev->disk->has_partitions is set.
4357 In case a filesystem is found, always report it.
4358 In case it isn't, if dev->disk->has_partitions is set, report that
4359 a partition table was found instead of reporting that no filesystem
4360 could be identified.
4361
5db82af6 43622007-10-12 Robert Millan <rmh@aybabtu.com>
4363
4364 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
4365 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
4366
68f6ac74 4367 * include/grub/types.h (grub_host_to_target16): New macro.
4368 (grub_host_to_target32): Likewise.
4369 (grub_host_to_target64): Likewise.
4370 (grub_target_to_host16): Likewise.
4371 (grub_target_to_host32): Likewise.
4372 (grub_target_to_host64): Likewise.
5db82af6 4373
4374 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
4375 Renamed from to ...
4376 (GRUB_MOD_ALIGN): ...this. Update all users.
4377
68f6ac74 4378 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
4379 grub_host_to_target32.
4380 Replace grub_be_to_cpu32 with grub_target_to_host32.
4381 (load_modules): Likewise.
4382 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
4383 Replace grub_be_to_cpu32 with grub_target_to_host32.
4384 Replace grub_cpu_to_be16 with grub_host_to_target16.
4385 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 4386
3cf497cc 43872007-10-12 Robert Millan <rmh@aybabtu.com>
4388
4389 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
4390 * util/elf/grub-mkimage.c: ... here.
4391
4392 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
4393 `util/powerpc/ieee1275/grub-mkimage.c'.
4394
c8cc3692 43952007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 4396
c8cc3692 4397 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
4398 and make it easier to figure out.
4399 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
4400 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
4401 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
4402 leave us with less than HEAP_MIN_SIZE total heap.
4403 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 4404
5c58b791 44052007-10-03 Robert Millan <rmh@aybabtu.com>
4406
4407 * include/grub/i386/io.h: New file.
4408 * commands/i386/pc/play.c (inb): Removed.
4409 (outb): Removed.
4410 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
4411 with grub_outb().
afcd2ef8 4412 * term/i386/pc/serial.c (inb): Removed.
4413 (outb): Removed.
4414 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
4415 with grub_outb().
4416 * term/i386/pc/vga.c (inb): Removed.
4417 (outb): Removed.
4418 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
4419 with grub_outb().
5c58b791 4420
1a477ed6 44212007-10-02 Robert Millan <rmh@aybabtu.com>
4422
4423 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
4424 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4425 Reported by Marcin Kurek.
4426
6b5d80fa 44272007-09-07 Robert Millan <rmh@aybabtu.com>
4428
4429 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
4430 SmartFirmware version updates (as released by Sven Luther), and avoid
4431 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
4432 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
4433 known broken.
4434
5618afbf 44352007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
4436
4437 From Hitoshi Ozeki:
4438 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
4439 when merging two regions.
4440
6139dcd9 44412007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
4442
508e39ee 4443 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
4444 * normal/completion.c (grub_normal_do_completion): Likewise.
4445 Reported by Hitoshi Ozeki.
4446
44472007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 4448
6139dcd9 4449 Do not use devices at boot in chainloading.
f19dbdb7 4450
6139dcd9 4451 * loader/i386/pc/chainloader.c (boot_drive): New variable.
4452 (boot_part_addr): Likewise.
4453 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
4454 with BOOT_DRIVE and BOOT_PART_ADDR.
4455 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
4456 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
4457
38da6516 44582007-08-29 Robert Millan <rmh@aybabtu.com>
4459
4460 Patch from Simon Peter <dn.tlp@gmx.net>:
4461 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
4462 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
4463 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
4464 util/i386/pc/grub-setup.c_DEPENDENCIES.
4465 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
4466 util/grub-probe.c_DEPENDENCIES.
4467 * conf/powerpc-ieee1275.rmk: Likewise.
4468
29d0928c 44692007-08-28 Robert Millan <rmh@aybabtu.com>
4470
4471 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
4472 to tell grub-mkdevicemap how to name devices.
4473 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
4474 feature).
4475
4476 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
4477 util/i386/get_disk_name.c.
4478 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
4479 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
4480 util/ieee1275/get_disk_name.c.
4481
4482 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
4483
4484 * DISTLIST: Add util/i386/get_disk_name.c and
4485 util/ieee1275/get_disk_name.c.
4486
4487 * util/grub-mkdevicemap.c: Replace device naming logic with
4488 grub_util_get_disk_name() calls.
4489
5a0d3cca 44902007-08-20 Robert Millan <rmh@aybabtu.com>
4491
4492 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
4493 (so that it works for both plural and singular quantities).
4494
8b72db2f 44952007-08-05 Robert Millan <rmh@aybabtu.com>
4496
4497 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
4498 so that [xz] isn't taken into account when determining order.
4499
352466bf 45002007-08-02 Marco Gerards <marco@gnu.org>
4501
4502 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
4503 `include/multiboot2.h', `include/grub/elfload.h',
4504 `include/multiboot.h', `include/grub/multiboot.h',
4505 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
4506 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
4507 `kern/elf.c', `loader/multiboot_loader.c',
4508 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
4509 `loader/i386/pc/multiboot2.c',
4510 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
4511 `util/i386/pc/grub-mkrescue.in'. Remove
4512 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
4513 `include/grub/i386/pc/util/biosdisk.h' and
4514 `include/grub/powerpc/ieee1275/multiboot.h'.
4515
8f096014 45162007-08-02 Bean <bean123ch@gmail.com>
4517
4518 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
4519 (ntfs_mod_SOURCES): New variable.
4520 (ntfs_mod_CFLAGS): Likewise.
4521 (ntfs_mod_LDFLAGS): Likewise.
4522
4523 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
4524 (grub_probe_SOURCES): Likewise.
4525 (grub_emu_SOURCES): Likewise.
4526
4527 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
4528 (grub_emu_SOURCES): Likewise.
4529
4530 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
4531 (grub_emu_SOURCES): Likewise.
f19dbdb7 4532
8f096014 4533 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
4534
4535 * fs/ntfs.c: New file.
4536
9959f7db 45372007-08-02 Bean <bean123ch@gmail.com>
4538
4539 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
4540
4541 * file.h (grub_file): Likewise.
4542
4543 * fshelp.h (grub_fshelp_read_file): Likewise.
4544
4545 * util/i386/pc/grub-setup.c (setup): Likewise.
4546 (save_first_sector): Likewise.
4547 (save_blocklists): Likewise.
f19dbdb7 4548
9959f7db 4549 * fs/affs.c (grub_affs_read_file): Likewise.
4550
4551 * fs/ext2.c (grub_ext2_read_file): Likewise.
4552
4553 * fs/fat.c (grub_fat_read_data): Likewise.
4554
4555 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
4556
4557 * fs/hfs.c (grub_hfs_read_file): Likewise.
4558
4559 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
4560
4561 * fs/jfs.c (grub_jfs_read_file): Likewise.
4562
4563 * fs/minix.c (grub_minix_read_file): Likewise.
4564
4565 * fs/sfs.c (grub_sfs_read_file): Likewise.
4566
4567 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 4568
9959f7db 4569 * fs/xfs.c (grub_xfs_read_file): Likewise.
4570
4571 * command/blocklist.c (read_blocklist): Likewise.
4572 (print_blocklist): Likewise.
4573
0a203f83 45742007-08-02 Marco Gerards <marco@gnu.org>
4575
4576 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
4577 `util/hostfs.c'.
4578
4579 * disk/host.c: New file.
4580
4581 * util/hostfs.c: Likewise.
4582
4583 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
4584 return `GRUB_ERR_BAD_FS'.
4585 * fs/sfs.c (grub_sfs_mount): Likewise.
4586 * fs/xfs.c (grub_xfs_mount): Likewise.
4587
4588 * include/grub/disk.h (enum grub_disk_dev_id): Add
4589 `GRUB_DISK_DEVICE_HOST_ID'.
4590
4591 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
4592
e5dfe777 45932007-07-24 Jerone Young <jerone@gmail.com>
4594
f19dbdb7 4595 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 4596 modules for compilation.
4597 * conf/powerpc-ieee1275.rmk: Likewise.
4598
4599 * include/multiboot.h: Move multiboot definitions to one file. Rename
4600 many definitions to not get grub specific.
4601 * include/multiboot2.h: Create header with multiboot 2 definitions.
4602 * include/grub/multiboot.h: Header for grub specific function
4603 prototypes and definitions.
4604 * include/grub/multiboot2.h: Likewise.
4605 * include/grub/multiboot_loader.h: Likewise.
4606 * include/grub/i386/pc/multiboot.h: Removed.
4607 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
4608
4609 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
4610 and 2 to allow for one multiboot and module commands.
4611 * loader/multiboot2.c: Add multiboot2 functionality.
4612 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
4613 and definition names.
4614 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
4615 2 functions.
4616 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
4617 ieee1275 specific multiboot2 code.
4618
4619 * kern/i386/pc/startup.S: Change headers and definition names for
4620 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
4621
daf0f0ba 46222007-07-22 Robert Millan <rmh@aybabtu.com>
4623
4624 * geninitheader.sh: Process file specified in first parameter rather
4625 than hardcoding grub_modules_init.lst.
fe6b695a 4626 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 4627 than hardcoding grub_modules_init.h.
4628
4629 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
4630 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
4631 grub_probe_init.[ch] and grub_setup_init.[ch].
4632
4633 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
4634 grub_modules_init.h with grub_emu_init.h.
4635 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
4636 grub_probe_init.[ch] files.
4637 * conf/i386-efi.rmk: Likewise.
4638 * conf/i386-pc.rmk: Likewise.
4639 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
4640 grub_setup_init.[ch] files.
4641
4642 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
4643 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
4644 to initialize modules rather than a list of hardcoded functions.
4645 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
4646 grub_init_all() to initialize modules rather than a list of hardcoded
4647 functions.
4648
54cdc1cc 46492007-07-22 Robert Millan <rmh@aybabtu.com>
4650
4651 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
4652 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
4653
ad0686cc 46542007-07-22 Robert Millan <rmh@aybabtu.com>
4655
4656 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
4657 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
4658 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
4659 flag when running on SmartFirmware.
4660 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
4661 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
4662 was set.
4663
4664 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
4665 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
4666 rather than decreasing it.
4667
4668 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
4669 there's not enough space to do it, fail in the same way as when it
4670 can't be done because there are no partitions.
4671
4672 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
4673 when nvsetenv failed.
4674
969c02ec 46752007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
4676
4677 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
4678 because this rule is automatically generated.
4679 (grub-mkrescue): Removed for the same reason as above.
4680
5a79f472 46812007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
4682
4683 Migrate to GNU General Public License Version 3.
f19dbdb7 4684
5a79f472 4685 * COPYING: Replaced with the plain text version of GPLv3.
4686
4687 * config.guess: Updated from gnulib.
4688 * config.sub: Likewise.
4689
4690 * geninit.sh: Output a GPLv3 copyright notice.
4691 * geninitheader.sh: Likewise.
4692 * genmodsrc.sh: Likewise.
4693 * gensymlist.sh.in: Likewise.
4694
4695 * boot/i386/pc/boot.S: Upgraded to GPLv3.
4696 * boot/i386/pc/diskboot.S: Likewise.
4697 * boot/i386/pc/pxeboot.S: Likewise.
4698 * commands/blocklist.c: Likewise.
4699 * commands/boot.c: Likewise.
4700 * commands/cat.c: Likewise.
4701 * commands/cmp.c: Likewise.
4702 * commands/configfile.c: Likewise.
4703 * commands/echo.c: Likewise.
4704 * commands/help.c: Likewise.
4705 * commands/ls.c: Likewise.
4706 * commands/search.c: Likewise.
4707 * commands/terminal.c: Likewise.
4708 * commands/test.c: Likewise.
4709 * commands/videotest.c: Likewise.
4710 * commands/i386/cpuid.c: Likewise.
4711 * commands/i386/pc/halt.c: Likewise.
4712 * commands/i386/pc/play.c: Likewise.
4713 * commands/i386/pc/reboot.c: Likewise.
4714 * commands/i386/pc/vbeinfo.c: Likewise.
4715 * commands/i386/pc/vbetest.c: Likewise.
4716 * commands/ieee1275/halt.c: Likewise.
4717 * commands/ieee1275/reboot.c: Likewise.
4718 * commands/ieee1275/suspend.c: Likewise.
4719 * disk/loopback.c: Likewise.
4720 * disk/lvm.c: Likewise.
4721 * disk/raid.c: Likewise.
4722 * disk/efi/efidisk.c: Likewise.
4723 * disk/i386/pc/biosdisk.c: Likewise.
4724 * disk/ieee1275/ofdisk.c: Likewise.
4725 * font/manager.c: Likewise.
4726 * fs/affs.c: Likewise.
4727 * fs/ext2.c: Likewise.
4728 * fs/fat.c: Likewise.
4729 * fs/fshelp.c: Likewise.
4730 * fs/hfs.c: Likewise.
4731 * fs/hfsplus.c: Likewise.
4732 * fs/iso9660.c: Likewise.
4733 * fs/jfs.c: Likewise.
4734 * fs/minix.c: Likewise.
4735 * fs/sfs.c: Likewise.
4736 * fs/ufs.c: Likewise.
4737 * fs/xfs.c: Likewise.
4738 * hello/hello.c: Likewise.
4739 * include/grub/acorn_filecore.h: Likewise.
4740 * include/grub/arg.h: Likewise.
4741 * include/grub/bitmap.h: Likewise.
4742 * include/grub/boot.h: Likewise.
4743 * include/grub/cache.h: Likewise.
4744 * include/grub/device.h: Likewise.
4745 * include/grub/disk.h: Likewise.
4746 * include/grub/dl.h: Likewise.
4747 * include/grub/elfload.h: Likewise.
4748 * include/grub/env.h: Likewise.
4749 * include/grub/err.h: Likewise.
4750 * include/grub/file.h: Likewise.
4751 * include/grub/font.h: Likewise.
4752 * include/grub/fs.h: Likewise.
4753 * include/grub/fshelp.h: Likewise.
4754 * include/grub/gzio.h: Likewise.
4755 * include/grub/hfs.h: Likewise.
4756 * include/grub/kernel.h: Likewise.
4757 * include/grub/loader.h: Likewise.
4758 * include/grub/lvm.h: Likewise.
4759 * include/grub/misc.h: Likewise.
4760 * include/grub/mm.h: Likewise.
4761 * include/grub/net.h: Likewise.
4762 * include/grub/normal.h: Likewise.
4763 * include/grub/parser.h: Likewise.
4764 * include/grub/partition.h: Likewise.
4765 * include/grub/pc_partition.h: Likewise.
4766 * include/grub/raid.h: Likewise.
4767 * include/grub/rescue.h: Likewise.
4768 * include/grub/script.h: Likewise.
4769 * include/grub/setjmp.h: Likewise.
4770 * include/grub/symbol.h: Likewise.
4771 * include/grub/term.h: Likewise.
4772 * include/grub/terminfo.h: Likewise.
4773 * include/grub/tparm.h: Likewise.
4774 * include/grub/types.h: Likewise.
4775 * include/grub/video.h: Likewise.
4776 * include/grub/efi/api.h: Likewise.
4777 * include/grub/efi/chainloader.h: Likewise.
4778 * include/grub/efi/console.h: Likewise.
4779 * include/grub/efi/console_control.h: Likewise.
4780 * include/grub/efi/disk.h: Likewise.
4781 * include/grub/efi/efi.h: Likewise.
4782 * include/grub/efi/pe32.h: Likewise.
4783 * include/grub/efi/time.h: Likewise.
4784 * include/grub/i386/linux.h: Likewise.
4785 * include/grub/i386/setjmp.h: Likewise.
4786 * include/grub/i386/types.h: Likewise.
4787 * include/grub/i386/efi/kernel.h: Likewise.
4788 * include/grub/i386/efi/loader.h: Likewise.
4789 * include/grub/i386/efi/time.h: Likewise.
4790 * include/grub/i386/pc/biosdisk.h: Likewise.
4791 * include/grub/i386/pc/boot.h: Likewise.
4792 * include/grub/i386/pc/chainloader.h: Likewise.
4793 * include/grub/i386/pc/console.h: Likewise.
4794 * include/grub/i386/pc/init.h: Likewise.
4795 * include/grub/i386/pc/kernel.h: Likewise.
4796 * include/grub/i386/pc/loader.h: Likewise.
4797 * include/grub/i386/pc/memory.h: Likewise.
4798 * include/grub/i386/pc/multiboot.h: Likewise.
4799 * include/grub/i386/pc/serial.h: Likewise.
4800 * include/grub/i386/pc/time.h: Likewise.
4801 * include/grub/i386/pc/vbe.h: Likewise.
4802 * include/grub/i386/pc/vbeblit.h: Likewise.
4803 * include/grub/i386/pc/vbefill.h: Likewise.
4804 * include/grub/i386/pc/vbeutil.h: Likewise.
4805 * include/grub/i386/pc/vga.h: Likewise.
4806 * include/grub/ieee1275/ieee1275.h: Likewise.
4807 * include/grub/ieee1275/ofdisk.h: Likewise.
4808 * include/grub/powerpc/libgcc.h: Likewise.
4809 * include/grub/powerpc/setjmp.h: Likewise.
4810 * include/grub/powerpc/types.h: Likewise.
4811 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
4812 * include/grub/powerpc/ieee1275/console.h: Likewise.
4813 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
4814 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
4815 * include/grub/powerpc/ieee1275/loader.h: Likewise.
4816 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
4817 * include/grub/powerpc/ieee1275/time.h: Likewise.
4818 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
4819 * include/grub/sparc64/libgcc.h: Likewise.
4820 * include/grub/sparc64/setjmp.h: Likewise.
4821 * include/grub/sparc64/types.h: Likewise.
4822 * include/grub/sparc64/ieee1275/console.h: Likewise.
4823 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
4824 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
4825 * include/grub/sparc64/ieee1275/time.h: Likewise.
4826 * include/grub/util/biosdisk.h: Likewise.
4827 * include/grub/util/getroot.h: Likewise.
4828 * include/grub/util/lvm.h: Likewise.
4829 * include/grub/util/misc.h: Likewise.
4830 * include/grub/util/raid.h: Likewise.
4831 * include/grub/util/resolve.h: Likewise.
4832 * io/gzio.c: Likewise.
4833 * kern/device.c: Likewise.
4834 * kern/disk.c: Likewise.
4835 * kern/dl.c: Likewise.
4836 * kern/elf.c: Likewise.
4837 * kern/env.c: Likewise.
4838 * kern/err.c: Likewise.
4839 * kern/file.c: Likewise.
4840 * kern/fs.c: Likewise.
4841 * kern/loader.c: Likewise.
4842 * kern/main.c: Likewise.
4843 * kern/misc.c: Likewise.
4844 * kern/mm.c: Likewise.
4845 * kern/parser.c: Likewise.
4846 * kern/partition.c: Likewise.
4847 * kern/rescue.c: Likewise.
4848 * kern/term.c: Likewise.
4849 * kern/efi/efi.c: Likewise.
4850 * kern/efi/init.c: Likewise.
4851 * kern/efi/mm.c: Likewise.
4852 * kern/i386/dl.c: Likewise.
4853 * kern/i386/efi/init.c: Likewise.
4854 * kern/i386/efi/startup.S: Likewise.
4855 * kern/i386/pc/init.c: Likewise.
4856 * kern/i386/pc/lzo1x.S: Likewise.
4857 * kern/i386/pc/startup.S: Likewise.
4858 * kern/ieee1275/ieee1275.c: Likewise.
4859 * kern/powerpc/cache.S: Likewise.
4860 * kern/powerpc/dl.c: Likewise.
4861 * kern/powerpc/ieee1275/cmain.c: Likewise.
4862 * kern/powerpc/ieee1275/crt0.S: Likewise.
4863 * kern/powerpc/ieee1275/init.c: Likewise.
4864 * kern/powerpc/ieee1275/openfw.c: Likewise.
4865 * kern/sparc64/cache.S: Likewise.
4866 * kern/sparc64/dl.c: Likewise.
4867 * kern/sparc64/ieee1275/init.c: Likewise.
4868 * kern/sparc64/ieee1275/openfw.c: Likewise.
4869 * loader/efi/chainloader.c: Likewise.
4870 * loader/efi/chainloader_normal.c: Likewise.
4871 * loader/i386/efi/linux.c: Likewise.
4872 * loader/i386/efi/linux_normal.c: Likewise.
4873 * loader/i386/pc/chainloader.c: Likewise.
4874 * loader/i386/pc/chainloader_normal.c: Likewise.
4875 * loader/i386/pc/linux.c: Likewise.
4876 * loader/i386/pc/linux_normal.c: Likewise.
4877 * loader/i386/pc/multiboot.c: Likewise.
4878 * loader/i386/pc/multiboot_normal.c: Likewise.
4879 * loader/powerpc/ieee1275/linux.c: Likewise.
4880 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
4881 * normal/arg.c: Likewise.
4882 * normal/cmdline.c: Likewise.
4883 * normal/command.c: Likewise.
4884 * normal/completion.c: Likewise.
4885 * normal/execute.c: Likewise.
4886 * normal/function.c: Likewise.
4887 * normal/lexer.c: Likewise.
4888 * normal/main.c: Likewise.
4889 * normal/menu.c: Likewise.
4890 * normal/menu_entry.c: Likewise.
4891 * normal/misc.c: Likewise.
4892 * normal/parser.y: Likewise.
4893 * normal/script.c: Likewise.
4894 * normal/i386/setjmp.S: Likewise.
4895 * normal/powerpc/setjmp.S: Likewise.
4896 * normal/sparc64/setjmp.S: Likewise.
4897 * partmap/acorn.c: Likewise.
4898 * partmap/amiga.c: Likewise.
4899 * partmap/apple.c: Likewise.
4900 * partmap/gpt.c: Likewise.
4901 * partmap/pc.c: Likewise.
4902 * partmap/sun.c: Likewise.
4903 * term/gfxterm.c: Likewise.
4904 * term/terminfo.c: Likewise.
4905 * term/efi/console.c: Likewise.
4906 * term/i386/pc/console.c: Likewise.
4907 * term/i386/pc/serial.c: Likewise.
4908 * term/i386/pc/vesafb.c: Likewise.
4909 * term/i386/pc/vga.c: Likewise.
4910 * term/ieee1275/ofconsole.c: Likewise.
4911 * util/biosdisk.c: Likewise.
4912 * util/console.c: Likewise.
4913 * util/genmoddep.c: Likewise.
4914 * util/getroot.c: Likewise.
4915 * util/grub-emu.c: Likewise.
4916 * util/grub-mkdevicemap.c: Likewise.
4917 * util/grub-probe.c: Likewise.
4918 * util/lvm.c: Likewise.
4919 * util/misc.c: Likewise.
4920 * util/raid.c: Likewise.
4921 * util/resolve.c: Likewise.
4922 * util/update-grub.in: Likewise.
4923 * util/update-grub_lib.in: Likewise.
4924 * util/grub.d/00_header.in: Likewise.
4925 * util/grub.d/10_hurd.in: Likewise.
4926 * util/grub.d/10_linux.in: Likewise.
4927 * util/i386/efi/grub-install.in: Likewise.
4928 * util/i386/efi/grub-mkimage.c: Likewise.
4929 * util/i386/pc/grub-install.in: Likewise.
4930 * util/i386/pc/grub-mkimage.c: Likewise.
4931 * util/i386/pc/grub-mkrescue.in: Likewise.
4932 * util/i386/pc/grub-setup.c: Likewise.
4933 * util/i386/pc/misc.c: Likewise.
4934 * util/powerpc/ieee1275/grub-install.in: Likewise.
4935 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
4936 * util/powerpc/ieee1275/misc.c: Likewise.
4937 * video/bitmap.c: Likewise.
4938 * video/video.c: Likewise.
4939 * video/i386/pc/vbe.c: Likewise.
4940 * video/i386/pc/vbeblit.c: Likewise.
4941 * video/i386/pc/vbefill.c: Likewise.
4942 * video/i386/pc/vbeutil.c: Likewise.
4943 * video/readers/tga.c: Likewise.
4944
3572d015 49452007-07-02 Robert Millan <rmh@aybabtu.com>
4946
4947 * conf/i386-efi.rmk: Replace obsolete reference to
4948 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
4949 with util/getroot.c.
4950 * conf/powerpc-ieee1275.rmk: Likewise.
4951 * conf/sparc64-ieee1275.rmk: Likewise.
4952
4953 * util/grub-emu.c (main): Fix unchecked pointer handling.
4954
2c2a681b 49552007-07-02 Robert Millan <rmh@aybabtu.com>
4956
4957 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
4958 invocation to fail, in order to support partition-less media.
4959
4960 * util/i386/pc/grub-install.in: Likewise.
4961
4962 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
4963 which fs or partmap modules are needed (akin to its sister scripts).
4964
4965 Also use grub-probe to get rid of unportable /proc/mounts check.
4966
4967 Print the same informational message that the other scripts do, before
fe6b695a 4968 exiting.
2c2a681b 4969
6193defe 49702007-06-23 Robert Millan <rmh@aybabtu.com>
4971
fe6b695a 4972 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 4973 a font file can be found and, if so, echo the GRUB path to it.
4974
4975 * util/update-grub.in: Handle multiple terminals depending on user
4976 input, platform availability and font file presence. Propagate
4977 variables of our findings to /etc/grub.d/ children.
4978
4979 * util/grub.d/00_header.in: Handle multiple terminals, based on
4980 environment setup by update-grub.
4981
eface1dc 49822007-06-23 Robert Millan <rmh@aybabtu.com>
4983
ba50d28f 4984 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 4985
bf697e28 49862007-06-21 Robert Millan <rmh@aybabtu.com>
4987
4988 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
4989 indicate end of data section in kernel image.
4990 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
4991 GRUB_KERNEL_MACHINE_DATA_END.
4992
4993 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
4994 space for it.
4995 * kern/i386/efi/startup.S: Likewise.
4996
4997 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
4998 during image generation. Implement --prefix option to override this
4999 patch.
5000 * util/i386/efi/grub-mkimage.c: Likewise.
5001
5002 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
5003 code to make path relative to its root into a separate function.
5004
5005 * util/i386/pc/grub-install.in: Use newly provided
5006 make_system_path_relative_to_its_root() to convert ${grubdir}, then
5007 pass the result to grub-install --prefix.
5008
baa574b4 50092007-06-13 Robert Millan <rmh@aybabtu.com>
5010
5011 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
5012 DEFAULT_DEVICE_MAP.
5013 * util/grub-emu.c: Use above definitions from misc.h instead of
5014 defining them.
5015 * util/grub-mkdevicemap.c: Likewise.
5016 * util/i386/pc/grub-setup.c: Likewise.
5017 * util/grub-probe.c: Likewise.
5018 (probe): Abort with grub_util_error() when either
5019 grub_guess_root_device or grub_util_get_grub_dev fails.
5020
0215dcbf 50212007-06-12 Robert Millan <rmh@aybabtu.com>
5022
5023 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
5024 "pager" assignment.
5025 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
5026 "pcdata".
5027 * util/grub-probe.c (probe): Likewise for "drive_name".
5028
8af2ab7b 50292007-06-11 Robert Millan <rmh@aybabtu.com>
5030
5031 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
5032 not just the cdrom one.
5033
59d31694 50342007-06-11 Robert Millan <rmh@aybabtu.com>
5035
5036 * util/i386/pc/grub-mkrescue.in: Add "set -e".
5037 Add --pkglibdir=DIR option to override pkglibdir.
5038 Mention --image-type=TYPE in help output.
5039 Fix --grub-mkimage (it was a no-op).
fe6b695a 5040 Abort gracefully when no parameter is given.
59d31694 5041
7ee367e4 50422007-06-11 Robert Millan <rmh@aybabtu.com>
5043
5044 * util/i386/pc/grub-mkrescue.in: New file.
5045 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
5046 * Makefile.in: Handle bin_SCRIPTS.
5047
29b0ed46 50482007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
5049
5050 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
5051 list of video modes.
5052
c0f90770 50532007-06-06 Robert Millan <rmh@aybabtu.com>
5054
5055 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
5056 file doesn't exist, or if it is in a filesystem grub can't read.
5057
5058 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
5059 not abort if GRUB_DRIVE could not be defined. Rearrange generated
5060 header comment to fit in 80 columns when the variables are resolved.
5061
5062 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
5063 could be identified by update-grub. Remove redundant check for
fe6b695a 5064 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 5065 handles that).
5066
fb36dc26 50672007-06-04 Robert Millan <rmh@aybabtu.com>
5068
5069 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
5070
5071 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
5072
5073 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
5074
0c68c93e 50752007-06-04 Robert Millan <rmh@aybabtu.com>
5076
5077 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
5078
5079 * include/grub/partition.h: Declare grub_apple_partition_map_init and
5080 grub_apple_partition_map_fini.
5081
5082 * util/biosdisk.c
5083 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
5084 to access >2 TiB disks).
5085
5086 Print disk->total_sectors with %llu instead of %lu, since this
5087 variable is always 64-bit (prevents wrong disk size from being displayed
5088 on either >2 TiB disk or big-endian CPU).
5089
5090 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
5091 into a generic case that supports all (sane) partition maps.
5092
5093 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
5094 breaks big-endian.
5095
5096 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
5097 and grub_apple_partition_map_fini() after that.
5098
0f23eb74 50992007-06-01 Robert Millan <rmh@aybabtu.com>
5100
5101 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
5102
5103 * util/grub.d/00_header.in: Only enable gfxterm when
5104 convert_system_path_to_grub_path() succeeds.
5105
42c71976 51062007-05-20 Robert Millan <rmh@aybabtu.com>
5107
5108 * util/update-grub_lib.in: New file.
5109 * DISTLIST: Add update-grub_lib.in.
5110 * conf/common.rmk: Generate update-grub_lib and install it in
5111 $(lib_DATA).
5112 * Makefile.in: Add install routine for $(lib_DATA).
5113
5114 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
5115 function provided by update-grub_lib to support arbitrary paths of
5116 unifont.pff.
5117 * util/update-grub.in: Use convert_system_path_to_grub_path() to
5118 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
5119
5beb2291 51202007-05-19 Robert Millan <rmh@aybabtu.com>
5121
5122 * commands/i386/cpuid.c: New module.
5123 * DISTLIST: Add it.
5124 * conf/i386-efi.rmk: Enable cpuid.mod.
5125 * conf/i386-pc.rmk: Likewise.
5126
7262eca1 51272007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
5128
5129 * kern/disk.c (grub_disk_read): Check return value of
5130 grub_realloc().
5131
260ba823 51322007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
5133
5134 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
5135 arrays.
5136 * disk/raid.c (grub_raid_open): Likewise.
5137
1ecb6cf2 51382007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
5139
5140 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
5141 stack instead of on the heap.
5142
5143 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
5144 before doing a read on it.
5145
5146 * configure.ac: Only use -fno-stack-protector for the target
5147 environment.
f19dbdb7 5148
21c8cbb1 51492007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
5150
5151 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
5152 __attribute_ ((unused)) to mode_type argument.
5153
5154 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 5155
21c8cbb1 5156 * kern/misc.c (memcmp): Fix prototype.
5157
5158 * include/grub/partition.h [GRUB_UTIL]
5159 (grub_gpt_partition_map_init): Add prototype.
5160 (grub_gpt_partition_map_fini): Likewise.
5161
5162 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
5163 at the right place.
5164
5165 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
5166 (grub_fat_read_data): Likewise.
5167 (grub_fat_find_dir): Likewise.
5168
5169 * font/manager.c (find_glyph): Make table a const.
5170 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 5171
849d55d3 51722007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
5173
5174 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
5175 code, first search for device in /dev/mapper, then in /dev.
5176 (grub_util_get_grub_dev): New function.
5177 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
5178 prototype.
5179 * util/grub-probe.c (probe): Remove check for RAID, call
5180 grub_util_get_grub_dev() instead of
5181 grub_util_biosdisk_get_grub_dev().
5182 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
5183 grub_util_biosdisk_get_grub_dev().
5184 * util/i386/pc/grub-setup.c (main): Likewise.
5185
8fff7c2f 51862007-05-16 Robert Millan <rmh@aybabtu.com>
5187
5188 * DISTLIST: Update for the latest changes.
5189 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
5190 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
5191 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
5192 grub/util/biosdisk.h.
5193 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
5194 grub/util/biosdisk.h.
5195
48e12b52 51962007-05-16 Robert Millan <rmh@aybabtu.com>
5197
5198 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
5199
46b9d128 52002007-05-16 Robert Millan <rmh@aybabtu.com>
5201
5202 * util/i386/efi/grub-install.in: New.
5203 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
5204 newly added grub-install.
5205 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
5206 include.
5207 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
5208 grub/util/biosdisk.h.
5209 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
5210 grub/util/biosdisk.h.
5211
2d1a40a9 52122007-05-16 Robert Millan <rmh@aybabtu.com>
5213
5214 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
5215 * include/grub/util/biosdisk.h: ... here.
5216 * util/i386/pc/biosdisk.c: Moved to ...
5217 * util/biosdisk.c: ... here.
5218 * util/i386/pc/getroot.c: Moved to ...
5219 * util/getroot.c: ... here.
5220 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
5221 * util/grub-mkdevicemap.c: ... here.
5222 * util/i386/pc/grub-probe.c: Moved to ...
5223 * util/grub-probe.c: ... here.
5224
9e26e3bc 52252007-05-15 Robert Millan <rmh@aybabtu.com>
5226
5227 * util/update-grub.in: Remove duplicated line in grub.cfg header
5228 message.
5229
57f96397 52302007-05-13 Robert Millan <rmh@aybabtu.com>
5231
5232 * util/update-grub.in: Fix a few assumptions about the devices holding
5233 /, /boot and /boot/grub being the same.
5234 * util/grub.d/00_header.in: Likewise.
5235 * util/grub.d/10_hurd.in: Likewise.
5236 * util/grub.d/10_linux.in: Likewise.
5237
5238 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
5239 patterns. Use that to define the `.old' suffix as older than `'.
5240
5241 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
5242
5243 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
5244 the grub.cfg header message.
5245
2e610d62 52462007-05-11 Robert Millan <rmh@aybabtu.com>
5247
5248 * util/update-grub.in: Create device.map if it doesn't already exist,
5249 before attempting to run grub-probe.
5250 Check for grub-probe and grub-mkdevicemap with the same code
5251 grub-install is using.
5252 Remove test mode.
5253
3f6a10ef 52542007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
5255
5256 * Makefile.in: Add the datarootdir autoconf variable.
5257
02e7b75e 52582007-05-09 Robert Millan <rmh@aybabtu.com>
5259
5260 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 5261 fail gracefully if dev->disk->partition == NULL.
02e7b75e 5262
75f396cc 52632007-05-07 Robert Millan <rmh@aybabtu.com>
5264
5265 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
5266 determine partition map module.
5267 * util/i386/pc/grub-install.in: Use this feature to decide which
5268 partition module to load, instead of hardcoding pc and gpt.
5269
da65cb36 52702007-05-07 Robert Millan <rmh@aybabtu.com>
5271
5272 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
5273 source directory differs from build directory.
5274
b57d6a91 52752007-05-05 Robert Millan <rmh@aybabtu.com>
5276
5277 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
5278 initialisation.
5279
509d00f1 52802007-05-05 Robert Millan <rmh@aybabtu.com>
5281
5282 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
5283
c48f23ef 52842007-05-05 Robert Millan <rmh@aybabtu.com>
5285
5286 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
5287 command-line arguments via ${GRUB_CMDLINE_LINUX}.
5288
20b97658 52892007-05-05 Robert Millan <rmh@aybabtu.com>
5290
5291 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
5292 (grub_probe_SOURCES): Likewise.
5293 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
5294 GPT and initialize dos_part and bsd_part accordingly.
5295 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
5296 install_bsd_part.
5297 (main): Activate gpt module for use during partition identification,
5298 and deactivate it afterwards.
5299 * util/i386/pc/grub-install.in: Add gpt module to core.img.
5300 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
5301 partition identification, and deactivate it afterwards.
5302
99123174 53032007-05-05 Robert Millan <rmh@aybabtu.com>
5304
5305 * term/i386/pc/console.c (grub_console_fini): Call
5306 grub_term_set_current() before grub_term_unregister().
5307
ebd97f6e 53082007-05-04 Robert Millan <rmh@aybabtu.com>
5309
5310 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
5311 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
5312 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
5313 and update-grub_DATA.
5314 * conf/common.rmk: Build and install update-grub components.
5315 * conf/common.mk: Regenerate.
5316 * util/update-grub.in: New. Core of update-grub.
5317 * util/grub.d/00_header.in: New. Generates grub.cfg header.
5318 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
5319 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
5320 * util/grub.d/README: New. Document grub.d directory layout.
5321
b06a264d 53222007-05-01 Robert Millan <rmh@aybabtu.com>
5323
5324 * util/grub-emu.c: Move initialization functions
5325 grub_util_biosdisk_init() and grub_init_all() before
5326 grub_util_biosdisk_get_grub_dev(), which relies on them.
5327
41f0050e 53282007-04-19 Robert Millan <rmh@aybabtu.com>
5329
5330 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
5331 it is used later.
5332
04582bb3 53332007-04-18 Jerone Young <jerone@gmail.com>
5334
f19dbdb7 5335 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 5336 stanza.
5337
08db4632 53382007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 5339
08db4632 5340 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
5341 continue on and look for device node with real device name.
5342
801b76be 53432007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 5344
fe6b695a 5345 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 5346 ability.
5347 * Makefile.in: Add autoconf package transformation code.
5348 * util/i386/pc/grub-install.in: Likewise.
5349 * util/powerpc/ieee1275/grub-install.in: Likewise.
5350
6795c4e1 53512007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
5352
5353 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
5354 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
5355 (EXT2_REVISION): Likewise.
5356 (EXT2_INODE_SIZE): Likewise.
5357 (struct grub_ext2_block_group): Added a missing member
5358 "used_dirs".
5359 (grub_ext2_read_inode): Divide by the inode size in a superblock
5360 instead of 128 to obtain INODES_PER_BLOCK.
5361 Use the macro EXT2_INODE_SIZE instead of directly using
5362 SBLOCK->INODE_SIZE.
5363
d70af616 53642007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
5365
5366 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
5367 superblock instead of the structure size to compute an
5368 offset. This fixes the problem that GRUB could not read a
5369 filesystem when inode size is different from 128-byte.
5370
3b801603 53712007-03-05 Marco Gerards <marco@gnu.org>
5372
5373 * normal/main.c (read_config_file): When "menu" is not set, create
5374 an initial context.
5375
4785bfe4 53762007-02-21 Hollis Blanchard <hollis@penguinppc.org>
5377
5378 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
5379 (HEAP_LIMIT): New macro.
5380 (grub_claim_heap): Claim memory up to `heaplimit'.
5381
a0cbb023 53822007-02-21 Hollis Blanchard <hollis@penguinppc.org>
5383
5384 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
5385 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
5386 (_start): Likewise.
5387 (grub_arch_modules_addr): Return address after `_end'.
5388 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
5389 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
5390 (add_segments): Calculate `_end' from phdr size and location.
5391 (ALIGN_UP): Moved to ...
5392 * include/grub/misc.h: here.
5393 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
5394 New macro.
5395 (GRUB_IEEE1275_MODULE_BASE): Removed.
5396
fd7d8eba 53972007-02-20 Hollis Blanchard <hollis@penguinppc.org>
5398
5399 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
5400 loop boundary.
5401
9b09e6fc 54022007-02-20 Hollis Blanchard <hollis@penguinppc.org>
5403
5404 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
5405 All users updated.
5406 (grub_elf64_load_hook_t): Likewise.
5407 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
5408 debug output.
5409
3ce27299 54102007-02-20 Hollis Blanchard <hollis@penguinppc.org>
5411
5412 * kern/mm.c: Update copyright.
5413 (grub_mm_debug): Correct syntax error.
5414 (grub_mm_dump_free): New function.
5415 (grub_debug_free): Call `grub_free'.
5416 * include/grub/mm.h: Update copyright.
5417 (grub_mm_dump_free): Add declaration.
5418
077d5fee 54192007-02-12 Hollis Blanchard <hollis@penguinppc.org>
5420
5421 * include/grub/ieee1275/ieee1275.h: Update copyright.
5422 * kern/powerpc/ieee1275/init.c: Likewise.
5423 * kern/powerpc/ieee1275/openfw.c: Likewise.
5424
5425 * loader/powerpc/ieee1275/linux.c: Likewise.
5426 * include/grub/elfload.h: Likewise.
5427 * kern/elf.c: Likewise.
5428 (grub_elf32_load): Pass `base' and `size' parameters. Update all
5429 callers.
5430 (grub_elf64_load): Likewise.
5431 (grub_elf32_load_segment): Move to a nested function.
5432 (grub_elf64_load_segment): Likewise.
5433
dc946850 54342007-02-12 Hollis Blanchard <hollis@penguinppc.org>
5435
5436 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
5437 prototype.
5438 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
5439 (grub_heap_len): Likewise.
5440 (HEAP_SIZE): New macro.
5441 (grub_claim_heap): New function.
5442 (grub_machine_init): Don't claim heap directly. Call
5443 `grub_claim_heap'.
5444 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
5445 (grub_available_iterate): New function.
5446
baa2a121 54472007-02-03 Thomas Schwinge <tschwinge@gnu.org>
5448
5449 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
5450 * configure.ac: Use it for testing the HOST and TARGET compilers.
5451
4fe9862e 54522006-12-13 Thomas Schwinge <tschwinge@gnu.org>
5453
5454 * Makefile.in (enable_grub_emu): New variable.
5455 * configure.ac (--enable-grub-emu): New option.
5456 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
5457 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
5458 * conf/i386-pc.rmk: Likewise.
5459 * conf/powerpc-ieee1275.rmk: Likewise.
5460 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
5461
a8aa5762 54622006-12-12 Marco Gerards <marco@gnu.org>
5463
5464 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
5465
5466 * kern/env.c (grub_env_unset): Don't free the member `value' when
5467 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
5468 pointer.
5469
5470 * normal/main.c (current_menu): Removed.
5471 (free_menu): Unset the `menu' environment variable.
5472 (grub_normal_menu_addentry): Make use of the environment variable
5473 `menu', instead of using the global `current_menu'. Allocate
5474 memory for the sourcecode of this entry.
5475 (read_config_file): New argument `nested', changed all callers.
5476 Only in the case of a new context, initialize a new menu. Set the
5477 `menu' environment variable.
5478 (grub_normal_execute): Don't set and unset the environment
5479 variable `menu' here anymore. Only free the menu when leaving the
5480 context.
5481
5482 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
5483 leak.
5484
957b3a3e 54852006-12-11 Marco Gerards <marco@gnu.org>
5486
5487 * normal/menu_entry.c (run): Fix off by one bug so the last line
5488 is executed. Move the loader check to outside the loop.
5489
ef875714 54902006-12-08 Hollis Blanchard <hollis@penguinppc.org>
5491
5492 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
5493
4e739985 54942006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
5495
5496 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
5497 the number of sectors. Reported by Andrey Shuvikov
5498 <mr_hyro@yahoo.com>.
f19dbdb7 5499
790707f2 55002006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
5501
5502 * kern/disk.c (grub_disk_read): When there is a read error, always
5503 try to read only the necessary data.
f19dbdb7 5504
790707f2 5505 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
5506 disk/raid.c.
5507 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
5508 prototype.
5509 [GRUB_UTIL] (grub_raid_fini): Likewise.
5510 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 5511 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 5512 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
5513 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
5514 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
5515 and grub_raid_fini().
f19dbdb7 5516
03e58196 55172006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
5518
5519 * include/grub/types.h (__unused): Rename to UNUSED.
5520 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
5521 (grub_elf64_size): Likewise.
f19dbdb7 5522
ae4f23bf 55232006-11-03 Hollis Blanchard <hollis@penguinppc.org>
5524
5525 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
5526 grub_error_push and grub_error_pop in the error-handling path.
5527 (grub_elf32_load_segment): Only call grub_file_read with non-zero
5528 length.
5529
2166cc83 55302006-11-03 Hollis Blanchard <hollis@penguinppc.org>
5531
5532 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
5533 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5534 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5535 (kernel_elf_SOURCES): Likewise.
5536 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
5537 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
5538 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
5539 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
5540 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
5541 (elf_mod_SOURCES): New variable.
5542 (elf_mod_CFLAGS): Likewise.
5543 (elf_mod_LDFLAGS): Likewise.
5544 * include/grub/types.h (__unused): New macro.
5545 * include/grub/elfload.h: New file.
5546 * kern/elf.c: Likewise.
5547 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
5548 (ELF32_LOADMASK): New macro.
5549 (ELF64_LOADMASK): Likewise.
5550 (vmlinux): Removed.
5551 (grub_linux_load32): New function.
5552 (grub_linux_load64): Likewise.
5553 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
5554 Use grub_elf_t instead of grub_file_t.
5555
a09d5aa5 55562006-11-02 Hollis Blanchard <hollis@penguinppc.org>
5557
5558 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
5559 `catch_result' to struct set_color_args.
5560
d976fc51 55612006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
5562
5563 * normal/menu.c: Include grub/script.h.
5564 * normal/menu_entry.c: Likewise.
5565 * include/grub/normal.h: Do not include grub/script.h.
5566
67507549 55672006-10-27 Hollis Blanchard <hollis@penguinppc.org>
5568
5569 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
5570
69203a99 55712006-10-27 Hollis Blanchard <hollis@penguinppc.org>
5572
5573 * kern/disk.c (grub_disk_open): Print debug messages when opening a
5574 disk.
5575 (grub_disk_close): Print debug messages when closing a disk.
5576 (grub_disk_read): Print debug messages when disk read fails.
5577 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
5578 filesystem type.
5579 * kern/partition.c: Include misc.h.
5580 (grub_partition_iterate): Print debug messages when detecting
5581 partition type.
5582
e2b8278c 55832006-10-27 Hollis Blanchard <hollis@penguinppc.org>
5584
5585 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
5586 is negative.
5587 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
5588
97b2f2ff 55892006-10-26 Hollis Blanchard <hollis@penguinppc.org>
5590
5591 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
5592 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
5593
6555d655 55942006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
5595
5596 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
5597 instead of sizeof(lv). Patch by Michael Guntsche.
5598
4d42b77f 55992006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
5600
5601 * disk/lvm.c: Rename VGS to VG_LIST.
5602 (grub_lvm_iterate): Change VGS->LV to VG-LV.
5603 (grub_lvm_open): Likewise.
5604 Thanks to Michael Guntsche for finding this bug.
5605
5d74d927 56062006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
5607
5608 * configure.ac (AC_INIT): Bumped to 1.95.
5609
a1bb27e4 56102006-10-14 Robert Millan <rmh@aybabtu.com>
5611
5612 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
5613 with "/dev/.static/dev/md".
5614
e0994b8b 56152006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
5616
5617 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
5618 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
5619 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
5620 DRIVE_NAME are always freed.
5621
5622 * util/i386/pc/biosdisk.c (make_device_name): Add one into
5623 DOS_PART, as a DOS partition is counted from one instead of zero
5624 now. Reported by Robert Millan.
5625
ddd5cee9 56262006-10-14 Robert Millan <rmh@aybabtu.com>
5627
5628 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
5629 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
5630 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
5631 string returned by grub_guess_root_device.
5632 * util/i386/pc/grub-setup.c: Likewise.
5633 * util/i386/pc/grub-probefs.c: Likewise.
5634
5635 * util/i386/pc/grub-probefs.c: Rename to ...
5636 * util/i386/pc/grub-probe.c: ... this.
5637 * DISTLIST: Remove grub-probefs, add grub-probe.
5638 * conf/i386-efi.rmk: Likewise.
5639 * conf/i386-pc.rmk: Likewise.
5640 * util/i386/pc/grub-install.in: Likewise.
5641
5642 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
5643 choose which information we want to print.
5644
2b002173 56452006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
5646
5647 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
5648 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
5649 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
5650 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
5651 video/readers/tga.c and video/i386/pc/vbeutil.c.
5652
56532006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
5654
5655 Added support for RAID and LVM.
f19dbdb7 5656
2b002173 5657 * disk/lvm.c: New file.
5658 * disk/raid.c: Likewise.
5659 * include/grub/lvm.h: Likewise.
f19dbdb7 5660 * include/grub/raid.h: Likewise.
2b002173 5661 * include/grub/util/lvm.h: Likewise.
5662 * include/grub/util/raid.h: Likewise.
5663 * util/lvm.c: Likewise.
5664 * util/raid.c: Likewise.
5665
5666 * include/grub/disk.h (grub_disk_dev_id): Add
5667 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
5668 (grub_disk_get_size): New prototype.
5669 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
5670 returns a partition.
5671 (grub_disk_get_size): New function.
f19dbdb7 5672
2b002173 5673 * kern/i386/pc/init.c (make_install_device): Copy the prefix
5674 verbatim if grub_install_dos_part is -2.
5675
5676 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
5677 and LVM devices.
5678
5679 * util/i386/pc/grub-setup.c (setup): New argument
5680 MUST_EMBED. Force embedding of GRUB when the argument is
5681 true. Close FILE before returning.
5682 (main): Add support for RAID and LVM.
f19dbdb7 5683
2b002173 5684 * conf/common.rmk: Add RAID and LVM modules.
5685 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
5686 util/lvm.c.
5687 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
5688
5689 * kern/misc.c (grub_strstr): New function.
5690 * include/grub/misc.h (grub_strstr): New prototype.
5691
050548d0 56922006-10-10 Tristan Gingold <tristan.gingold@bull.net>
5693
5694 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
5695
da849d2d 56962006-10-05 Tristan Gingold <tristan.gingold@bull.net>
5697
5698 * kern/misc.c (grub_strtoull): Guess the base only if not
5699 specified.
5700
97b2f2ff 57012006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 5702
5703 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
5704 PowerMac support.
5705
97b2f2ff 57062006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 5707
5708 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
5709
5710 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
5711 Remove `flags' argument. All callers changed.
5712 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
5713 (IEEE1275_IHANDLE_INVALID): New variable.
5714 (IEEE1275_CELL_INVALID): New variable.
5715 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
5716 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
5717 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
5718 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
5719 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
5720 codes from Open Firmware. All callers updated.
5721 (grub_ieee1275_next_property): Directly return Open Firmware return
5722 code.
5723 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
5724 Standardize error checking from `grub_ieee1275_get_property'.
5725 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
5726 `devalias' to `aliases'. Correct comments. Consolidate error paths.
5727
97b2f2ff 57282006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 5729
5730 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
5731 `instance_to_package_args' to `instance_to_path_args'.
5732
5733 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
5734 `grub_ieee1275_chosen'.
5735
5736 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
5737 `grub_ieee1275_interpret'.
5738
97b2f2ff 57392006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 5740
5741 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
5742
97b2f2ff 57432006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 5744
5745 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
5746 (__cmpdi): Likewise.
5747
5748 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
5749 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
5750 `grub_ssize_t'.
5751
02bb8acc 5752 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 5753
5754 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
5755 to type `grub_ssize_t'.
5756 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
5757
7f9a8531 57582006-09-22 Marco Gerards <marco@gnu.org>
5759
5760 * normal/script.c (grub_script_create_cmdmenu): Skip leading
5761 newlines.
5762
b5ef1102 57632006-09-22 Marco Gerards <marco@gnu.org>
5764
5765 * commands/echo.c: New file.
5766
5767 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
5768
5769 * conf/common.rmk (echo_mod_SOURCES): New variable.
5770 (echo_mod_CFLAGS): Likewise.
5771 (echo_mod_LDFLAGS): Likewise.
5772
2cff3677 57732006-09-22 Marco Gerards <marco@gnu.org>
5774
5775 * normal/main.c (get_line): Malloc memory instead of using
5776 preallocated memory. Removed the arguments `cmdline' and
5777 `max_len'. Updated all callers.
5778
6ba4688b 57792006-09-22 Marco Gerards <marco@gnu.org>
5780
5781 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
5782 (normal_mod_DEPENDENCIES): Likewise.
5783
5784 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
5785 (normal_mod_DEPENDENCIES): Likewise.
5786
5787 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
5788
e02ac02c 57892006-09-22 Johan Rydberg <jrydberg@gnu.org>
5790
5791 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
5792 programs.
5793 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
5794 (normal_mod_DEPENDENCIES): Likewise.
5795 * conf/i386-pc.mk: Regenerate.
5796 * conf/i386-efi.mk: Likewise
5797 * conf/common.mk: Likewise.
5798 * conf/powerpc-ieee1275.mk: Likewise.
5799 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 5800
8d252e44 58012006-09-22 Robert Millan <rmh@aybabtu.com>
5802
5803 Sync with i386 version.
5804 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
5805 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
5806
209bf7ac 58072006-09-21 Robert Millan <rmh@aybabtu.com>
5808
5809 Import from GRUB Legacy (lib/device.c):
5810 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
5811 (init_device_map) [__linux__]: Add support for I2O devices.
5812
6b146090 58132006-09-14 Marco Gerards <marco@gnu.org>
5814
5815 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
5816 `-melf_i386'.
5817
e38600a8 58182006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 5819
5820 * util/i386/pc/grub-install.in: Skip menu.lst when removing
5821 /boot/grub/*.lst.
78fa1790 5822
2952da5d 5823 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 5824
2952da5d 5825 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
5826 before adding it to device.map.
5827
01b82a64 58282006-08-15 Johan Rydberg <jrydberg@gnu.org>
5829
fe6b695a 5830 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 5831 compiles a file; using the -MD option.
5832 * conf/common.mk: Regenerate.
5833 * conf/i386-pc.mk: Likewise.
5834 * conf/i386-efi.mk: Likewise.
5835 * conf/powerpc-ieee1275.mk: Likewise.
5836 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 5837
1064790d 58382006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
5839
5840 Move the prototypes of grub_setjmp and grub_longjmp to
5841 cpu/setjmp.h, so that each architecture may specify different
5842 attributes.
f19dbdb7 5843
1064790d 5844 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
5845 (grub_longjmp): Likewise.
5846 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
5847 (grub_longjmp): Likewise.
5848 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
5849 (grub_longjmp): Likewise.
5850
5851 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
5852 [!GRUB_UTIL] (grub_longjmp): Removed.
5853
29dda3ed 58542006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
5855
5856 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
5857 "color!" method does not return any value.
5858
ad2a06ed 58592006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
5860
5861 * include/grub/bitmap.h: New file.
5862
5863 * include/grub/i386/pc/vbeutil.h: Likewise.
5864
5865 * video/bitmap.c: Likewise.
5866
5867 * video/readers/tga.c: Likewise.
5868
5869 * video/i386/pc/vbeutil.c: Likewise.
5870
5871 * commands/videotest.c: Code cleanup and updated to reflect to new
5872 video API.
5873
5874 * term/gfxterm.c: Likewise.
5875
5876 * video/video.c: Likewise.
5877
5878 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
5879 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
5880 (bitmap_mod_SOURCES): New entry.
5881 (bitmap_mod_CFLAGS): Likewise.
5882 (bitmap_mod_LDFLAGS): Likewise.
5883 (tga_mod_SOURCES): Likewise.
5884 (tga_mod_CFLAGS): Likewise.
5885 (tga_mod_LDFLAGS): Likewise.
5886
5887 * include/grub/video.h (grub_video_blit_operators): New enum type.
5888 (grub_video_render_target): Changed as forward declaration and moved
5889 actual definition to be video driver specific.
5890 (grub_video_adapter.blit_bitmap): Added blitting operator.
5891 (grub_video_adapter.blit_render_target): Likewise.
5892 (grub_video_blit_bitmap): Likewise.
5893 (grub_video_blit_render_target): Likewise.
5894
5895 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
5896 driver specific render target definition.
5897 (grub_video_vbe_map_rgba): Added driver internal helper.
5898 (grub_video_vbe_unmap_color): Updated to use
5899 grub_video_i386_vbeblit_info.
5900 (grub_video_vbe_get_video_ptr): Likewise.
5901
5902 * include/grub/i386/pc/vbeblit.h
5903 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
5904 grub_video_i386_vbeblit_info.
5905 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
5906 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
5907 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
5908 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
5909 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
5910 (grub_video_i386_vbeblit_index_index): Likewise.
5911 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
5912 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
5913 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
5914 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
5915 operator.
5916 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
5917 operator.
5918
5919 * video/i386/pc/vbeblit.c: Updated to reflect changes on
5920 include/grub/i386/pc/vbeblit.h.
5921
5922 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
5923 Updated to use grub_video_i386_vbeblit_info.
5924 (grub_video_i386_vbefill_R8G8B8): Likewise.
5925 (grub_video_i386_vbefill_index): Likewise.
5926 (grub_video_i386_vbefill): Added generic filler.
5927
5928 * video/i386/pc/vbefill.c: Updated to reflect changes on
5929 include/grub/i386/pc/vbefill.h.
5930
5931 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
5932 grub_video_i386_vbeblit_info.
5933 (grub_video_vbe_unmap_color): Likewise.
5934 (grub_video_vbe_blit_glyph): Likewise.
5935 (grub_video_vbe_scroll): Likewise.
5936 (grub_video_vbe_draw_pixel): Removed function.
5937 (grub_video_vbe_get_pixel): Likewise.
5938 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
5939 updated code to use it.
5940 (common_blitter): Added common blitter for render target and bitmap.
5941 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
5942 (grub_video_vbe_blit_render_target): Likewise.
5943
bc8c036d 59442006-07-30 Johan Rydberg <jrydberg@gnu.org>
5945
5946 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
5947 is in text mode if there is no console control protocol instance
5948 available.
5949
684a8eff 59502006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
5951
5952 * include/grub/video.h: Code cleanup.
5953
5954 * include/grub/i386/pc/vbe.h: Likewise.
5955
5956 * video/i386/pc/vbe.c: Likewise.
5957
5958 * video/i386/pc/vbeblit.c: Likewise.
5959
5960 * video/i386/pc/vbefill.c: Likewise.
5961
5962 * video/video.c: Likewise. Also added more comments.
5963
5915059b 59642006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
5965
5966 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
5967 (struct grub_biosdisk_dap): Likewise.
5968
5969 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
5970 linkage settings for all functions.
5971
90ce5d56 59722006-07-12 Marco Gerards <marco@gnu.org>
5973
5974 * configure.ac (--enable-mm-debug): Fix typo.
5975
5976 * genkernsyms.sh.in: Use proper quoting for `CC'.
5977
43e7f879 59782006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
5979
5980 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
5981 (normal_mod_ASFLAGS): Remove "-m32".
5982
4889bdec 59832006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
5984
5985 * util/misc.c: Include config.h.
5986 [!HAVE_MEMALIGN]: Do not include malloc.h.
5987 (grub_memalign): Use posix_memalign, if present. Then, use
5988 memalign, if present. Otherwise, emit an error.
5989
5990 * util/grub-emu.c: Do not include malloc.h.
5991
5992 * include/grub/util/misc.h: Include unistd.h. This is required for
5993 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
5994 D. Eades III <hde@foobar-qux.org>.
5995
5996 * configure.ac (AC_GNU_SOURCE): Added.
5997 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
5998 type.
5999
fd39d4da 60002006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
6001
6002 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
6003 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
6004
b786f3b5 60052006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
6006
6007 * include/grub/types.h (grub_host_addr_t): Rename to
6008 grub_target_addr_t.
6009 (grub_host_off_t): Rename to grub_target_off_t.
6010 (grub_host_size_t): Rename to grub_target_size_t.
6011 (grub_host_ssize_t): Rename to grub_target_ssize_t.
6012 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
6013
6014 * include/grub/kernel.h (struct grub_module_header): Change type
6015 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
6016 (grub_module_info): Likewise.
f19dbdb7 6017
051988bb 60182006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
6019
6020 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
6021 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
6022 Velazquez <jesus.velazquez@gmail.com>.
6023
deae281b 60242006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
6025
6026 Count partitions from 1 instead of 0 in the string representation
6027 of partitions. Still use 0-based internally.
f19dbdb7 6028
deae281b 6029 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
6030 (sun_partition_map_iterate): Use grub_partition_t instead of
6031 struct grub_partition *. Cast DESC->START_CYLINDER to
6032 grub_uint64_t after converting the endian.
6033 (sun_partition_map_probe): Subtract 1 for PARTNUM.
6034 (sun_partition_map_get_name): Add 1 to P->INDEX.
6035
6036 * partmap/pc.c (grub_partition_parse): Subtract 1 for
6037 PCDATA->DOS_PART.
6038 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
6039
6040 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
6041 zero instead of one.
6042 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
6043 (gpt_partition_map_get_name): Add 1 into P->INDEX.
6044
6045 * partmap/apple.c (apple_partition_map_iterate): Change the type
6046 of POS to unsigned.
6047 (apple_partition_map_probe): Subtract 1 for PARTNUM.
6048 (apple_partition_map_get_name): Add 1 into P->INDEX.
6049
6050 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
6051 of POS to unsigned.
6052 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
6053 calculate the offset of a partition.
6054 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
6055 (amiga_partition_map_get_name): Add 1 into P->INDEX.
6056
6057 * partmap/acorn.c (acorn_partition_map_find): Change the type of
6058 SECTOR to grub_disk_addr_t.
6059 (acorn_partition_map_iterate): Likewise.
6060 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
6061 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
6062 top.
6063 (acorn_partition_map_get_name): Add 1 into P->INDEX.
6064
6065 * kern/i386/pc/init.c (make_install_device): Add 1 into
6066 GRUB_INSTALL_DOS_PART.
6067
6068 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
6069 conditional.
6070
524a1e6a 60712006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
6072
6073 Clean up the code to support 64-bit addressing in disks and
6074 files. This change is not enough for filesystems yet.
f19dbdb7 6075
524a1e6a 6076 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
6077 type of "start" to grub_uint64_t.
6078 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
6079 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
6080 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
6081 convert addresses.
6082
6083 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
6084 to grub_disk_addr_t.
6085
6086 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
6087 string.
6088
6089 * partmap/pc.c (pc_partition_map_iterate): Likewise.
6090
6091 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
6092 to char *.
6093
6094 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
6095
6096 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
6097
6098 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
6099
6100 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
6101 to grub_off_t, to detect an error from grub_file_seek.
6102 (grub_multiboot_load_elf32): Likewise.
6103
6104 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
6105 maximum unsigned long value when an overflow is detected.
6106 (grub_strtoull): New function.
6107 (grub_divmod64): Likewise.
6108 (grub_lltoa): use grub_divmod64.
6109
6110 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
6111 grub_disk_addr_t.
6112 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
6113 the pointer to next character. Use grub_strtoull instead of
6114 grub_strtoul.
6115 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
6116 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
6117 respectively.
6118
fe6b695a 6119 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 6120 return value is signed.
6121 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
6122 test if OFFSET is less than zero, as OFFSET is unsigned now.
6123
6124 * kern/disk.c (struct grub_disk_cache): Change the type of
6125 "sector" to grub_disk_addr_t.
6126 (grub_disk_cache_get_index): Change the type of SECTOR to
6127 grub_disk_addr_t. Calculate the hash with SECTOR casted to
6128 unsigned after shifting.
6129 (grub_disk_cache_invalidate): Change the type of SECTOR to
6130 grub_disk_addr_t.
6131 (grub_disk_cache_unlock): Likewise.
6132 (grub_disk_cache_store): Likewise.
6133 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
6134 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
6135 grub_disk_addr_t and grub_uint64_t, respectively.
6136 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
6137 body, as the value of OFFSET is tweaked by
6138 grub_disk_check_range. Change the types of START_SECTOR, LEN and
6139 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
6140 respectively.
6141 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
6142 body, as the value of OFFSET is tweaked by
6143 grub_disk_check_range. Change the types of LEN and N to
6144 grub_size_t.
6145
6146 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
6147 and "saved_offset" to grub_off_t.
6148 (test_header): Cast BUF to char *.
6149 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
6150 to char *.
6151 (grub_gzio_read): Change the types of OFFSET and SIZE to
6152 grub_off_t and grub_size_t, respectively.
6153
6154 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
6155 Removed.
6156 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
6157 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
6158 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
6159 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
6160 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
6161
6162 * include/grub/types.h (grub_off_t): Unconditionally set to
6163 grub_uint64_t.
6164 (grub_disk_addr_t): Changed to grub_uint64_t.
6165
6166 * include/grub/partition.h (struct grub_partition): Change the
6167 types of "start", "len" and "offset" to grub_disk_addr_t,
6168 grub_uint64_t and grub_disk_addr_t, respectively.
6169 (grub_partition_get_start): Return grub_disk_addr_t.
6170 (grub_partition_get_len): Return grub_uint64_t.
6171
6172 * include/grub/misc.h (grub_strtoull): New prototype.
6173 (grub_divmod64): Likewise.
6174
6175 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
6176 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
6177 grub_off_t, respectively.
6178 All callers and references changed.
6179
6180 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
6181 grub_size_t in "read".
6182 All callers and references changed.
6183
6184 * include/grub/file.h (struct grub_file): Change the types of
6185 "offset" and "size" to grub_off_t and grub_off_t,
6186 respectively. Change the type of SECTOR to grub_disk_addr_t in
6187 "read_hook".
6188 (grub_file_read): Change the type of LEN to grub_size_t.
6189 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
6190 grub_off_t.
6191 (grub_file_size): Return grub_off_t.
6192 (grub_file_tell): Likewise.
6193 All callers and references changed.
6194
6195 * include/grub/disk.h (struct grub_disk_dev): Change the types of
6196 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
6197 "write".
6198 (struct grub_disk): Change the type of "total_sectors" to
6199 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 6200 "read_hook".
524a1e6a 6201 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
6202 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
6203 (grub_disk_write): Likewise.
6204 All callers and references changed.
6205
6206 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
6207 char * for grub_strncmp to silence gcc.
6208 (grub_iso9660_mount): Likewise.
6209 (grub_iso9660_mount): Likewise.
6210 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
6211 return statement.
6212 (grub_iso9660_iterate_dir): Likewise.
6213 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
6214
6215 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
6216 LEN to grub_disk_addr_t and grub_size_t, respectively.
6217
6218 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
6219
6220 * fs/jfs.c (grub_jfs_read_file): Likewise.
6221
6222 * fs/minix.c (grub_jfs_read_file): Likewise.
6223
6224 * fs/sfs.c (grub_jfs_read_file): Likewise.
6225
6226 * fs/ufs.c (grub_jfs_read_file): Likewise.
6227
6228 * fs/xfs.c (grub_jfs_read_file): Likewise.
6229
6230 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
6231 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
6232 respectively.
6233
6234 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
6235 BLKNR to -1 instead of returning GRUB_ERRNO.
6236 (grub_ext2_read_file): Change the types of SECTOR and
6237 LEN to grub_disk_addr_t and grub_size_t, respectively.
6238
6239 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
6240 LEN to grub_disk_addr_t and grub_size_t, respectively.
6241
6242 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
6243 grub_file_read.
6244
6245 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
6246 string. Do not cast SECTOR explicitly.
6247
6248 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
6249 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
6250 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
6251 grub_disk_addr_t and grub_size_t, respectively. If the sector is
6252 over 2TB and LBA mode is not supported, raise an error.
6253 (get_safe_sectors): New function.
6254 (grub_biosdisk_read): Use get_safe_sectors.
6255 (grub_biosdisk_write): Likewise.
6256
6257 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
6258 (grub_efidisk_write): Likewise.
6259
6260 * disk/loopback.c (delete_loopback): Cosmetic changes.
6261 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
6262 correctly.
6263 (grub_loopback_open): Likewise.
6264 (grub_loopback_read): Likewise. Also, change the type of POS to
6265 grub_off_t, and fix the usage of grub_memset.
6266
6267 * commands/i386/pc/play.c: Include grub/machine/time.h.
6268
6269 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
6270 print FILE->SIZE.
6271
6272 * commands/configfile.c: Include grub/env.h.
6273
6274 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
6275 GRUB_ERRNO directly instead. Change the type of POS to
6276 grub_off_t. Follow the coding standard.
6277
6278 * commands/blocklist.c: Include grub/partition.h.
6279 (grub_cmd_blocklist): Return an error if the underlying device is
6280 not a disk. Take the starting sector of a partition into account,
6281 if a partition is used.
6282
6283 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
6284 a length field.
6285 (lba_mode): Support 64-bit addresses.
6286 (chs_mode): Likewise.
6287 (copy_buffer): Adapted to the new offsets of a length field and a
6288 segment field.
6289 (blocklist_default_start): Allocate 64-bit space.
6290
6291 * boot/i386/pc/boot.S (force_lba): Removed.
6292 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 6293 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 6294 space.
6295 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
6296 is useless.
6297 (lba_mode): Refactored to support a 64-bit address. More size
6298 optimization.
6299 (setup_sectors): Likewise.
6300
53af98ad 63012006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
6302
6303 * DISTLIST: Added include/grub/i386/linux.h. Removed
6304 include/grub/i386/pc/linux.h
6305
6306 * configure.ac (AC_INIT): Bumped to 1.94.
6307
6308 * config.guess: Updated from gnulib.
6309 * config.sub: Likewise.
6310 * install-sh: Likewise.
6311 * mkinstalldirs: Likewise.
6312
b4c1940a 63132006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
6314
6315 * conf/common.rmk (grub_modules_init.lst): Depended on
6316 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
6317 MODSRCFILES.
6318
6319 * genmk.rb (PModule::rule): Reverted the previous change.
6320
cfca1cfd 63212006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
6322
6323 * conf/common.rmk (grub_modules_init.lst): Depends on
6324 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
6325 that the target does not exist before producing.
6326 (grub_modules_init.h): Remove the target before generating.
6327 (grub_emu_init.c): Likewise.
6328
6329 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
6330
aa6d7826 63312006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
6332
6333 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
6334 for the target-specific tests. Make sure that we also have the
6335 up-to-date target variables for those tests.
6336
26c607b9 63372006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
6338
6339 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
6340 (PModule::rule): Likewise.
6341
0162321a 63422006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
6343
6344 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
6345 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
6346 target-specific flags should be prefixed.
6347 (PModule::rule): Likewise.
6348
6c826348 63492006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
6350
6351 * configure.ac (CMP): Check if cmp is available explicitly.
6352
b977bf01 63532006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
6354
6355 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
6356 (target_cpu): New variable.
6357 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 6358
b977bf01 6359 * util/i386/pc/grub-install.in (host_cpu): Removed.
6360 (target_cpu): New variable.
6361 (pkglibdir): Use target_cpu instead of host_cpu.
6362
6363 * util/genmoddep.c: Removed.
f19dbdb7 6364
b977bf01 6365 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
6366 instead of GRUB_HOST_SIZEOF_VOID_P.
6367 * kern/dl.c: Likewise.
6368
6369 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
6370 ...
6371 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
6372 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
6373 (GRUB_TARGET_SIZEOF_LONG): ... this.
6374 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
6375 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
6376 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
6377 to ...
6378 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
6379 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
6380 (GRUB_TARGET_SIZEOF_LONG): ... this.
6381 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
6382 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
6383 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
6384 to ...
6385 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
6386 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
6387 (GRUB_TARGET_SIZEOF_LONG): ... this.
6388 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
6389 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
6390
6391 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
6392 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
6393 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
6394 instead of GRUB_HOST_SIZEOF_LONG.
6395 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
6396 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
6397 GRUB_CPU_WORDS_BIGENDIAN.
6398 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
6399 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
6400 grub_host_ssize_t.
6401
6402 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
6403 (genmoddep_SOURCES): Likewise.
6404 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
6405 (genmoddep_SOURCES): Likewise.
6406 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
6407 (genmoddep_SOURCES): Likewise.
6408 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
6409 Likewise.
6410 (genmoddep_SOURCES): Likewise.
6411
6412 * genmoddep.awk: New file.
6413
6414 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
6415 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
6416 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
6417 (PModule::rule): Likewise.
6418 (Program::rule): Likewise.
6419 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
6420 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
6421 respectively.
6422
6423 * configure.ac: Rewritten intensively to use host and target
6424 instead of build and host, respectively.
6425
6426 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
6427 (host_cpu): Removed.
6428 (target_cpu): New variable.
6429 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
6430 (BUILD_CC): Removed.
6431 (BUILD_CFLAGS): Likewise.
6432 (BUILD_CPPFLAGS): Likewise.
6433 (TARGET_CC): New variable.
6434 (TARGET_CFLAGS): Likewise.
6435 (TARGET_CPPFLAGS): Likewise.
6436 (TARGET_LDFLAGS): Likewise.
6437 (AWK): Likewise.
6438 (include): Use target_cpu instead of host_cpu.
6439 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 6440
b977bf01 6441 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
6442
f09771a1 64432006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
6444
6445 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
6446 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
6447 field 'false' to 'exec_on_false'.
6448 (grub_script_create_cmdif): Renamed argument names to reflect above
6449 changes.
6450
6451 * normal/execute.c (grub_script_execute_cmdif): Likewise.
6452
6453 * normal/script.c (grub_script_create_cmdif): Likewise.
6454
118f4fb3 64552006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
6456
6457 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
6458 top.
6459 (grub_hfsplus_btree_recptr): Likewise.
6460 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
6461 FILEBLOCK both to pass a block number and store next block
6462 number.
6463 (grub_hfsplus_read_block): Rewritten heavily to support an extent
6464 overflow file correctly. Specify errors appropriately, because
6465 fshelp expects that GRUB_ERRNO is set when fails. Reuse
6466 grub_hfsplus_btree_recptr to get the pointer to a found key.
6467 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
6468 is found.
6469
6470 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
6471 linux.mod.
6472 (_linux_mod_SOURCES): New variable.
6473 (_linux_mod_CFLAGS): Likewise.
6474 (_linux_mod_LDFLAGS): Likewise.
6475 (linux_mod_SOURCES): Likewise.
6476 (linux_mod_CFLAGS): Likewise.
6477 (linux_mod_LDFLAGS): Likewise.
6478
6479 * DISTLIST: Added loader/i386/efi/linux.c,
6480 loader/i386/efi/linux_normal.c and
6481 include/grub/i386/efi/loader.h.
6482
6483 * loader/i386/efi/linux.c: New file.
6484 * loader/i386/efi/linux_normal.c: Likewise.
6485 * include/grub/i386/efi/loader.h: Likewise.
6486
89a7d726 64872006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
6488
6489 * commands/blocklist.c: New file.
6490
6491 * DISTLIST: Added commands/blocklist.c.
6492
6493 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 6494 color for the background, and a darker color for the foreground.
89a7d726 6495 (grub_console_checkkey): Return READ_KEY.
6496 (grub_console_cls): Set the background to
6497 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
6498
6499 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
6500
6501 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
6502 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
6503
6504 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
6505 prototype.
6506
6507 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
6508 BG. The spec is wrong again.
6509
6510 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
6511 prototype.
6512 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
6513
6514 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6515 commands/blocklist.c.
6516 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 6517
89a7d726 6518 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
6519 (blocklist_mod_SOURCES): New variable.
6520 (blocklist_mod_CFLAGS): Likewise.
6521 (blocklist_mod_LDFLAGS): Likewise.
6522
75c8f258 65232006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
6524
6525 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
6526 duplication.
6527 (lba_mode): Use %eax more intensively to reduce the code size.
6528
da2eb181 65292006-05-20 Marco Gerards <marco@gnu.org>
6530
6531 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
6532
6533 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
6534 for `menuentry'.
6535 (script): Accept leading newlines.
6536 (newlines): New rule to describe 0 or more newlines.
6537 (commands): Accept `command' with trailing newline. Fixed the
6538 order in which arguments were passed to `grub_script_add_cmd'.
6539 Accept commands separated by newlines.
6540 (function): Changed to accept newlines.
6541 (menuentry) Rewritten.
6542
6543 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
6544 front of the list, instead of to the end.
6545
577b4050 65462006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
6547
6548 * util/i386/pc/grub-install.in (bindir): New variable.
6549 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
6550 Shaver <lbgwjl@gmail.com>.
6551
0d6e1189 65522006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
6553
6554 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
6555 grub/machine/linux.h
6556 * loader/i386/pc/linux.c: Likewise.
6557
6558 * include/grub/i386/pc/linux.h: Moved to ...
6559 * include/grub/i386/linux.h: ... here.
6560
6561 * include/grub/i386/linux.h (struct linux_kernel_params): New
6562 struct.
f19dbdb7 6563
31b86e9f 65642006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
6565
6566 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
6567 checking.
6568 (grub_video_vbe_blit_glyph): Likewise.
6569 (grub_video_vbe_blit_bitmap): Likewise.
6570 (grub_video_vbe_blit_render_target): Likewise.
6571
83b984de 65722006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
6573
6574 * configure.ac (--with-platform): Properly quote the square
6575 brackets.
6576
5f0413bd 65772006-05-08 Marco Gerards <marco@gnu.org>
6578
6579 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
6580 this...
6581 (kernel_elf_HEADERS): ...to this. Updated all users.
6582 (grubof_symlist.c): Renamed from this...
6583 (kernel_elf_symlist.c): ...to this. Updated all users.
6584 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
6585 (grubof_SOURCES): Renamed from this...
6586 (kernel_elf_SOURCES): ...to this.
6587 (grubof_HEADERS): Renamed from this...
6588 (kernel_elf_HEADERS): ...to this.
6589 (grubof_CFLAGS): Renamed from this...
6590 (kernel_elf_CFLAGS): ...to this.
6591 (grubof_ASFLAGS): Renamed from this...
6592 (kernel_elf_ASFLAGS): ...to this.
6593 (grubof_LDFLAGS): Renamed from this...
6594 (kernel_elf_LDFLAGS): ...to this.
6595
6596 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
6597 this...
6598 (kernel_elf_HEADERS): ...to this. Updated all users.
6599 (grubof_symlist.c): Renamed from this...
6600 (kernel_elf_symlist.c): ...to this. Updated all users.
6601 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
6602 (grubof_SOURCES): Renamed from this...
6603 (kernel_elf_SOURCES): ...to this.
6604 (grubof_HEADERS): Renamed from this...
6605 (kernel_elf_HEADERS): ...to this.
6606 (grubof_CFLAGS): Renamed from this...
6607 (kernel_elf_CFLAGS): ...to this.
6608 (grubof_ASFLAGS): Renamed from this...
6609 (kernel_elf_ASFLAGS): ...to this.
6610 (grubof_LDFLAGS): Renamed from this...
6611 (kernel_elf_LDFLAGS): ...to this.
6612
6613 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
6614 `kernel.elf' instead of `grubof'.
6615
05568c2e 66162006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
6617
6618 Add --with-platform to configure. Use pkglibdir instead of
6619 pkgdatadir. This is reported by Roger Leigh.
6620
6621 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
6622 (host_vendor): Likewise.
6623 (host_os): Likewise.
6624 (pkgdatadir): Likewise.
6625 (platform): New variable.
6626 (pkglibdir): Likewise.
6627 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 6628
05568c2e 6629 * util/i386/pc/grub-install.in (datadir): Removed.
6630 (host_vendor): Likewise.
6631 (host_os): Likewise.
6632 (pkgdatadir): Likewise.
6633 (platform): New variable.
6634 (pkglibdir): Likewise.
6635 Use PKGLIBDIR instead of PKGDATADIR.
6636
6637 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
6638 instead of GRUB_DATADIR.
6639 (main): Likewise.
6640 * util/i386/pc/grub-mkimage.c (usage): Likewise.
6641 (main): Likewise.
6642 * util/i386/efi/grub-mkimage.c (usage): Likewise.
6643 (main): Likewise.
6644
6645 * configure.ac (--with-platform): New option.
6646 Use PLATFORM instead of HOST_VENDOR to specify a platform.
6647
6648 * Makefile.in: Include a makefile based on PLATFORM instead of
6649 HOST_VENDOR.
6650 (pkgdatadir): Not appended by the machine type.
6651 (pkglibdir): Appended by the machine type.
6652 (host_vendor): Removed.
6653 (platform): New variable.
6654 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
6655 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
6656 (uninstall): Likewise.
6657
4e93851c 66582006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
6659
6660 Use the environment context in the menu. Remove the commands
6661 "default" and "timeout", and use variables instead.
f19dbdb7 6662
4e93851c 6663 * normal/menu.c: Include grub/env.h.
6664 (print_entry): Cast TITLE to silence gcc.
6665 (get_timeout): New function.
6666 (set_timeout): Likewise.
6667 (get_entry_number): Likewise.
6668 (run_menu): Use a default entry, a fallback entry and a timeout
6669 in the environment variables "default", "fallback" and
6670 "timeout". Also, tweak the default entry if it is not within the
6671 current menu entries.
6672 (grub_menu_run): Use a fallback entry in the environment variable
6673 "fallback".
6674
6675 * normal/main.c (read_config_file): Do not initialize
6676 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
6677 NEWMENU->TIMEOUT.
6678 (grub_normal_execute): Use a data slot to store the menu.
6679
6680 * include/grub/normal.h (struct grub_menu): Removed default_entry,
6681 fallback_entry and timeout.
6682 (struct grub_menu_list): Removed.
6683 (grub_menu_list_t): Likewise.
6684 (struct grub_context): Likewise.
6685 (grub_context_t): Likewise.
6686 (grub_context_get): Likewise.
6687 (grub_context_get_current_menu): Likewise.
6688 (grub_context_push_menu): Likewise.
6689 (grub_context_pop_menu): Likewise.
6690 (grub_default_init): Likewise.
6691 (grub_default_fini): Likewise.
6692 (grub_timeout_init): Likewise.
6693 (grub_timeout_fini): Likewise.
6694
6695 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
6696 and timeout.mod.
6697 (normal_mod_SOURCES): Removed normal/context.c.
6698
6699 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
6700 commands/default.c, commands/timeout.c and normal/context.c.
6701 (normal_mod_SOURCES): Removed normal/context.c.
6702
6703 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
6704 commands/timeout.c and normal/context.c.
6705 (normal_mod_SOURCES): Removed normal/context.c.
6706
6707 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
6708 commands/default.c, commands/timeout.c and normal/context.c.
6709 (normal_mod_SOURCES): Removed normal/context.c.
6710
6711 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
6712 timeout.mod.
6713 (default_mod_SOURCES): Removed.
6714 (default_mod_CFLAGS): Likewise.
6715 (default_mod_LDFLAGS): Likewise.
6716 (timeout_mod_SOURCES): Removed.
6717 (timeout_mod_CFLAGS): Likewise.
6718 (timeout_mod_LDFLAGS): Likewise.
6719
6720 * DISTLIST: Removed commands/default.c, commands/timeout.c and
6721 normal/context.c.
6722
6723 * commands/default.c: Removed.
6724 * commands/timeout.c: Likewise.
6725 * normal/context.c: Likewise.
6726
1eb9cc1d 67272006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
6728
6729 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
6730
385bd9c1 67312006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
6732
6733 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
6734 "next" to "prev" for readability.
6735 (struct grub_env_sorted_var): New struct.
6736 (grub_env_context): Renamed to ...
6737 (initial_context): ... this.
6738 (grub_env_var_context): Renamed to ...
6739 (current_context): ... this.
6740 (grub_env_find): Look only at CURRENT_CONTEXT.
6741 (grub_env_context_open): Rewritten to copy exported variables from
6742 previous context.
6743 (grub_env_context_close): Rewritten according to the new
6744 scheme. Also, add an assertion to prevent the initial context from
6745 removed.
6746 (grub_env_insert): Removed the code for the sorted list.
6747 (grub_env_remove): Likewise.
6748 (grub_env_export): Simply mark the variable with
6749 GRUB_ENV_VAR_GLOBAL.
6750 (grub_env_set): A cosmetic change for naming consistency.
6751 (grub_env_get): Likewise.
6752 (grub_env_unset): Likewise.
6753 (grub_env_iterate): Rewritten to sort variables within this
6754 function.
6755 (grub_register_variable_hook): Fixed for naming consistency. Call
6756 grub_env_find again, only if NAME is not found at the first time.
6757 (mangle_data_slot_name): New function.
6758 (grub_env_set_data_slot): Likewise.
6759 (grub_env_get_data_slot): Likewise.
6760 (grub_env_unset_data_slot): Likewise.
6761
6762 * include/grub/env.h (grub_env_var_type): New enum.
6763 (GRUB_ENV_VAR_LOCAL): New constant.
6764 (GRUB_ENV_VAR_GLOBAL): Likewise.
6765 (GRUB_ENV_VAR_DATA): Likewise.
6766 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
6767 "type".
6768 (grub_env_set): Replace VAR with NAME for consistency.
6769 (grub_register_variable_hook): Likewise.
6770 (grub_env_export): Specify the name of the argument.
6771 (grub_env_set_data_slot): New prototype.
6772 (grub_env_get_data_slot): Likewise.
6773 (grub_env_unset_data_slot): Likewise.
6774
7f362539 67752006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
6776
6777 Extend the loader so that GRUB can accept a loader which comes
6778 back to GRUB when a loaded image exits. Also, this change adds
6779 support for a chainloader on EFI.
f19dbdb7 6780
7f362539 6781 * term/efi/console.c: Include grub/misc.h.
6782 (grub_console_checkkey): Display a scan code on the top for
6783 debugging. This will be removed once the EFI port gets stable.
6784 Correct the scan code mapping.
6785
6786 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
6787 allocate memory from larger regions, in order to reduce the number
6788 of allocated regions. Otherwise, the MacOSX loader panics.
6789 (filter_memory_map): Avoid less than 1MB for compatibility with
6790 other loaders.
6791 (add_memory_regions): Allocate from the tail of a region, if
6792 possible, to avoid allocating a region near to 1MB, for the MacOSX
6793 loader.
6794
6795 * kern/efi/init.c (grub_efi_set_prefix): Specify
6796 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
6797
6798 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
6799 argument IMAGE_HANDLE and specify it to get a loaded image.
6800 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
6801 grub_efi_get_loaded_image.
fe6b695a 6802 (grub_efi_get_filename): Divide the length by the size of
7f362539 6803 grub_efi_char16_t.
6804 (grub_efi_get_device_path): New function.
6805 (grub_efi_print_device_path): Print End Device Path nodes. Divide
6806 the length by the size of grub_efi_char16_t for a file path device
6807 path node.
6808
6809 * kern/loader.c (grub_loader_noreturn): New variable.
6810 (grub_loader_set): Accept a new argument NORETURN. Set
6811 GRUB_LOADER_NORETURN to NORETURN.
6812 All callers changed.
6813 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
6814 grub_machine_fini.
6815
6816 * include/grub/efi/efi.h (grub_efi_get_device_path): New
6817 prototype.
6818 (grub_efi_get_loaded_image): Take an argument to specify an image
6819 handle.
6820
6821 * include/grub/loader.h (grub_loader_set): Added one more argument
6822 NORETURN.
6823
6824 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
6825 instead of grub_efi_open_protocol.
6826 (grub_efidisk_get_device_name): Likewise.
6827 (grub_efidisk_close): Print a newline.
6828 (grub_efidisk_get_device_handle): Fixed to use
6829 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
6830 GRUB_EFI_DEVICE_PATH_TYPE.
6831
6832 * disk/efi/efidisk.c (device_path_guid): Moved to ...
6833 * kern/efi/efi.c (device_path_guid): ... here.
6834
6835 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
6836 chain.mod.
6837 (kernel_mod_HEADERS): Added efi/disk.h.
6838 (_chain_mod_SOURCES): New variable.
6839 (_chain_mod_CFLAGS): Likewise.
6840 (_chain_mod_LDFLAGS): Likewise.
6841 (chain_mod_SOURCES): Likewise.
6842 (chain_mod_CFLAGS): Likewise.
6843 (chain_mod_LDFLAGS): Likewise.
6844
6845 * DISTLIST: Added include/grub/efi/chainloader.h,
6846 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
6847
6848 * include/grub/efi/chainloader.h: New file.
6849 * loader/efi/chainloader.c: Likewise.
6850 * loader/efi/chainloader_normal.c: Likewise.
6851
c0111d6e 68522006-04-30 Marco Gerards <marco@gnu.org>
6853
6854 * commands/configfile.c (grub_cmd_source): New function.
6855 (GRUB_MOD_INIT): Register the commands `source' and `.'.
6856 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
6857
df5341da 68582006-04-30 Marco Gerards <marco@gnu.org>
6859
6860 * normal/execute.c (grub_script_execute_cmd): Change the return
6861 type to `grub_err_t'. Correctly return the error.
6862 (grub_script_execute_cmdline): In case a command line is not a
6863 command or a function, try to interpret it as an assignment.
6864
f85934bd 68652006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
6866
6867 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
6868 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
6869 skip a node whose name is obviously invalid as UTF-16,
6870 i.e. contains a NUL character. Stop the iteration when the last
6871 directory entry is found. Instead of using the return value of
6872 grub_hfsplus_btree_iterate_node, store the value in RET and use
6873 it, because the iterator can be stopped by the last directory
6874 entry.
6875
8f8a2cf8 68762006-04-30 Marco Gerards <marco@gnu.org>
6877
6878 * include/grub/env.h (grub_env_export): New prototype. Reported
6879 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
6880
a27e84ce 68812006-04-30 Marco Gerards <marco@gnu.org>
6882
6883 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
6884 size of the extents in a catalog file record.
6885
eaef0553 68862006-04-29 Marco Gerards <marco@gnu.org>
6887
6888 * commands/configfile.c (grub_cmd_configfile): Execute the
6889 configfile within its own context.
6890
6891 * include/grub/env.h (grub_env_context_open): New prototype.
6892 (grub_env_context_close): Likewise.
6893
6894 * kern/env.c (grub_env): Removed.
6895 (grub_env_sorted): Likewise.
6896 (grub_env_context): New variable.
6897 (grub_env_var_context): Likewise.
6898 (grub_env_find): Search both the active context and the global
6899 context.
6900 (grub_env_context_open): New function.
6901 (grub_env_context_close): Likewise.
6902 (grub_env_insert): Likewise.
6903 (grub_env_remove): Likewise.
6904 (grub_env_export): Likewise.
6905 (grub_env_set): Changed to use helper functions to avoid code
6906 duplication.
6907 (grub_env_iterate): Rewritten so both the current context and the
6908 global context are being used.
6909
6910 * normal/command.c (export_command): New function.
6911 (grub_command_init): Register the `export' function.
6912
7b455f4d 69132006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
6914
6915 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
6916 explicitly to suppress gcc's warnings.
6917 * fs/fat.c (grub_fat_find_dir): Likewise.
6918 (grub_fat_label): Likewise.
6919 * fs/xfs.c (grub_xfs_read_inode): Likewise.
6920 (grub_xfs_mount): Likewise.
6921 (grub_xfs_label): Likewise.
6922 * fs/affs.c (grub_affs_mount): Likewise.
6923 (grub_affs_label): Likewise.
6924 (grub_affs_iterate_dir): Likewise.
6925 * fs/sfs.c (grub_sfs_mount): Likewise.
6926 (grub_sfs_iterate_dir): Likewise.
6927 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
6928 * fs/hfs.c (grub_hfs_mount): Likewise.
6929 (grub_hfs_cmp_catkeys): Likewise.
6930 (grub_hfs_find_dir): Likewise.
6931 (grub_hfs_dir): Likewise.
6932 (grub_hfs_label): Likewise.
6933 * fs/jfs.c (grub_jfs_mount): Likewise.
6934 (grub_jfs_opendir): Likewise.
6935 (grub_jfs_getent): Likewise.
6936 (grub_jfs_lookup_symlink): Likewise.
6937 (grub_jfs_label): Likewise.
6938 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
6939 (grub_hfsplus_iterate_dir): Likewise.
6940 (grub_hfsplus_btree_iterate_node): Made static.
6941
6942 * util/grub-emu.c (prefix): New variable.
6943 (grub_machine_set_prefix): New function.
6944 (main): Do not set the environment variable "prefix" here. Only
6945 set PREFIX, which is used later by grub_machine_set_prefix.
6946
6947 * include/grub/video.h: Do not include grub/symbol.h.
6948 (grub_video_register): Not exported. This symbol is not defined in
6949 the kernel.
6950 (grub_video_unregister): Likewise.
6951 (grub_video_iterate): Likewise.
6952 (grub_video_setup): Likewise.
6953 (grub_video_restore): Likewise.
6954 (grub_video_get_info): Likewise.
6955 (grub_video_get_blit_format): Likewise.
6956 (grub_video_set_palette): Likewise.
6957 (grub_video_get_palette): Likewise.
6958 (grub_video_set_viewport): Likewise.
6959 (grub_video_get_viewport): Likewise.
6960 (grub_video_map_color): Likewise.
6961 (grub_video_map_rgb): Likewise.
6962 (grub_video_map_rgba): Likewise.
6963 (grub_video_fill_rect): Likewise.
6964 (grub_video_blit_glyph): Likewise.
6965 (grub_video_blit_bitmap): Likewise.
6966 (grub_video_blit_render_target): Likewise.
6967 (grub_video_scroll): Likewise.
6968 (grub_video_swap_buffers): Likewise.
6969 (grub_video_create_render_target): Likewise.
6970 (grub_video_delete_render_target): Likewise.
6971 (grub_video_set_active_render_target): Likewise.
6972
6973 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
6974 Undefined.
6975 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
6976
6977 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
6978 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
6979 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
6980 instead of $(srcdir)/genkernsyms.sh.
6981
6982 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
6983 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
6984 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
6985 instead of $(srcdir)/genkernsyms.sh.
6986
6987 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
6988 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
6989 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
6990 instead of $(srcdir)/genkernsyms.sh.
6991
6992 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
6993 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
6994 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
6995 instead of $(srcdir)/genkernsyms.sh.
6996
6997 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
6998 genkernsyms.sh.
6999
7000 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
7001 genkernsyms.sh.
7002 (gensymlist.sh): New target.
7003 (genkernsyms.sh): Likewise.
7004
7005 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
7006 genkernsyms.sh.in and gensymlist.sh.in.
7007
7008 * genkernsyms.sh: Removed.
7009 * gensymlist.sh: Likewise.
f19dbdb7 7010
7b455f4d 7011 * genkernsyms.sh.in: New file.
7012 * gensymlist.sh.in: Likewise.
7013
1885bb27 70142006-04-25 Hollis Blanchard <hollis@penguinppc.org>
7015
7016 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
7017 clobber "prefix", since we may have already set it manually.
7018
71538dff 70192006-04-25 Hollis Blanchard <hollis@penguinppc.org>
7020
7021 * kern/misc.c (abort): New alias for grub_abort.
7022
2965c7cc 70232006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
7024
7025 A new machine-specific function "grub_machine_set_prefix" is
7026 defined. This is called after loading modules, so that a prefix
7027 initialization can use modules. Also, this change adds an
7028 intensive debugging feature for the memory manager via the
7029 configure option "--enable-mm-debug".
f19dbdb7 7030
2965c7cc 7031 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
7032 PART.LEN.
7033
7034 * kern/sparc64/ieee1275/init.c (abort): Removed.
7035 (grub_stop): Likewise.
7036 (grub_exit): New function.
7037 (grub_set_prefix): Renamed to ...
7038 (grub_machine_set_prefix): ... this.
7039 (grub_machine_init): Do not call grub_set_prefix.
7040
7041 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
7042 (grub_machine_set_prefix): ... this.
7043 (grub_machine_init): Do not call grub_set_prefix.
7044
7045 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
7046 (grub_machine_init): Do not set the prefix here.
7047
7048 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
7049
7050 * kern/efi/init.c: Include grub/mm.h.
7051 (grub_efi_set_prefix): New function.
7052
7053 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
7054 (grub_efi_get_filename): New function.
7055 (grub_print_device_path): Renamed to ...
7056 (grub_efi_print_device_path): ... this.
7057
7058 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
7059 [MM_DEBUG] (grub_realloc): Likewise.
7060 [MM_DEBUG] (grub_free): Likewise.
7061 [MM_DEBUG] (grub_memalign): Likewise.
7062 [MM_DEBUG] (grub_mm_debug): New variable.
7063 [MM_DEBUG] (grub_debug_malloc): New function.
7064 [MM_DEBUG] (grub_debug_free): New function.
7065 [MM_DEBUG] (grub_debug_realloc): New function.
7066 [MM_DEBUG] (grub_debug_memalign): New function.
7067
7068 * kern/misc.c (grub_abort): Print a newline to distinguish
7069 the message.
7070
7071 * kern/main.c (grub_main): Call grub_machine_set_prefix and
7072 grub_set_root_dev after loading modules. This is necessary when
7073 setting a prefix depends on modules.
7074
7075 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
7076 (grub_efi_print_device_path): ... this.
7077 (grub_efi_get_filename): New prototype.
7078 (grub_efi_set_prefix): Likewise.
7079
7080 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
7081 and grub/disk.h.
7082 (grub_efidisk_get_device_handle): New prototype.
7083 (grub_efidisk_get_device_name): Likewise.
7084
7085 * include/grub/mm.h: Include config.h.
7086 (MM_DEBUG): Removed.
7087 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
7088 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
7089 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
7090 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
7091 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
7092 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
7093 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
7094 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
7095 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
7096
7097 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
7098
7099 * disk/efi/efidisk.c: Include grub/partition.h.
7100 (iterate_child_devices): New function.
7101 (add_device): First, compare only last device path nodes, so that
7102 devices are sorted by the types.
7103 (grub_efidisk_get_device_handle): New function.
7104 (grub_efidisk_get_device_name): Likewise.
7105
7106 * configure.ac (--enable-mm-debug): New option to enable the
7107 memory manager debugging feature. This makes the binary much
7108 bigger, so is disabled by default.
7109
9cacaa17 71102006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
7111
7112 Use grub_abort instead of grub_stop, and grub_exit must be
7113 define in each architecture now. Also, this change adds support
7114 for EFI disks.
f19dbdb7 7115
9cacaa17 7116 * util/i386/pc/grub-probefs.c: Include grub/term.h.
7117 (grub_getkey): New function.
7118 (grub_term_get_current): Likewise.
7119
7120 * util/i386/pc/grub-setup.c: Include grub/term.h.
7121 (grub_getkey): New function.
7122 (grub_term_get_current): Likewise.
7123
7124 * util/misc.c (grub_stop): Renamed to ...
7125 (grub_exit): ... this.
7126
7127 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
7128 (grub_exit): ... this.
7129 (grub_machine_init): Use grub_abort instead of abort.
7130 (grub_stop): Removed.
7131
7132 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
7133 abort.
7134
7135 * kern/i386/pc/startup.S (grub_exit): New function.
7136 (cold_reboot): New label.
7137
7138 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
7139 (grub_efi_init): Call grub_efidisk_init.
7140 (grub_efi_fini): Call grub_efidisk_fini.
7141
7142 * kern/efi/efi.c: Include grub/mm.h.
7143 (grub_efi_console_control_guid): Renamed to ...
7144 (console_control_guid): ... this.
7145 (grub_efi_loaded_image_guid): Renamed to ...
7146 (loaded_image_guid): ... this.
7147 (grub_efi_locate_handle): New function.
7148 (grub_efi_open_protocol): Likewise.
7149 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
7150 GRUB_EFI_CONSOLE_CONTROL_GUID.
7151 (grub_efi_exit): Removed.
7152 (grub_stop): Likewise.
7153 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
7154 (grub_exit): New function.
7155 (grub_print_device_path): Likewise.
7156
7157 * kern/rescue.c (grub_rescue_cmd_exit): New function.
7158 (grub_enter_rescue_mode): Register "exit".
7159
7160 * kern/misc.c (grub_real_dprintf): A cosmetic change.
7161 (grub_abort): New function.
7162
7163 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
7164
7165 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
7166
7167 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
7168
7169 * include/grub/efi/efi.h (grub_efi_exit): Removed.
7170 (grub_print_device_path): New prototype.
7171 (grub_efi_locate_handle): Likewise.
7172 (grub_efi_open_protocol): Likewise.
7173
7174 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
7175 * disk/efi/efidisk.c: Likewise.
7176
7177 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
7178
7179 * include/grub/efi/console_control.h
7180 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
7181
7182 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
7183 last 8 bytes as an array.
7184 (GRUB_EFI_DISK_IO_GUID): New macro.
7185 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
7186 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
7187 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
7188 grub_uint8_t.
7189 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
7190 (struct grub_efi_device_path): Rename the member "sub_type" to
7191 "subtype".
7192 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
7193 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
7194 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
7195 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
7196 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
7197 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
7198 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
7199 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
7200 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
7201 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
7202 (struct grub_efi_pci_device_path): New structure.
7203 (grub_efi_pci_device_path_t): New type.
7204 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
7205 (struct grub_efi_pccard_device_path): New structure.
7206 (grub_efi_pccard_device_path_t): New type.
7207 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
7208 (struct grub_efi_memory_mapped_device_path): New structure.
7209 (grub_efi_memory_mapped_device_path_t): New type.
7210 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
7211 (struct grub_efi_vendor_device_path): New structure.
7212 (grub_efi_vendor_device_path_t): New type.
7213 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
7214 (struct grub_efi_controller_device_path): New structure.
7215 (grub_efi_controller_device_path_t): New type.
7216 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
7217 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
7218 (struct grub_efi_acpi_device_path): New structure.
7219 (grub_efi_acpi_device_path_t): New type.
7220 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
7221 (struct grub_efi_expanded_acpi_device_path): New structure.
7222 (grub_efi_expanded_acpi_device_path_t): New type.
7223 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
7224 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
7225 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
7226 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
7227 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
7228 (struct grub_efi_atapi_device_path): New structure.
7229 (grub_efi_atapi_device_path_t): New type.
7230 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
7231 (struct grub_efi_fibre_channel_device_path): New structure.
7232 (grub_efi_fibre_channel_device_path_t): New type.
7233 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
7234 (struct grub_efi_1394_device_path): New structure.
7235 (grub_efi_1394_device_path_t): New type.
7236 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
7237 (struct grub_efi_usb_device_path): New structure.
7238 (grub_efi_usb_device_path_t): New type.
7239 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
7240 (struct grub_efi_usb_class_device_path): New structure.
7241 (grub_efi_usb_class_device_path_t): New type.
7242 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
7243 (struct grub_efi_i2o_device_path): New structure.
7244 (grub_efi_i2o_device_path_t): New type.
7245 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
7246 (struct grub_efi_mac_address_device_path): New structure.
7247 (grub_efi_mac_address_device_path_t): New type.
7248 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
7249 (struct grub_efi_ipv4_device_path): New structure.
7250 (grub_efi_ipv4_device_path_t): New type.
7251 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
7252 (struct grub_efi_ipv6_device_path): New structure.
7253 (grub_efi_ipv6_device_path_t): New type.
7254 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
7255 (struct grub_efi_infiniband_device_path): New structure.
7256 (grub_efi_infiniband_device_path_t): New type.
7257 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
7258 (struct grub_efi_uart_device_path): New structure.
7259 (grub_efi_uart_device_path_t): New type.
7260 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
7261 (struct grub_efi_vendor_messaging_device_path): New structure.
7262 (grub_efi_vendor_messaging_device_path_t): New type.
7263 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
7264 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
7265 (struct grub_efi_hard_drive_device_path): New structure.
7266 (grub_efi_hard_drive_device_path_t): New type.
7267 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
7268 (struct grub_efi_cdrom_device_path): New structure.
7269 (grub_efi_cdrom_device_path_t): New type.
7270 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
7271 (struct grub_efi_vendor_media_device_path): New structure.
7272 (grub_efi_vendor_media_device_path_t): New type.
7273 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
7274 (struct grub_efi_file_path_device_path): New structure.
7275 (grub_efi_file_path_device_path_t): New type.
7276 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
7277 (struct grub_efi_protocol_device_path): New structure.
7278 (grub_efi_protocol_device_path_t): New type.
7279 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
7280 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
7281 (struct grub_efi_bios_device_path): New structure.
7282 (grub_efi_bios_device_path_t): New type.
7283 (struct grub_efi_disk_io): New structure.
7284 (grub_efi_disk_io_t): New type.
7285 (struct grub_efi_block_io_media): New structure.
7286 (grub_efi_block_io_media_t): New type.
7287 (struct grub_efi_block_io): New structure.
7288 (grub_efi_block_io_t): New type.
7289
7290 * include/grub/misc.h (grub_stop): Removed.
7291 (grub_exit): New prototype.
7292 (grub_abort): Likewise.
7293
7294 * include/grub/disk.h (enum grub_disk_dev_id): Added
7295 GRUB_DISK_DEVICE_EFIDISK_ID.
7296
7297 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
7298 disk/efi/efidisk.c.
7299 (kernel_syms.lst): Remove the target if an error occurs.
7300
49986a9f 73012006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
7302
7303 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
7304 as it was simply too buggy.
7305
970d3b8a 73062006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
7307
7308 * kern/misc.c (grub_lltoa): New function.
7309 (grub_vsprintf): Added support for the long long suffix,
7310 i.e. "ll".
7311
ff04ec24 73122006-04-20 Hollis Blanchard <hollis@penguinppc.org>
7313
7314 * Makefile.in (LDFLAGS): Add variable.
7315 (LD): Remove variable.
7316 * configure.ac: Add -m32 to LDFLAGS.
7317 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
7318 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
7319 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
7320 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
7321 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
7322 variables.
7323 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
7324 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
7325 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
7326
37e5e1a4 73272006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
7328
7329 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
7330 length for unknown glyph.
7331
c352d8dd 73322006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
7333
2eab1c0d 7334 Add support for pre-loaded modules into the EFI port.
f19dbdb7 7335
2eab1c0d 7336 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
7337 completely. Accept one more argument DIR. The caller has changed.
7338
7339 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
7340
7341 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
7342 (grub_efi_loaded_image_guid): New variable.
7343 (grub_efi_get_loaded_image): New function.
7344 (grub_arch_modules_addr): Likewise.
7345
7346 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
7347 prototype.
7348
7349 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
7350 (struct grub_efi_loaded_image): New structure.
7351 (grub_efi_loaded_image_t): New type.
7352
73532006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 7354
c352d8dd 7355 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
7356 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
7357 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
7358
6d01d6b4 73592006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
7360
7361 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
7362
976a4ea0 73632006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
7364
7365 * DISTLIST: Added include/grub/efi/console.h,
7366 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
7367 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
7368
7369 * include/grub/efi/console.h: New file.
7370 * include/grub/efi/time.h: Likewise.
7371 * include/grub/i386/efi/kernel.h: Likewise.
7372 * kern/efi/init.c: Likewise.
7373 * kern/efi/mm.c: Likewise.
7374 * term/efi/console.c: Likewise.
f19dbdb7 7375
976a4ea0 7376 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
7377 (grub_stop): Removed.
7378 (grub_get_rtc): Likewise.
7379 (grub_machine_init): Simply call grub_efi_init.
7380 (grub_machine_fini): Call grub_efi_fini.
7381
7382 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
7383 (grub_efi_output_string): Removed.
7384 (grub_efi_stall): New function.
7385 (grub_stop): Likewise.
7386 (grub_get_rtc): Likewise.
7387
7388 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
7389 (grub_efi_stall): New prototype.
7390 (grub_efi_allocate_pages): Likewise.
7391 (grub_efi_free_pages): Likewise.
7392 (grub_efi_get_memory_map): Likewise.
7393 (grub_efi_mm_init): Likewise.
7394 (grub_efi_mm_fini): Likewise.
7395 (grub_efi_init): Likewise.
7396 (grub_efi_fini): Likewise.
7397
7398 * include/grub/i386/efi/time.h: Do not include
7399 grub/symbol.h. Include grub/efi/time.h.
7400 (GRUB_TICKS_PER_SECOND): Removed.
7401 (grub_get_rtc): Likewise.
7402
7403 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
7404 Added padding. The EFI spec is buggy.
7405 (GRUB_EFI_BLACK): New macro.
7406 (GRUB_EFI_BLUE): Likewise.
7407 (GRUB_EFI_GREEN): Likewise.
7408 (GRUB_EFI_CYAN): Likewise.
7409 (GRUB_EFI_RED): Likewise.
7410 (GRUB_EFI_MAGENTA): Likewise.
7411 (GRUB_EFI_BROWN): Likewise.
7412 (GRUB_EFI_LIGHTGRAY): Likewise.
7413 (GRUB_EFI_BRIGHT): Likewise.
7414 (GRUB_EFI_DARKGRAY): Likewise.
7415 (GRUB_EFI_LIGHTBLUE): Likewise.
7416 (GRUB_EFI_LIGHTGREEN): Likewise.
7417 (GRUB_EFI_LIGHTCYAN): Likewise.
7418 (GRUB_EFI_LIGHTRED): Likewise.
7419 (GRUB_EFI_LIGHTMAGENTA): Likewise.
7420 (GRUB_EFI_YELLOW): Likewise.
7421 (GRUB_EFI_WHITE): Likewise.
7422 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
7423 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
7424 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
7425 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
7426 (GRUB_EFI_BACKGROUND_RED): Likewise.
7427 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
7428 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
7429 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
7430 (GRUB_EFI_TEXT_ATTR): Likewise.
7431
7432 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
7433 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
7434 (kernel_mod_HEADERS): Added efi/time.h.
7435
83709125 74362006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
7437
7438 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
7439 include/grub/efi/api.h, include/grub/efi/console_control.h,
7440 include/grub/efi/efi.h, include/grub/efi/pe32.h,
7441 include/grub/i386/efi/time.h, kern/efi/efi.c,
7442 kern/i386/efi/init.c, kern/i386/efi/startup.S,
7443 and util/i386/efi/grub-mkimage.c.
7444
7445 * Makefile.in (RMKFILES): Added i386-efi.rmk.
7446
7447 * genmk.rb (PModule#rule): Do not export symbols if
7448 #{prefix}_EXPORTS is set to "no".
7449
7450 * conf/i386-efi.mk: New file.
7451 * conf/i386-efi.rmk: Likewise.
7452 * include/grub/efi/api.h: Likewise.
7453 * include/grub/efi/console_control.h: Likewise.
7454 * include/grub/efi/efi.h: Likewise.
7455 * include/grub/efi/pe32.h: Likewise.
7456 * include/grub/i386/efi/time.h: Likewise.
7457 * kern/efi/efi.c: Likewise.
7458 * kern/i386/efi/init.c: Likewise.
7459 * kern/i386/efi/startup.S: Likewise.
7460 * util/i386/efi/grub-mkimage.c: Likewise.
7461
74622006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 7463
7464 * include/grub/script.h: Include <grub/parser.h> and
7465 "grub_script.tab.h".
7466 (struct grub_lexer_param): New struct.
7467 (struct grub_parser_param): Likewise.
7468 (grub_script_create_arglist): Pass the state in an argument.
7469 (grub_script_add_arglist): Likewise.
7470 (grub_script_create_cmdline): Likewise.
7471 (grub_script_create_cmdblock): Likewise.
7472 (grub_script_create_cmdif): Likewise.
7473 (grub_script_create_cmdmenu): Likewise.
7474 (grub_script_add_cmd): Likewise.
7475 (grub_script_arg_add): Likewise.
7476 (grub_script_lexer_ref): Likewise.
7477 (grub_script_lexer_deref): Likewise.
7478 (grub_script_lexer_record_start): Likewise.
7479 (grub_script_lexer_record_stop): Likewise.
7480 (grub_script_mem_record): Likewise.
7481 (grub_script_mem_record_stop): Likewise.
7482 (grub_script_malloc): Likewise.
7483 (grub_script_yylex): Likewise.
7484 (grub_script_yyparse): Likewise.
7485 (grub_script_yyerror): Likewise.
7486 (grub_script_yylex): Likewise.
7487 (grub_script_lexer_init): Return the state.
7488
7489 * normal/lexer.c (grub_script_lexer_state): Removed variable.
7490 (grub_script_lexer_done): Likewise.
7491 (grub_script_lexer_getline): Likewise.
7492 (grub_script_lexer_refs): Likewise.
7493 (script): Likewise.
7494 (newscript): Likewise.
7495 (record): Likewise.
7496 (recording): Likewise.
7497 (recordpos): Likewise.
7498 (recordlen): Likewise.
7499 (grub_script_lexer_init): Return the state instead of setting
7500 global variables.
7501 (grub_script_lexer_ref): Use the newly added argument for state
7502 instead of globals.
7503 (grub_script_lexer_deref): Likewise.
7504 (grub_script_lexer_record_start): Likewise.
7505 (grub_script_lexer_record_stop): Likewise.
7506 (recordchar): Likewise.
7507 (nextchar): Likewise.
7508 (grub_script_yylex2): Likewise.
7509 (grub_script_yylex): Likewise.
7510 (grub_script_yyerror): Likewise.
7511
7512 * normal/parser.y (func_mem): Removed variable.
7513 (menu_entry): Likewise.
7514 (err): Likewise.
7515 (%lex-param): New parser option.
7516 (%parse-param): Likewise.
7517 (script): Always return the AST.
7518 (argument): Pass the state around.
7519 (arguments): Likewise.
7520 (grubcmd): Likewise.
7521 (commands): Likewise.
7522 (function): Likewise.
7523 (menuentry): Likewise.
7524 (if_statement): Likewise.
7525 (if): Likewise.
7526
7527 * normal/script.c (grub_script_memused): Removed variable.
7528 (grub_script_parsed): Likewise.
7529 (grub_script_malloc): Added a state argument. Use that instead of
7530 global variables.
7531 (grub_script_mem_record): Likewise.
7532 (grub_script_mem_record_stop): Likewise.
7533 (grub_script_arg_add): Likewise.
7534 (grub_script_add_arglist): Likewise.
7535 (grub_script_create_cmdline): Likewise.
7536 (grub_script_create_cmdif): Likewise.
7537 (grub_script_create_cmdmenu): Likewise.
7538 (grub_script_add_cmd): Likewise.
7539 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 7540
e2a8c904 75412006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 7542
7543 * normal/command.c (grub_command_init): Remove the title command.
7544
7545 * normal/lexer.c (grub_script_yylex): Renamed from this...
7546 (grub_script_yylex2): ... to this.
7547 (grub_script_yylex): New function. Temporary
7548 introduced to filter some tokens.
7549 (grub_script_yyerror): Print a newline.
7550
7551 * normal/main.c (read_config_file): Output information about the
7552 lines that contain errors. Wait for a key after all lines have
7553 been processed. Don't return an empty menu.
7554
7555 * normal/parser.y (func_mem): Don't initialize.
7556 (menu_entry): Likewise.
7557 (err): New variable.
7558 (script): Don't return anything when an error was encountered.
7559 (ws, returns): Removed rules.
7560 (argument): Disabled concatenated variable support.
7561 (arguments): Remove explicit separators.
7562 (grubcmd): Likewise.
7563 (function): Likewise.
7564 (menuentry): Likewise.
7565 (if): Likewise.
7566 (commands): Likewise. Add error handling.
7567
7568 * normal/script.c (grub_script_create_cmdline): If
7569 `grub_script_parsed' is 0, assume the parser encountered an error.
7570
c9a86192 75712006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
7572
7573 * configure.ac: Add support for EFI. Fix the typo
7574 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
7575
70f3b243 75762006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
7577
7578 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
7579 foreign multibyte characters should be shown correctly.
7580
65f201ad 75812006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
7582
7583 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
7584 calculation.
7585 (read_config_file): Made it to close file before returning.
7586
b4b93674 75872006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
7588
7589 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
7590 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
7591 video/i386/pc/vbefill.c.
7592
7593 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
7594 video/i386/pc/vbefill.c.
7595
7596 * include/grub/video.h (grub_video_blit_format): New enum.
7597 (grub_video_mode_info): Added new member blit_format.
7598 (grub_video_get_blit_format): New function prototype.
7599
7600 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
7601 function prototype.
7602 (grub_video_vbe_map_rgb): Likewise.
7603 (grub_video_vbe_unmap_color): Likewise.
7604
7605 * include/grub/i386/pc/vbeblit.h: New file.
7606
7607 * include/grub/i386/pc/vbefill.h: New file.
7608
7609 * video/video.c (grub_video_get_blit_format): New function.
7610 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
7611 (grub_video_vbe_map_rgb): Likewise.
7612 (grub_video_vbe_unmap_color): Likewise.
7613
7614 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
7615 optimized fills.
7616 (grub_video_vbe_blit_render_target): Changed to use more optimized
7617 blits.
7618 (grub_video_vbe_setup): Added detection for optimized settings.
7619 (grub_video_vbe_create_render_target): Likewise.
7620
7621 * video/i386/pc/vbeblit.c: New file.
7622
7623 * video/i386/pc/vbefill.c: New file.
7624
c2379b9c 76252006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
7626
7627 * font/manager.c (grub_font_get_glyph): Removed font fixup from
7628 here...
7629
7630 * util/unifont2pff.rb: ... and moved it to here. Improved argument
7631 parsing to support both hex and dec ranges. If filename was missing
7632 show usage information.
7633
bd0d7896 76342006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
7635
7636 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
7637 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
7638
7639 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
7640 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
7641 (video_mod_SOURCES): Added.
7642 (video_mod_CFLAGS): Likewise.
7643 (video_mod_LDFLAGS): Likewise.
7644 (gfxterm_mod_SOURCES): Likewise.
7645 (gfxterm_mod_CFLAGS): Likewise.
7646 (gfxterm_mod_LDFLAGS): Likewise.
7647 (videotest_mod_SOURCES): Likewise.
7648 (videotest_mod_CFLAGS): Likewise.
7649 (videotest_mod_LDFLAGS): Likewise.
7650 (vesafb_mod_SOURCES): Removed.
7651 (vesafb_mod_CFLAGS): Likewise.
7652 (vesafb_mod_LDFLAGS): Likewise.
7653 (vga_mod_SOURCES): Likewise.
7654 (vga_mod_CFLAGS): Likewise.
7655 (vga_mod_LDFLAGS): Likewise.
7656
7657 * commands/videotest.c: New file.
7658
7659 * font/manager.c (fill_with_default_glyph): Modified to use
7660 grub_font_glyph.
7661 (grub_font_get_glyph): Likewise.
7662 (fontmanager): Renamed from this...
7663 (font_manager): ... to this.
7664
7665 * include/grub/font.h (grub_font_glyph): Added new structure.
7666 (grub_font_get_glyph): Modified to use grub_font_glyph.
7667
7668 * include/grub/misc.h (grub_abs): Added as inline function.
7669
7670 * include/grub/video.h: New file.
7671
7672 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
7673 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
7674 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
7675 (grub_vbe_get_controller_info): Renamed from this...
7676 (grub_vbe_bios_get_controller_info): ... to this.
7677 (grub_vbe_get_mode_info): Renamed from this...
7678 (grub_vbe_bios_get_mode_info): ... to this.
7679 (grub_vbe_set_mode): Renamed from this...
7680 (grub_vbe_bios_set_mode): ... to this.
7681 (grub_vbe_get_mode): Renamed from this...
7682 (grub_vbe_bios_get_mode): ... to this.
7683 (grub_vbe_set_memory_window): Renamed from this...
7684 (grub_vbe_bios_set_memory_window): ... to this.
7685 (grub_vbe_get_memory_window): Renamed from this...
7686 (grub_vbe_bios_get_memory_window): ... to this.
7687 (grub_vbe_set_scanline_length): Renamed from this...
7688 (grub_vbe_set_scanline_length): ... to this.
7689 (grub_vbe_get_scanline_length): Renamed from this...
7690 (grub_vbe_bios_get_scanline_length): ... to this.
7691 (grub_vbe_set_display_start): Renamed from this...
7692 (grub_vbe_bios_set_display_start): ... to this.
7693 (grub_vbe_get_display_start): Renamed from this...
7694 (grub_vbe_bios_get_display_start): ... to this.
7695 (grub_vbe_set_palette_data): Renamed from this...
7696 (grub_vbe_bios_set_palette_data): ... to this.
7697 (grub_vbe_set_pixel_rgb): Removed.
7698 (grub_vbe_set_pixel_index): Likewise.
7699
7700 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
7701 from this...
7702 (grub_vbe_bios_get_controller_info): ... to this.
7703 (grub_vbe_get_mode_info): Renamed from this...
7704 (grub_vbe_bios_get_mode_info): ... to this.
7705 (grub_vbe_set_mode): Renamed from this...
7706 (grub_vbe_bios_set_mode): ... to this.
7707 (grub_vbe_get_mode): Renamed from this...
7708 (grub_vbe_bios_get_mode): ... to this.
7709 (grub_vbe_set_memory_window): Renamed from this...
7710 (grub_vbe_bios_set_memory_window): ... to this.
7711 (grub_vbe_get_memory_window): Renamed from this...
7712 (grub_vbe_bios_get_memory_window): ... to this.
7713 (grub_vbe_set_scanline_length): Renamed from this...
7714 (grub_vbe_set_scanline_length): ... to this.
7715 (grub_vbe_get_scanline_length): Renamed from this...
7716 (grub_vbe_bios_get_scanline_length): ... to this.
7717 (grub_vbe_set_display_start): Renamed from this...
7718 (grub_vbe_bios_set_display_start): ... to this.
7719 (grub_vbe_get_display_start): Renamed from this...
7720 (grub_vbe_bios_get_display_start): ... to this.
7721 (grub_vbe_set_palette_data): Renamed from this...
7722 (grub_vbe_bios_set_palette_data): ... to this.
7723 (grub_vbe_bios_get_controller_info): Fixed problem with registers
7724 getting corrupted after calling it. Added more pushes and pops.
7725 (grub_vbe_bios_set_mode): Likewise.
7726 (grub_vbe_bios_get_mode): Likewise.
7727 (grub_vbe_bios_get_memory_window): Likewise.
7728 (grub_vbe_bios_set_scanline_length): Likewise.
7729 (grub_vbe_bios_get_scanline_length): Likewise.
7730 (grub_vbe_bios_get_display_start): Likewise.
7731 (grub_vbe_bios_set_palette_data): Likewise.
7732
7733 * normal/cmdline.c (cl_set_pos): Refresh the screen.
7734 (cl_insert): Likewise.
7735 (cl_delete): Likewise.
7736
7737 * term/gfxterm.c: New file.
7738
7739 * term/i386/pc/vesafb.c: Removed file.
7740
7741 * video/video.c: New file.
7742
7743 * video/i386/pc/vbe.c (real2pm): Added new function.
7744 (grub_video_vbe_draw_pixel): Likewise.
7745 (grub_video_vbe_get_video_ptr): Likewise.
7746 (grub_video_vbe_get_pixel): Likewise
7747 (grub_video_vbe_init): Likewise.
7748 (grub_video_vbe_fini): Likewise.
7749 (grub_video_vbe_setup): Likewise.
7750 (grub_video_vbe_get_info): Likewise.
7751 (grub_video_vbe_set_palette): Likewise.
7752 (grub_video_vbe_get_palette): Likewise.
7753 (grub_video_vbe_set_viewport): Likewise.
7754 (grub_video_vbe_get_viewport): Likewise.
7755 (grub_video_vbe_map_color): Likewise.
7756 (grub_video_vbe_map_rgb): Likewise.
7757 (grub_video_vbe_map_rgba): Likewise.
7758 (grub_video_vbe_unmap_color): Likewise.
7759 (grub_video_vbe_fill_rect): Likewise.
7760 (grub_video_vbe_blit_glyph): Likewise.
7761 (grub_video_vbe_blit_bitmap): Likewise.
7762 (grub_video_vbe_blit_render_target): Likewise.
7763 (grub_video_vbe_scroll): Likewise.
7764 (grub_video_vbe_swap_buffers): Likewise.
7765 (grub_video_vbe_create_render_target): Likewise.
7766 (grub_video_vbe_delete_render_target): Likewise.
7767 (grub_video_vbe_set_active_render_target): Likewise.
7768 (grub_vbe_set_pixel_rgb): Remove function.
7769 (grub_vbe_set_pixel_index): Likewise.
7770 (index_color_mode): Remove static variable.
7771 (active_mode): Likewise.
7772 (framebuffer): Likewise.
7773 (bytes_per_scan_line): Likewise.
7774 (grub_video_vbe_adapter): Added new static variable.
7775 (framebuffer): Likewise.
7776 (render_target): Likewise.
7777 (initial_mode): Likewise.
7778 (mode_in_use): Likewise.
7779 (mode_list): Likewise.
7780
5f97350b 77812006-03-10 Marco Gerards <marco@gnu.org>
7782
7783 * configure.ac (AC_INIT): Bumped to 1.93.
7784
7785 * DISTLIST: Added `include/grub/hfs.h'.
7786
a3c5c6f8 77872006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
7788
7789 * boot/i386/pc/boot.S (general_error): Before looping, try INT
7790 18H, which might help the BIOS falling back to next boot media.
7791
6de53d26 77922006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
7793
7794 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
7795 Poe Chen <poe.poechen@gmail.com>.
7796
77c4a393 77972006-01-17 Marco Gerards <marco@gnu.org>
7798
7799 * include/grub/normal.h: Include <grub/script.h>.
7800 (grub_command_list): Removed struct.
7801 (grub_command_list_t): Removed type.
7802 (grub_menu_entry): Remove members `num' and `command_list'. Add
7803 members `commands' and `sourcecode'.
7804 * include/grub/script.h: Add inclusion guards.
7805 (grub_script_cmd_menuentry): New struct.
7806 (grub_script_execute_menuentry): New prototype.
7807 (grub_script_lexer_record_start): Likewise.
7808 (grub_script_lexer_record_stop): Likewise.
7809 * normal/execute.c (grub_script_execute_menuentry): New function.
7810 * normal/lexer.c (record, recording, recordpos, recordlen): New
7811 variables.
7812 (grub_script_lexer_record_start): New function.
7813 (grub_script_lexer_record_stop): Likewise.
7814 (recordchar): Likewise.
7815 (nextchar): Likewise.
7816 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
7817 2048 as the buffer size. Add the tokens `menuentry' and `@'.
7818 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
7819 (current_menu): New variable.
7820 (free_menu): Mainly rewritten.
7821 (grub_normal_menu_addentry): New function.
7822 (read_config_file): Rewritten.
7823 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 7824 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 7825 the menu entry.
7826 (run): Mainly rewritten.
7827 * normal/parser.y (menu_entry): New variable.
7828 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
7829 (menuentry): New rule.
7830 (command): Add `menuentry'.
7831 (if_statement): Allow additional returns before `fi'.
7832 * normal/script.c (grub_script_create_cmdmenu): New function.
7833
144f1f98 78342006-01-03 Marco Gerards <marco@gnu.org>
7835
7836 * INSTALL: GNU Bison is required.
7837 * configure.ac: Rewritten the test to detect Bison.
7838 * Makefile.in (YACC): New variable. Reported by Xun Sun
7839 <xun.sun.cn@gmail.com>.
7840
af4b2d89 78412006-01-03 Marco Gerards <marco@gnu.org>
7842
7843 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
7844 the HFS+ filesystem to filesystem blocks.
7845 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
7846 GCC warning is silenced.
7847
15643b71 78482006-01-03 Marco Gerards <marco@gnu.org>
7849
7850 * partmap/apple.c (apple_partition_map_iterate): Convert the data
7851 read from disk from big endian to host byte order.
7852
00905879 78532006-01-03 Hollis Blanchard <hollis@penguinppc.org>
7854
7855 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
7856 documentation.
7857 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
7858 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
7859 embedded HFS+ filesystem.
7860 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
7861 (grub_hfs_sblock): Move from here...
7862 * include/grub/hfs.h: To here... New file.
7863 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
7864 documentation.
7865 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
7866 New macros.
7867 (grub_hfsplus_volheader): Change type of member `magic' to
7868 `grub_uint16_t'.
7869 (grub_hfsplus_data): Add new member `embedded_offset'.
7870 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
7871 returned block.
7872 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
7873 Calculate the offset.
7874
8899bc3e 78752005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
7876
7877 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
7878 Removed.
7879 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
7880
ae8c0277 78812005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
7882
7883 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
7884 ENV->NAME is NULL after allocating ENV->VALUE.
7885
07084456 78862005-12-25 Marco Gerards <marco@gnu.org>
7887
7888 * kern/env.c (grub_env_set): Rewritten the error handling code.
7889
4750f5f1 78902005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
7891
7892 * geninit.sh: Made more robust, and more portable.
7893
50214199 78942005-12-25 Marco Gerards <marco@gnu.org>
7895
7896 Add support for Apple HFS+ filesystems.
f19dbdb7 7897
50214199 7898 * fs/hfsplus.c: New file.
7899
7900 * DISTLIST: Added `fs/hfsplus.c'.
7901
7902 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
7903 (hfsplus_mod_SOURCES): New variable.
7904 (hfsplus_mod_CFLAGS): Likewise.
7905 (hfsplus_mod_LDFLAGS): Likewise.
7906 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
7907 (grub_setup_SOURCES): Likewise.
7908 (grub_mkdevicemap_SOURCES): Likewise.
7909 (grub_emu_SOURCES): Likewise.
7910 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7911
7912 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
7913
7914 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
7915
befaed6c 79162005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
7917
7918 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
7919 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
7920 include/grub/parser.h, include/grub/script.h, kern/parser.c,
7921 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
7922 normal/lexer.c, normal/parser.y, normal/script.c, and
7923 partmap/gpt.c.
7924 Removed kern/sparc64/cache.c.
7925
7926 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
7927 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
7928 grub_emu_init.c.
7929
7930 * configure.ac (AC_INIT): Bumped to 1.92.
7931
6a124103 79322005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
7933
7934 * kern/err.c (grub_error_push): Added new function to support error
7935 stacks.
7936 (grub_error_pop): Likewise.
7937 (grub_error_stack_items): New local variable to support error stacks.
7938 (grub_error_stack_pos): Likewise.
7939 (grub_error_stack_assert): Likewise.
7940 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
7941 stack depth.
7942 (grub_print_error): Added support to print errors from error stack.
7943
7944 * include/grub/err.h (grub_error_push): Added function prototype.
7945 (grub_error_pop): Likewise.
7946
be973c1b 79472005-12-09 Hollis Blanchard <hollis@penguinppc.org>
7948
7949 * configure.ac: Accept `powerpc64' as host_cpu.
7950 (amd64): Rename to `biarch32'.
7951
7952 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
7953 non-cacheline-aligned addresses.
7954
7955 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
7956 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
7957 if `size' is non-zero.
7958
b04216ab 79592005-12-03 Marco Gerards <mgerards@xs4all.nl>
7960
7961 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
7962 and `cd' to make sure the filename is not prefixed with a
7963 directory name.
7964 (pkgdata_MODULES): Add `gpt.mod'.
7965 (gpt_mod_SOURCES): New variable.
7966 (gpt_mod_CFLAGS): Likewise.
7967 (gpt_mod_LDFLAGS): Likewise.
7968
7969 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
7970
7971 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
7972 New macro.
7973
7974 * partmap/gpt.c: New file.
7975
7976 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
7977 GPT partition map is detected.
7978
41730ed9 79792005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
7980
7981 * commands/i386/pc/play.c: New file.
7982 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
7983 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
7984 macros.
f19dbdb7 7985
95dc3643 79862005-11-27 Marco Gerards <mgerards@xs4all.nl>
7987
7988 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
7989 ((unused))' to silence gcc warning.
7990
1569ec51 79912005-11-26 Hollis Blanchard <hollis@penguinppc.org>
7992
7993 * configure.ac: Correct `AC_PROG_YACC' test.
7994
9abde152 79952005-11-22 Hollis Blanchard <hollis@penguinppc.org>
7996
7997 * util/powerpc/ieee1275/grub-install.in: Run the mount point
7998 check before installing files.
7999
44b83271 80002005-11-22 Mike Small <smallm@panix.com>
8001
8002 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
8003 number regex so multidigit numbers are recognized correctly.
8004
80052005-11-22 Mike Small <smallm@panix.com>
8006
8007 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
8008 debugging message before attempting to claim memory.
8009 (grub_rescue_cmd_initrd): Add a claim debugging message and try
8010 multiple addresses in case of failure.
8011
9c12956b 80122005-11-22 Hollis Blanchard <hollis@penguinppc.org>
8013
8014 * term/tparm.c (get_space): Remove empty `if' statement.
8015
8016 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
8017
8018 * kern/parser.c (check_varstate): Rename `state' to 's'.
8019
aeaf81d9 80202005-11-22 Hollis Blanchard <hollis@penguinppc.org>
8021
8022 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
8023 variable definitions to the beginning of each function. Sort stack
8024 variables by size.
8025 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
8026 `buf' argument to `char *'.
8027
79bbb63f 80282005-11-22 Hollis Blanchard <hollis@penguinppc.org>
8029
8030 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
8031 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 8032 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 8033 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
8034 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
8035 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
8036 configfile.mod, search.mod, gzio.mod and test.mod.
8037 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
8038 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
8039 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
8040 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
8041 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
8042 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
8043 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
8044 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
8045 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
8046 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
8047 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
8048 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
8049 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
8050 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
8051 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
8052 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
8053 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
8054 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
8055 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
8056 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
8057 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
8058 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
8059 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
8060
8061 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
8062 `grep --include'.
8063 (pkgdata_MODULES): Add test.mod.
8064
233b1628 80652005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
8066
8067 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
8068 appending to variables with "+=".
8069 (PModule): Use full pathname to generate *.lst filenames.
8070
8071 * Makefile.in: Fixed list rules moved from genmk.rb.
8072 (.DELETE_ON_ERROR): New special target.
8073 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
8074
8075 * conf/i386-pc.rmk: Include conf/common.mk.
8076 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 8077 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 8078 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
8079 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
8080 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
8081 configfile.mod, search.mod, gzio.mod and test.mod.
8082 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
8083 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
8084 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
8085 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
8086 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
8087 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
8088 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
8089 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
8090 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
8091 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
8092 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
8093 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
8094 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
8095 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
8096 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
8097 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
8098 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
8099 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
8100 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
8101 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
8102 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
8103 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
8104 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
8105 here...
8106 * conf/common.rmk: ... to here. New file.
8107
8108 * conf/common.mk: New file.
8109
16f820c8 81102005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
8111
8112 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
8113 (grub_script.tab.c): ... here.
8114
8115 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
8116 (grub_script.tab.c): ... here.
8117
8118 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
8119 (grub_script.tab.c): ... here.
8120
8121 * normal/command.c (grub_command_find): Fixed a memory leak of
8122 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
8123
63ba1554 81242005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
8125
8126 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
8127 "@" which marks the start of a comment on ARM.
8128 (VARIABLE): Likewise.
8129
7f67dc13 81302005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
8131
79bbb63f 8132 Add support for Linux/ADFS partition tables.
7f67dc13 8133
8134 * partmap/acorn.c: New file.
8135
8136 * include/grub/acorn_filecore.h: Likewise.
8137
8138 * DISTLIST: Added `partmap/acorn.c' and
8139 `include/grub/acorn_filecore.h'.
f19dbdb7 8140
7f67dc13 8141 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
8142 `partmap/acorn.c'.
8143 (pkgdata_MODULES): Add `acorn.mod'.
8144 (acorn_mod_SOURCES): New variable.
8145 (acorn_mod_CFLAGS): Likewise.
8146
8147 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
8148 `partmap/acorn.c'.
8149 (pkgdata_MODULES): Add `acorn.mod'.
8150 (acorn_mod_SOURCES): New variable.
8151 (acorn_mod_CFLAGS): Likewise.
8152
8153 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
8154 (pkgdata_MODULES): Add `acorn.mod'.
8155 (acorn_mod_SOURCES): New variable.
8156 (acorn_mod_CFLAGS): Likewise.
8157 (acorn_mod_LDFLAGS): Likewise.
8158
8159 * include/types.h (grub_disk_addr_t): New typedef.
8160
6d099807 81612005-11-13 Marco Gerards <mgerards@xs4all.nl>
8162
8163 * geninit.sh: New file.
8164
8165 * geninitheader.sh: Likewise.
8166
8167 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
8168 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
8169 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
8170 * commands/configfile.c (grub_configfile_init)
8171 (grub_configfile_fini): Likewise.
8172 * commands/default.c (grub_default_init, grub_default_fini):
8173 Likewise.
8174 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
8175 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
8176 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
8177 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
8178 Likewise.
8179 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
8180 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
8181 Likewise.
8182 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 8183 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 8184 Likewise.
8185 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
8186 Likewise.
fe6b695a 8187 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 8188 Likewise.
8189 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
8190 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
8191 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
8192 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
8193 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
8194 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
8195 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
8196 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
8197 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
8198 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
8199 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
8200 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
8201 * partmap/amiga.c (grub_amiga_partition_map_init)
8202 (grub_amiga_partition_map_fini): Likewise.
8203 * partmap/apple.c (grub_apple_partition_map_init)
8204 (grub_apple_partition_map_fini): Likewise.
8205 * partmap/pc.c (grub_pc_partition_map_init)
8206 (grub_pc_partition_map_fini): Likewise.
8207 * partmap/sun.c (grub_sun_partition_map_init,
8208 grub_sun_partition_map_fini): Likewise.
8209 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
8210 Likewise.
8211
8212 * util/grub-emu.c: Include <grub_modules_init.h>.
8213 (main): Don't initialize and de-initialize any modules directly,
8214 use `grub_init_all' and `grub_fini_all' instead.
8215
8216 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
8217 `grub_vesafb_mod_init'.
8218 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
8219 all users.
8220 * term/i386/pc/vga.c (grub_vga_init): Renamed to
8221 `grub_vga_mod_init'. Updated all users.
8222 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 8223
6d099807 8224 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
8225 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
8226 rules.
8227
8228 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
8229 Generate a function to initialize the module in utilities.
8230 Updated all callers.
8231 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
8232 initialize the module in utilities. Updated all callers.
8233
9046bcf0 82342005-11-09 Hollis Blanchard <hollis@penguinppc.org>
8235
8236 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
8237 escape sequence and a literal ^L to clear the screen.
8238
8239 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
8240 when returning from Open Firmware.
8241
d13ea639 82422005-11-09 Hollis Blanchard <hollis@penguinppc.org>
8243
8244 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
8245 (grub_ofconsole_height): Likewise.
8246 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
8247 manually insert a '\n'.
8248 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
8249 `grub_ofconsole_height'. Return early if these are already set.
8250
a8fcf206 82512005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
8252
8253 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
8254 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
8255 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
8256 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
8257 and `normal/script.c'.
8258 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
8259 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
8260 (test_mod_SOURCES): New variable.
8261 (test_mod_CFLAGS): Likewise.
8262 (test_mod_LDFLAGS): Likewise.
8263 (pkgdata_MODULES): Add `test.mod'.
8264 (grub_script.tab.c): New rule.
8265 (grub_script.tab.h): Likewise.
8266
b6b32745 82672005-11-07 Marco Gerards <mgerards@xs4all.nl>
8268
8269 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
8270 `commands/test.c', `normal/execute.c', `normal/lexer.c',
8271 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
8272 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
8273 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
8274 (test_mod_SOURCES): New variable.
8275 (test_mod_CFLAGS): Likewise.
8276 (pkgdata_MODULES): Add `test.mod'.
8277 (grub_script.tab.c): New rule.
8278 (grub_script.tab.h): Likewise.
8279
daac212a 82802005-11-06 Marco Gerards <mgerards@xs4all.nl>
8281
8282 Add initial scripting support.
8283
8284 * commands/test.c: New file.
8285 * include/grub/script.h: Likewise.
8286 * normal/execute.c: Likewise.
8287 * normal/function.c: Likewise.
8288 * normal/lexer.c: Likewise.
8289 * normal/parser.y: Likewise.
8290 * normal/script.c: Likewise.
8291
8292 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 8293
daac212a 8294 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
8295 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
8296 `normal/function.c' and `normal/script.c'.
8297 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
8298 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 8299 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
8300 variables.
daac212a 8301 (pkgdata_MODULES): Add `test.mod'.
8302 (grub_script.tab.c): New rule.
8303 (grub_script.tab.h): Likewise.
8304
8305 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
8306
8307 * include/grub/normal.h (grub_test_init): New prototype.
8308 (grub_test_fini): Likewise.
f19dbdb7 8309
daac212a 8310 * normal/command.c: Include <grub/script.h>.
8311 (grub_command_execute): Rewritten.
f19dbdb7 8312
daac212a 8313 * util/grub-emu.c (main): Call `grub_test_init' and
8314 `grub_test_fini'.
8315
77500b2b 83162005-11-03 Hollis Blanchard <hollis@penguinppc.org>
8317
8318 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
8319 to 0.
8320 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
8321 there are no pending characters.
8322
e45deb9e 83232005-11-03 Hollis Blanchard <hollis@penguinppc.org>
8324
8325 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
8326 `grub_strndup' to drop device arguments. Replace unnecessary
8327 `grub_strndup' with `grub_strdup'.
8328
4ce32619 83292005-11-03 Hollis Blanchard <hollis@penguinppc.org>
8330
8331 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
8332 `debug' environment variable has been set.
8333
83342005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 8335
4ce32619 8336 * Makefile.in (install-local): Use $(DATA).
8337 (uninstall): Likewise.
8338 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
8339 (sbin_UTILITIES): ... to here.
8340 (sbin_SCRIPTS): New variable.
8341 (grub_install_SOURCES): New variable.
8342 * util/powerpc/ieee1275/grub-install.in: New file.
8343 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
8344 variable.
8345 (add_segments): Call `grub_util_get_path'.
8346
25fe6f03 83472005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
8348
8349 From Timothy Baldwin:
8350 * commands/ls.c (grub_ls_list_files): Close FILE with
8351 grub_file_close.
8352 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
8353
04ccf3ec 83542005-10-24 Marco Gerards <mgerards@xs4all.nl>
8355
8356 * include/grub/parser.h: New file.
8357
8358 * kern/parser.c: Likewise.
8359
8360 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
8361 (grub_setup_SOURCES): Likewise.
8362 (grub_probefs_SOURCES): Likewise.
8363 (grub_emu_SOURCES): Likewise.
8364 (kernel_img_HEADERS): Add `parser.h'.
8365
8366 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
8367 (grub_emu_SOURCES): Add `kern/parser.c'.
8368 (grubof_SOURCES): Likewise.
8369
8370 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
8371 (grubof_SOURCES): Add `kern/parser.c'.
8372
8373 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
8374
8375 * kern/misc.c (grub_split_cmdline): Removed function.
8376
8377 * kern/rescue.c: Include <grub/parser.h>.
8378 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
8379 of `grub_split_cmdline'.
8380
8381 * normal/command.c: Include <grub/parser.h>.
8382 (grub_command_execute): Use `grub_parser_split_cmdline' instead
8383 of `grub_split_cmdline'.
8384
8385 * normal/completion.c: Include <grub/parser.h>.
8386 (cmdline_state): New variable.
8387 (iterate_dir): End the filename with a quote depending on the
8388 command line state.
8389 (get_state): new function.
8390 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
8391 split the arguments and determine the current argument. When the
8392 argument string is not quoted, escape all spaces.
8393
6d8f4b0e 83942005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
8395
8396 * normal/sparc64/setjmp.S: New file.
8397
15cf03ed 83982005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
8399
8400 * include/grub/sparc64/libgcc.h: New file.
8401 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
8402 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
8403 normal/sparc64/setjmp.c.
8404
03e8661a 84052005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
8406
8407 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
8408 * kern/sparc64/cache.S: New file.
8409 * kern/sparc64/cache.c: Removed.
8410 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
8411 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
8412 -mtune=ultrasparc.
8413 (COMMON_LDFLAGS): Add -melf64_sparc.
8414 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
8415 (grubof_SOURCES): Use cache.S instead of cache.c.
8416 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
8417 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
8418 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
8419 commented though.
8420 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
8421 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
8422 (linux_mod_CFLAGS): Commented out.
8423 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
8424 out because module isn't built.
8425 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
8426 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
8427 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
8428 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
8429 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
8430 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
8431 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
8432 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
8433 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
8434 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
8435 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
8436 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
8437 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
8438 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
8439
34eeec8a 84402005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
8441
8442 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
8443 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
8444 longer, because HFS should not be used on PC.
8445
708367a3 84462005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
8447
8448 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
8449 consistently within the loop.
8450
6fa1251a 84512005-10-15 Marco Gerards <mgerards@xs4all.nl>
8452
8453 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
8454 directory can not be read.
8455
4801580b 84562005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
8457
8458 * configure.ac (AC_INIT): Increase the version number to 1.91.
8459
8460 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
8461 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
8462 term/i386/pc/serial.c.
8463
219ad426 84642005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
8465
8466 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
8467 file size must be permitted.
8468
8469 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
8470 between %ah and %al.
8471
688e5699 84722005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
8473
8474 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
8475 grub_uint64_t.
8476 Call the hook with a NUL-terminated filename.
8477 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
8478 grub_cpu_to_be32.
8479
8480 * kern/term.c (cursor_state): New variable.
8481 (grub_term_set_current): Reset the cursor state on a new
8482 terminal.
8483 (grub_setcursor): Rewritten to use CURSOR_STATE.
8484 (grub_getcursor): New function.
8485
8486 * include/grub/term.h (grub_getcursor): New prototype.
8487
8488 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
8489 integers on ARM. Reported by Timothy Baldwin
8490 <T.E.Baldwin99@members.leeds.ac.uk>.
8491
bb34586c 84922005-10-11 Marco Gerards <mgerards@xs4all.nl>
8493
8494 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
8495 allocated.
8496 (grub_sfs_dir): Likewise.
8497
9a909877 84982005-10-09 Marco Gerards <mgerards@xs4all.nl>
8499
8500 Add support for the SFS filesystem.
8501
8502 * fs/sfs.c: New file.
8503
8504 * DISTLIST: Added `fs/sfs.c'.
8505
8506 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
8507 (grub_probefs_SOURCES): Likewise.
8508 (grub_emu_SOURCES): Likewise.
8509 (pkgdata_MODULES): Add `sfs.mod'.
8510 (sfs_mod_SOURCES): New variable.
8511 (sfs_mod_CFLAGS): Likewise.
8512 (sfs_mod_LDFLAGS): Likewise.
8513
8514 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
8515 (pkgdata_MODULES): Add `sfs.mod'.
8516 (sfs_mod_SOURCES): New variable.
8517 (sfs_mod_CFLAGS): Likewise.
8518
8519 * util/grub-emu.c (main): Call `grub_sfs_init' and
8520 `grub_sfs_fini'.
8521
8522 * include/grub/fs.h (grub_sfs_init): New prototype.
8523 (grub_sfs_fini): Likewise.
8524
57bdbde3 85252005-10-07 Marco Gerards <mgerards@xs4all.nl>
8526
8527 Add support for the AFFS filesystem.
8528
8529 * fs/affs.c: New file.
8530
8531 * DISTLIST: Added `fs/affs.c'.
8532
8533 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
8534 (grub_probefs_SOURCES): Likewise.
8535 (grub_emu_SOURCES): Likewise.
8536 (pkgdata_MODULES): Add `affs.mod'.
8537 (affs_mod_SOURCES): New variable.
8538 (affs_mod_CFLAGS): Likewise.
8539 (affs_mod_LDFLAGS): Likewise.
8540
8541 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
8542 (pkgdata_MODULES): Add `affs.mod'.
8543 (affs_mod_SOURCES): New variable.
8544 (affs_mod_CFLAGS): Likewise.
8545
8546 * util/grub-emu.c (main): Call `grub_affs_init' and
8547 `grub_affs_fini'.
8548
8549 * include/grub/fs.h (grub_affs_init): New prototype.
8550 (grub_affs_fini): Likewise.
8551
047b67e0 85522005-10-01 Marco Gerards <mgerards@xs4all.nl>
8553
8554 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
8555
59b8208a 85562005-10-01 Marco Gerards <mgerards@xs4all.nl>
8557
8558 * configure.ac: Accept `x86_64' as host_cpu. In that case add
8559 `-m32' to CFLAGS.
8560
8561 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
8562 linking.
f19dbdb7 8563
59b8208a 8564 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
8565 (COMMON_LDFLAGS): New variable.
8566 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
8567 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
8568 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
8569 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
8570 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
8571 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
8572 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
8573 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
8574 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
8575 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
8576 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
8577 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
8578 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
8579 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
8580 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
8581 variables.
8582 (normal_mod_ASFLAGS): Add `-m32'.
8583
8584 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
8585 (grub_host_size_t, grub_host_ssize_t): New types.
8586 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 8587 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 8588 `GRUB_HOST_SIZEOF_VOID_P'.
8589
8590 * include/grub/kernel.h (struct grub_module_header): Type of
8591 member offset changed to `grub_host_off_t'. Type of member size
8592 changed to `grub_host_size_t'.
8593 (struct grub_module_info): Type of member offset changed to
8594 `grub_host_off_t'. Type of member size changed to
8595 `grub_host_size_t'.
8596
b4093103 85972005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
8598
8599 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 8600
b4093103 8601 * kern/i386/pc/startup.S (multiboot_header): New label.
8602 (multiboot_entry): Likewise.
8603 (multiboot_trampoline): Likewise.
8604
8605 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
8606 Increased to 0x4A0.
8607
8608 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
8609 put parentheses after a question mark.
8610 [!GRUB_UTIL] (my_mod): New variable.
8611
8612 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
8613
b2499b29 86142005-09-28 Marco Gerards <mgerards@xs4all.nl>
8615
8616 Adds support for the XFS filesystem. Btrees are not supported
8617 yet.
8618
8619 * fs/xfs.c: New file.
8620
8621 * DISTLIST: Added `fs/xfs.c'.
8622
8623 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
8624 (grub_probefs_SOURCES): Likewise.
8625 (grub_emu_SOURCES): Likewise.
8626 (pkgdata_MODULES): Add `xfs.mod'.
8627 (xfs_mod_SOURCES): New variable.
8628 (xfs_mod_CFLAGS): Likewise.
8629
8630 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
8631 (pkgdata_MODULES): Add `xfs.mod'.
8632 (xfs_mod_SOURCES): New variable.
8633 (xfs_mod_CFLAGS): Likewise.
8634
8635 * util/grub-emu.c (main): Call `grub_xfs_init' and
8636 `grub_xfs_fini'.
8637
8638 * include/grub/fs.h (grub_xfs_init): New prototype.
8639 (grub_xfs_fini): Likewise.
8640
f19dbdb7 8641
83d37a62 86422005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
8643
8644 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
8645 color modes, allow greater than 16 colors to be configured as
8646 a default palette.
8647
47d2d65e 86482005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
8649
8650 * normal/completion.c (complete_arguments): Add the qualifier
8651 const into OPTIONS.
8652
8653 From Omniflux <omniflux+lists@omniflux.com>:
8654 * include/grub/terminfo.h: New file.
8655 * include/grub/tparm.h: Likewise.
8656 * include/grub/i386/pc/serial.h: Likewise.
8657 * term/terminfo.c: Likewise.
8658 * term/tparm.c: Likewise.
8659 * term/i386/pc/serial.c: Likewise.
8660 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
8661 serial.mod.
8662 (terminfo_mod_SOURCES): New variable.
8663 (terminfo_mod_CFLAGS): Likewise.
8664 (serial_mod_SOURCES): Likewise.
8665 (serial_mod_CFLAGS): Likewise.
8666
48b671ff 86672005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
8668
8669 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
8670 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
8671 and kern/powerpc/ieee1275/cmain.c, respectively.
8672
8673 * boot/powerpc/ieee1275/crt0.S: Moved to ...
8674 * kern/powerpc/ieee1275/crt0.S: ... here.
8675
8676 * boot/powerpc/ieee1275/cmain.c: Moved to ...
8677 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 8678
48b671ff 8679 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
8680 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
8681 instead of boot/powerpc/ieee1275/crt0.S and
8682 boot/powerpc/ieee1275/cmain.c, respectively.
8683
8684 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
8685 sectors. It was not used anyway.
8686
09fc77a7 86872005-08-30 Hollis Blanchard <hollis@penguinppc.org>
8688
8689 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
8690 `unused parameter' warning.
8691
003789c7 86922005-08-30 Hollis Blanchard <hollis@penguinppc.org>
8693
8694 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
8695 function.
8696 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
8697 getcharwidth.
8698
67f44c86 86992005-08-28 Marco Gerards <metgerards@student.han.nl>
8700
8701 * include/grub/normal.h (enum grub_completion_type): Added
8702 `GRUB_COMPLETION_TYPE_ARGUMENT'.
8703
8704 * normal/cmdline.c (print_completion): Handle
8705 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
8706 * normal/menu_entry.c (store_completion): Likewise.
8707
8708 * normal/completion.c (complete_arguments): New function.
8709 (grub_normal_do_completion): Call `complete_arguments' when the
8710 current words start with a dash.
8711
0b5abe02 87122005-08-27 Marco Gerards <metgerards@student.han.nl>
8713
8714 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
8715 `gzio.mod' instead of `io.mod').
8716
d9864ee1 87172005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
8718
8719 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
8720 (DISTDIRS): Added io and video.
8721 Rewrite the search routine to make an output consistently.
8722
8723 * DISTLIST: Added conf/sparc64-ieee1275.mk,
8724 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
8725 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
8726 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
8727 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
8728 util/powerpc/ieee1275/misc.c.
f19dbdb7 8729
d9864ee1 8730 * include/grub/gzio.h: New file.
8731 * io/gzio.c: Likewise.
f19dbdb7 8732
d9864ee1 8733 * kern/file.c (grub_file_close): Call grub_device_close only if
8734 FILE->DEVICE is not NULL.
8735
8736 * include/grub/mm.h [!NULL] (NULL): New macro.
8737
8738 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
8739
8740 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
8741 (pkgdata_MODULES): Added gzio.mod.
8742 (gzio_mod_SOURCES): New variable.
8743 (gzio_mod_CFLAGS): Likewise.
8744
8745 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
8746 (pkgdata_MODULES): Added gzio.mod.
8747 (gzio_mod_SOURCES): New variable.
8748 (gzio_mod_CFLAGS): Likewise.
8749
8750 * commands/cat.c: Include grub/gzio.h.
8751 (grub_cmd_cat): Use grub_gzfile_open instead of
8752 grub_file_open.
f19dbdb7 8753
d9864ee1 8754 * commands/cmp.c: Include grub/gzio.h.
8755 (grub_cmd_cmp): Use grub_gzfile_open instead of
8756 grub_file_open.
8757
8758 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
8759 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
8760 grub_file_open.
8761 (grub_rescue_cmd_module): Likewise.
8762
fa46f4b5 87632005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
8764
8765 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
8766 kern/sparc64/ieee1275/init.c because it contains _start.
8767 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
8768
e9211b5d 87692005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
8770
8771 * configure.ac: Add support for sparc64 host with ieee1275
8772 firmware.
8773 * configure: Generated from configure.ac.
8774 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
8775 instead of int.
8776 (grub_ofdisk_read): Likewise.
8777 (grub_ofdisk_open): Use %p to print pointer values, and cast the
8778 pointers as (void *) to remove a warning.
8779 (grub_ofdisk_close): Likewise.
8780 (grub_ofdisk_read): Likewise.
8781 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
8782 returns, so make it return void to remove a warning.
8783 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
8784 Corresponding prototype change.
8785 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
8786 values, and cast the pointers as (void *) to remove a warning.
8787 (grub_mm_dump): Likewise.
8788 * conf/sparc64-ieee1275.mk: New file.
8789 * conf/sparc64-ieee1275.rmk: Likewise.
8790 * include/grub/sparc64/setjmp.h: Likewise.
8791 * include/grub/sparc64/types.h: Likewise.
8792 * include/grub/sparc64/ieee1275/console.h: Likewise.
8793 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
8794 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
8795 * include/grub/sparc64/ieee1275/time.h: Likewise.
8796 * kern/sparc64/cache.c: Likewise.
8797 * kern/sparc64/dl.c: Likewise.
8798 * kern/sparc64/ieee1275/init.c: Likewise.
8799 * kern/sparc64/ieee1275/openfw.c: Likewise.
8800
385c6a92 88012005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
8802
8803 * util/console.c (grub_ncurses_putchar): If C is greater than
8804 0x7f, set C to a question mark.
8805 (grub_ncurses_getcharwidth): New function.
8806 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
8807 getcharwidth.
8808
8809 * normal/menu.c (print_entry): Made aware of Unicode. First,
8810 convert TITLE to UCS-4, and predict the cursor position by
8811 grub_getcharwidth.
8812
8813 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
8814 const to SRC.
8815 * kern/misc.c (grub_utf16_to_utf8): Likewise.
8816
16ccb8b1 88172005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
8818
8819 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
8820 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
8821 grub_strcat.
8822
8823 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
8824 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
8825 grub_strcpy and grub_strlen. Take it into account that a space
8826 character is inserted as a delimiter.
8827
6a85ce79 88282005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
8829
8830 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 8831 invalid magic in the error.
6a85ce79 8832
8833 * commands/search.c: New file.
f19dbdb7 8834
6a85ce79 8835 * util/grub-emu.c (main): Call grub_search_init and
8836 grub_search_fini.
8837
8838 * kern/rescue.c (grub_rescue_print_disks): Removed.
8839 (grub_rescue_print_devices): New function.
8840 (grub_rescue_cmd_ls): Use grub_device_iterate with
8841 grub_rescue_print_devices instead of grub_disk_dev_iterate with
8842 grub_rescue_print_disks.
8843
8844 * kern/partition.c (grub_partition_iterate): Return the result of
8845 PARTMAP->ITERATE instead of GRUB_ERRNO.
8846
8847 * kern/device.c: Include grub/partition.h.
8848 (grub_device_iterate): New function.
8849
8850 * include/grub/partition.h (grub_partition_iterate): Return int
8851 instead of grub_err_t.
8852
8853 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
8854 prototype.
8855 [GRUB_UTIL] (grub_search_fini): Likewise.
8856
8857 * include/grub/device.h (grub_device_iterate): New prototype.
8858
8859 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
8860 commands/search.c.
8861 (pkgdata_MODULES): Added search.mod.
8862 (search_mod_SOURCES): New variable.
8863 (search_mod_CFLAGS): Likewise.
8864
8865 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
8866 (pkgdata_MODULES): Added search.mod.
8867 (search_mod_SOURCES): New variable.
8868 (search_mod_CFLAGS): Likewise.
8869
8870 * commands/ls.c (grub_ls_list_disks): Renamed to ...
8871 (grub_ls_list_devices): ... this, and use grub_device_iterate.
8872 All callers changed.
8873
8874 * DISTLIST: Added commands/search.c.
8875
ef095434 88762005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
8877
8878 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
8879 conversion.
8880 (grub_getcharwidth): New function.
8881
8882 * kern/misc.c (grub_utf8_to_ucs4): New function.
8883
8884 * include/grub/term.h (struct grub_term): Added a new member
8885 "getcharwidth".
8886 (grub_getcharwidth): New prototype.
8887
8888 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
8889
8890 * term/i386/pc/console.c (map_char): New function. Segregated from
8891 grub_console_putchar.
8892 (grub_console_putchar): Use map_char.
8893 (grub_console_getcharwidth): New function.
8894 (grub_console_term): Specified grub_console_getcharwidth as
8895 getcharwidth.
8896
8897 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
8898 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
8899
8900 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
8901 GRUB_ERRNO.
8902 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
8903 on grub_strtoul completely.
8904 (write_char): Declare local variables in the beginning of the
8905 function.
8906 (grub_vesafb_getcharwidth): New function.
8907 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
8908 getcharwidth.
8909
1f0a95e4 89102005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
8911
8912 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
8913 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
8914 commands/i386/pc/vbetest.c.
8915
8916 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
8917 call grub_vbe_get_controller_info again, because the returned
8918 information is volatile.
8919 (grub_vbe_set_video_mode): Mostly rewritten.
8920 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
8921 grub_vbe_status_t correctly.
8922 (grub_vbe_get_video_mode_info): Likewise.
8923 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
8924 several if statements.
8925
8926 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
8927 * commands/i386/pc/vbeinfo.c: ... this.
8928
8929 * commands/i386/pc/vbe_test.c: Renamed to ...
8930 * commands/i386/pc/vbetest.c: ... this.
8931
8932 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
8933 ...
8934 (grub_cmd_vbeinfo): ... this. Save video modes before
8935 iterating. Skip a video mode, if it is not available, not enough
8936 information is given or it is monochrome. Show the memory
8937 model. Leave the interpretation of MODEVAR to grub_strtoul
8938 completely.
8939 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
8940 (GRUB_MOD_FINI): Likewise.
8941
8942 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
8943 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
8944 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
8945 duplicated grub_env_get. Leave the interpretation of MODEVAR to
8946 grub_strtoul completely.
8947 (real2pm): Removed.
8948 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
8949 (GRUB_MOD_FINI): Likewise.
8950
8951 * normal/misc.c: Include grub/mm.h.
8952
8953 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
8954 vbe_list_modes with vbetest.mod and vbeinfo.mod.
8955 (vbe_list_modes_mod_SOURCES): Removed.
8956 (vbe_list_modes_mod_CFLAGS): Likewise.
8957 (vbe_test_mod_SOURCES): Likewise.
8958 (vbe_test_mod_CFLAGS): Likewise.
8959 (vbeinfo_mod_SOURCES): New variable.
8960 (vbeinfo_mod_CFLAGS): Likewise.
8961 (vbetest_mod_SOURCES): Likewise.
8962 (vbetest_mod_CFLAGS): Likewise.
8963
992ffbbe 89642005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
8965
8966 * normal/misc.c: New file.
8967
8968 * DISTLIST: Added normal/misc.c.
f19dbdb7 8969
992ffbbe 8970 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
8971 DISK to HOOK. Call HOOK with DISK.
8972 * partmap/apple.c (apple_partition_map_iterate): Likewise.
8973 * partmap/pc.c (pc_partition_map_iterate): Likewise.
8974 * partmap/sun.c (sun_partition_map_iterate): Likewise.
8975
8976 * normal/menu_entry.c (struct screen): Added a new member
8977 "completion_shown".
8978 (completion_buffer): New global variable.
8979 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
8980 (store_completion): New function.
8981 (complete): Likewise.
8982 (clear_completions): Likewise.
8983 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
8984 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
8985 a tab, call complete.
8986
8987 * normal/completion.c (disk_dev): Removed.
8988 (print_simple_completion): Likewise.
8989 (print_partition_completion): Likewise.
8990 (print_func): New global variable.
8991 (add_completion): Do not take the arguments WHAT or PRINT any
8992 longer. Added a new argument TYPE. Instead of printing directly,
8993 call PRINT_FUNC if not NULL.
8994 All callers changed.
8995 (complete_device): Use a local variable DEV instead of
8996 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
8997 (grub_normal_do_completion): Take a new argument HOOK. Do not
8998 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
8999 empty string, return NULL instead.
9000 All callers changed.
9001
9002 * normal/cmdline.c (print_completion): New function.
9003
9004 * kern/partition.c (grub_partition_iterate): Add an argument DISK
9005 to HOOK.
9006 All callers changed.
9007
9008 * kern/disk.c (grub_print_partinfo): Removed.
9009
9010 * include/grub/partition.h (struct grub_partition_map): Add a new
9011 argument DISK into HOOK of ITERATE.
9012 (grub_partition_iterate): Add a new argument DISK to HOOK.
9013
9014 * include/grub/normal.h (enum grub_completion_type): New enum.
9015 (grub_completion_type_t): New type.
9016 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
9017 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
9018 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
9019 (GRUB_COMPLETION_TYPE_FILE): Likewise.
9020 (grub_normal_do_completion): Added a new argument HOOK.
9021 (grub_normal_print_device_info): New prototype.
9022
9023 * include/grub/disk.h (grub_print_partinfo): Removed.
9024
9025 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
9026 (normal_mod_SOURCES): Likewise.
9027 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9028 (normal_mod_SOURCES): Likewise.
9029
9030 * commands/ls.c (grub_ls_list_disks): Use
9031 grub_normal_print_device_info instead of grub_print_partinfo. Free
9032 PNAME.
9033 (grub_ls_list_files): Use grub_normal_print_device_info instead of
9034 duplicating the code.
9035
0bd41162 90362005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
9037
9038 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 9039 follow GCS more precisely.
9040 * commands/i386/pc/vbe_test.c: Likewise.
9041 * include/grub/i386/pc/vbe.h: Likewise.
9042 * term/i386/pc/vesafb.c: Likewise.
9043 * video/i386/pc/vbe.c: Likewise.
0bd41162 9044
6323696a 90452005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
9046
9047 * DISTLIST: Added term/i386/pc/vesafb.c
9048 DISTLIST: Added video/i386/pc/vbe.c
9049 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
9050 DISTLIST: Added commands/i386/pc/vbe_test.c.
9051 * commands/i386/pc/vbe_list_modes.c: New file.
9052 * commands/i386/pc/vbe_test.c: Likewise.
9053 * term/i386/pc/vesafb.c: Likewise.
9054 * video/i386/pc/vbe.c: Likewise.
9055 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
9056 (grub_vbe_probe) Added prototype.
9057 (grub_vbe_set_video_mode) Likewise.
9058 (grub_vbe_get_video_mode) Likewise.
9059 (grub_vbe_get_video_mode_info) Likewise.
9060 (grub_vbe_set_pixel_rgb) Likewise.
9061 (grub_vbe_set_pixel_index) Likewise.
9062 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
9063 (pkgdata_MODULES): Added vesafb.mod.
9064 (pkgdata_MODULES): Added vbe_list_modes.mod.
9065 (pkgdata_MODULES): Added vbe_test.mod.
9066 (vbe_mod_SOURCES): Added.
9067 (vbe_mod_CFLAGS): Likewise.
9068 (vesafb_mod_SOURCES): Likewise.
9069 (vesafb_mod_CFLAGS): Likewise.
9070 (vbe_list_modes_mod_SOURCES): Likewise.
9071 (vbe_list_modes_mod_CFLAGS): Likewise.
9072 (vbe_test_mod_SOURCES): Likewise.
9073 (vbe_test_mod_CFLAGS): Likewise.
9074
0a74e62f 90752005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
9076
0a74e62f 9077 * normal/command.c (grub_command_execute): If INTERACTIVE is
9078 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
9079 CMDLINE. Disable the pager if INTERACTIVE is true.
9080 All callers are changed.
9081
9082 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
9083 before reading a config file.
9084 * normal/main.c (read_config_file): Even if a command is not
9085 found, register it if it is within an entry.
9086
9087 * util/grub-emu.c: Include sys/types.h and unistd.h.
9088 (options): Added --hold.
9089 (struct arguments): Added a new member "hold".
9090 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
9091 missing.
9092 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
9093 cleared by a debugger, if it is not zero.
9094
9095 * include/grub/normal.h (grub_command_execute): Add an argument
9096 INTERACTIVE.
9097
e51f85ae 90982005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
9099
9100 * DISTLIST: Added include/grub/i386/pc/vbe.h.
9101
e9c6f39b 91022005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
9103
9104 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
9105 program with another one, because the old one didn't detect a bug
9106 in gcc-3.4. Always use regparm 2, because the new test is still
9107 not enough for gcc-4.0. Someone must investigate a simple test
9108 case which detects a bug in gcc-4.0.
9109
8de3495c 91102005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
9111
9112 * DISTLIST: Added normal/completion.c.
9113
9114 * normal/completion.c: New file.
f19dbdb7 9115
8de3495c 9116 * term/i386/pc/console.c (grub_console_getwh): New function.
9117 (grub_console_term): Assign grub_console_getwh to getwh.
9118
9119 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
9120 function is defined in normal/completion.c as
9121 grub_normal_do_completion.
9122 (grub_cmdline_get): Use grub_normal_do_completion instead of
9123 grub_tab_complete.
9124
9125 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
9126 returns non-zero, otherwise return 0.
9127 (grub_partition_iterate): First, probe the partition map. Then,
9128 call ITERATE only for this partition map.
9129
9130 * kern/misc.c (grub_strncmp): Rewritten.
9131
9132 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
9133 returns non-zero. Otherwise return 0.
9134
9135 * include/grub/partition.h (grub_partition_map_iterate): Return
9136 int instead of void.
9137
9138 * include/grub/normal.h (grub_normal_do_completion): New prototype.
9139
9140 * include/grub/misc.h (grub_strncmp): Change the type of N to
9141 grub_size_t.
9142
9143 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
9144 of void.
9145
9146 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 9147 unsigned explicitly before comparing it with I.
8de3495c 9148
9149 * kern/main.c (grub_env_write_root): Add the attribute unused into
9150 VAR.
9151
9152 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
9153 normal/completion.c.
9154 (normal_mod_SOURCES): Likewise.
9155 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
9156 (normal_mod_SOURCES): Likewise.
9157
9158 * normal/command.c (grub_iterate_commands): If ITERATE returns
9159 non-zero, return one immediately.
9160
e85e144b 91612005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
9162
9163 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
9164 * kern/i386/pc/startup.S: Updated Global Descriptor table's
9165 descriptions.
9166 (grub_vbe_get_controller_info): New function.
9167 (grub_vbe_get_mode_info): Likewise.
9168 (grub_vbe_set_mode): Likewise.
9169 (grub_vbe_get_mode): Likewise.
9170 (grub_vbe_set_memory_window): Likewise.
9171 (grub_vbe_get_memory_window): Likewise.
9172 (grub_vbe_set_scanline_length): Likewise.
9173 (grub_vbe_get_scanline_length): Likewise.
9174 (grub_vbe_set_display_start): Likewise.
9175 (grub_vbe_get_display_start): Likewise.
9176 (grub_vbe_set_palette_data): Likewise.
9177 * include/grub/i386/pc/vbe.h: New file.
9178
c46153d2 91792005-08-08 Hollis Blanchard <hollis@penguinppc.org>
9180
9181 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
9182 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
9183 * DISTLIST: Likewise.
9184 * kern/ieee1275/of.c: Moved to ...
9185 * kern/ieee1275/ieee1275.c: ... here.
9186
0cb90c45 91872005-08-08 Hollis Blanchard <hollis@penguinppc.org>
9188
9189 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
9190 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
9191 Pass 0 as `end' parameter to grub_strtoul().
9192
a19fb360 91932005-08-08 Hollis Blanchard <hollis@penguinppc.org>
9194
9195 * include/grub/powerpc/ieee1275/console.h: Do not include
9196 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
9197 ifdef.
9198 (grub_console_cur_color): Remove i386-specific prototype.
9199 (grub_console_real_putchar): Likewise.
9200 (grub_console_checkkey): Likewise.
9201 (grub_console_getkey): Likewise.
9202 (grub_console_getxy): Likewise.
9203 (grub_console_gotoxy): Likewise.
9204 (grub_console_cls): Likewise.
9205 (grub_console_setcursor): Likewise.
9206 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
9207 Include <grub/machine/console.h>.
9208 * term/ieee1275/ofconsole.c: Likewise.
9209
4ac9bd04 92102005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
9211
9212 * Makefile.in (LIBLZO): New variable.
9213
9214 * configure.ac: Check for LZO version 2.
9215
9216 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
9217 lzo/lzo1x.h instead of lzo1x.h.
9218
9219 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
9220 of -llzo.
9221
9222 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
9223 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
9224
9225 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
9226 copying the data from PARTITION to P.
9227
f4917dfd 92282005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
9229
9230 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
9231 negative, unload the module.
9232
9233 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
9234 map is "pc_partition_map" but not "pc".
9235 (usage): Fix the description. The options are --boot-image and
9236 --core-image but not --boot-file or --core-file.
9237 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
9238 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
9239 DEFAULT_DIRECTORY.
9240
9241 * util/i386/pc/grub-install.in: Do not specify --boot-file or
9242 --core-file. Specify INSTALL_DEVICE as an argument.
9243
9244 * util/console.c: Include config.h.
9245 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
9246 [HAVE_NCURSES_H]: Include ncurses.h.
9247 [HAVE_CURSES_H]: Include curses.h.
9248 [!A_NORMAL] (A_NORMAL): Defined as zero.
9249 [!A_STANDOUT] (A_STANDOUT): Likewise.
9250
9251 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
9252 -lncurses.
9253 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
9254
9255 * configure.ac: Check for curses libraries and headers.
9256
9257 * Makefile.in (LIBCURSES): New variable.
9258
9259 * genmk.rb (Script::rule): Set the executable bits.
9260
9261 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
9262 name of the PC partition map is "pc_partition_map" but not "pc".
9263
0e143073 92642005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
9265
9266 * util/i386/pc/grub-install.in (grub_probefs): New variable.
9267 (modules): Likewise.
9268 (usage): Added descriptions for --modules and --grub-probefs.
9269 Handle --modules and --grub-probefs. Save the arguments in MODULES
9270 and GRUB_PROBEFS, respectively.
9271 Auto-detect a filesystem module against GRUBDIR. If the result is
9272 empty and modules are not specified explicitly, abort the
9273 installation. Add the result to MODULES.
9274
9275 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
9276 disk/powerpc/ieee1275/ofdisk.c,
9277 include/grub/powerpc/ieee1275/init.h and
9278 term/powerpc/ieee1275/ofconsole.c.
9279 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
9280 term/ieee1275/ofconsole.c.
9281
9282 * include/grub/powerpc/ieee1275/console.h: Resurrected.
9283
9284 * COPYING: Upgraded to the latest version. Only the address of the
9285 FSF office has changed.
f19dbdb7 9286
efd6e6d5 92872005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
9288
9289 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
9290 kern/ieee1275.c with kern/ieee1275/of.c.
9291
9292 * kern/ieee1275.c: Moved to ...
9293 * kern/ieee1275/of.c: ... here.
9294
8ceafda2 92952005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
9296
9297 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 9298 readability.
8ceafda2 9299
9300 * config.guess: Updated to the latest version from gnulib.
9301 * config.sub: Likewise.
9302 * install.sh: Likewise.
9303 * mkinstalldirs: Likewise.
9304
9305 * include/grub/console.h: Removed. This file is arch-specific. Do
9306 not put this in include/grub.
9307
9308 * include/grub/i386/pc/console.h: Resurrected.
9309
9310 * util/console.c: Include grub/machine/console.h instead of
9311 grub/console.h.
9312 * util/grub-emu.c: Likewise.
9313
267f6cd9 93142005-08-04 Marco Gerards <metgerards@student.han.nl>
9315
9316 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
9317 hardcoded value.
f19dbdb7 9318
267f6cd9 9319 From Vincent Pelletier <subdino2004@yahoo.fr>
9320 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
9321 Redefined to use grub_getwh.
9322 (grub_term): New member named getwh.
9323 (grub_getwh): New prototype.
9324 * kern/term.c (grub_getwh): New function.
9325 * term/i386/pc/console.c (grub_console_getwh): New function.
9326 (grub_console_term): New member `getwh'.
9327 * term/i386/pc/vga.c (grub_vga_getwh): New function.
9328 (grub_vga_term): New member `getwh'.
0b5abe02 9329 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 9330 grub_ssize_t.
9331 (grub_ofconsole_getw): New function.
9332 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
9333 (grub_ofconsole_term): New field named getwh and new initial
9334 value.
9335
3be7266d 93362005-08-03 Hollis Blanchard <hollis@penguinppc.org>
9337
9338 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
9339 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
9340 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
9341 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
9342 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
9343 of <grub/machine/ieee1275.h>.
9344 * commands/ieee1275/reboot.c: Likewise.
9345 * boot/powerpc/ieee1275/ieee1275.c: Move ...
9346 * kern/ieee1275.c: ... to here. All users updated. Change all
9347 parameter structs to use new type `grub_ieee1275_cell_t'.
9348 * term/powerpc/ieee1275/ofconsole.c: Move ...
9349 * term/ieee1275/ofconsole.c: ... to here. All users updated.
9350 * disk/powerpc/ieee1275/ofdisk.c: Move ...
9351 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
9352 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
9353 to return int.
9354 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
9355 Remove unused prototypes. All users updated.
9356 * include/grub/powerpc/ieee1275/console.h: Removed.
9357 * include/grub/powerpc/ieee1275/ieee1275.h: Define
9358 `grub_ieee1275_cell_t'.
9359 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
9360 Cast comparisons with -1 to the correct type.
9361 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
9362 type to match `grub_ieee1275_entry_fn'.
9363
8b5f3938 93642005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
9365
9366 * DISTLIST: Added util/i386/pc/grub-probefs.c.
9367
9368 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
9369 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
9370 partmap/sun.c.
9371 (grub_probefs_SOURCES): New variable.
9372
9373 * util/i386/pc/grub-probefs.c: New file.
9374
9375 * util/i386/pc/grub-setup.c (main): Call
9376 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
9377 grub_hfs_init and grub_jfs_init to initialize the system. Call
9378 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
9379 grub_pc_partition_map_fini to finish the system.
9380
ea409713 93812005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
9382
9383 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
9384 function.
9385 (grub_multiboot_load_elf32): Likewise.
9386 (grub_multiboot_is_elf64): Likewise.
9387 (grub_multiboot_load_elf64): Likewise.
9388 (grub_multiboot_load_elf): Likewise.
9389 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
9390 an ELF32 or ELF64 file.
9391 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
9392
9393 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
9394 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
9395 NULL before calling FS->LABEL.
9396 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
9397 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
9398 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
9399 before calling FS->LABEL.
9400
141a288b 94012005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
9402
9403 * util/i386/pc/grub-install.in (datadir): New variable.
9404 (libdir): Removed.
9405 (pkgdatadir): New variable.
9406 (pkglibdir): Removed.
9407
0d5f8a54 94082005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
9409
9410 * DISTLIST: Added util/i386/pc/grub-install.in.
9411
9412 * util/i386/pc/grub-install.in: New file.
9413
9414 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
9415 (grub_install_SOURCES): Likewise.
9416
9417 * genmk.rb: Added support for scripts.
9418 (Script): New class.
9419 (scripts): New variable.
9420
9421 * Makefile.in (install-local): Install sbin_SCRIPTS by
9422 INSTALL_SCRIPT.
9423 (uninstall): Remove sbin_SCRIPTS.
9424
9425 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
9426 device, try to get a GRUB device by
9427 grub_util_biosdisk_get_grub_dev.
9428 Free DEST_DEV.
9429
9430 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
9431 description for --device-map.
9432
5f968e1e 94332005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
9434
9435 Change the semantics of variable hooks. They now return strings
9436 instead of error values.
f19dbdb7 9437
5f968e1e 9438 * util/i386/pc/grub-setup.c: Include grub/env.h.
9439 (setup): Use grub_device_set_root instead of grub_env_set.
9440
9441 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
9442 grub_env_get instead of grub_device_set_root and
9443 grub_device_get_root, respectively.
9444
9445 * kern/main.c (grub_env_write_root): New function.
9446 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
9447 grub_env_set instead of grub_device_set_root.
9448
9449 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
9450 many variables.
9451 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
9452 rather than calling ENV->WRITE_HOOK afterwards.
9453 (grub_env_get): Return the result of ENV->READ_HOOK rather than
9454 passing a pointer of a pointer.
9455 (grub_register_variable_hook): Change the types of "read_hook" and
9456 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
9457 respectively.
9458 Allocate the default empty string on the heap, because this string
9459 may be freed later.
9460
9461 * kern/device.c: Include grub/env.h.
9462 (grub_device_set_root): Removed.
9463 (grub_device_get_root): Likewise.
9464 (grub_device_open): Use grub_env_get instead of
9465 grub_device_get_root.
9466
9467 * include/grub/env.h (grub_env_read_hook_t): New type.
9468 (grub_env_write_hook_t): Likewise.
9469 (grub_env_var): Change the types of "read_hook" and "write_hook"
9470 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
9471 (grub_register_variable_hook): Likewise.
9472
9473 * include/grub/device.h (grub_device_set_root): Removed.
9474 (grub_device_set_root): Likewise.
9475
9476 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
9477 make sure that DIRNAME terminates with '/', so that
9478 grub_fat_find_dir will fail if PATH is not a directory.
9479
9480 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
9481 from DIRNAME.
9482 Use the qualifier auto for print_files and print_files_long.
9483 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
9484 as a regular file.
9485 Put a newline only if there is no error.
9486 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
9487 used.
9488
896f0afd 94892005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
9490
9491 * kern/partition.c (grub_partition_probe): Initialize PART to
9492 NULL. Otherwise, when no partition map is registered, this returns
9493 a garbage.
9494
b28b81b2 94952005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
9496
9497 * partmap/apple.c (apple_partition_map_iterate): Check if POS
9498 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
9499 valid.
9500
5f3607e0 95012005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
9502
9503 * commands/ls.c (grub_ls_list_disks): Print the filesystem
9504 information on each device, if it does not have partitions. Print
9505 "Device" instead of "Disk", because this function is not specific
9506 to disk devices.
9507
9508 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
9509 static to ensure that it is put on the memory rather than a
9510 register.
9511
502c87e8 95122005-07-17 Yoshinori Okuji <okuji@enbug.org>
9513
9514 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
9515 (grub_cat_init): Likewise.
9516 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
9517 (options): Likewise.
9518 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
9519 (grub_configfile_init): Likewise.
9520 * font/manager.c (GRUB_MOD_INIT): Likewise.
9521 * commands/help.c (GRUB_MOD_INIT): Likewise.
9522 (grub_help_init): Likewise.
9523 * normal/command.c (grub_command_init): Likewise.
9524 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
9525 * disk/loopback.c (grub_loop_init): Likewise.
9526 (GRUB_MOD_INIT): Likewise.
9527 * commands/ls.c (grub_ls_init): Likewise.
9528 (GRUB_MOD_INIT): Likewise.
9529 (options): Likewise.
9530 * commands/boot.c (grub_boot_init): Likewise.
9531 (GRUB_MOD_INIT): Likewise.
9532 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
9533 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
9534 (GRUB_MOD_INIT): Likewise.
9535 * commands/cmp.c (grub_cmp_init): Likewise.
9536 (GRUB_MOD_INIT): Likewise.
9537
9538 * normal/arg.c: Use <> instead of "" to include header files.
9539 (SHORT_ARG_HELP): New macro.
9540 (SHORT_ARG_USAGE): Likewise.
9541 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
9542 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
9543 descriptions.
9544 (find_short): Check if C is 'h' or 'u' explicitly.
9545 (grub_arg_show_help): Use space characters instead of tabs. Treat
9546 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
9547 are shown with --help and --usage only if they are not used for
9548 the command itself.
9549 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
9550 'h' and 'u'.
9551
9552 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
9553 const into "longarg". Change the type of "shortarg" to int.
9554
f806d18e 95552005-07-17 Yoshinori Okuji <okuji@enbug.org>
9556
9557 * boot/i386/pc/boot.S (boot_drive_check): New label.
9558
9559 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
9560 macro.
9561
9562 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
9563 which do not pass a boot drive correctly. Copied from GRUB Legacy.
9564
e293232b 95652005-07-17 Yoshinori Okuji <okuji@enbug.org>
9566
9567 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
9568 When turning off Gate A20, skip the check and return immediately,
9569 because this is not fatal usually.
9570
ebedfd00 95712005-07-17 Yoshinori Okuji <okuji@enbug.org>
9572
9573 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
9574 be 0x7C00 instead of 0x8000.
9575
9576 * boot/i386/pc/pxeboot.S: Rewritten.
9577
9578 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
9579 EXT_C.
9580 (gate_a20_check_state): Read a byte from 0x108000. Invert the
9581 result.
9582
654fc59f 95832005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
9584
9585 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
9586 robustness. This routine now supports a BIOS call and System
9587 Control Port A to modify the gate A20.
9588
9589 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
9590 Increased to 0x440.
9591
09f9923f 95922005-07-12 Hollis Blanchard <hollis@penguinppc.org>
9593
9594 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
9595 device path and resulting ihandle.
9596 (grub_ofdisk_close): dprintf the ihandle being closed.
9597 (grub_ofdisk_read): dprintf function parameters.
9598 * kern/mm.c (grub_mm_init_region): Likewise.
9599 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
9600 (grub_linux_boot): dprintf the Linux entry point, initrd address and
9601 size, and boot arguments.
9602 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
9603 before loading into memory.
9604 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
9605 before loading into memory.
9606
7ef504d8 96072005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
9608
9609 * kern/mm.c: Added much documentation.
9610 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
9611 8, set to 5 instead of 8.
9612
e0f050c2 96132005-07-10 Yoshinori Okuji <okuji@enbug.org>
9614
9615 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
9616
9617 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
9618 (grub_mkdevicemap_SOURCES): New variable.
9619
9620 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
9621 lib/device.c of GRUB Legacy.
9622
7224189a 96232005-07-10 Yoshinori Okuji <okuji@enbug.org>
9624
9625 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
9626 instead of PATH is NULL.
9627
68c864eb 96282005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
9629
9630 * commands/cmp.c (BUFFER_SIZE): New macro.
9631 (grub_cmd_cmp): Close the right file at the right time. Compare
9632 only data just read. Don't report files of different size as
9633 identical. Dynamically allocate buffers. Move variable
9634 declarations at the beginning of function.
9635
e6f3e614 96362005-07-09 Yoshinori Okuji <okuji@enbug.org>
9637
9638 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
9639 reverse.
9640
f8f1559a 96412004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
9642
9643 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
9644 when backspace is pressed at beginning of line.
9645
39c9d41d 96462005-07-03 Yoshinori Okuji <okuji@enbug.org>
9647
9648 * DISTLIST: Added genfslist.sh.
9649
9650 * normal/main.c (fs_module_list): New variable.
9651 (autoload_fs_module): New function.
9652 (read_fs_list): Likewise.
9653 (grub_normal_execute): Call read_fs_list.
9654
9655 * kern/fs.c (grub_fs_autoload_hook): New variable.
9656 (grub_fs_probe): Added support for auto-loading.
9657
9658 * include/grub/normal.h (struct grub_fs_module_list): New struct.
9659 (grub_fs_module_list_t): New type.
9660
9661 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
9662 (grub_fs_autoload_hook): New prototype.
9663
9664 * genfslist.sh: New file.
f19dbdb7 9665
39c9d41d 9666 * genmk.rb: Added a rule to generate a filesystem list.
9667
121c1d83 96682005-06-30 Marco Gerards <metgerards@student.han.nl>
9669
9670 * configure.ac: Fix the test for cross-compiling.
9671
9672 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
9673 define GRUB_UTIL anymore.
9674
9675 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
9676 so this function works on other systems than just big endian.
9677 (load_modules): Likewise.
9678 (add_segments): Likewise.
9679
e75d76e1 96802005-06-23 Hollis Blanchard <hollis@penguinppc.org>
9681
9682 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
9683 contains `l' modifier, get a long from va_arg().
9684
50b5a0a7 96852005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
9686
9687 * kern/mm.c (grub_free): If the next free block which is being
9688 merged is the first free block, set the first block to the block
9689 being freed.
9690 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
9691
89371b20 96922005-05-08 Hollis Blanchard <hollis@penguinppc.org>
9693
9694 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
9695 `grub_ieee1275_chosen'.
9696
168d6e58 96972005-05-08 Hollis Blanchard <hollis@penguinppc.org>
9698
9699 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
9700 (grub_ieee1275_chosen): New variable.
9701 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
9702 `chosen'.
9703 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
9704 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
9705 Rename first argument to `phandle' for consistency.
9706 (grub_ieee1275_get_property_length): Likewise.
9707 (grub_ieee1275_next_property): Likewise. Change type of first argument
9708 to grub_ieee1275_phandle_t.
9709 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
9710 Move export next to declaration.
9711 (grub_ieee1275_chosen): New variable.
9712 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
9713 Correct cosmetic typo.
9714 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
9715 `grub_ieee1275_chosen'.
9716 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
9717 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
9718 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
9719 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
9720 `grub_ieee1275_chosen'.
9721
ca5baa3f 97222005-05-10 Hollis Blanchard <hollis@penguinppc.org>
9723
9724 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
9725 /chosen/bootargs.
9726 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
9727 /chosen/bootargs as "variable=value" pairs.
9728
708b345f 97292005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
9730
9731 * include/grub/misc.h (grub_dprintf): New macro.
9732 (grub_real_dprintf): New prototype.
9733 (grub_strword): Likewise.
9734 (grub_iswordseparator): Likewise.
9735 * kern/misc.c (grub_real_dprintf): New function.
9736 (grub_strword): Likewise.
9737 (grub_iswordseparator): Likewise.
9738
f4c5e67c 97392005-04-30 Hollis Blanchard <hollis@penguinppc.org>
9740
9741 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
9742 (roundup): Remove macro.
9743 (grub_ieee1275_flags): Make static.
9744 (grub_ieee1275_realmode): Remove.
9745 (grub_ieee1275_test_flag): New function.
9746 (grub_ieee1275_set_flag): Likewise.
9747 (find_options): Rename to `grub_ieee1275_find_options'; update
9748 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
9749 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
9750 (cmain): New prototype.
9751 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
9752 `grub_ieee1275_flags' directly.
9753 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
9754 machine/biosdisk.h.
9755 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
9756 Don't include grub/machine/init.h.
9757 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
9758 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
9759 Remove prototype.
9760 (grub_ieee1275_realmode): Likewise.
9761 (grub_ieee1275_flag): New enum.
9762 (grub_ieee1275_test_flag): New prototype.
9763 (grub_ieee1275_set_flag): New prototype.
9764 * include/grub/powerpc/ieee1275/init.h: Remove file.
9765 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
9766 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
9767 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
9768 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
9769 comment.
9770 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
9771 `grub_ieee1275_test_flag'.
9772 (grub_ieee1275_encode_devname): Likewise.
9773
ed16607e 97742005-04-21 Hollis Blanchard <hollis@penguinppc.org>
9775
9776 * include/grub/powerpc/ieee1275/ieee1275.h
9777 (grub_ieee1275_encode_devname): New prototype.
9778 (grub_ieee1275_get_filename): Likewise.
9779 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
9780 function.
9781 (grub_set_prefix): Likewise.
9782 (grub_machine_init): Call grub_set_prefix.
9783 * kern/powerpc/ieee1275/openfw.c: Fix typos.
9784 (grub_parse_type): New enum.
9785 (grub_ieee1275_get_devargs): New function.
9786 (grub_ieee1275_get_devname): Likewise.
9787 (grub_ieee1275_parse_args): Likewise.
9788 (grub_ieee1275_get_filename): Likewise.
9789 (grub_ieee1275_encode_devname): Likewise.
9790
be369920 97912005-03-30 Marco Gerards <metgerards@student.han.nl>
9792
9793 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
9794 `grub_loader_unset'.
9795
a5ce3a4a 97962005-03-26 Hollis Blanchard <hollis@penguinppc.org>
9797
9798 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
9799 instead of grub_ieee1275_interpret.
9800 (grub_halt_init): New function.
9801 (grub_halt_fini): Likewise.
9802 (GRUB_MOD_INIT): Correct message grammar.
9803 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
9804 instead of grub_ieee1275_interpret.
9805 (grub_reboot_init): New function.
9806 (grub_reboot_fini): Likewise.
9807 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
9808 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
9809 util/i386/pc/misc.c with commands/ieee1275/halt.c,
9810 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
9811 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
9812 function.
9813 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
9814 Add prototype.
9815 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
9816 prototype.
9817 (grub_halt): Likewise.
9818 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
9819 (cmain): Remove __attribute__((unused)).
9820 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
9821 (grub_heap_len): Likewise.
9822 (grub_machine_fini): New function.
9823 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
9824 (grub_halt): Likewise.
9825 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
9826 function.
9827 * util/powerpc/ieee1275/misc.c: New file.
9828
0058f771 98292005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
9830
9831 * DISTLIST: New file.
9832 * gendistlist.sh: Likewise.
f19dbdb7 9833
0058f771 9834 * Makefile.in (COMMON_DISTFILES): Removed.
9835 (BOOT_DISTFILES): Likewise.
9836 (CONF_DISTFILES): Likewise.
9837 (DISK_DISTFILES): Likewise.
9838 (FS_DISTFILES): Likewise.
9839 (INCLUDE_DISTFILES): Likewise.
9840 (KERN_DISTFILES): Likewise.
9841 (LOADER_DISTFILES): Likewise.
9842 (TERM_DISTFILES): Likewise.
9843 (UTIL_DISTFILES): Likewise.
9844 (DISTFILES): Likewise.
9845 (uninstall): Uninstall files in $(pkgdata_DATA).
9846 (DISTLIST): New target.
9847 (distdir): Use the contents of the file DISTLIST to get a list of
9848 distributed files.
9849
46b3b8a5 98502005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
9851
9852 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
9853 descriptor. This is ported from GRUB Legacy.
9854
9855 * gencmdlist.sh: Added an extra semicolon to make it work with
9856 old sed versions. Reported by Robert Bihlmeyer
9857 <robbe@orcus.priv.at>.
9858
5822ff87 98592005-03-08 Yoshinori Okuji <okuji@enbug.org>
9860
9861 Automatic loading of commands is supported.
f19dbdb7 9862
5822ff87 9863 * normal/main.c (read_command_list): New function.
9864 (grub_normal_execute): Call read_command_list.
9865
9866 * normal/command.c (grub_register_command): Return zero or CMD.
9867 Allocate CMD->NAME from the heap.
9868 Initialize CMD->MODULE_NAME to zero.
9869 Find the same name as well. If the same command is found and it is
9870 a dummy command, overwrite members. If it is not a dummy command,
9871 return zero.
9872 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
9873 (grub_command_find): If a dummy command is found, load a module
9874 and retry to find a command only once.
9875
9876 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
9877 make sure that each command is loaded.
9878
9879 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
9880 macro.
9881 (struct grub_command): Remove const from the member `name'.
9882 Add a new member `module_name'.
9883 (grub_register_command): Return grub_command_t.
9884
9885 * commands/help.c (grub_cmd_help): Call grub_command_find to make
9886 sure that each command is loaded.
9887
9888 * genmk.rb (PModule::rule): Specify a module name without the
9889 suffix ".mod" to gencmdlist.sh.
9890
7b1f4b57 98912005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
9892
9893 * gencmdlist.sh: New file.
f19dbdb7 9894
7b1f4b57 9895 * genmk.rb (PModule::rule): Generate a rule for a command list.
9896 Clean command.lst.
9897 Generate command.lst from $(COMMANDFILES).
9898
9899 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
9900 (DATA): Added $(pkgdata_DATA).
9901 (install-local): Install files in $(pkgdata_DATA).
9902
062aaf39 99032005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
9904
9905 * term/i386/pc/vga.c (debug_command): Removed.
9906 (GRUB_MOD_INIT): Do not register the command "debug".
9907
9908 From Hollis Blanchard:
9909 * commands/configfile.c: New file.
9910 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
9911 commands/configfile.c.
9912 (pkgdata_MODULES): Added configfile.mod.
9913 (configfile_mod_SOURCES): New variable.
9914 (configfile_mod_CFLAGS): Likewise.
9915 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
9916 commands/configfile.c.
9917 (pkgdata_MODULES): Added configfile.mod.
9918 (configfile_mod_SOURCES): New variable.
9919 (configfile_mod_CFLAGS): Likewise.
9920 * util/grub-emu.c (main): Call grub_configfile_init and
9921 grub_configfile_fini.
9922 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
9923 prototype.
9924 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 9925
cee01aa6 99262005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
9927
9928 * normal/arg.c (grub_arg_show_help): Do not show the bug report
9929 address.
9930
9931 * commands/help.c (grub_cmd_help): Do not print newlines after
9932 the last command in print_command_help.
9933
93f3a1d8 99342005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
9935
9936 * commands/default.h: New file.
9937 * commands/timeout.h: Likewise.
9938 * normal/context.c: Likewise.
f19dbdb7 9939
93f3a1d8 9940 * util/misc.c: Do not include sys/times.h.
9941 Include sys/time.h and grub/machine/time.h.
9942 (grub_get_rtc): Rewritten with gettimeofday.
9943
9944 * util/grub-emu.c (main): Call grub_default_init and
9945 grub_timeout_init before grub_normal_init, and call
9946 grub_timeout_fini and grub_default_fini after grub_main.
9947
9948 * util/console.c (grub_ncurses_checkkey): Return the read
9949 character or -1.
9950
9951 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
9952 timeouts.
9953
9954 * normal/main.c (read_config_file): Push MENU. If this fails,
9955 print an error and wait for a user input.
9956 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
9957 If a menu is empty or an error occurs, pop MENU.
9958 (grub_normal_execute): Pop and free MENU after grub_menu_run
9959 returns.
9960
9961 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
9962
9963 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
9964 include time.h.
9965 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
9966 without GRUB_UTIL.
9967 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
9968 time.h.
9969 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
9970 without GRUB_UTIL.
9971
9972 * include/grub/normal.h (struct grub_menu_list): New struct.
9973 (grub_menu_list_t): New type.
9974 (struct grub_context): New struct.
9975 (grub_context_t): New type.
9976 (grub_register_command): Got rid of EXPORT_FUNC.
9977 (grub_unregister_command): Likewise.
9978 (grub_context_get): New prototype.
9979 (grub_context_get_current_menu): Likewise.
9980 (grub_context_push_menu): Likewise.
9981 (grub_context_pop_menu): Likewise.
9982 [GRUB_UTIL] (grub_default_init): Likewise.
9983 [GRUB_UTIL] (grub_default_fini): Likewise.
9984 [GRUB_UTIL] (grub_timeout_init): Likewise.
9985 [GRUB_UTIL] (grub_timeout_fini): Likewise.
9986
9987 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
9988 commands/timeout.c and normal/context.c.
9989 (pkgdata_MODULES): Added default.mod and timeout.mod.
9990 (normal_mod_SOURCES): Added normal/context.c.
9991 (default_mod_SOURCES): New variable.
9992 (default_mod_CFLAGS): Likewise.
9993 (timeout_mod_SOURCES): Likewise.
9994 (timeout_mod_CFLAGS): Likewise.
9995 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
9996 conf/i386-pc.rmk.
9997 (pkgdata_MODULES): Added default.mod and timeout.mod.
9998 (normal_mod_SOURCES): Added normal/context.c.
9999 (default_mod_SOURCES): New variable.
10000 (default_mod_CFLAGS): Likewise.
10001 (timeout_mod_SOURCES): Likewise.
10002 (timeout_mod_CFLAGS): Likewise.
10003
10004 * Makefile.in (all-local): Added $(MKFILES).
10005
4ed2e1dd 100062005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
10007
10008 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
10009 (grub_emu_SOURCES): Likewise.
10010 (pkgdata_MODULES): Add `sun.mod'.
10011 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
10012 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
10013 `partmap/sun.c'.
10014 (pkgdata_MODULES): Add `sun.mod'.
10015 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
10016 * include/grub/partition.h (grub_sun_partition_map_init): New
10017 prototype.
10018 (grub_sun_partition_map_fini): Likewise.
10019 * partmap/sun.c: New file.
10020 * util/grub-emu.c (main): Initialize and de-initialize the sun
10021 partitionmap support.
10022
4d4e372e 100232005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
10024
10025 This implements an Emacs-like menu entry editor.
f19dbdb7 10026
4d4e372e 10027 * normal/menu_entry.c: New file.
f19dbdb7 10028
4d4e372e 10029 * util/console.c (grub_ncurses_putchar): Translate some Unicode
10030 characters to ASCII.
10031 (saved_char): New variable.
10032 (grub_ncurses_checkkey): Rewritten completely.
10033 (grub_ncurses_getkey): Likewise.
10034 (grub_ncurses_init): Call raw instead of cbreak.
10035
10036 * normal/menu.c (print_entry): Do not put a space.
10037 (init_page): Renamed to ...
10038 (grub_menu_init_page): ... this. All callers changed.
10039 (edit_menu_entry): Removed.
10040 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
10041
10042 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
10043
10044 * kern/misc.c (grub_vprintf): Call grub_refresh.
10045
10046 * normal/menu.c (DISP_LEFT): Renamed to ...
10047 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
10048 * normal/menu.c (DISP_UP): Renamed to ...
10049 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
10050 * normal/menu.c (DISP_RIGHT): Renamed to ...
10051 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
10052 * normal/menu.c (DISP_DOWN): Renamed to ...
10053 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
10054 * normal/menu.c (DISP_HLINE): Renamed to ...
10055 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
10056 * normal/menu.c (DISP_VLINE): Renamed to ...
10057 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
10058 * normal/menu.c (DISP_UL): Renamed to ...
10059 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
10060 * normal/menu.c (DISP_UR): Renamed to ...
10061 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
10062 * normal/menu.c (DISP_LL): Renamed to ...
10063 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
10064 * normal/menu.c (DISP_LR): Renamed to ...
10065 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
10066 * normal/menu.c (TERM_WIDTH): Renamed to ...
10067 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
10068 * normal/menu.c (TERM_HEIGHT): Renamed to ...
10069 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
10070 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
10071 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
10072 * normal/menu.c (TERM_MARGIN): Renamed to ...
10073 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
10074 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
10075 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
10076 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
10077 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
10078 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
10079 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
10080 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
10081 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
10082 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
10083 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
10084 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
10085 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
10086 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
10087 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
10088 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
10089 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
10090 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
10091 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
10092 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
10093 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
10094 All callers changed.
10095
10096 * include/grub/normal.h: New prototype.
10097
10098 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
10099 normal/menu_entry.c.
10100 (normal_mod_SOURCES): Likewise.
10101 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10102 (normal_mod_SOURCES): Likewise.
10103
e6b92c8a 101042005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
10105
10106 * include/grub/normal.h (grub_halt_init): New prototype.
10107 (grub_halt_fini): Likewise.
10108 (grub_reboot_init): Likewise.
10109 (grub_reboot_fini): Likewise.
10110
10111 * util/grub-emu.c: Include signal.h.
10112 (main_env): New global variable.
10113 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
10114 catch C-c.
10115 (grub_machine_fini): New function.
10116 (main): Call grub_halt_init and grub_reboot_init before
10117 grub_main, and grub_reboot_fini and grub_halt_fini after it.
10118 Call setjmp with MAIN_ENV to go back afterwards.
10119 Call grub_machine_fini right before return.
10120
10121 * include/grub/util/misc.h: Include setjmp.h.
10122 (main_env): New prototype.
10123
10124 * include/grub/kernel.h (grub_machine_fini): New prototype.
10125 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
10126 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
10127
10128 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
10129 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
10130 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 10131
e6b92c8a 10132 * util/i386/pc/misc.c: New file.
f19dbdb7 10133
e6b92c8a 10134 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
10135 util/i386/pc/misc.c, commands/i386/pc/halt.c and
10136 commands/i386/pc/reboot.c.
10137
c642636f 101382005-02-14 Guillem Jover <guillem@hadrons.org>
10139
10140 * include/grub/dl.h (grub_dl_check_header): New prototype.
10141 (grub_arch_dl_check_header): Change return type to grub_err_t,
10142 remove size parameter and export function. Update all callers.
10143 * kern/dl.c (grub_dl_check_header): New function.
10144 (grub_dl_load_core): Use `grub_dl_check_header' instead of
10145 `grub_arch_dl_check_header'. Check ELF type. Check if sections
10146 are inside the core.
10147 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
10148 independent ELF header checks.
10149 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
10150 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
10151 `grub_dl_check_header' instead of explicit checks. Check for the
10152 ELF type.
10153 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
10154 `grub_dl_check_header' instead of explicit checks. Remove arch
10155 specific ELF header checks.
10156
e6b92c8a 10157 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
10158 argument SIZE.
10159
5eabe94b 101602005-02-13 Hollis Blanchard <hollis@penguinppc.org>
10161
10162 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
10163 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
10164
1b14a681 101652005-02-12 Hollis Blanchard <hollis@penguinppc.org>
10166
10167 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 10168 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 10169 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 10170 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 10171 * partmap/amiga.c (amiga_partition_map_iterate): Return
10172 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
10173 * partmap/apple.c (apple_partition_map_iterate): Likewise.
10174
aca108aa 101752005-02-01 Guillem Jover <guillem@hadrons.org>
10176
10177 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
10178 help info.
10179
c9f9c556 101802005-01-31 Marco Gerards <metgerards@student.han.nl>
10181
10182 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
10183 Removed prototype.
10184 (grub_rescue_cmd_linux): New prototype.
10185 (grub_rescue_cmd_initrd): Likewise.
10186 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
10187 `bi_rec'.
10188 (grub_linux_release_mem): Release the memory for the initrd.
10189 (grub_load_linux): Renamed from this...
10190 (grub_rescue_cmd_linux): ...To this. Changed all callers.
10191 Changed `entry' not to be static. Loop over memory regions to
10192 find another one when the default fails.
10193 (grub_rescue_cmd_initrd): New function.
10194 (grub_linux_init): Remove function.
10195 (grub_linux_fini): Likewise.
10196 (GRUB_MOD_INIT): Register `initrd'.
10197 (GRUB_MOD_FINI): Unregister `initrd'.
10198 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
10199 Function removed.
10200 (grub_linux_normal_fini): Likewise.
10201 (GRUB_MOD_INIT): Register `initrd'.
10202 (GRUB_MOD_FINI): Unregister `initrd'.
10203
990cf3aa 102042005-01-31 Marco Gerards <metgerards@student.han.nl>
10205
10206 * commands/help.c: New file.
10207 * normal/arg.c (show_help): Renamed to...
10208 (grub_arg_show_help): ... this.
10209 * commands/i386/pc/halt.c: New file.
10210 * commands/i386/pc/reboot.c: Likewise.
10211 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
10212 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
10213 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
10214 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
10215 variables.
10216 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
10217 `commands/help.c'.
10218 (pkgdata_MODULES): Add `help.mod'.
10219 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
10220 * grub/i386/pc/init.h (grub_reboot): New prototype.
10221 (grub_halt): Likewise.
10222 * include/grub/normal.h (grub_arg_show_help): New prototype.
10223 (grub_help_init): Likewise.
10224 (grub_help_fini): Likewise.
10225 * util/grub-emu.c (main): Initialize and deinitialize the help
10226 command.
10227
10228 * normal/cmdline.c (grub_cmdline_get): Doc fix.
10229
10230 * normal/command.c (grub_command_init): Fixed the description of
10231 the `set' and `unset' commands.
10232
102332005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 10234
10235 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
10236 function.
10237 * commands/ieee1275/halt.c: New file.
10238 * commands/ieee1275/reboot.c: Likewise.
10239 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
10240 `__attribute__ ((unused))'. Some GCS related fixed.
10241 (grub_suspend_init) [GRUB_UTIL]: Function removed.
10242 (grub_suspend_fini): Likewise.
10243 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
10244 and `halt.mod'.
10245 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
10246 (halt_mod_CFLAGS): New variables.
10247 * include/grub/powerpc/ieee1275/ieee1275.h
10248 (grub_ieee1275_interpret): New prototype.
10249
1ab09cc7 102502005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
10251
10252 * include/grub/misc.h (memmove): New prototype.
10253 (memcpy): Likewise.
10254
8b8cbdb2 102552005-01-22 Hollis Blanchard <hollis@penguinppc.org>
10256
10257 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
10258 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
10259
e3741a27 102602005-01-22 Marco Gerards <metgerards@student.han.nl>
10261
10262 * kern/misc.c (grub_strndup): Function rewritten.
10263
776bd780 102642005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
10265
10266 * normal/menu.c (TERM_WIDTH): Macro redefined.
10267 (TERM_TOP_BORDER_Y): Likewise.
10268 (draw_border): Replaced while-loop by a for-loop. Make the number
10269 of lines consistent with the number of lines displayed in
10270 print_entries. Added a margin below the rectangle.
10271 (print_entry): Make the entry fit in the rectangle.
10272 (print_entries): Display the scroll arrows next to the right
10273 border.
10274
78026bce 102752005-01-21 Marco Gerards <metgerards@student.han.nl>
10276
10277 * fs/minix.c (grub_minix_find_file): Reserve more space for
10278 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
10279 `grub_strncpy' to copy `path' into it.
10280
67bbaf0f 102812005-01-21 Marco Gerards <metgerards@student.han.nl>
10282
10283 Add the loopback device, a device via which files can be accessed
10284 as devices.
f19dbdb7 10285
67bbaf0f 10286 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
10287 (pkgdata_MODULES): Add loopback.mod.
10288 (loopback_mod_SOURCES): New variable.
10289 (loopback_mod_CFLAGS): Likewise.
10290 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
10291 `disk/loopback.c'.
10292 (pkgdata_MODULES): Add loopback.mod.
10293 (loopback_mod_SOURCES): New variable.
10294 (loopback_mod_CFLAGS): Likewise.
10295 * disk/loopback.c: new file.
10296 * include/grub/normal.h (grub_loop_init): New prototype.
10297 (grub_loop_fini): New prototype.
10298 * util/grub-emu.c (main): Initialize and de-initialize loopback
10299 support.
10300 * include/grub/disk.h (grub_disk_dev_id): Add
10301 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
10302
6f1c18bd 103032005-01-20 Hollis Blanchard <hollis@penguinppc.org>
10304
10305 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
10306 function.
10307 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
10308 (suspend_mod_SOURCES): New variable.
10309 (suspend_mod_CFLAGS): Likewise.
10310 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
10311 New prototype.
10312 * commands/ieee1275/suspend.c: New file.
10313
b38551da 103142005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
10315
10316 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 10317 ((unused))' to `__attribute__ ((used))'.
b38551da 10318 (GRUB_MOD_FINI): Likewise.
10319 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
10320 * genmk.rb (PModule): Assign space to common symbols when linking
10321 modules.
10322
777aff39 103232005-01-20 Marco Gerards <metgerards@student.han.nl>
10324
10325 * include/grub/mm.h (grub_mm_init_region): Change the type of the
10326 `unsigned' arguments to `grub_size_t'.
10327 (grub_malloc): Likewise.
10328 (grub_realloc): Likewise.
10329 (grub_memalign): Likewise.
10330 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
10331 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
10332 * util/misc.c (grub_malloc): Likewise.
10333 (grub_realloc): Likewise.
10334 * kern/mm.c (get_header_from_pointer): Change the casts to
10335 `unsigned' into a cast to `grub_size_t'.
10336
10337 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
10338 point to `currnode' when `currnode' is changed.
10339
10340 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
10341 Schottelius <nico-linux@schottelius.org>.
10342
d0ff18e1 103432005-01-09 Hollis Blanchard <hollis@penguinppc.org>
10344
10345 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
10346 (note_path): Remove variable.
10347 (GRUB_IEEE1275_NOTE_NAME): New macro.
10348 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
10349 (grub_ieee1275_note_hdr): New structure.
10350 (grub_ieee1275_note_desc): Likewise.
10351 (grub_ieee1275_note): Likewise.
10352 (load_note): Remove `dir' argument. All callers updated. Remove
10353 `note_img' and `path'. Do not load a file from `note_path'.
10354 Initialize a struct grub_ieee1275_note and write that to `out'.
10355 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
10356
4ca7004c 103572005-01-05 Marco Gerards <metgerards@student.han.nl>
10358
10359 * util/misc.c (grub_util_read_image): Revert last change. It
10360 called `grub_util_read_at', which seeks from the beginning of the
10361 file.
10362
0b412211 103632005-01-04 Hollis Blanchard <hollis@penguinppc.org>
10364
10365 * TODO: Add note about endianness in grub-mkimage.
10366 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
10367 section.
10368 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
10369 (grub_mkimage_SOURCES): New target.
10370 * include/grub/kernel.h (grub_start_addr): Remove variable.
10371 (grub_end_addr): Likewise.
10372 (grub_total_module_size): Likewise.
10373 (grub_kernel_image_size): Likewise.
10374 (GRUB_MODULE_MAGIC): New constant.
10375 (grub_module_info): New structure.
10376 (grub_arch_modules_addr): New prototype.
10377 (grub_get_end_addr): Remove prototype.
10378 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
10379 * include/grub/powerpc/ieee1275/kernel.h: New file.
10380 * include/grub/util/misc.h (grub_util_get_fp_size): New
10381 prototype.
10382 (grub_util_read_at): Likewise.
10383 (grub_util_write_image_at): Likewise.
10384 * kern/main.c (grub_get_end_addr): Remove function.
10385 (grub_load_modules): Call grub_arch_modules_addr instead of using
10386 grub_end_addr. Look for a grub_module_info struct in memory. Use
10387 the grub_module_info fields instead of calling grub_get_end_addr
10388 as loop conditions. Move grub_add_unused_region code here.
10389 (grub_add_unused_region): Remove function.
10390 * kern/i386/pc/init.c: Include grub/cache.h.
10391 (grub_machine_init): Remove call to grub_get_end_addr. Remove
10392 one call to add_mem_region.
10393 (grub_arch_modules_addr): New function.
10394 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
10395 (grub_total_module_size): Likewise.
10396 Include grub/machine/kernel.h.
10397 (grub_arch_modules_addr): New function.
10398 * util/grub-emu.c (grub_end_addr): Remove variable.
10399 (grub_total_module_size): Likewise.
10400 (grub_arch_modules_addr): New function.
10401 * util/misc.c: Include unistd.h.
10402 (grub_util_get_fp_size): New function.
10403 (grub_util_read_at): Likewise.
10404 (grub_util_write_image_at): Likewise.
10405 (grub_util_read_image): Call grub_util_read_at.
10406 (grub_util_write_image): Call grub_util_write_image_at.
10407 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
10408 additional memory in kernel_img for a struct grub_module_info.
10409 Fill in that grub_module_info.
10410 * util/powerpc/ieee1275/grub-mkimage.c: New file.
10411
458786f8 104122005-01-03 Hollis Blanchard <hollis@penguinppc.org>
10413
10414 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
10415 New function.
10416 * include/grub/powerpc/ieee1275/ieee1275.h
10417 (grub_ieee1275_milliseconds): New prototype.
10418 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
10419 Change to 1000.
10420 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
10421 grub_ieee1275_milliseconds.
10422
ac507d1b 104232005-01-03 Hollis Blanchard <hollis@penguinppc.org>
10424
10425 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
10426 variable.
10427 (find_options): New function.
10428 (cmain): Call find_options.
10429 * include/grub/powerpc/ieee1275/ieee1275.h
10430 (grub_ieee1275_realmode): New extern variable.
10431 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
10432 grub_map if grub_ieee1275_realmode is false.
10433
6b8fd1c4 104342004-12-29 Marco Gerards <metgerards@student.han.nl>
10435
10436 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
10437 lines are inserted and make it work like readline. Reported by
10438 Vincent Pelletier <subdino2004@yahoo.fr>.
10439
8514a1e0 104402004-12-28 Marco Gerards <metgerards@student.han.nl>
10441
10442 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
10443
10444 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
10445 `kern/powerpc/cache.S'.
10446
924b6140 104472004-12-27 Marco Gerards <metgerards@student.han.nl>
10448
10449 * genmk.rb: Handle the `Program' class in the main loop. Written
10450 by Johan Rydberg <jrydberg@gnu.org>.
10451 (Program): New class.
10452 (programs): New variable.
10453 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
10454 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
10455 instead of "grub/kernel.h". Include <grub/machine/init.h>.
10456 (help_arch): Function removed.
10457 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
10458 `powerpc/libgcc.h' and `loader.h'.
10459 (pkgdata_PROGRAMS): New variable.
10460 (sbin_UTILITIES): Variable removed.
10461 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
10462 (grubof_SOURCES): Variable re-defined so it only includes the
10463 core functionality.
10464 (grubof_CFLAGS): Remove `-DGRUBOF'.
10465 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
10466 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
10467 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
10468 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
10469 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
10470 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
10471 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
10472 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
10473 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
10474 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
10475 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
10476 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
10477 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
10478 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
10479 (pc_mod_CFLAGS): New variables.
10480 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
10481 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
10482 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
10483 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
10484 Moved from here...
10485 * include/grub/i386/pc/init.h (grub_os_area_addr)
10486 (rub_os_area_size): ... to here.
10487 * include/grub/powerpc/ieee1275/ieee1275.h
10488 (grub_ieee1275_entry_fn): Export symbol.
10489 * include/grub/powerpc/ieee1275/init.h: New file.
10490 * include/grub/powerpc/libgcc.h: Likewise.
10491 * include/grub/cache.h: Likewise.
10492 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
10493 <hollis@penguinppc.org>.
10494 * kern/dl.c: Include <grub/cache.h>.
10495 (grub_dl_flush_cache): New function.
10496 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
10497 for this module.
10498 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
10499 (grub_console_init): Removed prototypes.
10500 (grub_machine_init): Don't initialize the modules anymore.
10501 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
10502 static.
10503 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
10504 Macro undef removed.
10505 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
10506 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
10507 relocation `R_PPC_REL32'. Return an error when the relocation is
10508 unknown.
10509 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
10510 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
10511 * util/misc.c (grub_arch_sync_caches): Likewise.
10512
e4b47e0c 105132004-12-19 Marco Gerards <metgerards@student.han.nl>
10514
10515 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
10516 `symlist.c', add `grubof_symlist.c'.
10517 (symlist.c): Variable removed.
10518 (grubof_HEADERS): Variable added.
10519 (grubof_symlist.c): New target.
10520 (kernel_syms.lst): Use `grubof_HEADERS' instead of
10521 `kernel_img_HEADERS'.
10522 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
10523 * kern/powerpc/dl.c: New file.
10524 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
10525 Function removed.
10526 (grub_arch_dl_relocate_symbols): Likewise.
10527 (grub_register_exported_symbols): Likewise.
10528
4ceb3636 105292004-12-13 Marco Gerards <metgerards@student.han.nl>
10530
10531 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
10532 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
10533 to fail instead. Reported by Vincent Pelletier
10534 <subdino2004@yahoo.fr>.
10535
10536 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
10537 it is not allocated. Reported by Vincent Pelletier
10538 <subdino2004@yahoo.fr>.
10539
10540 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
10541 output so the output looks better.
f19dbdb7 10542
3f1578fe 105432004-12-04 Marco Gerards <metgerards@student.han.nl>
10544
10545 Modulize the partition map support and add support for the amiga
10546 partition map.
f19dbdb7 10547
3f1578fe 10548 * commands/ls.c: Include <grub/partition.h> instead of
10549 <grub/machine/partition.h>.
10550 * kern/disk.c: Likewise.
10551 * kern/rescue.c: Likewise.
10552 * loader/i386/pc/chainloader.c: Likewise.
10553 * normal/cmdline.c: Likewise.
10554 * kern/powerpc/ieee1275/init.c: Likewise.
10555 (grub_machine_init): Call `grub_pc_partition_map_init',
10556 `grub_amiga_partition_map_init' and
10557 `grub_apple_partition_map_init'.
10558 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
10559 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
10560 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
10561 `partition.h' and `pc_partition.h'.
10562 (grub_setup_SOURCES): Remove
10563 `disk/i386/pc/partition.c'. Add `kern/partition.c',
10564 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
10565 (grub_emu_SOURCES): Likewise.
10566 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
10567 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
10568 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
10569 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
10570 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
10571 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
10572 (grubof_SOURCES): Likewise.
10573 * disk/i386/pc/partition.c: File removed.
10574 * disk/powerpc/ieee1275/partition.c: Likewise.
10575 * include/grub/powerpc/ieee1275/partition.h: Likewise.
10576 * include/grub/i386/pc/partition.h: Likewise.
10577 * kern/partition.c: New file.
10578 * partmap/amiga.c: Likewise.
10579 * partmap/apple.c: Likewise.
10580 * partmap/pc.c: Likewise.
10581 * include/grub/partition.h: Likewise..
10582 * include/grub/pc_partition.h: Likewise.
10583 * util/grub-emu.c: Include <grub/partition.h> instead of
10584 <grub/machine/partition.h>.
10585 (main): Call `grub_pc_partition_map_init',
10586 `grub_amiga_partition_map_init' and
10587 `grub_apple_partition_map_init' and deinitialize afterwards.
10588 * util/i386/pc/biosdisk.c: Include `#include
10589 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
10590 `<grub/machine/partition.h>'.
10591 * util/i386/pc/grub-setup.c: Likewise.
10592 * util/i386/pc/biosdisk.c: Likewise.
10593 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
10594 partition information in case of a PC partition.
10595 * util/i386/pc/grub-setup.c: Include `#include
10596 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
10597 `<grub/machine/partition.h>'.
10598 (setup): Only access the PC specific partition information in case
10599 of a PC partition.
10600
0ef4ced9 106012004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 10602
0ef4ced9 10603 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
10604 (grub_longjmp): Likewise.
10605 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
10606 20.
10607 * normal/powerpc/setjmp.S: New file.
10608 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
10609 `normal/powerpc/setjmp.S'.
10610 (grubof_CFLAGS): Add `-DGRUBOF'.
10611 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
10612 [GRUB_UTIL && !GRUBOF].
f19dbdb7 10613
19950e29 106142004-11-16 Marco Gerards <metgerards@student.han.nl>
10615
10616 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
10617 property named `name'. Correctly handle the error returned by
10618 `grub_ieee1275_finddevice' if a device can not be opened.
10619
a2fea427 106202004-11-02 Hollis Blanchard <hollis@penguinppc.org>
10621
10622 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
10623 `actual' for negativity.
10624 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
10625 kern/fshelp.c.
10626
41ea0ea3 106272004-11-01 Marco Gerards <metgerards@student.han.nl>
10628
10629 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
10630 (PAGE_OFFSET): New macro.
10631 (CRTC_ADDR_PORT): Likewise.
10632 (CRTC_DATA_PORT): Likewise.
10633 (START_ADDR_HIGH_REGISTER): Likewise.
10634 (START_ADDR_LOW_REGISTER): Likewise.
10635 (GRAPHICS_ADDR_PORT): Likewise.
10636 (GRAPHICS_DATA_PORT): Likewise.
10637 (READ_MAP_REGISTER): Likewise.
10638 (INPUT_STATUS1_REGISTER): Likewise.
10639 (INPUT_STATUS1_VERTR_BIT): Likewise.
10640 (page): New variable.
10641 (wait_vretrace): New function.
10642 (set_read_map): Likewise.
10643 (set_start_address): Likewise.
10644 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
10645 the right page.
10646 (check_vga_mem): Take the page into account.
10647 (write_char): Likewise.
10648 (write_cursor): Likewise.
10649 (scroll_up): Likewise. Copy the page to the page that is not
10650 shown and switch between both pages.
10651 (grub_vga_putchar): Fix off by one error.
10652 (grub_vga_cls): Wait for the vertical retrace. Take the page into
10653 account.
10654
ad0bd20b 106552004-11-01 Marco Gerards <metgerards@student.han.nl>
10656
10657 Add support for iso9660 (including rockridge).
f19dbdb7 10658
ad0bd20b 10659 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
10660 (iso9660_mod_SOURCES): New variable.
10661 (iso9660_mod_CFLAGS): Likewise.
10662 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
10663 * include/grub/fs.h (grub_iso9660_init): New prototype.
10664 * util/grub-emu.c (main): Call `grub_iso9660_init'.
10665 * fs/iso9660.c: New file.
10666
10667 * include/grub/misc.h (grub_strncat): New prototype.
10668 * kern/misc.c (grub_strncat): New function.
f19dbdb7 10669
ad0bd20b 10670 * fs/hfs.c (grub_hfs_mount): Translate the error
10671 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
10672 * fs/jfs.c (grub_jfs_mount): Likewise.
10673 * fs/ufs.c (grub_ufs_mount): Likewise.
10674
a5477a59 106752004-10-28 Hollis Blanchard <hollis@penguinppc.org>
10676
10677 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
10678 which initialized BAT registers.
10679 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
10680 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
10681 Move from here...
10682 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
10683 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
10684 ... to here.
10685 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
10686 (grub_mapclaim): Likewise.
10687 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
10688 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
10689 hand.
10690
9304c1f8 106912004-10-19 Hollis Blanchard <hollis@penguinppc.org>
10692
10693 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
10694 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
10695 -ffreestanding and -msoft-float.
10696
86f4ae25 106972004-10-15 Hollis Blanchard <hollis@penguinppc.org>
10698
10699 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
10700 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
10701 set in grub_ieee1275_flags.
10702
38912228 107032004-10-14 Hollis Blanchard <hollis@penguinppc.org>
10704
10705 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
10706 prototype.
10707 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
10708 grub_console_init first.
10709 Change the memory range used for grub_ieee1275_claim and
10710 grub_mm_init_region.
10711 Print an error message if the claim fails.
10712 Include <grub/misc.h>.
10713
d1923dc8 107142004-10-13 Hollis Blanchard <hollis@penguinppc.org>
10715
10716 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
10717 Call grub_children_iterate for device nodes of type `scsi',
10718 `ide', or `ata'.
10719 (grub_ofdisk_open): Remove manual device alias resolution.
10720 Fix memory leak when device cannot be opened.
f19dbdb7 10721 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 10722 (grub_children_iterate): New prototype.
10723 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
10724 New function.
10725 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
10726 Return -1 if args.size was -1.
10727
4512e4f3 107282004-10-11 Hollis Blanchard <hollis@penguinppc.org>
10729
10730 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
10731 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
10732 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
10733 Open Firmware's memory for it; claim memory from _start to _end.
10734 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
10735 (_end): New extern.
10736 (_start): Zero BSS from __bss_start to _end.
10737 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
10738 New extern.
10739 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
10740
4d61feb0 107412004-10-11 Hollis Blanchard <hollis@penguinppc.org>
10742
ad0bd20b 10743 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
10744 -1 if args.base was -1.
4d61feb0 10745
026fa2f9 107462004-10-08 Hollis Blanchard <hollis@penguinppc.org>
10747
10748 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
10749 escape sequence instead of a literal ^L. Also call
10750 grub_ofconsole_gotoxy.
10751
9f2220ef 107522004-10-03 Hollis Blanchard <hollis@penguinppc.org>
10753
10754 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
10755 void * arguments to grub_addr_t. All callers updated. Also make
10756 the `result' argument optional.
10757 (grub_ieee1275_release): change void * arguments to grub_addr_t.
10758 All callers updated.
10759
8a572cd7 107602004-09-22 Hollis Blanchard <hollis@penguinppc.org>
10761
10762 * commands/ls.c (grub_ls_list_files): Use the string following the
10763 initial ')', if present, as the filesystem path.
10764 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
10765
10766 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
10767
18aa81f2 107682004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
10769
10770 Make the source code of the menu interface more readable.
f19dbdb7 10771
18aa81f2 10772 * normal/menu.c: Include grub/mm.h.
10773 (TERM_WIDTH): New macro.
10774 (TERM_HEIGHT): Likewise.
10775 (TERM_INFO_HEIGHT): Likewise.
10776 (TERM_MARGIN): Likewise.
10777 (TERM_SCROLL_WIDTH): Likewise.
10778 (TERM_TOP_BORDER_Y): Likewise.
10779 (TERM_LEFT_BORDER_X): Likewise.
10780 (TERM_BORDER_WIDTH): Likewise.
10781 (TERM_MESSAGE_HEIGHT): Likewise.
10782 (TERM_BORDER_HEIGHT): Likewise.
10783 (TERM_NUM_ENTRIES): Likewise.
10784 (TERM_FIRST_ENTRY_Y): Likewise.
10785 (TERM_ENTRY_WIDTH): Likewise.
10786 (TERM_CURSOR_X): Likewise.
10787 (draw_border): Use macros instead of magic numbers.
10788 (print_entry): Likewise.
10789 (print_entries): Likewise.
10790 (run_menu): Likewise. Also, handle the key 'e'.
10791 (run_menu_entry): Ignore empty command lines.
10792 (print_message): Added a new argument EDIT. If EDIT is true,
10793 print a different message.
10794 (init_page): Likewise.
10795 (edit_menu_entry): New function. Not implemented yet.
10796
b47efe30 107972004-09-17 Marco Gerards <metgerards@student.han.nl>
10798
10799 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
10800 can be loaded from normal mode.
f19dbdb7 10801
b47efe30 10802 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
10803 `multiboot.mod'.
10804 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
10805 (multiboot_mod_CFLAGS): New variables.
10806 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 10807 * loader/i386/pc/multiboot_normal.c: Likewise.
10808
b47efe30 10809 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
10810 attribute `unused'.
f19dbdb7 10811
b47efe30 10812 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
10813 `fdiro' to read the mode information from instead of `diro'.
10814
10815 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
10816 looking up a symlink.
10817
10818 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
10819 macro.
10820 * normal/command.c (grub_command_execute): Don't parse the
10821 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
10822 flags of the command.
10823
10824 * normal/menu.c (grub_menu_run): Fix typo.
10825
da75ac71 108262004-09-14 Hollis Blanchard <hollis@penguinppc.org>
10827
10828 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
10829
10830 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
10831 `y + 1' instead of `y - 1'.
10832
10833 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 10834
062b24c2 108352004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
10836
10837 From Hollis Blanchard <hollis@penguinppc.org>:
10838 * kern/misc.c (memmove): New alias for grub_memmove.
10839 (memcmp): New alias for grub_memcmp.
10840 (memset): New alias for grub_memset.
f19dbdb7 10841 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 10842 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 10843 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 10844 (grub_ieee1275_get_property): Likewise.
f19dbdb7 10845
8ddad845 108462004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
10847
10848 Added normal mode command `chainloader' as module chain.mod, which
10849 depends on normal.mod and _chain.mod.
f19dbdb7 10850
8ddad845 10851 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
10852 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
10853 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
10854 Deleted prototype.
10855 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
10856 but arguments parsing moved to ...
10857 (grub_chainloader_cmd): ... here. New function.
10858 * include/grub/i386/pc/chainloader.h: New file.
10859 * loader/i386/pc/chainloader_normal.c: Likewise.
10860
2c1f4ce3 108612004-09-11 Marco Gerards <metgerards@student.han.nl>
10862
10863 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
10864 (grub_mkimage_LDFLAGS): Likewise.
10865 (grub_emu_SOURCES): Likewise.
10866 (kernel_img_HEADERS): Added fshelp.h.
10867 * fs/ext2.c: Include <grub/fshelp.h>.
10868 (FILETYPE_REG): New macro.
10869 (FILETYPE_INO_REG): Likewise.
10870 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
10871 Changed all users.
10872 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
10873 all users.
10874 (grub_fshelp_node): New struct.
10875 (grub_ext2_data): Added member `diropen'. Changed member `inode'
10876 to a pointer.
10877 (grub_ext2_get_file_block): Removed function.
10878 (grub_ext2_read_block): New function.
10879 (grub_ext2_read_file): Replaced parameter `data' by `node'.
10880 This function was written.
10881 (grub_ext2_mount): Read the root inode. Create a diropen struct.
10882 (grub_ext2_find_file): Removed function.
10883 (grub_ext2_read_symlink): New function.
10884 (grub_ext2_iterate_dir): Likewise.
10885 (grub_ext2_open): Rewritten.
10886 (grub_ext2_dir): Rewritten.
10887 * include/grub/fshelp.h: New file.
10888 * fs/fshelp.c: Likewise.
10889
3c52136a 108902004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
10891
10892 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
10893 (print_message): Add a missing newline.
10894 (run_menu): Added timeout support.
10895 (run_menu_entry): New local function.
10896 (grub_menu_run): Added support for booting.
10897
10898 * kern/loader.c (grub_loader_is_loaded): New function.
10899
10900 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
10901 (grub_get_rtc): Exported.
10902
10903 * include/grub/i386/pc/time.h: Include grub/symbol.h.
10904 (grub_get_rtc): Exported.
10905
10906 * include/grub/normal.h (struct grub_command_list): Remove
10907 constant from the member `command'.
10908
10909 * include/grub/loader.h (grub_loader_is_loaded): Declared.
10910
10911 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
10912
10913 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
10914
aa033560 109152004-08-28 Marco Gerards <metgerards@student.han.nl>
10916
10917 Add support for the JFS filesystem.
10918
10919 * fs/jfs.c: New file.
10920 * include/grub/fs.h (grub_jfs_init): New prototype.
10921 (grub_jfs_fini): New prototype.
10922 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
10923 (grub_emu_SOURCES): Likewise.
10924 (pkgdata_MODULES): Add jfs.mod.
10925 (jfs_mod_SOURCES): New variable.
10926 (jfs_mod_CFLAGS): Likewise.
10927 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
10928 (grubof_SOURCES): Likewise.
10929 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
10930
10931 * fs/fat.c (grub_fat_find_dir): Convert the filename little
10932 endian to the host endian.
10933 (grub_fat_utf16_to_utf8): Move function from there...
10934 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 10935 the endianness of the source string anymore.
aa033560 10936 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
10937
94bc45af 109382004-08-24 Marco Gerards <metgerards@student.han.nl>
10939
10940 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
10941 (grub_boot_fini) [GRUB_UTIL]: Likewise.
10942 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
10943 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 10944
94bc45af 10945 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
10946 (grub_hfs_iterate_dir): Make the function static. Add prototypes
10947 for `node_found' and `it_dir'.
10948 (grub_hfs_dir): Add prototype for `dir_hook'.
10949
10950 * fs/minix.c (grub_minix_get_file_block): Add prototype for
10951 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
10952 and `indir32' to silence a gcc warning.
10953
10954 * include/grub/fs.h (grub_hfs_init): New prototype.
10955 (grub_hfs_fini): Likewise.
f19dbdb7 10956
10957
97543f08 109582004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
10959
10960 Each disk device has its own id now. This is useful to make use
10961 of multiple disk devices.
f19dbdb7 10962
97543f08 10963 * include/grub/disk.h (grub_disk_dev_id): New enum.
10964 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
10965 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
10966
10967 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
10968 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
10969
10970 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
10971 GRUB_DISK_DEVICE_OFDISK_ID as an id.
10972
10973 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
10974 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
10975
10976 * include/grub/disk.h (struct grub_disk_dev): Added a new member
10977 "id" which is used by the cache manager.
10978
10979 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
10980 of just "GRUB".
10981
64372eb4 109822004-08-18 Marco Gerards <metgerards@student.han.nl>
10983
10984 * fs/hfs.c: New file.
10985 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
10986 (grub_emu_SOURCES): Likewise.
10987 (pkgdata_MODULES): Add hfs.mod.
10988 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
10989 (grubof_SOURCES): Likewise.
10990 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
10991
10992 * include/grub/misc.h (grub_strncasecmp): Add prototype.
10993 * kern/misc.c (grub_strncasecmp): Add function.
10994
cc61b58f 109952004-08-14 Marco Gerards <metgerards@student.han.nl>
10996
10997 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
10998 with parentheses.
10999
11000 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
11001 (grub_ext2_dir): In case the directory entry type is unknown, read
11002 it from the inode.
11003
0ef123f6 110042004-08-02 Peter Bruin <pjbruin@dds.nl>
11005
11006 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
11007 grub_load_linux instead of grub_rescue_cmd_linux as second
11008 argument of grub_rescue_register_command.
11009
11010 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
11011
a447c5df 110122004-07-27 Marco Gerards <metgerards@student.han.nl>
11013
11014 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
11015 function.
11016 * commands/boot.c: Remove the check for `GRUB_UTIL'.
11017 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
11018 `loader/powerpc/ieee1275/linux.c',
11019 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
11020 * include/grub/powerpc/ieee1275/ieee1275.h
11021 (grub_ieee1275_release): New prototype.
11022 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
11023 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
11024 normal, boot, linux and linux_normal.
11025 * loader/powerpc/ieee1275/linux.c: New file.
11026 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
11027
5a9e3546 110282004-07-12 Marco Gerards <metgerards@student.han.nl>
11029
11030 * normal/arg.c (grub_arg_parse): Correct error handling after
11031 reallocating the argumentlist (check if `argl' is not null instead
11032 of checking if `args' is not null).
11033 * kern/mm.c (grub_realloc): Return the same pointer when using the
11034 same region, instead of returning the header address.
11035
e15199cb 110362004-07-11 Marco Gerards <metgerards@student.han.nl>
11037
11038 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
11039 one block instead of two when looking for the initial partition.
11040 (grub_partition_probe): Initialize the local variable `p' with 0.
11041 Use base 10 for the grub_strtoul call.
11042 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
11043 need for one local variable.
11044 (grub_strtoul): Don't add the new value to `num', instead of that
11045 just assign it.
11046
020616c2 110472004-07-11 Marco Gerards <metgerards@student.han.nl>
11048
11049 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
11050 (pxeboot_img_SOURCES): New variable.
11051 (pxeboot_img_ASFLAGS): Likewise.
11052 (pxeboot_img_LDFLAGS): Likewise.
11053 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
11054 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
11055 <lode_leroy@hotmail.com>.
11056
6c51eb64 110572004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
11058
11059 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
11060 there was no input.
11061
cfb12aff 110622004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
11063
11064 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
11065 the history buffer logic.
11066
6eabba74 110672004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
11068
11069 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
11070 (FILETYPE_INO_SYMLINK): New macros.
11071 (grub_ext2_find_file): Check if the node is a directory using the
11072 inode stat information instead of using the filetype in the
11073 dirent. Exclude the first character of an absolute symlink.
11074 (grub_ext2_dir): Mask out the filetype part of the mode member of
11075 the inode.
11076
66e19ef8 110772004-05-24 Marco Gerards <metgerards@student.han.nl>
11078
11079 Add support for UFS version 1 and 2. Add support for the minix
11080 filesystem version 1 and 2, both the variants with 14 and 30 long
11081 filenames.
f19dbdb7 11082
66e19ef8 11083 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
11084 fs/minix.c.
11085 (grub_emu_SOURCES): Likewise.
11086 (pkgdata_MODULES): Add ufs.mod and minix.mod.
11087 (ufs_mod_SOURCES): New variable.
11088 (ufs_mod_CFLAGS): Likewise.
11089 (minix_mod_SOURCES): Likewise.
11090 (minix_mod_CFLAGS): Likewise.
11091 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
11092 fs/minix.c.
11093 (grubof_SOURCES): Likewise.
11094 * fs/ufs.c: New file.
11095 * fs/minix.c: New file.
11096 * include/grub/fs.h (grub_ufs_init): New prototype.
11097 (grub_ufs_fini): Likewise.
11098 (grub_minix_init): Likewise.
11099 (grub_minix_fini): Likewise.
11100 * util/grub-emu.c (main): Initialize and deinitialize UFS and
11101 minix fs.
11102
cc2e748a 111032004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
11104
11105 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
11106 commands/ls.c, commands/terminal.c, commands/boot.c,
11107 commands/cmp.c and commands/cat.c.
11108 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
11109
11110 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
11111 "env.h"
11112
4b13b216 111132004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
11114
11115 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
11116 and grub_, respectively. Because the conversion is trivial and
11117 mechanical, I omit the details here. Please refer to the CVS
11118 if you need more information.
11119
6a142551 111202004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
11121
11122 * include/pupa: Renamed to ...
11123 * include/grub: ... this.
11124 * util/i386/pc/pupa-mkimage.c: Renamed to ...
11125 * util/i386/pc/grub-mkimage.c: ... this.
11126 * util/i386/pc/pupa-setup.c: Renamed to ...
11127 * util/i386/pc/grub-setup.c: ... this.
11128 * util/pupa-emu.c: Renamed to ...
11129 * util/grub-emu.c: ... this.
11130
e56cdf21 111312004-03-29 Marco Gerards <metgerards@student.han.nl>
11132
11133 Add support for the newworld apple macintosh (PPC). This has been
11134 tested on the powerbook 2000 only. It only adds support for
11135 generic ieee1275 functions, console and disk support. This should
11136 be easy to port to other architectures with support for Open
11137 Firmware.
f19dbdb7 11138
e56cdf21 11139 * configure.ac: Accept the powerpc as host_cpu. In the case of
11140 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
11141 specific tests are only executed while building for the i386.
11142 Inverse test for crosscompile.
11143 * genmk.rb (Utility): Allow assembler files.
11144 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
11145 * conf/powerpc-ieee1275.rmk: New file.
11146 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
11147 * disk/powerpc/ieee1275/partition.c: Likewise.
11148 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
11149 * include/pupa/powerpc/ieee1275/console.h: Likewise.
11150 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
11151 * include/pupa/powerpc/ieee1275/time.h: Likewise.
11152 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
11153 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
11154 * include/pupa/powerpc/ieee1275/loader.h
11155 * include/pupa/powerpc/setjmp.h: Likewise.
11156 * include/pupa/powerpc/types.h: Likewise.
11157 * kern/powerpc/ieee1275/init.c: Likewise.
11158 * kern/powerpc/ieee1275/openfw.c: Likewise.
11159 * term/powerpc/ieee1275/ofconsole.c: Likewise.
11160
11161 These files were written by Johan Rydberg
11162 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 11163
e56cdf21 11164 * boot/powerpc/ieee1275/cmain.c: New file.
11165 * boot/powerpc/ieee1275/crt0.S: Likewise.
11166 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
11167 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
11168
8c8cc205 111692004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
11170
11171 * Makefile.in: Update copyright.
11172 * genmodsrc.sh: Likewise.
11173 * gensymlist.sh: Likewise.
11174 * term/i386/pc/vga.c: Indent correctly.
11175
11176 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
11177 bugreporting address.
11178 * util/i386/pc/pupa-setup.c (usage): Likewise,
11179 (main): Call pupa_ext2_init and pupa_ext2_fini.
11180
f19dbdb7 11181 * fs/fat.c (log2): Renamed to ...
8c8cc205 11182 (fat_log2): ... this.
11183 All callers changed.
11184 * kern/misc.c (memcpy): Alias to pupa_memmove.
11185 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
11186 lvalue cast.
11187 * util/console.c (pupa_ncurses_fini): Return 0.
11188
11189 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
11190 Move fail label here.
11191 [__GNU__]: Don't warn when using stat.
11192 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
11193 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
11194 long int. Use strtol instead of strtoul.
f19dbdb7 11195
db1771cf 111962004-03-14 Marco Gerards <metgerards@student.han.nl>
11197
11198 * commands/boot.c: New file.
11199 * commands/cat.c: Likewise.
11200 * commands/cmp.c: Likewise.
11201 * commands/ls.c: Likewise.
11202 * commands/terminal.c: Likewise.
11203 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
11204 (pupa_register_command): Changed interface to match the new
11205 argument parser.
11206 (pupa_command_execute): Changed (almost rewritten) so it uses
11207 pupa_split_command. Added support for setting variables using the
11208 syntax `foo=bar'.
11209 (rescue_command): Changed to work with the new argument parser.
11210 (terminal_command): Moved from here to commands/terminal.c.
11211 (set_command): New function.
11212 (unset_command): New function.
11213 (insmod_command): New function.
11214 (rmmod_command): New function.
11215 (lsmod_command): New function.
11216 (pupa_command_init): Don't initialize the command terminal
11217 anymore. Initialize the commands set, unset, insmod, rmmod and
11218 lsmod.
11219 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
11220 (kernel_img_HEADERS): Add arg.h and env.h.
11221 (pupa_mkimage_LDFLAGS): Add kern/env.c.
11222 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
11223 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
11224 normal/arg.c.
11225 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
11226 terminal.mod.
11227 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
11228 (boot_mod_SOURCES): New variable.
11229 (terminal_mod_SOURCES): Likewise.
11230 (ls_mod_SOURCES): Likewise.
11231 (cmp_mod_SOURCES): Likewise.
11232 (cat_mod_SOURCES): Likewise.
11233
11234 * normal/arg.c: New file.
11235 * kern/env.c: Likewise.
11236 * include/pupa/arg.h: Likewise.
11237 * include/pupa/env.h: Likewise.
11238 * font/manager.c (font_command): Changed to match argument parsing
11239 interface changes.
11240 (PUPA_MOD_INIT): Likewise.
11241 * hello/hello.c (pupa_cmd_hello): Likewise.
11242 (PUPA_MOD_INIT): Likewise.
11243 * include/pupa/disk.h: Include <pupa/device.h>.
11244 (pupa_print_partinfo): New prototype.
11245 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
11246 (pupa_dl_get_prefix): Likewise.
11247 * include/pupa/misc.h: Include <pupa/err.h>.
11248 (pupa_isgraph): New prototype.
11249 (pupa_isdigit): Likewise.
11250 (pupa_split_cmdline): Likewise.
11251 * include/pupa/normal.h: Include <pupa/arg.h>.
11252 (pupa_command): Changed the prototype of the member `func' to
11253 match the argument parsing interface. Added member `options'.
11254 (pupa_register_command): Updated to match function.
11255 (pupa_arg_parse): New prototype.
11256 (pupa_hello_init) [PUPA_UTIL]: New prototype.
11257 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
11258 (pupa_ls_init) [PUPA_UTIL]: Likewise.
11259 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
11260 (pupa_cat_init) [PUPA_UTIL]: Likewise.
11261 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
11262 (pupa_boot_init) [PUPA_UTIL]: Likewise.
11263 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
11264 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
11265 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
11266 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
11267 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
11268 * kern/disk.c: Include <pupa/file.h>.
11269 (pupa_print_partinfo): New function.
11270 * kern/dl.c: Include <pupa/env.h>.
11271 (pupa_dl_dir): Variable removed.
11272 (pupa_dl_load): Use the environment variable `prefix' instead of
11273 the variable pupa_dl_dir.
11274 (pupa_dl_set_prefix): Function removed.
11275 (pupa_dl_get_prefix): Likewise.
11276 * kern/i386/pc/init.c: Include <pupa/env.h>.
11277 (pupa_machine_init): Use the environment variable `prefix' instead of
11278 using pupa_dl_set_prefix to set the prefix.
11279 * kern/main.c: Include <pupa/env.h>.
11280 (pupa_set_root_dev): Use the environment variable `prefix' instead of
11281 using pupa_dl_get_prefix to get the prefix.
11282 * kern/misc.c: Include <pupa/env.h>.
11283 (pupa_isdigit): New function.
11284 (pupa_isgraph): Likewise.
11285 (pupa_ftoa): Likewise.
11286 (pupa_vsprintf): Added support for printing values of the type
11287 `double'. Make it possible to format variable output when using
11288 formatting like `%1.2%f'.
11289 (pupa_split_cmdline): New function.
11290 * kern/rescue.c: Include <pupa/env.h>.
11291 (next_word): Removed function.
11292 (pupa_rescue_cmd_prefix): Likewise.
11293 (pupa_rescue_cmd_set): New function.
11294 (pupa_rescue_cmd_unset): New function.
11295 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
11296 split the command line instead of splitting it here. Added
11297 support for setting variables using the syntax `foo=bar'. Don't
11298 initialize the prefix command anymore. Initialized the set and
11299 unset commands.
11300 * normal/cmdline.c: Include <pupa/env.h>.
11301 (pupa_tab_complete): Added prototypes for print_simple_completion,
11302 print_partition_completion, add_completion, iterate_commands,
11303 iterate_dev, iterate_part and iterate_dir. Moved code to print
11304 partition information from here to kern/disk.c.
fe6b695a 11305 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 11306 * normal/main.c: Include <pupa/env.h>.
11307 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
11308 instead of using pupa_dl_get_prefix to get the prefix.
11309 * term/i386/pc/vga.c: Include <pupa/arg.h>.
11310 (check_vga_mem): Cast pointers to `void *' to silence a gcc
11311 warning.
11312 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
11313 (pupa_vga_setcolor): Declare unused variables with `__attribute__
11314 ((unused))' to silence a gcc warning.
11315 (pupa_vga_setcolor): Likewise.
11316 (debug_command): Changed to match argument parsing
11317 interface changes.
11318 * util/pupa-emu.c: Include <pupa/env.h>.
11319 (options): Added 0's for unused fields to silence a gcc warning.
11320 (argp): Likewise.
11321 (main): Use the environment variable `prefix' instead of using
11322 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
11323 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
11324 and terminal.
11325
11326 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
11327 * util/misc.c: Include <malloc.h>.
11328 (pupa_malloc): Rewritten so errors are correctly reported.
11329 (pupa_realloc): Likewise.
11330 (pupa_memalign): Likewise.
11331 (pupa_mm_init_region): Declare unused variables with
11332 `__attribute__ ((unused))' to silence a gcc warning.
11333 * normal/i386/setjmp.S: Remove tab at the end of the file to
11334 silence a gcc warning.
11335 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
11336 variables with `__attribute__ ((unused))' to silence a gcc
11337 warning.
11338 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
11339 local variable i unsigned to silence a gcc warning.
11340
11341 * kern/term.c: Include <pupa/misc.h>.
11342 (pupa_more_lines): New variable.
11343 (pupa_more): Likewise.
11344 (pupa_putcode): When the pager is active pause at the end of every
11345 screen.
11346 (pupa_set_more): New function.
11347 * include/pupa/term.h (pupa_set_more): New prototype.
11348
11349
3b1139cb 113502004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
11351
11352 Now this project is GRUB 2 rather than PUPA. The location of
11353 the CVS repository was moved to GRUB's.
f19dbdb7 11354
3b1139cb 11355 * configure.ac: Use bug-grub as the reporting address.
11356 Use GRUB instead of PUPA.
11357 Change the version number to 1.90.
11358
8367695c 113592004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
11360
11361 * genkernsyms.sh: Updated copyright information.
11362 * genmk.rb: Likewise.
11363 * genmodsrc.sh: Likewise.
11364 * gensymlist.sh: Likewise.
11365 * boot/i386/pc/boot.S: Likewise.
11366 * boot/i386/pc/diskboot.S: Likewise.
11367 * disk/i386/pc/biosdisk.c: Likewise.
11368 * disk/i386/pc/partition.c: Likewise.
11369 * font/manager.c: Likewise.
11370 * fs/ext2.c: Likewise.
11371 * fs/fat.c: Likewise.
11372 * include/pupa/boot.h: Likewise.
11373 * include/pupa/device.h: Likewise.
11374 * include/pupa/disk.h: Likewise.
11375 * include/pupa/dl.h: Likewise.
11376 * include/pupa/elf.h: Likewise.
11377 * include/pupa/err.h: Likewise.
11378 * include/pupa/file.h: Likewise.
11379 * include/pupa/font.h: Likewise.
11380 * include/pupa/fs.h: Likewise.
11381 * include/pupa/kernel.h: Likewise.
11382 * include/pupa/loader.h: Likewise.
11383 * include/pupa/misc.h: Likewise.
11384 * include/pupa/mm.h: Likewise.
11385 * include/pupa/net.h: Likewise.
11386 * include/pupa/normal.h: Likewise.
11387 * include/pupa/rescue.h: Likewise.
11388 * include/pupa/setjmp.h: Likewise.
11389 * include/pupa/symbol.h: Likewise.
11390 * include/pupa/term.h: Likewise.
11391 * include/pupa/types.h: Likewise.
11392 * include/pupa/i386/setjmp.h: Likewise.
11393 * include/pupa/i386/types.h: Likewise.
11394 * include/pupa/i386/pc/biosdisk.h: Likewise.
11395 * include/pupa/i386/pc/boot.h: Likewise.
11396 * include/pupa/i386/pc/console.h: Likewise.
11397 * include/pupa/i386/pc/init.h: Likewise.
11398 * include/pupa/i386/pc/kernel.h: Likewise.
11399 * include/pupa/i386/pc/linux.h: Likewise.
11400 * include/pupa/i386/pc/loader.h: Likewise.
11401 * include/pupa/i386/pc/memory.h: Likewise.
11402 * include/pupa/i386/pc/multiboot.h: Likewise.
11403 * include/pupa/i386/pc/partition.h: Likewise.
11404 * include/pupa/i386/pc/time.h: Likewise.
11405 * include/pupa/i386/pc/vga.h: Likewise.
11406 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
11407 * include/pupa/util/getroot.h: Likewise.
11408 * include/pupa/util/misc.h: Likewise.
11409 * include/pupa/util/resolve.h: Likewise.
11410 * kern/device.c: Likewise.
11411 * kern/disk.c: Likewise.
11412 * kern/dl.c: Likewise.
11413 * kern/err.c: Likewise.
11414 * kern/file.c: Likewise.
11415 * kern/fs.c: Likewise.
11416 * kern/loader.c: Likewise.
11417 * kern/main.c: Likewise.
11418 * kern/misc.c: Likewise.
11419 * kern/mm.c: Likewise.
11420 * kern/rescue.c: Likewise.
11421 * kern/term.c: Likewise.
11422 * kern/i386/dl.c: Likewise.
11423 * kern/i386/pc/init.c: Likewise.
11424 * kern/i386/pc/lzo1x.S: Likewise.
11425 * kern/i386/pc/startup.S: Likewise.
11426 * loader/i386/pc/chainloader.c: Likewise.
11427 * loader/i386/pc/linux.c: Likewise.
11428 * loader/i386/pc/multiboot.c: Likewise.
11429 * normal/cmdline.c: Likewise.
11430 * normal/command.c: Likewise.
11431 * normal/main.c: Likewise.
11432 * normal/menu.c: Likewise.
11433 * normal/i386/setjmp.S: Likewise.
11434 * term/i386/pc/console.c: Likewise.
11435 * term/i386/pc/vga.c: Likewise.
11436 * util/console.c: Likewise.
11437 * util/genmoddep.c: Likewise.
11438 * util/misc.c: Likewise.
11439 * util/pupa-emu.c: Likewise.
11440 * util/resolve.c: Likewise.
11441 * util/unifont2pff.rb: Likewise.
11442 * util/i386/pc/biosdisk.c: Likewise.
11443 * util/i386/pc/getroot.c: Likewise.
11444 * util/i386/pc/pupa-mkimage.c: Likewise.
11445 * util/i386/pc/pupa-setup.c: Likewise.
11446
e6eced71 114472004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
11448
11449 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
11450 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
11451 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
11452 reading and reset it after reading.
11453 (pupa_ext2_close): Return PUPA_ERR_NONE.
11454
11455 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
11456 Correct value.
11457 (struct linux_kernel_header): Add kernel_version and
11458 initrd_addr_max.
11459 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
11460 pupa_file_read succeeds.
11461 (pupa_rescue_cmd_initrd): Implement.
11462
5aded270 114632003-12-03 Marco Gerards <metgerards@student.han.nl>
11464
11465 * fs/ext2.c (pupa_ext2_label): New function.
11466 (pupa_ext2_fs): Added label.
11467 * fs/fat.c (pupa_fat_label): New function.
11468 (pupa_fat_fs): Added label.
11469 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
11470
11471 * kern/misc.c (pupa_strndup): New function.
11472 * include/pupa/misc.h (pupa_strndup): New prototype.
11473
11474 * include/pupa/normal.h: Include <pupa/err.h>.
11475 (pupa_set_history): New prototype.
11476 (pupa_iterate_commands): New prototype.
11477 * normal/cmdline.c: Include <pupa/machine/partition.h>,
11478 <pupa/disk.h>, <pupa/file.h>.
11479 (hist_size): New variable.
11480 (hist_lines): Likewise.
11481 (hist_end): Likewise.
11482 (hist_used): Likewise.
11483 (pupa_set_history): New function.
11484 (pupa_history_get): Likewise.
11485 (pupa_history_add): Likewise.
11486 (pupa_history_replace): Likewise.
11487 (pupa_tab_complete): Likewise.
11488 (pupa_cmdline_run): Added tab completion and history buffer. Tab
11489 completion shows partitionnames while completing partitions, this
11490 feature was suggested by Jeff Bailey.
11491 * normal/command.c (pupa_iterate_commands): New function.
11492 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
11493 (pupa_normal_init): Initialize history buffer.
11494 (PUPA_MOD_INIT): Likewise.
11495 (pupa_normal_fini): Free the history buffer.
11496 (PUPA_MOD_FINI): Likewise.
11497
11498 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
11499 key.
11500
11501 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
11502 * configure.ac [i386]: Check for regparam bug.
11503 (NESTED_FUNC_ATTR) [! i386]: Defined.
11504
1f7315a3 115052003-11-17 Marco Gerards <metgerards@student.han.nl>
11506
11507 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
11508 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
11509 (pupa_emu_SOURCES): New variable.
11510 (pupa_emu_LDFLAGS): Likewise.
11511 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
11512 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
11513 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
11514 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
11515 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
11516 (pupa_jmp_buf): New typedef.
11517 (pupa_setjmp) [PUPA_UTIL]: New macro.
11518 (pupa_longjmp) [PUPA_UTIL]: Likewise.
11519 * include/pupa/term.h (struct pupa_term): New member `refresh'.
11520 (pupa_refresh): New prototype.
11521 * include/pupa/util/getroot.h: New file.
11522 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
11523 it.
11524 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
11525 (pupa_rescue_cmd_cat): Likewise.
11526 (pupa_rescue_cmd_ls): Likewise.
11527 (pupa_rescue_cmd_testload): Likewise.
11528 (pupa_rescue_cmd_lsmod): Likewise.
11529 * normal/cmdline.c (pupa_cmdline_get): Likewise.
11530 * normal/menu.c (run_menu): Likewise.
11531 * kern/term.c (pupa_cls): Likewise.
11532 (pupa_refresh): New function.
11533 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
11534 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
11535 * util/console.c: New file.
f19dbdb7 11536
1f7315a3 11537 * util/i386/pc/getroot.c: New file.
11538 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
11539 (pupa_putchar): New function.
11540 (pupa_refresh): Likewise.
11541 (xgetcwd): Function moved to ...
11542 (strip_extra_slashes): Likewise.
11543 (get_prefix): Likewise.
f19dbdb7 11544 * util/i386/pc/getroot.c: ... here.
1f7315a3 11545 (find_root_device): Function moved and renamed to...
11546 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
11547 Changed all callers.
11548 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
11549 and renamed to...
11550 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
11551 Changed all callers.
11552 * util/misc.c (pupa_memalign): New function.
11553 (pupa_mm_init_region): Likewise.
11554 (pupa_register_exported_symbols): Likewise.
11555 (pupa_putchar): Function removed.
11556 * util/pupa-emu.c: New file.
11557
9a5c1ade 115582003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
11559
11560 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
11561 (_multiboot_mod_SOURCES): New variable.
11562 (_multiboot_mod_CFLAGS): Likewise.
11563 * loader/i386/pc/multiboot.c: New file.
11564 * include/pupa/i386/pc/multiboot.h: Likewise.
11565 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
11566 (pupa_multiboot_real_boot): New function.
11567 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
11568 (pupa_multiboot_real_boot): New prototype.
11569 (pupa_rescue_cmd_multiboot): Likewise
11570 (pupa_rescue_cmd_module): Likewise.
11571
11572 * kern/loader.c (pupa_loader_set): Continue when
11573 pupa_loader_unload_func() fails.
11574 (pupa_loader_unset): New function.
11575 * include/pupa/loader.h (pupa_loader_unset): New prototype.
11576
11577 * kern/misc.c (pupa_stpcpy): New function.
11578 * include/pupa/misc.h (pupa_stpcpy): New prototype.
11579
8e72a9c0 115802003-11-12 Marco Gerards <metgerards@student.han.nl>
11581
11582 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
11583 for available extensions.
11584
11585 * include/pupa/i386/pc/time.h: New file.
11586 * kern/disk.c: Include <pupa/machine/time.h>.
11587 (PUPA_CACHE_TIMEOUT): New macro.
11588 (pupa_last_time): New variable.
11589 (pupa_disk_open): Flush the cache when there was a timeout.
11590 (pupa_disk_close): Reset the timer.
11591 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
11592 pupa_currticks.
11593 * util/misc.c: Include <sys/times.h>
11594 (pupa_get_rtc): New function.
11595
c4adbd32 115962003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
11597
11598 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
11599 as blocks.
11600 (pupa_ext2_get_file_block): Use blocks member.
11601
11602 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
11603 first block. Return -1 instead of pupa_errno on error.
11604
bfd30f06 116052003-10-27 Marco Gerards <metgerards@student.han.nl>
11606
11607 * README: In the pupa-mkimage example use _chain instead of chain
11608 and ext2 instead of fat.
11609 * TODO: Replace ext2fs with jfs as an example. Add an item for
11610 adding journal playback for ext2fs.
11611 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
11612 (pkgdata_MODULES): Added ext2.mod.
11613 (ext2_mod_SOURCES): New variable.
11614 (ext2_mod_CFLAGS): Likewise.
11615 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
11616 * include/pupa/misc.h (pupa_strncpy): New prototype.
11617 (pupa_strcat): Likewise.
11618 (pupa_strncmp): Likewise.
11619 * kern/misc.c (pupa_strcat): Enable function.
11620 (pupa_strncpy): New function.
11621 (pupa_strncmp): Likewise.
11622 * fs/ext2.c: New file.
f19dbdb7 11623
bfd30f06 11624 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
11625 when the read failed before retrying.
11626 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
11627 (_FILE_OFFSET_BITS): Likewise.
11628 * configure.ac: Added AC_SYS_LARGEFILE.
11629
98d15063 116302003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
11631
11632 * genmk.rb (PModule#rule): Make sure to get only symbol names
11633 from the output of nm.
11634 Reported by Robert Millan <zeratul2@wanadoo.es>.
11635
18d9c7cd 116362003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
11637
11638 I forgot to check in these changes for a long time. This adds
11639 incomplete support for VGA console, and this is still very
11640 buggy. Also, a lot of consideration is required for I18N,
11641 UNICODE, and VGA font issues. Therefore, assume that this is
11642 such that "better than nothing".
f19dbdb7 11643
18d9c7cd 11644 * font/manager.c: New file.
11645 * include/pupa/font.h: Likewise.
11646 * include/pupa/i386/pc/vga.h: Likewise.
11647 * term/i386/pc/vga.c: Likewise.
11648 * util/unifont2pff.rb: Likewise.
11649
11650 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
11651 (pkgdata_MODULES): Added vga.mod and font.mod.
11652 (vga_mod_SOURCES): New variables.
11653 (vga_mod_CFLAGS): Likewise.
11654 (font_mod_SOURCES): Likewise.
11655 (font_mod_CFLAGS): Likewise.
11656
11657 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
11658
11659 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 11660 (struct pupa_term): Added init and fini.
18d9c7cd 11661 Changed the argument of putchar to pupa_uint32_t.
11662
11663 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
11664 (pupa_console_real_putchar): New prototype.
11665 (pupa_console_putchar): Removed.
11666 (pupa_console_checkkey): Exported.
11667 (pupa_console_getkey): Likewise.
11668
11669 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
11670 characters.
11671
11672 * kern/term.c (pupa_term_set_current): Rewritten.
11673 (pupa_putchar): Likewise.
11674 (pupa_putcode): New function.
11675
11676 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
11677 (pupa_console_real_putchar): ... this.
11678 (pupa_vga_set_mode): New function.
11679 (pupa_vga_get_font): Likewise.
11680
11681 * normal/command.c: Include pupa/term.h.
11682 (terminal_command): New function.
11683 (pupa_command_init): Register the command "terminal".
11684
11685 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
11686 (DISP_UP): Likewise.
11687 (DISP_RIGHT): Likewise.
11688 (DISP_DOWN): Likewise.
11689 (DISP_HLINE): Likewise.
11690 (DISP_VLINE): Likewise.
11691 (DISP_UL): Likewise.
11692 (DISP_UR): Likewise.
11693 (DISP_LL): Likewise.
11694 (DISP_LR): Likewise.
11695
11696 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 11697
977329f5 116982003-02-08 NIIBE Yutaka <gniibe@m17n.org>
11699
11700 * util/resolve.c (pupa_util_resolve_dependencies): BUG
11701 FIX. Reverse the path_list.
11702
11703 * include/pupa/normal.h: Export pupa_register_command and
11704 pupa_unregister_command.
11705
11706 * hello/hello.c (pupa_cmd_hello): New module.
11707 * conf/i386-pc.rmk: Added hello.mod.
11708
1f5ab428 117092003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
11710
11711 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 11712
1f5ab428 11713 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
11714 (compress_kernel): New variable.
11715 (generate_image): Heavily modified to support compressing a
11716 large part of the core image.
11717
11718 * util/misc.c (pupa_util_read_image): Fix a file descriptor
11719 leak.
11720 (pupa_util_load_image): New function.
11721
11722 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
11723 (pupa_compressed_size): New variable.
11724 (codestart): Enable Gate A20 here.
11725 Decompress the compressed part of the core image.
11726 Rearrange the code to put functions and variables which are
11727 required for initialization in the non-compressed part.
11728 Include lzo1x.S.
11729
11730 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
11731 here.
11732
11733 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
11734
f19dbdb7 11735 * include/pupa/i386/pc/kernel.h
1f5ab428 11736 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
11737 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
11738 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
11739 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
11740 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
11741
11742 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
11743
11744 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
11745 (Utility#rule): Likewise.
11746
11747 * configure.ac: Check if LZO is available.
11748
ce5bf700 117492003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
11750
11751 * include/pupa/normal.h: New file.
11752 * include/pupa/setjmp.h: Likewise.
11753 * include/pupa/i386/setjmp.h: Likewise.
11754 * normal/cmdline.c: Likewise.
11755 * normal/command.c: Likewise.
11756 * normal/main.c: Likewise.
11757 * normal/menu.c: Likewise.
11758 * normal/i386/setjmp.S: Likewise.
f19dbdb7 11759
ce5bf700 11760 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
11761 (pupa_rescue_cmd_initrd): Likewise.
11762
11763 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
11764 Likewise.
11765
11766 * kern/i386/pc/startup.S (translation_table): New variable.
11767 (translate_keycode): New function.
11768 (pupa_console_getkey): Call translate_keycode.
11769
11770 * kern/rescue.c (attempt_normal_mode): New function.
11771 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
11772 it failed, print a message.
11773
11774 * kern/mm.c (pupa_real_malloc): Print more information when a
11775 free magic is broken.
11776 (pupa_free): If the first free header is not free actually, set
11777 it to P.
11778
11779 * kern/main.c (pupa_load_normal_mode): Just load the module
11780 "normal".
11781 (pupa_main): Don't print the message
11782 "Entering into rescue mode..." here.
11783
11784 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
11785 Declared.
11786 (pupa_rescue_cmd_initrd): Likewise.
11787 (pupa_rescue_cmd_initrd): Likewise.
11788
11789 * include/pupa/symbol.h (FUNCTION): Specify the type.
11790 (VARIABLE): Likewise.
11791
11792 * include/pupa/err.h (pupa_err_t): Added
11793 PUPA_ERR_UNKNOWN_COMMAND.
11794
11795 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
11796 (pupa_dl_get_prefix): Likewise.
11797
11798 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
11799 Added _chain.mod and _linux.mod instead of chain.mod and
11800 linux.mod.
11801 (chain_mod_SOURCES): Renamed to ...
11802 (_chain_mod_SOURCES): ... this.
11803 (chain_mod_CFLAGS): Renamed to ...
11804 (_chain_mod_CFLAGS): ... this.
11805 (linux_mod_SOURCES): Renamed to ...
11806 (_linux_mod_SOURCES): ... this.
11807 (linux_mod_CFLAGS): Renamed to ...
11808 (_linux_mod_CFLAGS): ... this.
11809 (normal_mod_SOURCES): New variable.
11810 (normal_mod_CFLAGS): Likewise.
11811 (normal_mod_ASFLAGS): Likewise.
11812
118132003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
11814
11815 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
11816 possible.
11817
fe6b695a 11818 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 11819 recursively.
11820 (pupa_dl_unref): Unrefer depending modules recursively.
11821 Don't call pupa_dl_unload implicitly, because PUPA can crash if
11822 a module is unloaded before one depending on that module is
11823 unloaded.
11824 (pupa_dl_unload): Unload depending modules explicitly,
11825 if possible.
11826
c04da074 118272003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
11828
11829 * include/pupa/i386/pc/linux.h: New file.
11830 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 11831
c04da074 11832 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
11833 Removed.
11834 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
11835 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
11836 of PUPA_CHAINLOADER_BOOT_SECTOR.
11837
11838 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
11839 (pupa_linux_prot_size): New variable.
11840 (pupa_linux_tmp_addr): Likewise.
11841 (pupa_linux_real_addr): Likewise.
11842 (pupa_linux_boot_zimage): New function.
11843 (pupa_linux_boot_bzimage): Likewise.
11844
11845 * kern/i386/pc/init.c (struct mem_region): New structure.
11846 (MAX_REGIONS): New macro.
11847 (mem_regions): New variable.
11848 (num_regions): Likewise.
11849 (pupa_os_area_addr): Likewise.
11850 (pupa_os_area_size): Likewise.
11851 (pupa_lower_mem): Likewise.
11852 (pupa_upper_mem): Likewise.
11853 (add_mem_region): New function.
11854 (compact_mem_regions): Likewise.
11855 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
11856 the size of the conventional memory and that of so-called upper
11857 memory (before the first memory hole).
11858 Instead of adding each found region to free memory, use
11859 add_mem_region and add them after removing overlaps.
11860 Also, add only 1/4 of the upper memory to free memory. The rest
11861 is used for loading OS images. Maybe this is ad hoc, but this
11862 makes it much easier to relocate OS images when booting.
11863
11864 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
11865 (pupa_enter_rescue_mode): Don't register initrd and module.
11866
11867 * kern/mm.c: Include pupa/dl.h.
11868
11869 * kern/main.c: Include pupa/file.h and pupa/device.h.
11870
11871 * kern/loader.c (pupa_loader_load_module_func): Removed.
11872 (pupa_loader_load_module): Likewise.
11873
11874 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
11875 ``.o''.
11876
11877 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
11878 (pupa_linux_tmp_addr): Likewise.
11879 (pupa_linux_real_addr): Likewise.
11880 (pupa_linux_boot_zimage): Likewise.
11881 (pupa_linux_boot_bzimage): Likewise.
11882
11883 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
11884 (pupa_upper_mem): Likewise.
11885 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
11886 module is too dangerous.
11887
11888 * include/pupa/loader.h (pupa_os_area_addr): Declared.
11889 (pupa_os_area_size): Likewise.
11890 (pupa_loader_set): Remove the first argument. Loader doesn't
11891 manage modules or initrd any longer.
11892 (pupa_loader_load_module): Removed.
11893
11894 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
11895 (linux_mod_SOURCES): New variable.
11896 (linux_mod_CFLAGS): Likewise.
11897
a13f9237 118982003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
11899
11900 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
11901 the length of a blocklist correctly.
11902
11903 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
11904 Use ioctl only if the OS file is a block device.
11905 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
11906 not very useful for normal files.
11907
11908 * kern/main.c (pupa_set_root_dev): New function.
11909 (pupa_load_normal_mode): Likewise.
11910 (pupa_main): Call those above.
11911
11912 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
11913 pupa_uint16_t.
11914
11915 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
11916
a5ffe966 119172003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
11918
11919 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
11920 (setup): Configure the installed partition information and the
11921 dl prefix.
11922
11923 * loader/i386/pc/chainloader.c (my_mod): New variable.
11924 (pupa_chainloader_unload): New function.
11925 (pupa_rescue_cmd_chainloader): Refer itself.
11926 (PUPA_MOD_INIT): Save its own module in MY_MOD.
11927
11928 * kern/i386/pc/startup.S (install_partition): Removed.
11929 (version_string): Likewise.
11930 (config_file): Likewise.
11931 (pupa_install_dos_part): New variable.
11932 (pupa_install_bsd_part): Likewise.
11933 (pupa_prefix): Likewise.
11934 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
11935
11936 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
11937 and pupa/misc.h.
11938 (make_install_device): New function.
11939 (pupa_machine_init): Set the dl prefix.
11940
11941 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
11942 (buf): Renamed to ...
11943 (linebuf): ... this.
11944 (pupa_rescue_cmd_prefix): New function.
11945 (pupa_rescue_cmd_insmod): Likewise.
11946 (pupa_rescue_cmd_rmmod): Likewise.
11947 (pupa_rescue_cmd_lsmod): Likewise.
11948 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
11949 rmmod and lsmod.
11950
11951 * kern/mm.c (pupa_memalign): If failed even after invalidating
11952 disk caches, unload unneeded modules and retry.
11953
11954 * kern/misc.c (pupa_memmove): New function.
11955 (pupa_memcpy): Removed.
11956 (pupa_strcpy): New function.
11957 (pupa_itoa): Made static.
11958
11959 * kern/dl.c (pupa_dl_iterate): New function.
11960 (pupa_dl_ref): Likewise.
11961 (pupa_dl_unref): Likewise.
11962 (pupa_dl_unload): Return if succeeded or not.
11963 (pupa_dl_unload_unneeded): New function.
11964 (pupa_dl_unload_all): Likewise.
11965 (pupa_dl_init): Renamed to ...
11966 (pupa_dl_set_prefix): ... this.
11967 (pupa_dl_get_prefix): New function.
11968
11969 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
11970 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
11971 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
11972 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
11973 (pupa_install_dos_part): Declared.
11974 (pupa_install_bsd_part): Likewise.
11975 (pupa_prefix): Likewise.
11976 (pupa_boot_drive): Likewise.
11977
11978 * include/pupa/types.h: Fix a typo.
11979
11980 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
11981 pupa_memmove.
11982 (pupa_memmove): Declared.
11983 (pupa_strcpy): Likewise.
11984
11985 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
11986 pupa_mod_init takes one argument, its own module.
11987 (pupa_dl_unload_unneeded): Declared.
11988 (pupa_dl_unload_all): Likewise.
11989 (pupa_dl_ref): Likewise.
11990 (pupa_dl_unref): Likewise.
11991 (pupa_dl_iterate): Likewise.
11992 (pupa_dl_init): Renamed to ...
11993 (pupa_dl_set_prefix): ... this.
11994 (pupa_dl_get_prefix): Declared.
11995
11996 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 11997 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 11998 unloaded.
11999 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
12000 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
12001
12002 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
12003 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
12004
012d7999 120052003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
12006
12007 * util/i386/pc/pupa-setup.c (setup): Define the internal
12008 function find_first_partition_start at the top level, because GCC
12009 3.0.x cannot compile internal functions in deeper scopes
12010 correctly.
12011 (find_root_device): Use lstat instead of stat.
12012 Don't follow symbolic links.
12013 Fix the path-constructing code.
12014
12015 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
12016 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
12017 by a BLKGETSIZE ioctl first, because block devices don't fill
12018 the member st_mode of the structure stat on Linux.
12019 [__linux__] (linux_find_partition): Use a temporary buffer
12020 REAL_DEV for the working space. Copy it to DEV before returning.
12021 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
12022 buffer cache consistent.
12023 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
12024 strncmp. The previous value was merely wrong.
12025 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
12026
12027 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
12028 FAT size is 12. The previous value was merely wrong.
12029
12030 * kern/main.c (pupa_main): Don't split the starting message from
12031 newlines.
12032
12033 * kern/term.c (pupa_putchar): Put CR after LF instead of before
12034 LF, because BIOS goes crazy about character attributes in this
12035 case.
12036
1cc73a62 120372003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
12038
12039 * include/i386/pc/util/biosdisk.h: New file.
12040 * util/i386/pc/biosdisk.c: Likewise.
12041 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 12042
1cc73a62 12043 * Makefile.in (INCLUDE_DISTFILES): Added
12044 include/pupa/i386/pc/util/biosdisk.h.
12045 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
12046 directory util/i386/pc.
12047 (install-local): Added a rule for sbin_UTILITIES.
12048 (uninstall): Likewise.
12049
12050 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
12051
12052 * util/misc.c (xrealloc): New function.
12053 (pupa_malloc): Likewise.
12054 (pupa_free): Likewise.
12055 (pupa_realloc): Likewise.
12056 (pupa_stop): Likewise.
12057 (pupa_putchar): Likewise.
12058
12059 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
12060
12061 * include/pupa/util/misc.h (xrealloc): Declared.
12062
12063 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
12064 macro.
12065 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
12066 (PUPA_BOOT_MACHINE_BPB_END): ... this.
12067
12068 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
12069 [PUPA_UTIL] (pupa_fat_fini): Likewise.
12070
12071 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
12072 way should be implemented.
12073 [PUPA_UTIL] (pupa_fat_fini): Likewise.
12074
12075 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
12076 the size of NAME for safety.
12077 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
12078 0x88.
12079
12080 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
12081 (pupa_setup_SOURCES): Likewise.
12082
12083 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
12084
08b70fe8 120852002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
12086
12087 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
12088 bunch of pushl's from pusha, because this destroys the return
12089 value.
12090
62ddcc8f 120912002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
12092
12093 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
12094 This means that any missing prototypes could be fatal. Also, you
12095 must take care when writing assembly code. See the comments at
12096 the beginning of startup.S, for more details.
f19dbdb7 12097
62ddcc8f 12098 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
12099 compilation mechanism.
12100 (pupa_chainloader_real_boot): Likewise.
12101 (pupa_biosdisk_rw_int13_extensions): Likewise.
12102 (pupa_biosdisk_rw_standard): Likewise.
12103 (pupa_biosdisk_check_int13_extensions): Likewise.
12104 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
12105 (pupa_biosdisk_get_diskinfo_standard): Likewise.
12106 (pupa_get_memsize): Likewise.
12107 (pupa_get_mmap_entry): Likewise.
12108 (pupa_console_putchar): Likewise.
12109 (pupa_console_setcursor): Likewise.
12110 (pupa_getrtsecs): Use pushl instead of push.
12111
12112 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
12113 memory instead of the stack for a mmap entry, because some
12114 BIOSes may ignore the maximum size and overflow.
12115
12116 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
12117
12118 * genmk.rb (PModule#rule): Compile automatically generated
12119 sources with module-specific CFLAGS as well as other sources.
12120
9962ed99 121212002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
12122
12123 * configure.ac: Check ld.
12124 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
12125 respectively, before checking endianness and sizes.
12126
12127 * Makefile.in (LD): New variable.
f19dbdb7 12128
abdfc3c5 121292002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
12130
12131 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
12132
6a161fa9 121332002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
12134
12135 * Changelog: New file.
12136