]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-01-22 Robert Millan <rmh@aybabtu.com>
[grub2.git] / ChangeLog
CommitLineData
9dad816d 12008-01-22 Robert Millan <rmh@aybabtu.com>
2
3 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
4 avoid claiming over our own code.
5
34842f2d 62008-01-22 Bean <bean123ch@gmail.com>
7
8 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
9 (jpeg_mod_SOURCES): New variable.
10 (jpeg_mod_CFLAGS): Likewise.
11 (jpeg_mod_LDFLAGS): Likewise.
12
13 * video/readers/jpeg.c : New file.
14
44023a28 152008-01-22 Bean <bean123ch@gmail.com>
16
17 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
18 there are no more items.
19
bc2d8ac6 202008-01-21 Robert Millan <rmh@aybabtu.com>
21
22 * kern/mm.c (grub_mm_init_region): Improve debug message.
23
261bd4bc 242008-01-21 Robert Millan <rmh@aybabtu.com>
25
26 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
27 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
28 address.
29 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
30 a C macro.
31 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
32 Indicates start of upper memory.
33 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
34 (generate_image): Abort when image size is big enough to corrupt
35 upper memory.
36
37 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
38 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
39 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
40 instead of hardcoding 0xA0000.
41 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
42 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
43 instead of hardcoding 0xA0000.
44
f970b55e 452008-01-21 Robert Millan <rmh@aybabtu.com>
46
47 * disk/memdisk.c (memdisk_size): New variable.
48 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
49 `memdisk_size'.
50 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
51 image to dynamic memory.
52 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
53 `memdisk_size'. Free memdisk block.
54
1a8b0526 552008-01-21 Robert Millan <rmh@aybabtu.com>
56
57 Fix detection of very small filesystems (like tar).
58
59 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
60 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
61 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
62 a problem with this disk).
63
6e9b4aab 642008-01-21 Robert Millan <rmh@aybabtu.com>
65
66 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
67 on grub_biosdisk_rw_standard() error.
68
0d8837b2 692008-01-21 Robert Millan <rmh@aybabtu.com>
70
71 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
72 recent changes.
73 * kern/elf.c: Likewise.
74 * kern/ieee1275/ieee1275.c: Likewise.
75 * kern/powerpc/ieee1275/openfw.c: Likewise.
76 * term/ieee1275/ofconsole.c: Likewise.
77
ffd36e34 782008-01-21 Robert Millan <rmh@aybabtu.com>
79
80 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
81
3f0093d0 82 * include/grub/kernel.h (grub_arch_memdisk_addr)
83 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 84
3f0093d0 85 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
86 (grub_arch_memdisk_size): ... to here.
ffd36e34 87
6c391b21 882008-01-21 Robert Millan <rmh@aybabtu.com>
89
90 Mostly based on bugfix from Bean.
91
92 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
93 attribute with hook() parameter.
94 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
95 declaration.
96 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
97 attribute with hook() parameter.
98 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
99 declaration.
100
55a581dc 1012008-01-21 Robert Millan <rmh@aybabtu.com>
102
103 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
104 (pkglib_MODULES): Add `memdisk.mod'.
105 (memdisk_mod_SOURCES): New variable.
106 (memdisk_mod_CFLAGS): Likewise.
107 (memdisk_mod_LDFLAGS): Likewise.
108
109 * disk/memdisk.c: New file.
110
111 * include/grub/disk.h (grub_disk_dev_id): Add
112 `GRUB_DISK_DEVICE_MEMDISK_ID'.
113
114 * include/grub/i386/pc/kernel.h
115 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
116 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
117 (grub_kernel_image_size): New variable declaration.
118 (grub_total_module_size): Likewise.
119 (grub_memdisk_image_size): Likewise.
120
121 * include/grub/i386/pc/memory.h
122 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
123
124 * include/grub/kernel.h: Include `<grub/symbol.h>'.
125 (grub_arch_memdisk_addr): New variable declaration.
126 (grub_arch_memdisk_size): Likewise.
127
128 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
129 (grub_arch_memdisk_size): Likewise.
130
131 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
132 (codestart): Replace hardcoded `0x100000' with
133 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
134
135 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
136 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
137 not NULL, append the contents of the file it refers to, at the end of
138 the compressed kernel image. Initialize `grub_memdisk_image_size'
139 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
140 (options): Add "memdisk"|'m' option.
141 (main): Parse --memdisk|-m option, and pass user-provided path as
142 parameter to generate_image().
143
3d7f54c9 1442008-01-20 Robert Millan <rmh@aybabtu.com>
145
146 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
147 grub_dprintf() calls from here ...
148 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
149
0bf74728 1502008-01-20 Robert Millan <rmh@aybabtu.com>
151
152 Fix detection of "real mode" when /options/real-mode? doesn't exist.
153
154 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
155 declaration.
156 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
157 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
158 `GRUB_IEEE1275_FLAG_REAL_MODE'.
159 (cmain): Intialize `grub_ieee1275_mmu' (using /chosen/mmu integer
160 property).
161 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
162 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
163
33bf70a7 1642008-01-19 Robert Millan <rmh@aybabtu.com>
165
166 Get rid of confusing function (superceeded by
167 `grub_ieee1275_get_integer_property')
168 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
169 prototype.
170 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
171 function.
172 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
173 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
174 in native endianess from grub_ieee1275_get_integer_property().
175
e2da7d26 1762008-01-19 Robert Millan <rmh@aybabtu.com>
177
178 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
179 command after "shut-down", since implementations differ on which
180 the command for halt is.
181
59f1fd8d 1822008-01-19 Robert Millan <rmh@aybabtu.com>
183
184 * include/grub/i386/linuxbios/console.h: Add header protection.
185 (grub_keyboard_controller_init): New function prototype.
186 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
187 (KEYBOARD_COMMAND_READ): Likewise.
188 (KEYBOARD_COMMAND_WRITE): Likewise.
189 (KEYBOARD_SCANCODE_SET1): Likewise.
190 (grub_keyboard_controller_write): New function.
191 (grub_keyboard_controller_read): Likewise.
192 (grub_keyboard_controller_init): Likewise.
193
194 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
195 (grub_console_init): On coreboot/LinuxBIOS, call
196 grub_keyboard_controller_init().
197
5f5a7c15 1982008-01-19 Robert Millan <rmh@aybabtu.com>
199
200 PowerPC changes provided by Pavel Roskin.
201
202 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
203 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
204 don't rely on cmain() doing it.
205 * kern/i386/ieee1275/startup.S (_start): Store %eax in
206 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
207
1210e168 2082008-01-16 Robert Millan <rmh@aybabtu.com>
209
210 * include/grub/i386/linuxbios/memory.h
211 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
212 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
213 receive `table_header' as argument. Instead, probe for it in the
214 known memory ranges where it can be present.
215 (grub_available_iterate): Do not pass a fixed `table_header' address
216 to grub_linuxbios_table_iterate().
217
3d04eab8 2182008-01-15 Robert Millan <rmh@aybabtu.com>
219
220 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
221 * conf/i386-ieee1275.rmk: New file.
222 * include/grub/i386/ieee1275/console.h: Likewise.
223 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
224 * include/grub/i386/ieee1275/kernel.h: Likewise.
225 * include/grub/i386/ieee1275/time.h: Likewise.
226 * kern/i386/ieee1275/init.c: Likewise.
227 * kern/i386/ieee1275/startup.S: Likewise.
228
d1bc1b73 2292008-01-15 Robert Millan <rmh@aybabtu.com>
230
231 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
232 when pointers are 32-bit (but still do set it to one when they are
233 64-bit).
234
66a65807 2352008-01-15 Robert Millan <rmh@aybabtu.com>
236
237 * include/grub/ieee1275/ieee1275.h
238 (grub_ieee1275_get_integer_property): New function prototype.
239
240 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
241 (grub_ieee1275_get_integer_property): New function. Wraps around
242 grub_ieee1275_get_property() to handle endianess.
243
244 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
245 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
246 where appropiate.
247 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
248 (grub_map): Likewise.
249 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
250
a83ccafd 2512008-01-15 Bean <bean123ch@gmail.com>
252
253 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
254 (grub_script_execute_cmdline): Reset grub_errno.
255
256 * normal/main.c (read_config_file): Reset grub_errno.
257
258 * normal/parse.y (script_init): New.
259 (script): Move function and menuentry here.
260 (delimiter): New.
261 (command): Add delimiter at the end of command.
262 (commands): Adjust to match the new command.
263 (commandblock): Remove grub_script_lexer_record_start.
264 (menuentry): Add grub_script_lexer_record_start, use the new commands.
265 (if): Use the new commands.
266
267 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
268
df6ecfc6 2692008-01-15 Robert Millan <rmh@aybabtu.com>
270
271 * normal/menu.c (run_menu): Move timeout message from here ...
272 (print_timeout): ... to here.
273 (run_menu): Use print_timeout() once during initial draw to print
274 the whole message, and again in every clock tick to update only
275 the number of seconds.
276
87ae25eb 2772008-01-15 Robert Millan <rmh@aybabtu.com>
278
279 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
280 actual size of `available' from grub_ieee1275_get_property(), and
281 restrict parsing to that bound.
282
47bf09a4 2832008-01-15 Christian Franke <franke@computer.org>
284
285 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
286 (argp_program_version): Remove variable.
287 (argp_program_bug_address): Likewise.
288 (options): Convert from struct argp_option to struct option.
289 (struct arguments): Remove.
290 (parse_opt): Remove.
291 (usage): New function.
292 (main): Replace struct args members by simple variables.
293 Replace argp_parse() by getopt_long().
294 Add switch to evaluate options.
295 Add missing "(...)" around root_dev in prefix string.
296
c86f1469 2972008-01-14 Robert Millan <rmh@aybabtu.com>
298
299 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
300 for grub_ieee1275_exit(), in order to improve portability.
301
e622c559 3022008-01-14 Robert Millan <rmh@aybabtu.com>
303
304 * util/grub.d/10_linux.in (prefix): Define.
305 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
306
44cb1ec8 3072008-01-13 Pavel Roskin <proski@gnu.org>
308
309 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
310 grub_errno if no errors have been detected.
311
1eb8c802 3122008-01-12 Robert Millan <rmh@aybabtu.com>
313
314 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
315 (grub_util_get_dev_abstraction): New function prototype.
316
317 * util/getroot.c: Include `<grub/util/getroot.h>'
318 (grub_util_get_grub_dev): Move detection of abstraction type to ...
319 (grub_util_get_dev_abstraction): ... here (new function).
320
321 * util/grub-probe.c: Convert PRINT_* to an enum. Add
322 `PRINT_ABSTRACTION'.
323 (probe): Probe for abstraction type when requested.
324 (main): Understand `--target=abstraction'.
325
326 * util/i386/efi/grub-install.in: Add abstraction module to core
327 image when it is found to be necessary.
328 * util/i386/pc/grub-install.in: Likewise.
329 * util/powerpc/ieee1275/grub-install.in: Likewise.
330
331 * util/update-grub_lib.in (font_path): Return system path without
332 converting to GRUB path.
333 * util/update-grub.in: Convert system path returned by font_path()
334 to a GRUB path. Use `grub-probe -t abstraction' to determine what
335 abstraction module is needed for loading fonts (if any). Export
336 that as `GRUB_PRELOAD_MODULES'.
337 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
338 insmod commands).
339
52bd3de9 3402008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
341
342 Remove some unused code from reiserfs.
343
344 * fs/reiserfs.c (struct grub_reiserfs_key)
345 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
346 (struct grub_reiserfs_node_body): Removed.
347 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
348 Likewise.
349 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
350 Likewise.
351 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
352 Likewise.
353 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
354 Likewise.
355 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
356 Likewise.
357 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
358 Likewise.
359 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
360 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
361 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
362
2f80039d 3632008-01-10 Robert Millan <rmh@aybabtu.com>
364
365 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
366 Determines if a file is garbage left by packaging systems, etc.
367 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
368 for processing /etc/grub.d scripts.
369 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
370 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
371 as a condition for processing Linux images.
372
87888032 3732008-01-10 Pavel Roskin <proski@gnu.org>
374
375 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
376 to compile reiserfs.c on PowerPC.
377
7e54fced 3782008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 379
380 * kern/device.c (grub_device_iterate): Do not abort device iteration
381 when one of the devices cannot be opened.
382 * kern/disk.c (grub_disk_open): Do not account previous failures of
383 unrelated functions when grub_errno is checked for.
384
5aa541e6 3852008-01-08 Robert Millan <rmh@aybabtu.com>
386
387 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
388 `! grub_linux_is_bzimage', change order of address comparison to make
389 it more intuitive, and improve "too big zImage" error message.
390
7076340d 3912008-01-08 Robert Millan <rmh@aybabtu.com>
392
393 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
394 `$(update-grub_DATA)'.
395 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
396 targets.
397
9ca70333 3982008-01-07 Robert Millan <rmh@aybabtu.com>
399
400 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
401 which instruction is modified by grub-setup during installation
402 (since it wasn't obvious by only looking at this file).
403
38ccf575 4042008-01-07 Robert Millan <rmh@aybabtu.com>
405
406 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
407 listing actual TODO items.
408
f5db4291 4092008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
410
868967cf 411 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
412 correctly.
413 (grub_reiserfs_get_key_offset): Likewise.
414 (grub_reiserfs_set_key_offset): Likewise.
415 (grub_reiserfs_set_key_type): Likewise.
416 (grub_reiserfs_iterate_dir): Return 1 if found, otheriwise 0.
417
418 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
419 better to remove the bitfield version completely.
420
4212008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
422
f5db4291 423 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
424 allocated from the heap, due to the fshelp implementation.
425 (grub_reiserfs_dir): Free NODE, due to the same reason.
426
492e6d9d 4272008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
428
429 Mostly from Vincent Pelletier:
430
431 * fs/reiserfs.c: New file.
432
433 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
434 (reiserfs_mod_SOURCES): New variable.
435 (reiserfs_mod_CFLAGS): Likewise.
436 (reiserfs_mod_LDFLAGS): Likewise.
437
438 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
439 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
440 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
441 normal/color.c.
442
9ce3e7c1 4432008-01-06 Robert Millan <rmh@aybabtu.com>
444
445 * normal/color.c: Remove `<grub/env.h>'.
446
f3b58148 4472008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
448
449 * include/grub/normal.h: Include <grub/env.h>.
450
7ac3bcfa 4512008-01-05 Robert Millan <rmh@aybabtu.com>
452
453 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
454 usage example with `(hd0,1)'.
fb358190 455 Reported by Samuel Thibault.
7ac3bcfa 456
c8ee99d7 4572008-01-05 Robert Millan <rmh@aybabtu.com>
458
459 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
460 (grub_linux_boot_zimage): Rename to ...
461 (grub_linux_boot): ... this.
462 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
463 (grub_linux_boot_zimage): Conditionalize zImage copy.
464
465 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
466 (grub_linux_boot_bzimage): Remove prototype.
467 (grub_linux_boot_zimage): Rename to ...
468 (grub_linux_boot): ... this.
469
470 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
471 (grub_linux_boot): Remove function.
472
0ece25b1 4732008-01-05 Robert Millan <rmh@aybabtu.com>
474
475 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
476 (grub_env_write_color_highlight): Likewise.
477 (grub_wait_after_message): Likewise.
478
479 * normal/color.c: New file.
480
481 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
482 (normal_mod_DEPENDENCIES): Likewise.
483
484 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
485 (normal_mod_DEPENDENCIES): Likewise.
486
487 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
488 (normal_mod_DEPENDENCIES): Likewise.
489
490 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
491 (normal_mod_DEPENDENCIES): Likewise.
492
493 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
494 for waiting after a message is printed.
495 * normal/main.c (read_config_file): Likewise.
496 (grub_normal_init): Register grub_env_write_color_normal() and
497 grub_env_write_color_highlight() hooks. Mark `color_normal' and
498 `color_highlight' variables as global.
499
500 * normal/menu.c (grub_wait_after_message): New function.
501 (grub_color_menu_normal): New variable. Replaces ...
502 (GRUB_COLOR_MENU_NORMAL): ... this macro.
503 (grub_color_menu_highlight): New variable. Replaces ...
504 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
505 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
506 `GRUB_TERM_COLOR_STANDARD'.
507 (print_message): Use `grub_setcolorstate' to reload colors. Rename
508 `normal_code' and `highlight_code' to `old_color_normal' and
509 `old_color_highlight', respectively.
510 (grub_menu_init_page): Update colors when drawing the menu, based on
511 `menu_color_normal' and `menu_color_highlight' variables.
512 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
513 a message is printed.
514
182dd4e5 5152008-01-05 Robert Millan <rmh@aybabtu.com>
516
517 * kern/env.c (grub_env_context_open): Propagate hooks for global
518 variables to new context.
519
520 * kern/main.c (grub_set_root_dev): Export `root' variable.
521
ddf8f6ad 5222008-01-05 Robert Millan <rmh@aybabtu.com>
523
524 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
525 discs unconditionaly, since udev and others have options to provide
526 them.
527
d8b43d9b 5282008-01-05 Robert Millan <rmh@aybabtu.com>
529
530 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
531
2bff2de3 5322008-01-04 Christian Franke <franke@computer.org>
533
534 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
535 of eisa_mmap.
536
97eab917 5372008-01-03 Pavel Roskin <proski@gnu.org>
538
539 * kern/i386/linuxbios/init.c: Put "void" to all function
540 declarations with no arguments.
541 * kern/powerpc/ieee1275/init.c: Likewise.
542 * term/i386/pc/at_keyboard.c: Likewise.
543 * term/i386/pc/vga_text.c: Likewise.
544 * util/grub-mkdevicemap.c: Likewise.
545
b9416d00 5462008-01-02 Robert Millan <rmh@aybabtu.com>
547
548 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
549 message when loaded image is out of bounds.
550 (grub_multiboot_load_elf64): Likewise.
551
92695df9 5522008-01-02 Pavel Roskin <proski@gnu.org>
553
554 * util/grub.d/10_linux.in: Try version without ".old" when
555 looking for initrd. It's better to use initrd from the newer
556 kernel of the same version than no initrd at all.
557
d98d9cad 5582008-01-01 Robert Millan <rmh@aybabtu.com>
559
560 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
561
dbfdce36 5622008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
563
564 * include/grub/video.h: Added grub_video_unmap_color and
565 grub_video_get_active_render_target.
566 (grub_video_adapter): Added unmap_color and get_active_render_target.
567
568 * video/video.c: Added grub_video_unmap_color and
569 grub_video_get_active_render_target.
570 (grub_video_get_info): Changed method to accept NULL pointer as an
571 argument to allow detection of active video adapter.
572
573 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
574 grub_video_vbe_unmap_color_int.
575 Added grub_video_vbe_unmap_color and
576 grub_video_vbe_get_active_render_target.
577 (grub_video_vbe_adapter): Added unmap_color and
578 get_active_render_target.
579
580 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
581 with grub_video_vbe_unmap_color_int.
582
583 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
584 (DEFAULT_NORMAL_COLOR): Likewise.
585 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
586 (DEFAULT_FG_COLOR): Removed.
587 (DEFAULT_BG_COLOR): Likewise.
588 (DEFAULT_CURSOR_COLOR): Changed value.
589 (grub_virtual_screen): Added standard_color_setting,
590 normal_color_setting, highlight_color_setting and term_color.
591 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
592 (bitmap_width): Added.
593 (bitmap_height): Likewise.
594 (bitmap): Likewise.
595 (set_term_color): Likewise.
596 (grub_virtual_screen_setup): Changed to use new terminal coloring
597 settings.
598 (grub_gfxterm_init): Added init for bitmap.
599 (grub_gfxterm_fini): Added destroy for bitmap.
600 (redraw_screen_rect): Updated to use background bitmap and new
601 terminal coloring.
602 (scroll_up): Added optimization for case when there is no bitmap.
603 (grub_gfxterm_cls): Fixed to use correct background color.
604 (grub_virtual_screen_setcolorstate): Changed to use new terminal
605 coloring.
606 (grub_virtual_screen_setcolor): Likewise.
607 (grub_virtual_screen_getcolor): Added.
608 (grub_gfxterm_background_image_cmd): Likewise.
609 (grub_video_term): Added setcolor and getcolor.
610 (MOD_INIT): Added registration of background_image command.
611 (MOD_TERM): Added unregistration for background_image command.
612
c3c20931 6132007-12-30 Pavel Roskin <proski@gnu.org>
614
615 * loader/multiboot_loader.c: Fix multiboot command
616 unregistration. Fix all typos in the word "multiboot".
617
df266716 6182007-12-29 Pavel Roskin <proski@gnu.org>
94239199 619
620 * util/grub.d/10_linux.in: Refactor search for initrd. Add
621 support for initrd names used in Fedora.
622
fc6e896c 6232007-12-26 Bean <bean123ch@gmail.com>
624
625 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
626 (cpio_mod_SOURCES): New variable.
627 (cpio_mod_CFLAGS): Likewise.
628 (cpio_mod_LDFLAGS): Likewise.
629
630 * fs/cpio.c: New file.
631
632 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
633
634 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
635
636 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
637
638 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
639
533110ad 6402007-12-25 Robert Millan <rmh@aybabtu.com>
641
642 * include/grub/term.h (struct grub_term): Add `getcolor' function.
643 (grub_getcolor): New function.
644
645 * kern/term.c (grub_getcolor): New function.
646 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
647 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
648 (print_entry): Set normal and highlight colors to
649 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
650 respectively, before printing and restore them to old
651 values afterwards.
652 (grub_menu_init_page): Likewise. Fill an additional colored space
653 that would otherwise be left blank.
654
655 * term/efi/console.c (grub_console_getcolor): New function.
656 (struct grub_console_term.getcolor): New variable.
657 * term/i386/pc/console.c (grub_console_getcolor): New function.
658 (struct grub_console_term.getcolor): New variable.
659 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
660 (struct grub_console_term.getcolor): New variable.
661
662 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
663 (struct grub_console_term.setcolor): Remove variable.
664 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
665 (struct grub_console_term.setcolor): Remove variable.
666 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
667 (struct grub_console_term.setcolor): Remove variable.
668 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
669 (struct grub_console_term.setcolor): Remove variable.
670
4931827f 6712007-12-25 Robert Millan <rmh@aybabtu.com>
672
673 * configure.ac: Search for possible unifont.hex locations, and
674 define UNIFONT_HEX if found.
675
676 * Makefile.in (UNIFONT_HEX): Define variable.
677 (DATA): Rename to ...
678 (PKGLIB): ... this. Update all users.
679 (PKGDATA): New variable.
680 (pkgdata_IMAGES): Rename to ...
681 (pkglib_IMAGES): ... this. Update all users.
682 (pkgdata_MODULES): Rename to ...
683 (pkglib_MODULES): ... this. Update all users.
684 (pkgdata_PROGRAMS): Rename to ...
685 (pkglib_PROGRAMS): ... this. Update all users.
686 (pkgdata_DATA): Rename to ...
687 (pkglib_DATA): ... this. Update all users.
688 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
689 (unicode.pff, ascii.pff): New rules.
690 (all-local): Add `$(PKGDATA)' dependency.
691 (install-local): Process `$(PKGDATA)'.
692
693 * util/update-grub_lib.in (font_path): Search for *.pff files in
694 a few more locations, including `${pkgdata}'.
695
57e57e31 6962007-12-23 Robert Millan <rmh@aybabtu.com>
697
698 Patch from Bean <bean123ch@gmail.com>:
699 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
700 `size'.
701
4bc72aa9 7022007-12-21 Bean <bean123ch@gmail.com>
703
704 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
705 (ntfscomp_mod_SOURCES): New variable.
706 (ntfscomp_mod_CFLAGS): Likewise.
707 (ntfscomp_mod_LDFLAGS): Likewise.
708
709 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
710 (grub_probe_SOURCES): Likewise.
711 (grub_emu_SOURCES): Likewise.
712
713 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
714 (grub_emu_SOURCES): Likewise.
715
716 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
717 (grub_emu_SOURCES): Likewise.
718
719 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
720 (grub_emu_SOURCES): Likewise.
721
722 * fs/ntfs.c (grub_ntfscomp_func): New variable.
723 (read_run_list): Renamed to grub_ntfs_read_run_list.
724 (decomp_nextvcn): Moved to ntfscomp.c.
725 (decomp_getch): Likewise.
726 (decomp_get16): Likewise.
727 (decomp_block): Likewise.
728 (read_block): Likewise.
729 (read_data): Partially moved to ntfscomp.c.
730 (fixup): Change unsigned to grub_uint16_t.
731 (read_mft): Change unsigned long to grub_uint32_t.
732 (read_attr): Likewise.
733 (read_data): Likewise.
734 (read_run_data): Likewise.
735 (read_run_list): Likewise.
736 (read_mft): Likewise.
737
738 * fs/ntfscomp.c: New file.
739
740 * include/grub/ntfs.h: New file.
741
af680a87 7422007-12-16 Robert Millan <rmh@aybabtu.com>
743
744 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
745 IDE disk check, since Linux is known to support 20 IDE disks.
746 Reported by Colin Watson.
747
84be7599 7482007-12-15 Bean <bean123ch@gmail.com>
749
750 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
751 (lnxboot_img_SOURCES): New variable.
752 (lnxboot_img_ASFLAGS): Likewise.
753 (lnxboot_img_LDFLAGS): Likewise.
754
755 * boot/i386/pc/lnxboot.S: New file.
756
6af9db01 7572007-11-24 Pavel Roskin <proski@gnu.org>
758
759 * configure.ac: Test if '--build-id=none' is supported by the
760 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
761 objcopy to generate incorrect binary files (binutils
762 2.17.50.0.18-1 as shipped by Fedora 8).
763 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
764 linking, so that build ID doesn't break the test.
765
7361cfe6 7662007-11-24 Pavel Roskin <proski@gnu.org>
767
768 * include/grub/i386/time.h: use "void" in the argument list
769 of grub_cpu_idle().
770 * include/grub/powerpc/time.h: Likewise.
771 * include/grub/sparc64/time.h: Likewise.
772
1593e10c 7732007-11-18 Christian Franke <franke@computer.org>
774
775 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
776 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
777 This fixes the problem that function keys did not work in grub-emu.
778
3b8db1a8 7792007-11-18 Christian Franke <franke@computer.org>
780
781 * disk/host.c (grub_host_open): Remove attribute unused from
782 name parameter. Add check for "host". This fixes the problem
783 that grub-emu does not find partitions.
784
2e29408d 7852007-11-18 Christian Franke <franke@computer.org>
786
787 * util/hostfs.c (is_dir): New function.
788 (grub_hostfs_dir): Handle missing dirent.d_type case.
789 (grub_hostfs_read): Add missing fseek().
790 (grub_hostfs_label): Clear label pointer. This fixes a crash
791 of grub-emu on "ls (host)".
792
398cd047 7932007-11-18 Christian Franke <franke@computer.org>
794
795 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
796 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
797 to 64 bit boundary by default.
798
c405c391 7992007-11-18 Bean <bean123ch@gmail.com>
800
801 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
802 (hexdump_mod_SOURCES): New variable.
803 (hexdump_mod_CFLAGS): Likewise.
804 (hexdump_mod_LDFLAGS): Likewise.
805
806 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
807
808 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
809
810 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
811
812 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
813
814 * include/grub/hexdump.h: New file.
815
816 * commands/hexdump.c: New file.
817
5cced7fd 8182007-11-10 Robert Millan <rmh@aybabtu.com>
819
820 * commands/i386/pc/play.c (beep_off): Switch order of arguments
821 in grub_outb() calls.
822 (beep_on): Likewise.
823
8b714eb0 8242007-11-10 Christian Franke <franke@computer.org>
825
826 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
827 (grub_menu_run): Likewise.
828
ce0f1839 8292007-11-10 Robert Millan <rmh@aybabtu.com>
830
831 * include/grub/i386/efi/machine.h: New file.
832 * include/grub/i386/linuxbios/machine.h: Likewise.
833 * include/grub/i386/pc/machine.h: Likewise.
834 * include/grub/powerpc/ieee1275/machine.h: Likewise.
835 * include/grub/sparc64/ieee1275/machine.h: Likewise.
836
837 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
838 (serial_hw_io_addr): New variable.
839 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
840 instead of `(unsigned short *) 0x400'.
841
270c237d 8422007-11-10 Bean <bean123ch@gmail.com>
843
844 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
845
a87783bf 8462007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
847
848 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
849 (vga_mod_SOURCES): Added.
850 (vga_mod_CFLAGS): Likewise.
851 (vga_mod_LDFLAGS): Likewise.
852
853 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
854 grub_outb() calls.
855 (set_map_mask): Likewise.
856 (set_read_map): Likewise.
857 (set_read_address): Likewise.
858 (vga_font): Removed variable.
859 (get_vga_glyph): Removed function.
860 (invalidate_char): Likewise.
861 (write_char): Changed to use grub_font_get_glyph() for font
862 information.
863 (grub_vga_putchar): Likewise.
864 (grub_vga_getcharwidth): Likewise.
865
6433b448 8662007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
867
868 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
869 flags.
870 (pxeboot_img_LDFLAGS): Likewise.
871 (diskboot_img_LDFLAGS): Likewise.
872 (kernel_img_LDFLAGS): Likewise.
873
49178511 8742007-11-06 Robert Millan <rmh@aybabtu.com>
875
876 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
877 in grub_outb() calls.
878 (serial_hw_init): Likewise.
879
53b052de 8802007-11-05 Robert Millan <rmh@aybabtu.com>
881
882 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
883 spaces. Skip non-regular files.
884
5ab33bba 8852007-11-05 Robert Millan <rmh@aybabtu.com>
886
887 * kern/disk.c (grub_disk_firmware_fini)
888 (grub_disk_firmware_is_tainted): New variables.
889
890 * include/grub/disk.h (grub_disk_firmware_fini)
891 (grub_disk_firmware_is_tainted): Likewise.
892
893 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
894 (grub_disk_biosdisk_fini): ... to here.
895 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
896 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
897 is set. Register grub_disk_biosdisk_fini() in
898 `grub_disk_firmware_fini'.
899
900 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
901 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
902 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
903 to finish existing firmware disk interface.
904
905 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
906 (ata_mod_SOURCES): New variable.
907 (ata_mod_CFLAGS): Likewise.
908 (ata_mod_LDFLAGS): Likewise.
909
0149ab7c 9102007-11-05 Robert Millan <rmh@aybabtu.com>
911
912 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
913 (grub_ata_wait): Reimplement using grub_millisleep().
914
915 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
916 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
917
be7ac41e 9182007-11-03 Marco Gerards <marco@gnu.org>
919
920 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
921 (CRTC_ADDR_PORT): New macro.
922 (CRTC_DATA_PORT): Likewise.
923 (CRTC_CURSOR): Likewise.
924 (CRTC_CURSOR_ADDR_HIGH): Likewise.
925 (CRTC_CURSOR_ADDR_LOW): Likewise.
926 (update_cursor): New function.
927 (grub_console_real_putchar): Call `update_cursor'.
928 (grub_console_gotoxy): Likewise.
929 (grub_console_cls): Set the default color when clearing the
930 screen.
931 (grub_console_setcursor): Implemented.
932
bb06ab2e 9332007-11-03 Marco Gerards <marco@gnu.org>
934
935 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
936 become activate.
937 (grub_ata_pio_write): Likewise.
938
939 (grub_atapi_identify): Wait after issuing an ATA command.
940 (grub_atapi_packet): Likewise.
941 (grub_ata_identify): Likewise.
942 (grub_ata_readwrite): Likewise.
943
cf8f780b 9442007-11-03 Marco Gerards <marco@gnu.org>
945
946 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
947 (grub_ata_pio_write): Likewise.
948 (grub_ata_readwrite): Use `grub_error', instead of
949 returning `grub_errno'.
950
ed649e54 9512007-11-03 Marco Gerards <marco@gnu.org>
952
953 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
954 grub_ata_pio_write once for every single sector, instead of for
955 multiple sectors.
956
ca25d8f0 9572007-10-31 Robert Millan <rmh@aybabtu.com>
958
959 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
960
961 * conf/i386-linuxbios.rmk: New file.
962
963 * kern/i386/pc/hardware.c: Likewise.
964 * term/i386/pc/at_keyboard.c: Likewise.
965 * term/i386/pc/vga_text.c: Likewise.
966
967 * include/grub/i386/linuxbios/boot.h: Likewise.
968 * include/grub/i386/linuxbios/console.h: Likewise.
969 * include/grub/i386/linuxbios/init.h: Likewise.
970 * include/grub/i386/linuxbios/kernel.h: Likewise.
971 * include/grub/i386/linuxbios/loader.h: Likewise.
972 * include/grub/i386/linuxbios/memory.h: Likewise.
973 * include/grub/i386/linuxbios/serial.h: Likewise.
974 * include/grub/i386/linuxbios/time.h: Likewise.
975
976 * kern/i386/linuxbios/init.c: Likewise.
977 * kern/i386/linuxbios/startup.S: Likewise.
978 * kern/i386/linuxbios/table.c: Likewise.
979
e911ecc1 9802007-10-31 Marco Gerards <marco@gnu.org>
981
982 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
983 (ata_mod_SOURCES): New variable.
984 (ata_mod_CFLAGS): Likewise.
985 (ata_mod_LDFLAGS): Likewise.
986
987 * disk/ata.c: New file.
988
989 * include/grub/disk.h (grub_disk_dev_id): Add
990 `GRUB_DISK_DEV_ATA_ID'.
991
7f66d0e0 9922007-10-31 Robert Millan <rmh@aybabtu.com>
993
994 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
995 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
996
997 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
998 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
999
1000 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
1001 `<grub/types.h>'.
1002
1003 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
1004
5cd7dd46 10052007-10-27 Robert Millan <rmh@aybabtu.com>
1006
3236ca65 1007 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 1008
2ebfc90f 10092007-10-22 Robert Millan <rmh@aybabtu.com>
1010
1011 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
1012 `"../realmode.S"'.
1013 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
1014
73fcb0f3 10152007-10-22 Robert Millan <rmh@aybabtu.com>
1016
1017 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
1018 (pkgdata_MODULES): Add `biosdisk.mod'.
1019 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
1020 variables.
1021
1022 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
1023 (grub_biosdisk_init): Replace with ...
1024 (GRUB_MOD_INIT(biosdisk)): ... this.
1025 (grub_biosdisk_fini): Replace with ...
1026 (GRUB_MOD_FINI(biosdisk)): ... this.
1027
1028 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
1029 (grub_machine_init): Remove call to grub_biosdisk_init().
1030 (grub_machine_fini): Remove call to grub_machine_fini().
1031
1032 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
1033
3381d274 10342007-10-22 Robert Millan <rmh@aybabtu.com>
1035
1036 * include/grub/time.h: New file.
1037 * include/grub/i386/time.h: Likewise.
1038 * include/grub/powerpc/time.h: Likewise.
1039 * include/grub/sparc64/time.h: Likewise.
1040
1041 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
1042 instances to ...
1043 (KERNEL_MACHINE_TIME_HEADER): ... this.
1044 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
1045 instances to ...
1046 (KERNEL_MACHINE_TIME_HEADER): ... this.
1047 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
1048 instances to ...
1049 (KERNEL_MACHINE_TIME_HEADER): ... this.
1050
1051 * kern/i386/efi/init.c: Include `<grub/time.h>'.
1052 (grub_millisleep): New function.
1053 * kern/i386/pc/init.c: Include `<grub/time.h>'.
1054 (grub_millisleep): New function.
1055 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
1056 Remove `grub/machine/time.h' include.
1057 (grub_millisleep): New function.
1058 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
1059 Remove `grub/machine/time.h' include.
1060 (grub_millisleep): New function.
1061
1062 * include/grub/misc.h (grub_div_roundup): New function.
1063
1064 * kern/misc.c: Include `<grub/time.h>'.
1065 (grub_millisleep_generic): New function.
1066
1067 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
1068 Add `time.h'.
1069 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
1070 Add `time.h'.
1071 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
1072 `machine/time.h'. Add `time.h'.
1073 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
1074
a39a0312 10752007-10-21 Robert Millan <rmh@aybabtu.com>
1076
1077 * include/grub/misc.h (grub_max): New function.
1078
2aad70e2 10792007-10-21 Robert Millan <rmh@aybabtu.com>
1080
1081 * util/misc.c (grub_util_info): Call fflush() before returning.
1082
54b71c4b 10832007-10-20 Robert Millan <rmh@aybabtu.com>
1084
1085 * genmk.rb (Image): Copy `extra_flags' from here ...
1086 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
1087
1088 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
1089 to `argc' and `args' arguments.
1090
a979f513 10912007-10-17 Robert Millan <rmh@aybabtu.com>
1092
1093 * kern/i386/loader.S: New file.
1094
1095 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
1096 * kern/i386/loader.S (grub_linux_prot_size)... to here.
1097 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
1098 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
1099 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
1100 * kern/i386/loader.S (grub_linux_real_addr)... to here.
1101 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
1102 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
1103 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
1104 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
1105 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
1106 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
1107 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
1108 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
1109
1110 * kern/i386/realmode.S: New file.
1111
1112 * kern/i386/pc/startup.S (protstack): Moved from here ...
1113 * kern/i386/realmode.S (protstack)... to here.
1114 * kern/i386/pc/startup.S (gdt): Moved from here ...
1115 * kern/i386/realmode.S (gdt)... to here.
1116 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
1117 * kern/i386/realmode.S (prot_to_real)... to here.
1118
1119 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
1120 `kern/i386/realmode.S'.
1121
825fc8fd 11222007-10-17 Robert Millan <rmh@aybabtu.com>
1123
1124 * include/grub/i386/loader.h: New file.
1125
1126 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
1127 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
1128 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
1129 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
1130 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
1131 * include/grub/i386/loader.h (grub_linux_prot_size)
1132 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
1133 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
1134 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
1135 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
1136
1137 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
1138
e179b2f4 11392007-10-15 Robert Millan <rmh@aybabtu.com>
1140
1141 * normal/misc.c (grub_normal_print_device_info): Do not probe for
1142 filesystem when dev->disk is unset.
1143 Do probe for filesystem even when dev->disk->has_partitions is set.
1144 In case a filesystem is found, always report it.
1145 In case it isn't, if dev->disk->has_partitions is set, report that
1146 a partition table was found instead of reporting that no filesystem
1147 could be identified.
1148
5db82af6 11492007-10-12 Robert Millan <rmh@aybabtu.com>
1150
1151 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
1152 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
1153
68f6ac74 1154 * include/grub/types.h (grub_host_to_target16): New macro.
1155 (grub_host_to_target32): Likewise.
1156 (grub_host_to_target64): Likewise.
1157 (grub_target_to_host16): Likewise.
1158 (grub_target_to_host32): Likewise.
1159 (grub_target_to_host64): Likewise.
5db82af6 1160
1161 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
1162 Renamed from to ...
1163 (GRUB_MOD_ALIGN): ...this. Update all users.
1164
68f6ac74 1165 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
1166 grub_host_to_target32.
1167 Replace grub_be_to_cpu32 with grub_target_to_host32.
1168 (load_modules): Likewise.
1169 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
1170 Replace grub_be_to_cpu32 with grub_target_to_host32.
1171 Replace grub_cpu_to_be16 with grub_host_to_target16.
1172 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 1173
3cf497cc 11742007-10-12 Robert Millan <rmh@aybabtu.com>
1175
1176 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
1177 * util/elf/grub-mkimage.c: ... here.
1178
1179 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
1180 `util/powerpc/ieee1275/grub-mkimage.c'.
1181
c8cc3692 11822007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 1183
c8cc3692 1184 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
1185 and make it easier to figure out.
1186 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
1187 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
1188 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
1189 leave us with less than HEAP_MIN_SIZE total heap.
1190 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 1191
5c58b791 11922007-10-03 Robert Millan <rmh@aybabtu.com>
1193
1194 * include/grub/i386/io.h: New file.
1195 * commands/i386/pc/play.c (inb): Removed.
1196 (outb): Removed.
1197 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
1198 with grub_outb().
afcd2ef8 1199 * term/i386/pc/serial.c (inb): Removed.
1200 (outb): Removed.
1201 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
1202 with grub_outb().
1203 * term/i386/pc/vga.c (inb): Removed.
1204 (outb): Removed.
1205 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
1206 with grub_outb().
5c58b791 1207
1a477ed6 12082007-10-02 Robert Millan <rmh@aybabtu.com>
1209
1210 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
1211 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1212 Reported by Marcin Kurek.
1213
6b5d80fa 12142007-09-07 Robert Millan <rmh@aybabtu.com>
1215
1216 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
1217 SmartFirmware version updates (as released by Sven Luther), and avoid
1218 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
1219 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
1220 known broken.
1221
5618afbf 12222007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
1223
1224 From Hitoshi Ozeki:
1225 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
1226 when merging two regions.
1227
6139dcd9 12282007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
1229
508e39ee 1230 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
1231 * normal/completion.c (grub_normal_do_completion): Likewise.
1232 Reported by Hitoshi Ozeki.
1233
12342007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
1235
6139dcd9 1236 Do not use devices at boot in chainloading.
1237
1238 * loader/i386/pc/chainloader.c (boot_drive): New variable.
1239 (boot_part_addr): Likewise.
1240 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
1241 with BOOT_DRIVE and BOOT_PART_ADDR.
1242 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
1243 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
1244
38da6516 12452007-08-29 Robert Millan <rmh@aybabtu.com>
1246
1247 Patch from Simon Peter <dn.tlp@gmx.net>:
1248 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
1249 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
1250 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
1251 util/i386/pc/grub-setup.c_DEPENDENCIES.
1252 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
1253 util/grub-probe.c_DEPENDENCIES.
1254 * conf/powerpc-ieee1275.rmk: Likewise.
1255
29d0928c 12562007-08-28 Robert Millan <rmh@aybabtu.com>
1257
1258 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
1259 to tell grub-mkdevicemap how to name devices.
1260 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
1261 feature).
1262
1263 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
1264 util/i386/get_disk_name.c.
1265 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
1266 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
1267 util/ieee1275/get_disk_name.c.
1268
1269 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
1270
1271 * DISTLIST: Add util/i386/get_disk_name.c and
1272 util/ieee1275/get_disk_name.c.
1273
1274 * util/grub-mkdevicemap.c: Replace device naming logic with
1275 grub_util_get_disk_name() calls.
1276
5a0d3cca 12772007-08-20 Robert Millan <rmh@aybabtu.com>
1278
1279 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
1280 (so that it works for both plural and singular quantities).
1281
8b72db2f 12822007-08-05 Robert Millan <rmh@aybabtu.com>
1283
1284 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
1285 so that [xz] isn't taken into account when determining order.
1286
352466bf 12872007-08-02 Marco Gerards <marco@gnu.org>
1288
1289 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
1290 `include/multiboot2.h', `include/grub/elfload.h',
1291 `include/multiboot.h', `include/grub/multiboot.h',
1292 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
1293 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
1294 `kern/elf.c', `loader/multiboot_loader.c',
1295 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
1296 `loader/i386/pc/multiboot2.c',
1297 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
1298 `util/i386/pc/grub-mkrescue.in'. Remove
1299 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
1300 `include/grub/i386/pc/util/biosdisk.h' and
1301 `include/grub/powerpc/ieee1275/multiboot.h'.
1302
8f096014 13032007-08-02 Bean <bean123ch@gmail.com>
1304
1305 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
1306 (ntfs_mod_SOURCES): New variable.
1307 (ntfs_mod_CFLAGS): Likewise.
1308 (ntfs_mod_LDFLAGS): Likewise.
1309
1310 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
1311 (grub_probe_SOURCES): Likewise.
1312 (grub_emu_SOURCES): Likewise.
1313
1314 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
1315 (grub_emu_SOURCES): Likewise.
1316
1317 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
1318 (grub_emu_SOURCES): Likewise.
1319
1320 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
1321
1322 * fs/ntfs.c: New file.
1323
9959f7db 13242007-08-02 Bean <bean123ch@gmail.com>
1325
1326 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
1327
1328 * file.h (grub_file): Likewise.
1329
1330 * fshelp.h (grub_fshelp_read_file): Likewise.
1331
1332 * util/i386/pc/grub-setup.c (setup): Likewise.
1333 (save_first_sector): Likewise.
1334 (save_blocklists): Likewise.
1335
1336 * fs/affs.c (grub_affs_read_file): Likewise.
1337
1338 * fs/ext2.c (grub_ext2_read_file): Likewise.
1339
1340 * fs/fat.c (grub_fat_read_data): Likewise.
1341
1342 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
1343
1344 * fs/hfs.c (grub_hfs_read_file): Likewise.
1345
1346 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
1347
1348 * fs/jfs.c (grub_jfs_read_file): Likewise.
1349
1350 * fs/minix.c (grub_minix_read_file): Likewise.
1351
1352 * fs/sfs.c (grub_sfs_read_file): Likewise.
1353
1354 * fs/ufs.c (grub_ufs_read_file): Likewise.
1355
1356 * fs/xfs.c (grub_xfs_read_file): Likewise.
1357
1358 * command/blocklist.c (read_blocklist): Likewise.
1359 (print_blocklist): Likewise.
1360
0a203f83 13612007-08-02 Marco Gerards <marco@gnu.org>
1362
1363 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
1364 `util/hostfs.c'.
1365
1366 * disk/host.c: New file.
1367
1368 * util/hostfs.c: Likewise.
1369
1370 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
1371 return `GRUB_ERR_BAD_FS'.
1372 * fs/sfs.c (grub_sfs_mount): Likewise.
1373 * fs/xfs.c (grub_xfs_mount): Likewise.
1374
1375 * include/grub/disk.h (enum grub_disk_dev_id): Add
1376 `GRUB_DISK_DEVICE_HOST_ID'.
1377
1378 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
1379
e5dfe777 13802007-07-24 Jerone Young <jerone@gmail.com>
1381
1382 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
1383 modules for compilation.
1384 * conf/powerpc-ieee1275.rmk: Likewise.
1385
1386 * include/multiboot.h: Move multiboot definitions to one file. Rename
1387 many definitions to not get grub specific.
1388 * include/multiboot2.h: Create header with multiboot 2 definitions.
1389 * include/grub/multiboot.h: Header for grub specific function
1390 prototypes and definitions.
1391 * include/grub/multiboot2.h: Likewise.
1392 * include/grub/multiboot_loader.h: Likewise.
1393 * include/grub/i386/pc/multiboot.h: Removed.
1394 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
1395
1396 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
1397 and 2 to allow for one multiboot and module commands.
1398 * loader/multiboot2.c: Add multiboot2 functionality.
1399 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
1400 and definition names.
1401 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
1402 2 functions.
1403 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
1404 ieee1275 specific multiboot2 code.
1405
1406 * kern/i386/pc/startup.S: Change headers and definition names for
1407 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
1408
daf0f0ba 14092007-07-22 Robert Millan <rmh@aybabtu.com>
1410
1411 * geninitheader.sh: Process file specified in first parameter rather
1412 than hardcoding grub_modules_init.lst.
1413 * geninit.sh: Likewise. Also, construct header name dynamicaly rather
1414 than hardcoding grub_modules_init.h.
1415
1416 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
1417 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
1418 grub_probe_init.[ch] and grub_setup_init.[ch].
1419
1420 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
1421 grub_modules_init.h with grub_emu_init.h.
1422 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
1423 grub_probe_init.[ch] files.
1424 * conf/i386-efi.rmk: Likewise.
1425 * conf/i386-pc.rmk: Likewise.
1426 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
1427 grub_setup_init.[ch] files.
1428
1429 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
1430 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
1431 to initialize modules rather than a list of hardcoded functions.
1432 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
1433 grub_init_all() to initialize modules rather than a list of hardcoded
1434 functions.
1435
54cdc1cc 14362007-07-22 Robert Millan <rmh@aybabtu.com>
1437
1438 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
1439 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
1440
ad0686cc 14412007-07-22 Robert Millan <rmh@aybabtu.com>
1442
1443 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
1444 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
1445 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
1446 flag when running on SmartFirmware.
1447 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
1448 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
1449 was set.
1450
1451 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
1452 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
1453 rather than decreasing it.
1454
1455 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
1456 there's not enough space to do it, fail in the same way as when it
1457 can't be done because there are no partitions.
1458
1459 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
1460 when nvsetenv failed.
1461
969c02ec 14622007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
1463
1464 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
1465 because this rule is automatically generated.
1466 (grub-mkrescue): Removed for the same reason as above.
1467
5a79f472 14682007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
1469
1470 Migrate to GNU General Public License Version 3.
1471
1472 * COPYING: Replaced with the plain text version of GPLv3.
1473
1474 * config.guess: Updated from gnulib.
1475 * config.sub: Likewise.
1476
1477 * geninit.sh: Output a GPLv3 copyright notice.
1478 * geninitheader.sh: Likewise.
1479 * genmodsrc.sh: Likewise.
1480 * gensymlist.sh.in: Likewise.
1481
1482 * boot/i386/pc/boot.S: Upgraded to GPLv3.
1483 * boot/i386/pc/diskboot.S: Likewise.
1484 * boot/i386/pc/pxeboot.S: Likewise.
1485 * commands/blocklist.c: Likewise.
1486 * commands/boot.c: Likewise.
1487 * commands/cat.c: Likewise.
1488 * commands/cmp.c: Likewise.
1489 * commands/configfile.c: Likewise.
1490 * commands/echo.c: Likewise.
1491 * commands/help.c: Likewise.
1492 * commands/ls.c: Likewise.
1493 * commands/search.c: Likewise.
1494 * commands/terminal.c: Likewise.
1495 * commands/test.c: Likewise.
1496 * commands/videotest.c: Likewise.
1497 * commands/i386/cpuid.c: Likewise.
1498 * commands/i386/pc/halt.c: Likewise.
1499 * commands/i386/pc/play.c: Likewise.
1500 * commands/i386/pc/reboot.c: Likewise.
1501 * commands/i386/pc/vbeinfo.c: Likewise.
1502 * commands/i386/pc/vbetest.c: Likewise.
1503 * commands/ieee1275/halt.c: Likewise.
1504 * commands/ieee1275/reboot.c: Likewise.
1505 * commands/ieee1275/suspend.c: Likewise.
1506 * disk/loopback.c: Likewise.
1507 * disk/lvm.c: Likewise.
1508 * disk/raid.c: Likewise.
1509 * disk/efi/efidisk.c: Likewise.
1510 * disk/i386/pc/biosdisk.c: Likewise.
1511 * disk/ieee1275/ofdisk.c: Likewise.
1512 * font/manager.c: Likewise.
1513 * fs/affs.c: Likewise.
1514 * fs/ext2.c: Likewise.
1515 * fs/fat.c: Likewise.
1516 * fs/fshelp.c: Likewise.
1517 * fs/hfs.c: Likewise.
1518 * fs/hfsplus.c: Likewise.
1519 * fs/iso9660.c: Likewise.
1520 * fs/jfs.c: Likewise.
1521 * fs/minix.c: Likewise.
1522 * fs/sfs.c: Likewise.
1523 * fs/ufs.c: Likewise.
1524 * fs/xfs.c: Likewise.
1525 * hello/hello.c: Likewise.
1526 * include/grub/acorn_filecore.h: Likewise.
1527 * include/grub/arg.h: Likewise.
1528 * include/grub/bitmap.h: Likewise.
1529 * include/grub/boot.h: Likewise.
1530 * include/grub/cache.h: Likewise.
1531 * include/grub/device.h: Likewise.
1532 * include/grub/disk.h: Likewise.
1533 * include/grub/dl.h: Likewise.
1534 * include/grub/elfload.h: Likewise.
1535 * include/grub/env.h: Likewise.
1536 * include/grub/err.h: Likewise.
1537 * include/grub/file.h: Likewise.
1538 * include/grub/font.h: Likewise.
1539 * include/grub/fs.h: Likewise.
1540 * include/grub/fshelp.h: Likewise.
1541 * include/grub/gzio.h: Likewise.
1542 * include/grub/hfs.h: Likewise.
1543 * include/grub/kernel.h: Likewise.
1544 * include/grub/loader.h: Likewise.
1545 * include/grub/lvm.h: Likewise.
1546 * include/grub/misc.h: Likewise.
1547 * include/grub/mm.h: Likewise.
1548 * include/grub/net.h: Likewise.
1549 * include/grub/normal.h: Likewise.
1550 * include/grub/parser.h: Likewise.
1551 * include/grub/partition.h: Likewise.
1552 * include/grub/pc_partition.h: Likewise.
1553 * include/grub/raid.h: Likewise.
1554 * include/grub/rescue.h: Likewise.
1555 * include/grub/script.h: Likewise.
1556 * include/grub/setjmp.h: Likewise.
1557 * include/grub/symbol.h: Likewise.
1558 * include/grub/term.h: Likewise.
1559 * include/grub/terminfo.h: Likewise.
1560 * include/grub/tparm.h: Likewise.
1561 * include/grub/types.h: Likewise.
1562 * include/grub/video.h: Likewise.
1563 * include/grub/efi/api.h: Likewise.
1564 * include/grub/efi/chainloader.h: Likewise.
1565 * include/grub/efi/console.h: Likewise.
1566 * include/grub/efi/console_control.h: Likewise.
1567 * include/grub/efi/disk.h: Likewise.
1568 * include/grub/efi/efi.h: Likewise.
1569 * include/grub/efi/pe32.h: Likewise.
1570 * include/grub/efi/time.h: Likewise.
1571 * include/grub/i386/linux.h: Likewise.
1572 * include/grub/i386/setjmp.h: Likewise.
1573 * include/grub/i386/types.h: Likewise.
1574 * include/grub/i386/efi/kernel.h: Likewise.
1575 * include/grub/i386/efi/loader.h: Likewise.
1576 * include/grub/i386/efi/time.h: Likewise.
1577 * include/grub/i386/pc/biosdisk.h: Likewise.
1578 * include/grub/i386/pc/boot.h: Likewise.
1579 * include/grub/i386/pc/chainloader.h: Likewise.
1580 * include/grub/i386/pc/console.h: Likewise.
1581 * include/grub/i386/pc/init.h: Likewise.
1582 * include/grub/i386/pc/kernel.h: Likewise.
1583 * include/grub/i386/pc/loader.h: Likewise.
1584 * include/grub/i386/pc/memory.h: Likewise.
1585 * include/grub/i386/pc/multiboot.h: Likewise.
1586 * include/grub/i386/pc/serial.h: Likewise.
1587 * include/grub/i386/pc/time.h: Likewise.
1588 * include/grub/i386/pc/vbe.h: Likewise.
1589 * include/grub/i386/pc/vbeblit.h: Likewise.
1590 * include/grub/i386/pc/vbefill.h: Likewise.
1591 * include/grub/i386/pc/vbeutil.h: Likewise.
1592 * include/grub/i386/pc/vga.h: Likewise.
1593 * include/grub/ieee1275/ieee1275.h: Likewise.
1594 * include/grub/ieee1275/ofdisk.h: Likewise.
1595 * include/grub/powerpc/libgcc.h: Likewise.
1596 * include/grub/powerpc/setjmp.h: Likewise.
1597 * include/grub/powerpc/types.h: Likewise.
1598 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
1599 * include/grub/powerpc/ieee1275/console.h: Likewise.
1600 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
1601 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
1602 * include/grub/powerpc/ieee1275/loader.h: Likewise.
1603 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
1604 * include/grub/powerpc/ieee1275/time.h: Likewise.
1605 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
1606 * include/grub/sparc64/libgcc.h: Likewise.
1607 * include/grub/sparc64/setjmp.h: Likewise.
1608 * include/grub/sparc64/types.h: Likewise.
1609 * include/grub/sparc64/ieee1275/console.h: Likewise.
1610 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
1611 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
1612 * include/grub/sparc64/ieee1275/time.h: Likewise.
1613 * include/grub/util/biosdisk.h: Likewise.
1614 * include/grub/util/getroot.h: Likewise.
1615 * include/grub/util/lvm.h: Likewise.
1616 * include/grub/util/misc.h: Likewise.
1617 * include/grub/util/raid.h: Likewise.
1618 * include/grub/util/resolve.h: Likewise.
1619 * io/gzio.c: Likewise.
1620 * kern/device.c: Likewise.
1621 * kern/disk.c: Likewise.
1622 * kern/dl.c: Likewise.
1623 * kern/elf.c: Likewise.
1624 * kern/env.c: Likewise.
1625 * kern/err.c: Likewise.
1626 * kern/file.c: Likewise.
1627 * kern/fs.c: Likewise.
1628 * kern/loader.c: Likewise.
1629 * kern/main.c: Likewise.
1630 * kern/misc.c: Likewise.
1631 * kern/mm.c: Likewise.
1632 * kern/parser.c: Likewise.
1633 * kern/partition.c: Likewise.
1634 * kern/rescue.c: Likewise.
1635 * kern/term.c: Likewise.
1636 * kern/efi/efi.c: Likewise.
1637 * kern/efi/init.c: Likewise.
1638 * kern/efi/mm.c: Likewise.
1639 * kern/i386/dl.c: Likewise.
1640 * kern/i386/efi/init.c: Likewise.
1641 * kern/i386/efi/startup.S: Likewise.
1642 * kern/i386/pc/init.c: Likewise.
1643 * kern/i386/pc/lzo1x.S: Likewise.
1644 * kern/i386/pc/startup.S: Likewise.
1645 * kern/ieee1275/ieee1275.c: Likewise.
1646 * kern/powerpc/cache.S: Likewise.
1647 * kern/powerpc/dl.c: Likewise.
1648 * kern/powerpc/ieee1275/cmain.c: Likewise.
1649 * kern/powerpc/ieee1275/crt0.S: Likewise.
1650 * kern/powerpc/ieee1275/init.c: Likewise.
1651 * kern/powerpc/ieee1275/openfw.c: Likewise.
1652 * kern/sparc64/cache.S: Likewise.
1653 * kern/sparc64/dl.c: Likewise.
1654 * kern/sparc64/ieee1275/init.c: Likewise.
1655 * kern/sparc64/ieee1275/openfw.c: Likewise.
1656 * loader/efi/chainloader.c: Likewise.
1657 * loader/efi/chainloader_normal.c: Likewise.
1658 * loader/i386/efi/linux.c: Likewise.
1659 * loader/i386/efi/linux_normal.c: Likewise.
1660 * loader/i386/pc/chainloader.c: Likewise.
1661 * loader/i386/pc/chainloader_normal.c: Likewise.
1662 * loader/i386/pc/linux.c: Likewise.
1663 * loader/i386/pc/linux_normal.c: Likewise.
1664 * loader/i386/pc/multiboot.c: Likewise.
1665 * loader/i386/pc/multiboot_normal.c: Likewise.
1666 * loader/powerpc/ieee1275/linux.c: Likewise.
1667 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
1668 * normal/arg.c: Likewise.
1669 * normal/cmdline.c: Likewise.
1670 * normal/command.c: Likewise.
1671 * normal/completion.c: Likewise.
1672 * normal/execute.c: Likewise.
1673 * normal/function.c: Likewise.
1674 * normal/lexer.c: Likewise.
1675 * normal/main.c: Likewise.
1676 * normal/menu.c: Likewise.
1677 * normal/menu_entry.c: Likewise.
1678 * normal/misc.c: Likewise.
1679 * normal/parser.y: Likewise.
1680 * normal/script.c: Likewise.
1681 * normal/i386/setjmp.S: Likewise.
1682 * normal/powerpc/setjmp.S: Likewise.
1683 * normal/sparc64/setjmp.S: Likewise.
1684 * partmap/acorn.c: Likewise.
1685 * partmap/amiga.c: Likewise.
1686 * partmap/apple.c: Likewise.
1687 * partmap/gpt.c: Likewise.
1688 * partmap/pc.c: Likewise.
1689 * partmap/sun.c: Likewise.
1690 * term/gfxterm.c: Likewise.
1691 * term/terminfo.c: Likewise.
1692 * term/efi/console.c: Likewise.
1693 * term/i386/pc/console.c: Likewise.
1694 * term/i386/pc/serial.c: Likewise.
1695 * term/i386/pc/vesafb.c: Likewise.
1696 * term/i386/pc/vga.c: Likewise.
1697 * term/ieee1275/ofconsole.c: Likewise.
1698 * util/biosdisk.c: Likewise.
1699 * util/console.c: Likewise.
1700 * util/genmoddep.c: Likewise.
1701 * util/getroot.c: Likewise.
1702 * util/grub-emu.c: Likewise.
1703 * util/grub-mkdevicemap.c: Likewise.
1704 * util/grub-probe.c: Likewise.
1705 * util/lvm.c: Likewise.
1706 * util/misc.c: Likewise.
1707 * util/raid.c: Likewise.
1708 * util/resolve.c: Likewise.
1709 * util/update-grub.in: Likewise.
1710 * util/update-grub_lib.in: Likewise.
1711 * util/grub.d/00_header.in: Likewise.
1712 * util/grub.d/10_hurd.in: Likewise.
1713 * util/grub.d/10_linux.in: Likewise.
1714 * util/i386/efi/grub-install.in: Likewise.
1715 * util/i386/efi/grub-mkimage.c: Likewise.
1716 * util/i386/pc/grub-install.in: Likewise.
1717 * util/i386/pc/grub-mkimage.c: Likewise.
1718 * util/i386/pc/grub-mkrescue.in: Likewise.
1719 * util/i386/pc/grub-setup.c: Likewise.
1720 * util/i386/pc/misc.c: Likewise.
1721 * util/powerpc/ieee1275/grub-install.in: Likewise.
1722 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
1723 * util/powerpc/ieee1275/misc.c: Likewise.
1724 * video/bitmap.c: Likewise.
1725 * video/video.c: Likewise.
1726 * video/i386/pc/vbe.c: Likewise.
1727 * video/i386/pc/vbeblit.c: Likewise.
1728 * video/i386/pc/vbefill.c: Likewise.
1729 * video/i386/pc/vbeutil.c: Likewise.
1730 * video/readers/tga.c: Likewise.
1731
3572d015 17322007-07-02 Robert Millan <rmh@aybabtu.com>
1733
1734 * conf/i386-efi.rmk: Replace obsolete reference to
1735 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
1736 with util/getroot.c.
1737 * conf/powerpc-ieee1275.rmk: Likewise.
1738 * conf/sparc64-ieee1275.rmk: Likewise.
1739
1740 * util/grub-emu.c (main): Fix unchecked pointer handling.
1741
2c2a681b 17422007-07-02 Robert Millan <rmh@aybabtu.com>
1743
1744 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
1745 invocation to fail, in order to support partition-less media.
1746
1747 * util/i386/pc/grub-install.in: Likewise.
1748
1749 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
1750 which fs or partmap modules are needed (akin to its sister scripts).
1751
1752 Also use grub-probe to get rid of unportable /proc/mounts check.
1753
1754 Print the same informational message that the other scripts do, before
1755 exitting.
1756
6193defe 17572007-06-23 Robert Millan <rmh@aybabtu.com>
1758
1759 * util/update-grub_lib.in (font_path): New function. Determine wether
1760 a font file can be found and, if so, echo the GRUB path to it.
1761
1762 * util/update-grub.in: Handle multiple terminals depending on user
1763 input, platform availability and font file presence. Propagate
1764 variables of our findings to /etc/grub.d/ children.
1765
1766 * util/grub.d/00_header.in: Handle multiple terminals, based on
1767 environment setup by update-grub.
1768
eface1dc 17692007-06-23 Robert Millan <rmh@aybabtu.com>
1770
ba50d28f 1771 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 1772
bf697e28 17732007-06-21 Robert Millan <rmh@aybabtu.com>
1774
1775 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
1776 indicate end of data section in kernel image.
1777 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
1778 GRUB_KERNEL_MACHINE_DATA_END.
1779
1780 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
1781 space for it.
1782 * kern/i386/efi/startup.S: Likewise.
1783
1784 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
1785 during image generation. Implement --prefix option to override this
1786 patch.
1787 * util/i386/efi/grub-mkimage.c: Likewise.
1788
1789 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
1790 code to make path relative to its root into a separate function.
1791
1792 * util/i386/pc/grub-install.in: Use newly provided
1793 make_system_path_relative_to_its_root() to convert ${grubdir}, then
1794 pass the result to grub-install --prefix.
1795
baa574b4 17962007-06-13 Robert Millan <rmh@aybabtu.com>
1797
1798 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
1799 DEFAULT_DEVICE_MAP.
1800 * util/grub-emu.c: Use above definitions from misc.h instead of
1801 defining them.
1802 * util/grub-mkdevicemap.c: Likewise.
1803 * util/i386/pc/grub-setup.c: Likewise.
1804 * util/grub-probe.c: Likewise.
1805 (probe): Abort with grub_util_error() when either
1806 grub_guess_root_device or grub_util_get_grub_dev fails.
1807
0215dcbf 18082007-06-12 Robert Millan <rmh@aybabtu.com>
1809
1810 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
1811 "pager" assignment.
1812 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
1813 "pcdata".
1814 * util/grub-probe.c (probe): Likewise for "drive_name".
1815
8af2ab7b 18162007-06-11 Robert Millan <rmh@aybabtu.com>
1817
1818 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
1819 not just the cdrom one.
1820
59d31694 18212007-06-11 Robert Millan <rmh@aybabtu.com>
1822
1823 * util/i386/pc/grub-mkrescue.in: Add "set -e".
1824 Add --pkglibdir=DIR option to override pkglibdir.
1825 Mention --image-type=TYPE in help output.
1826 Fix --grub-mkimage (it was a no-op).
1827 Abort gracefuly when no parameter is given.
1828
7ee367e4 18292007-06-11 Robert Millan <rmh@aybabtu.com>
1830
1831 * util/i386/pc/grub-mkrescue.in: New file.
1832 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
1833 * Makefile.in: Handle bin_SCRIPTS.
1834
29b0ed46 18352007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
1836
1837 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
1838 list of video modes.
1839
c0f90770 18402007-06-06 Robert Millan <rmh@aybabtu.com>
1841
1842 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
1843 file doesn't exist, or if it is in a filesystem grub can't read.
1844
1845 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
1846 not abort if GRUB_DRIVE could not be defined. Rearrange generated
1847 header comment to fit in 80 columns when the variables are resolved.
1848
1849 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
1850 could be identified by update-grub. Remove redundant check for
1851 unifont.pff existance (since convert_system_path_to_grub_path now
1852 handles that).
1853
fb36dc26 18542007-06-04 Robert Millan <rmh@aybabtu.com>
1855
1856 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
1857
1858 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
1859
1860 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
1861
0c68c93e 18622007-06-04 Robert Millan <rmh@aybabtu.com>
1863
1864 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
1865
1866 * include/grub/partition.h: Declare grub_apple_partition_map_init and
1867 grub_apple_partition_map_fini.
1868
1869 * util/biosdisk.c
1870 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
1871 to access >2 TiB disks).
1872
1873 Print disk->total_sectors with %llu instead of %lu, since this
1874 variable is always 64-bit (prevents wrong disk size from being displayed
1875 on either >2 TiB disk or big-endian CPU).
1876
1877 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
1878 into a generic case that supports all (sane) partition maps.
1879
1880 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
1881 breaks big-endian.
1882
1883 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
1884 and grub_apple_partition_map_fini() after that.
1885
0f23eb74 18862007-06-01 Robert Millan <rmh@aybabtu.com>
1887
1888 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
1889
1890 * util/grub.d/00_header.in: Only enable gfxterm when
1891 convert_system_path_to_grub_path() succeeds.
1892
42c71976 18932007-05-20 Robert Millan <rmh@aybabtu.com>
1894
1895 * util/update-grub_lib.in: New file.
1896 * DISTLIST: Add update-grub_lib.in.
1897 * conf/common.rmk: Generate update-grub_lib and install it in
1898 $(lib_DATA).
1899 * Makefile.in: Add install routine for $(lib_DATA).
1900
1901 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
1902 function provided by update-grub_lib to support arbitrary paths of
1903 unifont.pff.
1904 * util/update-grub.in: Use convert_system_path_to_grub_path() to
1905 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
1906
5beb2291 19072007-05-19 Robert Millan <rmh@aybabtu.com>
1908
1909 * commands/i386/cpuid.c: New module.
1910 * DISTLIST: Add it.
1911 * conf/i386-efi.rmk: Enable cpuid.mod.
1912 * conf/i386-pc.rmk: Likewise.
1913
7262eca1 19142007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
1915
1916 * kern/disk.c (grub_disk_read): Check return value of
1917 grub_realloc().
1918
260ba823 19192007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
1920
1921 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
1922 arrays.
1923 * disk/raid.c (grub_raid_open): Likewise.
1924
1ecb6cf2 19252007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
1926
1927 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
1928 stack instead of on the heap.
1929
1930 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
1931 before doing a read on it.
1932
1933 * configure.ac: Only use -fno-stack-protector for the target
1934 environment.
1935
21c8cbb1 19362007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
1937
1938 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
1939 __attribute_ ((unused)) to mode_type argument.
1940
1941 * util/getroot.c (grub_guess_root_device): Fix #endif.
1942
1943 * kern/misc.c (memcmp): Fix prototype.
1944
1945 * include/grub/partition.h [GRUB_UTIL]
1946 (grub_gpt_partition_map_init): Add prototype.
1947 (grub_gpt_partition_map_fini): Likewise.
1948
1949 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
1950 at the right place.
1951
1952 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
1953 (grub_fat_read_data): Likewise.
1954 (grub_fat_find_dir): Likewise.
1955
1956 * font/manager.c (find_glyph): Make table a const.
1957 (grub_font_get_glyph): Remove bitmap from if statement.
1958
849d55d3 19592007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
1960
1961 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
1962 code, first search for device in /dev/mapper, then in /dev.
1963 (grub_util_get_grub_dev): New function.
1964 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
1965 prototype.
1966 * util/grub-probe.c (probe): Remove check for RAID, call
1967 grub_util_get_grub_dev() instead of
1968 grub_util_biosdisk_get_grub_dev().
1969 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
1970 grub_util_biosdisk_get_grub_dev().
1971 * util/i386/pc/grub-setup.c (main): Likewise.
1972
8fff7c2f 19732007-05-16 Robert Millan <rmh@aybabtu.com>
1974
1975 * DISTLIST: Update for the latest changes.
1976 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
1977 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
1978 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
1979 grub/util/biosdisk.h.
1980 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
1981 grub/util/biosdisk.h.
1982
48e12b52 19832007-05-16 Robert Millan <rmh@aybabtu.com>
1984
1985 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
1986
46b9d128 19872007-05-16 Robert Millan <rmh@aybabtu.com>
1988
1989 * util/i386/efi/grub-install.in: New.
1990 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
1991 newly added grub-install.
1992 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
1993 include.
1994 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
1995 grub/util/biosdisk.h.
1996 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
1997 grub/util/biosdisk.h.
1998
2d1a40a9 19992007-05-16 Robert Millan <rmh@aybabtu.com>
2000
2001 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
2002 * include/grub/util/biosdisk.h: ... here.
2003 * util/i386/pc/biosdisk.c: Moved to ...
2004 * util/biosdisk.c: ... here.
2005 * util/i386/pc/getroot.c: Moved to ...
2006 * util/getroot.c: ... here.
2007 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
2008 * util/grub-mkdevicemap.c: ... here.
2009 * util/i386/pc/grub-probe.c: Moved to ...
2010 * util/grub-probe.c: ... here.
2011
9e26e3bc 20122007-05-15 Robert Millan <rmh@aybabtu.com>
2013
2014 * util/update-grub.in: Remove duplicated line in grub.cfg header
2015 message.
2016
57f96397 20172007-05-13 Robert Millan <rmh@aybabtu.com>
2018
2019 * util/update-grub.in: Fix a few assumptions about the devices holding
2020 /, /boot and /boot/grub being the same.
2021 * util/grub.d/00_header.in: Likewise.
2022 * util/grub.d/10_hurd.in: Likewise.
2023 * util/grub.d/10_linux.in: Likewise.
2024
2025 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
2026 patterns. Use that to define the `.old' suffix as older than `'.
2027
2028 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
2029
2030 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
2031 the grub.cfg header message.
2032
2e610d62 20332007-05-11 Robert Millan <rmh@aybabtu.com>
2034
2035 * util/update-grub.in: Create device.map if it doesn't already exist,
2036 before attempting to run grub-probe.
2037 Check for grub-probe and grub-mkdevicemap with the same code
2038 grub-install is using.
2039 Remove test mode.
2040
3f6a10ef 20412007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
2042
2043 * Makefile.in: Add the datarootdir autoconf variable.
2044
02e7b75e 20452007-05-09 Robert Millan <rmh@aybabtu.com>
2046
2047 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
2048 fail gracefuly if dev->disk->partition == NULL.
2049
75f396cc 20502007-05-07 Robert Millan <rmh@aybabtu.com>
2051
2052 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
2053 determine partition map module.
2054 * util/i386/pc/grub-install.in: Use this feature to decide which
2055 partition module to load, instead of hardcoding pc and gpt.
2056
da65cb36 20572007-05-07 Robert Millan <rmh@aybabtu.com>
2058
2059 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
2060 source directory differs from build directory.
2061
b57d6a91 20622007-05-05 Robert Millan <rmh@aybabtu.com>
2063
2064 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
2065 initialisation.
2066
509d00f1 20672007-05-05 Robert Millan <rmh@aybabtu.com>
2068
2069 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
2070
c48f23ef 20712007-05-05 Robert Millan <rmh@aybabtu.com>
2072
2073 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
2074 command-line arguments via ${GRUB_CMDLINE_LINUX}.
2075
20b97658 20762007-05-05 Robert Millan <rmh@aybabtu.com>
2077
2078 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
2079 (grub_probe_SOURCES): Likewise.
2080 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
2081 GPT and initialize dos_part and bsd_part accordingly.
2082 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
2083 install_bsd_part.
2084 (main): Activate gpt module for use during partition identification,
2085 and deactivate it afterwards.
2086 * util/i386/pc/grub-install.in: Add gpt module to core.img.
2087 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
2088 partition identification, and deactivate it afterwards.
2089
99123174 20902007-05-05 Robert Millan <rmh@aybabtu.com>
2091
2092 * term/i386/pc/console.c (grub_console_fini): Call
2093 grub_term_set_current() before grub_term_unregister().
2094
ebd97f6e 20952007-05-04 Robert Millan <rmh@aybabtu.com>
2096
2097 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
2098 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
2099 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
2100 and update-grub_DATA.
2101 * conf/common.rmk: Build and install update-grub components.
2102 * conf/common.mk: Regenerate.
2103 * util/update-grub.in: New. Core of update-grub.
2104 * util/grub.d/00_header.in: New. Generates grub.cfg header.
2105 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
2106 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
2107 * util/grub.d/README: New. Document grub.d directory layout.
2108
b06a264d 21092007-05-01 Robert Millan <rmh@aybabtu.com>
2110
2111 * util/grub-emu.c: Move initialization functions
2112 grub_util_biosdisk_init() and grub_init_all() before
2113 grub_util_biosdisk_get_grub_dev(), which relies on them.
2114
41f0050e 21152007-04-19 Robert Millan <rmh@aybabtu.com>
2116
2117 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
2118 it is used later.
2119
04582bb3 21202007-04-18 Jerone Young <jerone@gmail.com>
2121
2122 * kernel/elf.c: Add missing parenthesis for conditional statement
2123 stanza.
2124
08db4632 21252007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 2126
08db4632 2127 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
2128 continue on and look for device node with real device name.
2129
801b76be 21302007-04-10 Jerone Young <jerone@gmail.com>
1d543c3e 2131
2132 * configure.ac: Add argument for autoconf to use tranformation
2133 ability.
2134 * Makefile.in: Add autoconf package transformation code.
2135 * util/i386/pc/grub-install.in: Likewise.
2136 * util/powerpc/ieee1275/grub-install.in: Likewise.
2137
6795c4e1 21382007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
2139
2140 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
2141 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
2142 (EXT2_REVISION): Likewise.
2143 (EXT2_INODE_SIZE): Likewise.
2144 (struct grub_ext2_block_group): Added a missing member
2145 "used_dirs".
2146 (grub_ext2_read_inode): Divide by the inode size in a superblock
2147 instead of 128 to obtain INODES_PER_BLOCK.
2148 Use the macro EXT2_INODE_SIZE instead of directly using
2149 SBLOCK->INODE_SIZE.
2150
d70af616 21512007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
2152
2153 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
2154 superblock instead of the structure size to compute an
2155 offset. This fixes the problem that GRUB could not read a
2156 filesystem when inode size is different from 128-byte.
2157
3b801603 21582007-03-05 Marco Gerards <marco@gnu.org>
2159
2160 * normal/main.c (read_config_file): When "menu" is not set, create
2161 an initial context.
2162
4785bfe4 21632007-02-21 Hollis Blanchard <hollis@penguinppc.org>
2164
2165 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
2166 (HEAP_LIMIT): New macro.
2167 (grub_claim_heap): Claim memory up to `heaplimit'.
2168
a0cbb023 21692007-02-21 Hollis Blanchard <hollis@penguinppc.org>
2170
2171 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
2172 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
2173 (_start): Likewise.
2174 (grub_arch_modules_addr): Return address after `_end'.
2175 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
2176 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
2177 (add_segments): Calculate `_end' from phdr size and location.
2178 (ALIGN_UP): Moved to ...
2179 * include/grub/misc.h: here.
2180 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
2181 New macro.
2182 (GRUB_IEEE1275_MODULE_BASE): Removed.
2183
fd7d8eba 21842007-02-20 Hollis Blanchard <hollis@penguinppc.org>
2185
2186 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
2187 loop boundary.
2188
9b09e6fc 21892007-02-20 Hollis Blanchard <hollis@penguinppc.org>
2190
2191 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
2192 All users updated.
2193 (grub_elf64_load_hook_t): Likewise.
2194 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
2195 debug output.
2196
3ce27299 21972007-02-20 Hollis Blanchard <hollis@penguinppc.org>
2198
2199 * kern/mm.c: Update copyright.
2200 (grub_mm_debug): Correct syntax error.
2201 (grub_mm_dump_free): New function.
2202 (grub_debug_free): Call `grub_free'.
2203 * include/grub/mm.h: Update copyright.
2204 (grub_mm_dump_free): Add declaration.
2205
077d5fee 22062007-02-12 Hollis Blanchard <hollis@penguinppc.org>
2207
2208 * include/grub/ieee1275/ieee1275.h: Update copyright.
2209 * kern/powerpc/ieee1275/init.c: Likewise.
2210 * kern/powerpc/ieee1275/openfw.c: Likewise.
2211
2212 * loader/powerpc/ieee1275/linux.c: Likewise.
2213 * include/grub/elfload.h: Likewise.
2214 * kern/elf.c: Likewise.
2215 (grub_elf32_load): Pass `base' and `size' parameters. Update all
2216 callers.
2217 (grub_elf64_load): Likewise.
2218 (grub_elf32_load_segment): Move to a nested function.
2219 (grub_elf64_load_segment): Likewise.
2220
dc946850 22212007-02-12 Hollis Blanchard <hollis@penguinppc.org>
2222
2223 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
2224 prototype.
2225 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
2226 (grub_heap_len): Likewise.
2227 (HEAP_SIZE): New macro.
2228 (grub_claim_heap): New function.
2229 (grub_machine_init): Don't claim heap directly. Call
2230 `grub_claim_heap'.
2231 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
2232 (grub_available_iterate): New function.
2233
baa2a121 22342007-02-03 Thomas Schwinge <tschwinge@gnu.org>
2235
2236 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
2237 * configure.ac: Use it for testing the HOST and TARGET compilers.
2238
4fe9862e 22392006-12-13 Thomas Schwinge <tschwinge@gnu.org>
2240
2241 * Makefile.in (enable_grub_emu): New variable.
2242 * configure.ac (--enable-grub-emu): New option.
2243 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
2244 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
2245 * conf/i386-pc.rmk: Likewise.
2246 * conf/powerpc-ieee1275.rmk: Likewise.
2247 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
2248
a8aa5762 22492006-12-12 Marco Gerards <marco@gnu.org>
2250
2251 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
2252
2253 * kern/env.c (grub_env_unset): Don't free the member `value' when
2254 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
2255 pointer.
2256
2257 * normal/main.c (current_menu): Removed.
2258 (free_menu): Unset the `menu' environment variable.
2259 (grub_normal_menu_addentry): Make use of the environment variable
2260 `menu', instead of using the global `current_menu'. Allocate
2261 memory for the sourcecode of this entry.
2262 (read_config_file): New argument `nested', changed all callers.
2263 Only in the case of a new context, initialize a new menu. Set the
2264 `menu' environment variable.
2265 (grub_normal_execute): Don't set and unset the environment
2266 variable `menu' here anymore. Only free the menu when leaving the
2267 context.
2268
2269 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
2270 leak.
2271
957b3a3e 22722006-12-11 Marco Gerards <marco@gnu.org>
2273
2274 * normal/menu_entry.c (run): Fix off by one bug so the last line
2275 is executed. Move the loader check to outside the loop.
2276
ef875714 22772006-12-08 Hollis Blanchard <hollis@penguinppc.org>
2278
2279 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
2280
4e739985 22812006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
2282
2283 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
2284 the number of sectors. Reported by Andrey Shuvikov
2285 <mr_hyro@yahoo.com>.
2286
790707f2 22872006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
2288
2289 * kern/disk.c (grub_disk_read): When there is a read error, always
2290 try to read only the necessary data.
2291
2292 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
2293 disk/raid.c.
2294 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
2295 prototype.
2296 [GRUB_UTIL] (grub_raid_fini): Likewise.
2297 [GRUB_UTIL] (grub_lvm_init): Likewise.
2298 [GRUB_UTIL] (grub_lvm_fini): Likewise.
2299 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
2300 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
2301 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
2302 and grub_raid_fini().
2303
03e58196 23042006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
2305
2306 * include/grub/types.h (__unused): Rename to UNUSED.
2307 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
2308 (grub_elf64_size): Likewise.
2309
ae4f23bf 23102006-11-03 Hollis Blanchard <hollis@penguinppc.org>
2311
2312 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
2313 grub_error_push and grub_error_pop in the error-handling path.
2314 (grub_elf32_load_segment): Only call grub_file_read with non-zero
2315 length.
2316
2166cc83 23172006-11-03 Hollis Blanchard <hollis@penguinppc.org>
2318
2319 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
2320 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2321 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2322 (kernel_elf_SOURCES): Likewise.
2323 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
2324 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
2325 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
2326 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
2327 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
2328 (elf_mod_SOURCES): New variable.
2329 (elf_mod_CFLAGS): Likewise.
2330 (elf_mod_LDFLAGS): Likewise.
2331 * include/grub/types.h (__unused): New macro.
2332 * include/grub/elfload.h: New file.
2333 * kern/elf.c: Likewise.
2334 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
2335 (ELF32_LOADMASK): New macro.
2336 (ELF64_LOADMASK): Likewise.
2337 (vmlinux): Removed.
2338 (grub_linux_load32): New function.
2339 (grub_linux_load64): Likewise.
2340 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
2341 Use grub_elf_t instead of grub_file_t.
2342
a09d5aa5 23432006-11-02 Hollis Blanchard <hollis@penguinppc.org>
2344
2345 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
2346 `catch_result' to struct set_color_args.
2347
d976fc51 23482006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
2349
2350 * normal/menu.c: Include grub/script.h.
2351 * normal/menu_entry.c: Likewise.
2352 * include/grub/normal.h: Do not include grub/script.h.
2353
67507549 23542006-10-27 Hollis Blanchard <hollis@penguinppc.org>
2355
2356 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
2357
69203a99 23582006-10-27 Hollis Blanchard <hollis@penguinppc.org>
2359
2360 * kern/disk.c (grub_disk_open): Print debug messages when opening a
2361 disk.
2362 (grub_disk_close): Print debug messages when closing a disk.
2363 (grub_disk_read): Print debug messages when disk read fails.
2364 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
2365 filesystem type.
2366 * kern/partition.c: Include misc.h.
2367 (grub_partition_iterate): Print debug messages when detecting
2368 partition type.
2369
e2b8278c 23702006-10-27 Hollis Blanchard <hollis@penguinppc.org>
2371
2372 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
2373 is negative.
2374 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
2375
97b2f2ff 23762006-10-26 Hollis Blanchard <hollis@penguinppc.org>
2377
2378 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
2379 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
2380
6555d655 23812006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
2382
2383 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
2384 instead of sizeof(lv). Patch by Michael Guntsche.
2385
4d42b77f 23862006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
2387
2388 * disk/lvm.c: Rename VGS to VG_LIST.
2389 (grub_lvm_iterate): Change VGS->LV to VG-LV.
2390 (grub_lvm_open): Likewise.
2391 Thanks to Michael Guntsche for finding this bug.
2392
5d74d927 23932006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
2394
2395 * configure.ac (AC_INIT): Bumped to 1.95.
2396
a1bb27e4 23972006-10-14 Robert Millan <rmh@aybabtu.com>
2398
2399 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
2400 with "/dev/.static/dev/md".
2401
e0994b8b 24022006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
2403
2404 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
2405 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
2406 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
2407 DRIVE_NAME are always freed.
2408
2409 * util/i386/pc/biosdisk.c (make_device_name): Add one into
2410 DOS_PART, as a DOS partition is counted from one instead of zero
2411 now. Reported by Robert Millan.
2412
ddd5cee9 24132006-10-14 Robert Millan <rmh@aybabtu.com>
2414
2415 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
2416 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
2417 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
2418 string returned by grub_guess_root_device.
2419 * util/i386/pc/grub-setup.c: Likewise.
2420 * util/i386/pc/grub-probefs.c: Likewise.
2421
2422 * util/i386/pc/grub-probefs.c: Rename to ...
2423 * util/i386/pc/grub-probe.c: ... this.
2424 * DISTLIST: Remove grub-probefs, add grub-probe.
2425 * conf/i386-efi.rmk: Likewise.
2426 * conf/i386-pc.rmk: Likewise.
2427 * util/i386/pc/grub-install.in: Likewise.
2428
2429 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
2430 choose which information we want to print.
2431
2b002173 24322006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
2433
2434 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
2435 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
2436 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
2437 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
2438 video/readers/tga.c and video/i386/pc/vbeutil.c.
2439
24402006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
2441
2442 Added support for RAID and LVM.
2443
2444 * disk/lvm.c: New file.
2445 * disk/raid.c: Likewise.
2446 * include/grub/lvm.h: Likewise.
2447 * include/grub/raid.h: Likewise.
2448 * include/grub/util/lvm.h: Likewise.
2449 * include/grub/util/raid.h: Likewise.
2450 * util/lvm.c: Likewise.
2451 * util/raid.c: Likewise.
2452
2453 * include/grub/disk.h (grub_disk_dev_id): Add
2454 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
2455 (grub_disk_get_size): New prototype.
2456 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
2457 returns a partition.
2458 (grub_disk_get_size): New function.
2459
2460 * kern/i386/pc/init.c (make_install_device): Copy the prefix
2461 verbatim if grub_install_dos_part is -2.
2462
2463 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
2464 and LVM devices.
2465
2466 * util/i386/pc/grub-setup.c (setup): New argument
2467 MUST_EMBED. Force embedding of GRUB when the argument is
2468 true. Close FILE before returning.
2469 (main): Add support for RAID and LVM.
2470
2471 * conf/common.rmk: Add RAID and LVM modules.
2472 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
2473 util/lvm.c.
2474 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
2475
2476 * kern/misc.c (grub_strstr): New function.
2477 * include/grub/misc.h (grub_strstr): New prototype.
2478
050548d0 24792006-10-10 Tristan Gingold <tristan.gingold@bull.net>
2480
2481 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
2482
da849d2d 24832006-10-05 Tristan Gingold <tristan.gingold@bull.net>
2484
2485 * kern/misc.c (grub_strtoull): Guess the base only if not
2486 specified.
2487
97b2f2ff 24882006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 2489
2490 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
2491 PowerMac support.
2492
97b2f2ff 24932006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 2494
2495 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
2496
2497 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
2498 Remove `flags' argument. All callers changed.
2499 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
2500 (IEEE1275_IHANDLE_INVALID): New variable.
2501 (IEEE1275_CELL_INVALID): New variable.
2502 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
2503 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
2504 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
2505 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
2506 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
2507 codes from Open Firmware. All callers updated.
2508 (grub_ieee1275_next_property): Directly return Open Firmware return
2509 code.
2510 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
2511 Standardize error checking from `grub_ieee1275_get_property'.
2512 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
2513 `devalias' to `aliases'. Correct comments. Consolidate error paths.
2514
97b2f2ff 25152006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 2516
2517 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
2518 `instance_to_package_args' to `instance_to_path_args'.
2519
2520 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
2521 `grub_ieee1275_chosen'.
2522
2523 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
2524 `grub_ieee1275_interpret'.
2525
97b2f2ff 25262006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 2527
2528 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
2529
97b2f2ff 25302006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 2531
2532 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
2533 (__cmpdi): Likewise.
2534
2535 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
2536 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
2537 `grub_ssize_t'.
2538
02bb8acc 2539 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 2540
2541 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
2542 to type `grub_ssize_t'.
2543 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
2544
7f9a8531 25452006-09-22 Marco Gerards <marco@gnu.org>
2546
2547 * normal/script.c (grub_script_create_cmdmenu): Skip leading
2548 newlines.
2549
b5ef1102 25502006-09-22 Marco Gerards <marco@gnu.org>
2551
2552 * commands/echo.c: New file.
2553
2554 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
2555
2556 * conf/common.rmk (echo_mod_SOURCES): New variable.
2557 (echo_mod_CFLAGS): Likewise.
2558 (echo_mod_LDFLAGS): Likewise.
2559
2cff3677 25602006-09-22 Marco Gerards <marco@gnu.org>
2561
2562 * normal/main.c (get_line): Malloc memory instead of using
2563 preallocated memory. Removed the arguments `cmdline' and
2564 `max_len'. Updated all callers.
2565
6ba4688b 25662006-09-22 Marco Gerards <marco@gnu.org>
2567
2568 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
2569 (normal_mod_DEPENDENCIES): Likewise.
2570
2571 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
2572 (normal_mod_DEPENDENCIES): Likewise.
2573
2574 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
2575
e02ac02c 25762006-09-22 Johan Rydberg <jrydberg@gnu.org>
2577
2578 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
2579 programs.
2580 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
2581 (normal_mod_DEPENDENCIES): Likewise.
2582 * conf/i386-pc.mk: Regenerate.
2583 * conf/i386-efi.mk: Likewise
2584 * conf/common.mk: Likewise.
2585 * conf/powerpc-ieee1275.mk: Likewise.
2586 * conf/sparc64-ieee1275.mk: Likewise.
2587
8d252e44 25882006-09-22 Robert Millan <rmh@aybabtu.com>
2589
2590 Sync with i386 version.
2591 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
2592 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
2593
209bf7ac 25942006-09-21 Robert Millan <rmh@aybabtu.com>
2595
2596 Import from GRUB Legacy (lib/device.c):
2597 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
2598 (init_device_map) [__linux__]: Add support for I2O devices.
2599
6b146090 26002006-09-14 Marco Gerards <marco@gnu.org>
2601
2602 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
2603 `-melf_i386'.
2604
e38600a8 26052006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 2606
2607 * util/i386/pc/grub-install.in: Skip menu.lst when removing
2608 /boot/grub/*.lst.
78fa1790 2609
2952da5d 2610 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 2611
2952da5d 2612 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
2613 before adding it to device.map.
2614
01b82a64 26152006-08-15 Johan Rydberg <jrydberg@gnu.org>
2616
2617 * genmk.rb: Let GCC generate dependenceies the first time it
2618 compiles a file; using the -MD option.
2619 * conf/common.mk: Regenerate.
2620 * conf/i386-pc.mk: Likewise.
2621 * conf/i386-efi.mk: Likewise.
2622 * conf/powerpc-ieee1275.mk: Likewise.
2623 * conf/sparc64-ieee1275.mk: Likewise.
2624
1064790d 26252006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
2626
2627 Move the prototypes of grub_setjmp and grub_longjmp to
2628 cpu/setjmp.h, so that each architecture may specify different
2629 attributes.
2630
2631 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
2632 (grub_longjmp): Likewise.
2633 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
2634 (grub_longjmp): Likewise.
2635 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
2636 (grub_longjmp): Likewise.
2637
2638 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
2639 [!GRUB_UTIL] (grub_longjmp): Removed.
2640
29dda3ed 26412006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
2642
2643 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
2644 "color!" method does not return any value.
2645
ad2a06ed 26462006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
2647
2648 * include/grub/bitmap.h: New file.
2649
2650 * include/grub/i386/pc/vbeutil.h: Likewise.
2651
2652 * video/bitmap.c: Likewise.
2653
2654 * video/readers/tga.c: Likewise.
2655
2656 * video/i386/pc/vbeutil.c: Likewise.
2657
2658 * commands/videotest.c: Code cleanup and updated to reflect to new
2659 video API.
2660
2661 * term/gfxterm.c: Likewise.
2662
2663 * video/video.c: Likewise.
2664
2665 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
2666 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
2667 (bitmap_mod_SOURCES): New entry.
2668 (bitmap_mod_CFLAGS): Likewise.
2669 (bitmap_mod_LDFLAGS): Likewise.
2670 (tga_mod_SOURCES): Likewise.
2671 (tga_mod_CFLAGS): Likewise.
2672 (tga_mod_LDFLAGS): Likewise.
2673
2674 * include/grub/video.h (grub_video_blit_operators): New enum type.
2675 (grub_video_render_target): Changed as forward declaration and moved
2676 actual definition to be video driver specific.
2677 (grub_video_adapter.blit_bitmap): Added blitting operator.
2678 (grub_video_adapter.blit_render_target): Likewise.
2679 (grub_video_blit_bitmap): Likewise.
2680 (grub_video_blit_render_target): Likewise.
2681
2682 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
2683 driver specific render target definition.
2684 (grub_video_vbe_map_rgba): Added driver internal helper.
2685 (grub_video_vbe_unmap_color): Updated to use
2686 grub_video_i386_vbeblit_info.
2687 (grub_video_vbe_get_video_ptr): Likewise.
2688
2689 * include/grub/i386/pc/vbeblit.h
2690 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
2691 grub_video_i386_vbeblit_info.
2692 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
2693 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
2694 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
2695 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
2696 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
2697 (grub_video_i386_vbeblit_index_index): Likewise.
2698 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
2699 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
2700 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
2701 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
2702 operator.
2703 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
2704 operator.
2705
2706 * video/i386/pc/vbeblit.c: Updated to reflect changes on
2707 include/grub/i386/pc/vbeblit.h.
2708
2709 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
2710 Updated to use grub_video_i386_vbeblit_info.
2711 (grub_video_i386_vbefill_R8G8B8): Likewise.
2712 (grub_video_i386_vbefill_index): Likewise.
2713 (grub_video_i386_vbefill): Added generic filler.
2714
2715 * video/i386/pc/vbefill.c: Updated to reflect changes on
2716 include/grub/i386/pc/vbefill.h.
2717
2718 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
2719 grub_video_i386_vbeblit_info.
2720 (grub_video_vbe_unmap_color): Likewise.
2721 (grub_video_vbe_blit_glyph): Likewise.
2722 (grub_video_vbe_scroll): Likewise.
2723 (grub_video_vbe_draw_pixel): Removed function.
2724 (grub_video_vbe_get_pixel): Likewise.
2725 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
2726 updated code to use it.
2727 (common_blitter): Added common blitter for render target and bitmap.
2728 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
2729 (grub_video_vbe_blit_render_target): Likewise.
2730
bc8c036d 27312006-07-30 Johan Rydberg <jrydberg@gnu.org>
2732
2733 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
2734 is in text mode if there is no console control protocol instance
2735 available.
2736
684a8eff 27372006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
2738
2739 * include/grub/video.h: Code cleanup.
2740
2741 * include/grub/i386/pc/vbe.h: Likewise.
2742
2743 * video/i386/pc/vbe.c: Likewise.
2744
2745 * video/i386/pc/vbeblit.c: Likewise.
2746
2747 * video/i386/pc/vbefill.c: Likewise.
2748
2749 * video/video.c: Likewise. Also added more comments.
2750
5915059b 27512006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
2752
2753 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
2754 (struct grub_biosdisk_dap): Likewise.
2755
2756 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
2757 linkage settings for all functions.
2758
90ce5d56 27592006-07-12 Marco Gerards <marco@gnu.org>
2760
2761 * configure.ac (--enable-mm-debug): Fix typo.
2762
2763 * genkernsyms.sh.in: Use proper quoting for `CC'.
2764
43e7f879 27652006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
2766
2767 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
2768 (normal_mod_ASFLAGS): Remove "-m32".
2769
4889bdec 27702006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
2771
2772 * util/misc.c: Include config.h.
2773 [!HAVE_MEMALIGN]: Do not include malloc.h.
2774 (grub_memalign): Use posix_memalign, if present. Then, use
2775 memalign, if present. Otherwise, emit an error.
2776
2777 * util/grub-emu.c: Do not include malloc.h.
2778
2779 * include/grub/util/misc.h: Include unistd.h. This is required for
2780 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
2781 D. Eades III <hde@foobar-qux.org>.
2782
2783 * configure.ac (AC_GNU_SOURCE): Added.
2784 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
2785 type.
2786
fd39d4da 27872006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
2788
2789 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
2790 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
2791
b786f3b5 27922006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
2793
2794 * include/grub/types.h (grub_host_addr_t): Rename to
2795 grub_target_addr_t.
2796 (grub_host_off_t): Rename to grub_target_off_t.
2797 (grub_host_size_t): Rename to grub_target_size_t.
2798 (grub_host_ssize_t): Rename to grub_target_ssize_t.
2799 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
2800
2801 * include/grub/kernel.h (struct grub_module_header): Change type
2802 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
2803 (grub_module_info): Likewise.
2804
051988bb 28052006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
2806
2807 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
2808 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
2809 Velazquez <jesus.velazquez@gmail.com>.
2810
deae281b 28112006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
2812
2813 Count partitions from 1 instead of 0 in the string representation
2814 of partitions. Still use 0-based internally.
2815
2816 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
2817 (sun_partition_map_iterate): Use grub_partition_t instead of
2818 struct grub_partition *. Cast DESC->START_CYLINDER to
2819 grub_uint64_t after converting the endian.
2820 (sun_partition_map_probe): Subtract 1 for PARTNUM.
2821 (sun_partition_map_get_name): Add 1 to P->INDEX.
2822
2823 * partmap/pc.c (grub_partition_parse): Subtract 1 for
2824 PCDATA->DOS_PART.
2825 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
2826
2827 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
2828 zero instead of one.
2829 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
2830 (gpt_partition_map_get_name): Add 1 into P->INDEX.
2831
2832 * partmap/apple.c (apple_partition_map_iterate): Change the type
2833 of POS to unsigned.
2834 (apple_partition_map_probe): Subtract 1 for PARTNUM.
2835 (apple_partition_map_get_name): Add 1 into P->INDEX.
2836
2837 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
2838 of POS to unsigned.
2839 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
2840 calculate the offset of a partition.
2841 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
2842 (amiga_partition_map_get_name): Add 1 into P->INDEX.
2843
2844 * partmap/acorn.c (acorn_partition_map_find): Change the type of
2845 SECTOR to grub_disk_addr_t.
2846 (acorn_partition_map_iterate): Likewise.
2847 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
2848 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
2849 top.
2850 (acorn_partition_map_get_name): Add 1 into P->INDEX.
2851
2852 * kern/i386/pc/init.c (make_install_device): Add 1 into
2853 GRUB_INSTALL_DOS_PART.
2854
2855 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
2856 conditional.
2857
524a1e6a 28582006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
2859
2860 Clean up the code to support 64-bit addressing in disks and
2861 files. This change is not enough for filesystems yet.
2862
2863 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
2864 type of "start" to grub_uint64_t.
2865 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
2866 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
2867 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
2868 convert addresses.
2869
2870 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
2871 to grub_disk_addr_t.
2872
2873 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
2874 string.
2875
2876 * partmap/pc.c (pc_partition_map_iterate): Likewise.
2877
2878 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
2879 to char *.
2880
2881 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
2882
2883 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
2884
2885 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
2886
2887 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
2888 to grub_off_t, to detect an error from grub_file_seek.
2889 (grub_multiboot_load_elf32): Likewise.
2890
2891 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
2892 maximum unsigned long value when an overflow is detected.
2893 (grub_strtoull): New function.
2894 (grub_divmod64): Likewise.
2895 (grub_lltoa): use grub_divmod64.
2896
2897 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
2898 grub_disk_addr_t.
2899 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
2900 the pointer to next character. Use grub_strtoull instead of
2901 grub_strtoul.
2902 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
2903 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
2904 respectively.
2905
2906 * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
2907 return value is signed.
2908 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
2909 test if OFFSET is less than zero, as OFFSET is unsigned now.
2910
2911 * kern/disk.c (struct grub_disk_cache): Change the type of
2912 "sector" to grub_disk_addr_t.
2913 (grub_disk_cache_get_index): Change the type of SECTOR to
2914 grub_disk_addr_t. Calculate the hash with SECTOR casted to
2915 unsigned after shifting.
2916 (grub_disk_cache_invalidate): Change the type of SECTOR to
2917 grub_disk_addr_t.
2918 (grub_disk_cache_unlock): Likewise.
2919 (grub_disk_cache_store): Likewise.
2920 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
2921 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
2922 grub_disk_addr_t and grub_uint64_t, respectively.
2923 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
2924 body, as the value of OFFSET is tweaked by
2925 grub_disk_check_range. Change the types of START_SECTOR, LEN and
2926 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
2927 respectively.
2928 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
2929 body, as the value of OFFSET is tweaked by
2930 grub_disk_check_range. Change the types of LEN and N to
2931 grub_size_t.
2932
2933 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
2934 and "saved_offset" to grub_off_t.
2935 (test_header): Cast BUF to char *.
2936 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
2937 to char *.
2938 (grub_gzio_read): Change the types of OFFSET and SIZE to
2939 grub_off_t and grub_size_t, respectively.
2940
2941 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
2942 Removed.
2943 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
2944 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
2945 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
2946 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
2947 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
2948
2949 * include/grub/types.h (grub_off_t): Unconditionally set to
2950 grub_uint64_t.
2951 (grub_disk_addr_t): Changed to grub_uint64_t.
2952
2953 * include/grub/partition.h (struct grub_partition): Change the
2954 types of "start", "len" and "offset" to grub_disk_addr_t,
2955 grub_uint64_t and grub_disk_addr_t, respectively.
2956 (grub_partition_get_start): Return grub_disk_addr_t.
2957 (grub_partition_get_len): Return grub_uint64_t.
2958
2959 * include/grub/misc.h (grub_strtoull): New prototype.
2960 (grub_divmod64): Likewise.
2961
2962 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
2963 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
2964 grub_off_t, respectively.
2965 All callers and references changed.
2966
2967 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
2968 grub_size_t in "read".
2969 All callers and references changed.
2970
2971 * include/grub/file.h (struct grub_file): Change the types of
2972 "offset" and "size" to grub_off_t and grub_off_t,
2973 respectively. Change the type of SECTOR to grub_disk_addr_t in
2974 "read_hook".
2975 (grub_file_read): Change the type of LEN to grub_size_t.
2976 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
2977 grub_off_t.
2978 (grub_file_size): Return grub_off_t.
2979 (grub_file_tell): Likewise.
2980 All callers and references changed.
2981
2982 * include/grub/disk.h (struct grub_disk_dev): Change the types of
2983 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
2984 "write".
2985 (struct grub_disk): Change the type of "total_sectors" to
2986 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
2987 "read_hook".
2988 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
2989 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
2990 (grub_disk_write): Likewise.
2991 All callers and references changed.
2992
2993 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
2994 char * for grub_strncmp to silence gcc.
2995 (grub_iso9660_mount): Likewise.
2996 (grub_iso9660_mount): Likewise.
2997 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
2998 return statement.
2999 (grub_iso9660_iterate_dir): Likewise.
3000 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
3001
3002 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
3003 LEN to grub_disk_addr_t and grub_size_t, respectively.
3004
3005 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
3006
3007 * fs/jfs.c (grub_jfs_read_file): Likewise.
3008
3009 * fs/minix.c (grub_jfs_read_file): Likewise.
3010
3011 * fs/sfs.c (grub_jfs_read_file): Likewise.
3012
3013 * fs/ufs.c (grub_jfs_read_file): Likewise.
3014
3015 * fs/xfs.c (grub_jfs_read_file): Likewise.
3016
3017 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
3018 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
3019 respectively.
3020
3021 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
3022 BLKNR to -1 instead of returning GRUB_ERRNO.
3023 (grub_ext2_read_file): Change the types of SECTOR and
3024 LEN to grub_disk_addr_t and grub_size_t, respectively.
3025
3026 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
3027 LEN to grub_disk_addr_t and grub_size_t, respectively.
3028
3029 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
3030 grub_file_read.
3031
3032 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
3033 string. Do not cast SECTOR explicitly.
3034
3035 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
3036 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
3037 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
3038 grub_disk_addr_t and grub_size_t, respectively. If the sector is
3039 over 2TB and LBA mode is not supported, raise an error.
3040 (get_safe_sectors): New function.
3041 (grub_biosdisk_read): Use get_safe_sectors.
3042 (grub_biosdisk_write): Likewise.
3043
3044 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
3045 (grub_efidisk_write): Likewise.
3046
3047 * disk/loopback.c (delete_loopback): Cosmetic changes.
3048 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
3049 correctly.
3050 (grub_loopback_open): Likewise.
3051 (grub_loopback_read): Likewise. Also, change the type of POS to
3052 grub_off_t, and fix the usage of grub_memset.
3053
3054 * commands/i386/pc/play.c: Include grub/machine/time.h.
3055
3056 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
3057 print FILE->SIZE.
3058
3059 * commands/configfile.c: Include grub/env.h.
3060
3061 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
3062 GRUB_ERRNO directly instead. Change the type of POS to
3063 grub_off_t. Follow the coding standard.
3064
3065 * commands/blocklist.c: Include grub/partition.h.
3066 (grub_cmd_blocklist): Return an error if the underlying device is
3067 not a disk. Take the starting sector of a partition into account,
3068 if a partition is used.
3069
3070 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
3071 a length field.
3072 (lba_mode): Support 64-bit addresses.
3073 (chs_mode): Likewise.
3074 (copy_buffer): Adapted to the new offsets of a length field and a
3075 segment field.
3076 (blocklist_default_start): Allocate 64-bit space.
3077
3078 * boot/i386/pc/boot.S (force_lba): Removed.
3079 (boot_drive): Moved to under KERNEL_SECTOR.
3080 (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
3081 space.
3082 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
3083 is useless.
3084 (lba_mode): Refactored to support a 64-bit address. More size
3085 optimization.
3086 (setup_sectors): Likewise.
3087
53af98ad 30882006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
3089
3090 * DISTLIST: Added include/grub/i386/linux.h. Removed
3091 include/grub/i386/pc/linux.h
3092
3093 * configure.ac (AC_INIT): Bumped to 1.94.
3094
3095 * config.guess: Updated from gnulib.
3096 * config.sub: Likewise.
3097 * install-sh: Likewise.
3098 * mkinstalldirs: Likewise.
3099
b4c1940a 31002006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
3101
3102 * conf/common.rmk (grub_modules_init.lst): Depended on
3103 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
3104 MODSRCFILES.
3105
3106 * genmk.rb (PModule::rule): Reverted the previous change.
3107
cfca1cfd 31082006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
3109
3110 * conf/common.rmk (grub_modules_init.lst): Depends on
3111 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
3112 that the target does not exist before producing.
3113 (grub_modules_init.h): Remove the target before generating.
3114 (grub_emu_init.c): Likewise.
3115
3116 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
3117
aa6d7826 31182006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
3119
3120 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
3121 for the target-specific tests. Make sure that we also have the
3122 up-to-date target variables for those tests.
3123
26c607b9 31242006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
3125
3126 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
3127 (PModule::rule): Likewise.
3128
0162321a 31292006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
3130
3131 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
3132 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
3133 target-specific flags should be prefixed.
3134 (PModule::rule): Likewise.
3135
6c826348 31362006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
3137
3138 * configure.ac (CMP): Check if cmp is available explicitly.
3139
b977bf01 31402006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
3141
3142 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
3143 (target_cpu): New variable.
3144 (pkglibdir): Use target_cpu instead of host_cpu.
3145
3146 * util/i386/pc/grub-install.in (host_cpu): Removed.
3147 (target_cpu): New variable.
3148 (pkglibdir): Use target_cpu instead of host_cpu.
3149
3150 * util/genmoddep.c: Removed.
3151
3152 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
3153 instead of GRUB_HOST_SIZEOF_VOID_P.
3154 * kern/dl.c: Likewise.
3155
3156 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
3157 ...
3158 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
3159 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
3160 (GRUB_TARGET_SIZEOF_LONG): ... this.
3161 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
3162 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
3163 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
3164 to ...
3165 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
3166 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
3167 (GRUB_TARGET_SIZEOF_LONG): ... this.
3168 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
3169 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
3170 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
3171 to ...
3172 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
3173 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
3174 (GRUB_TARGET_SIZEOF_LONG): ... this.
3175 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
3176 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
3177
3178 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
3179 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
3180 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
3181 instead of GRUB_HOST_SIZEOF_LONG.
3182 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
3183 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
3184 GRUB_CPU_WORDS_BIGENDIAN.
3185 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
3186 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
3187 grub_host_ssize_t.
3188
3189 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
3190 (genmoddep_SOURCES): Likewise.
3191 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
3192 (genmoddep_SOURCES): Likewise.
3193 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
3194 (genmoddep_SOURCES): Likewise.
3195 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
3196 Likewise.
3197 (genmoddep_SOURCES): Likewise.
3198
3199 * genmoddep.awk: New file.
3200
3201 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
3202 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
3203 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
3204 (PModule::rule): Likewise.
3205 (Program::rule): Likewise.
3206 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
3207 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
3208 respectively.
3209
3210 * configure.ac: Rewritten intensively to use host and target
3211 instead of build and host, respectively.
3212
3213 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
3214 (host_cpu): Removed.
3215 (target_cpu): New variable.
3216 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
3217 (BUILD_CC): Removed.
3218 (BUILD_CFLAGS): Likewise.
3219 (BUILD_CPPFLAGS): Likewise.
3220 (TARGET_CC): New variable.
3221 (TARGET_CFLAGS): Likewise.
3222 (TARGET_CPPFLAGS): Likewise.
3223 (TARGET_LDFLAGS): Likewise.
3224 (AWK): Likewise.
3225 (include): Use target_cpu instead of host_cpu.
3226 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
3227
3228 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
3229
f09771a1 32302006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
3231
3232 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
3233 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
3234 field 'false' to 'exec_on_false'.
3235 (grub_script_create_cmdif): Renamed argument names to reflect above
3236 changes.
3237
3238 * normal/execute.c (grub_script_execute_cmdif): Likewise.
3239
3240 * normal/script.c (grub_script_create_cmdif): Likewise.
3241
118f4fb3 32422006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
3243
3244 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
3245 top.
3246 (grub_hfsplus_btree_recptr): Likewise.
3247 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
3248 FILEBLOCK both to pass a block number and store next block
3249 number.
3250 (grub_hfsplus_read_block): Rewritten heavily to support an extent
3251 overflow file correctly. Specify errors appropriately, because
3252 fshelp expects that GRUB_ERRNO is set when fails. Reuse
3253 grub_hfsplus_btree_recptr to get the pointer to a found key.
3254 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
3255 is found.
3256
3257 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
3258 linux.mod.
3259 (_linux_mod_SOURCES): New variable.
3260 (_linux_mod_CFLAGS): Likewise.
3261 (_linux_mod_LDFLAGS): Likewise.
3262 (linux_mod_SOURCES): Likewise.
3263 (linux_mod_CFLAGS): Likewise.
3264 (linux_mod_LDFLAGS): Likewise.
3265
3266 * DISTLIST: Added loader/i386/efi/linux.c,
3267 loader/i386/efi/linux_normal.c and
3268 include/grub/i386/efi/loader.h.
3269
3270 * loader/i386/efi/linux.c: New file.
3271 * loader/i386/efi/linux_normal.c: Likewise.
3272 * include/grub/i386/efi/loader.h: Likewise.
3273
89a7d726 32742006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
3275
3276 * commands/blocklist.c: New file.
3277
3278 * DISTLIST: Added commands/blocklist.c.
3279
3280 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 3281 color for the background, and a darker color for the foreground.
89a7d726 3282 (grub_console_checkkey): Return READ_KEY.
3283 (grub_console_cls): Set the background to
3284 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
3285
3286 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
3287
3288 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
3289 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
3290
3291 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
3292 prototype.
3293
3294 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
3295 BG. The spec is wrong again.
3296
3297 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
3298 prototype.
3299 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
3300
3301 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
3302 commands/blocklist.c.
3303 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3304
3305 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
3306 (blocklist_mod_SOURCES): New variable.
3307 (blocklist_mod_CFLAGS): Likewise.
3308 (blocklist_mod_LDFLAGS): Likewise.
3309
75c8f258 33102006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
3311
3312 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
3313 duplication.
3314 (lba_mode): Use %eax more intensively to reduce the code size.
3315
da2eb181 33162006-05-20 Marco Gerards <marco@gnu.org>
3317
3318 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
3319
3320 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
3321 for `menuentry'.
3322 (script): Accept leading newlines.
3323 (newlines): New rule to describe 0 or more newlines.
3324 (commands): Accept `command' with trailing newline. Fixed the
3325 order in which arguments were passed to `grub_script_add_cmd'.
3326 Accept commands separated by newlines.
3327 (function): Changed to accept newlines.
3328 (menuentry) Rewritten.
3329
3330 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
3331 front of the list, instead of to the end.
3332
577b4050 33332006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
3334
3335 * util/i386/pc/grub-install.in (bindir): New variable.
3336 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
3337 Shaver <lbgwjl@gmail.com>.
3338
0d6e1189 33392006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
3340
3341 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
3342 grub/machine/linux.h
3343 * loader/i386/pc/linux.c: Likewise.
3344
3345 * include/grub/i386/pc/linux.h: Moved to ...
3346 * include/grub/i386/linux.h: ... here.
3347
3348 * include/grub/i386/linux.h (struct linux_kernel_params): New
3349 struct.
3350
31b86e9f 33512006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
3352
3353 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
3354 checking.
3355 (grub_video_vbe_blit_glyph): Likewise.
3356 (grub_video_vbe_blit_bitmap): Likewise.
3357 (grub_video_vbe_blit_render_target): Likewise.
3358
83b984de 33592006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
3360
3361 * configure.ac (--with-platform): Properly quote the square
3362 brackets.
3363
5f0413bd 33642006-05-08 Marco Gerards <marco@gnu.org>
3365
3366 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
3367 this...
3368 (kernel_elf_HEADERS): ...to this. Updated all users.
3369 (grubof_symlist.c): Renamed from this...
3370 (kernel_elf_symlist.c): ...to this. Updated all users.
3371 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
3372 (grubof_SOURCES): Renamed from this...
3373 (kernel_elf_SOURCES): ...to this.
3374 (grubof_HEADERS): Renamed from this...
3375 (kernel_elf_HEADERS): ...to this.
3376 (grubof_CFLAGS): Renamed from this...
3377 (kernel_elf_CFLAGS): ...to this.
3378 (grubof_ASFLAGS): Renamed from this...
3379 (kernel_elf_ASFLAGS): ...to this.
3380 (grubof_LDFLAGS): Renamed from this...
3381 (kernel_elf_LDFLAGS): ...to this.
3382
3383 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
3384 this...
3385 (kernel_elf_HEADERS): ...to this. Updated all users.
3386 (grubof_symlist.c): Renamed from this...
3387 (kernel_elf_symlist.c): ...to this. Updated all users.
3388 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
3389 (grubof_SOURCES): Renamed from this...
3390 (kernel_elf_SOURCES): ...to this.
3391 (grubof_HEADERS): Renamed from this...
3392 (kernel_elf_HEADERS): ...to this.
3393 (grubof_CFLAGS): Renamed from this...
3394 (kernel_elf_CFLAGS): ...to this.
3395 (grubof_ASFLAGS): Renamed from this...
3396 (kernel_elf_ASFLAGS): ...to this.
3397 (grubof_LDFLAGS): Renamed from this...
3398 (kernel_elf_LDFLAGS): ...to this.
3399
3400 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
3401 `kernel.elf' instead of `grubof'.
3402
05568c2e 34032006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
3404
3405 Add --with-platform to configure. Use pkglibdir instead of
3406 pkgdatadir. This is reported by Roger Leigh.
3407
3408 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
3409 (host_vendor): Likewise.
3410 (host_os): Likewise.
3411 (pkgdatadir): Likewise.
3412 (platform): New variable.
3413 (pkglibdir): Likewise.
3414 Use PKGLIBDIR instead of PKGDATADIR.
3415
3416 * util/i386/pc/grub-install.in (datadir): Removed.
3417 (host_vendor): Likewise.
3418 (host_os): Likewise.
3419 (pkgdatadir): Likewise.
3420 (platform): New variable.
3421 (pkglibdir): Likewise.
3422 Use PKGLIBDIR instead of PKGDATADIR.
3423
3424 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
3425 instead of GRUB_DATADIR.
3426 (main): Likewise.
3427 * util/i386/pc/grub-mkimage.c (usage): Likewise.
3428 (main): Likewise.
3429 * util/i386/efi/grub-mkimage.c (usage): Likewise.
3430 (main): Likewise.
3431
3432 * configure.ac (--with-platform): New option.
3433 Use PLATFORM instead of HOST_VENDOR to specify a platform.
3434
3435 * Makefile.in: Include a makefile based on PLATFORM instead of
3436 HOST_VENDOR.
3437 (pkgdatadir): Not appended by the machine type.
3438 (pkglibdir): Appended by the machine type.
3439 (host_vendor): Removed.
3440 (platform): New variable.
3441 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
3442 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
3443 (uninstall): Likewise.
3444
4e93851c 34452006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
3446
3447 Use the environment context in the menu. Remove the commands
3448 "default" and "timeout", and use variables instead.
3449
3450 * normal/menu.c: Include grub/env.h.
3451 (print_entry): Cast TITLE to silence gcc.
3452 (get_timeout): New function.
3453 (set_timeout): Likewise.
3454 (get_entry_number): Likewise.
3455 (run_menu): Use a default entry, a fallback entry and a timeout
3456 in the environment variables "default", "fallback" and
3457 "timeout". Also, tweak the default entry if it is not within the
3458 current menu entries.
3459 (grub_menu_run): Use a fallback entry in the environment variable
3460 "fallback".
3461
3462 * normal/main.c (read_config_file): Do not initialize
3463 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
3464 NEWMENU->TIMEOUT.
3465 (grub_normal_execute): Use a data slot to store the menu.
3466
3467 * include/grub/normal.h (struct grub_menu): Removed default_entry,
3468 fallback_entry and timeout.
3469 (struct grub_menu_list): Removed.
3470 (grub_menu_list_t): Likewise.
3471 (struct grub_context): Likewise.
3472 (grub_context_t): Likewise.
3473 (grub_context_get): Likewise.
3474 (grub_context_get_current_menu): Likewise.
3475 (grub_context_push_menu): Likewise.
3476 (grub_context_pop_menu): Likewise.
3477 (grub_default_init): Likewise.
3478 (grub_default_fini): Likewise.
3479 (grub_timeout_init): Likewise.
3480 (grub_timeout_fini): Likewise.
3481
3482 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
3483 and timeout.mod.
3484 (normal_mod_SOURCES): Removed normal/context.c.
3485
3486 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
3487 commands/default.c, commands/timeout.c and normal/context.c.
3488 (normal_mod_SOURCES): Removed normal/context.c.
3489
3490 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
3491 commands/timeout.c and normal/context.c.
3492 (normal_mod_SOURCES): Removed normal/context.c.
3493
3494 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
3495 commands/default.c, commands/timeout.c and normal/context.c.
3496 (normal_mod_SOURCES): Removed normal/context.c.
3497
3498 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
3499 timeout.mod.
3500 (default_mod_SOURCES): Removed.
3501 (default_mod_CFLAGS): Likewise.
3502 (default_mod_LDFLAGS): Likewise.
3503 (timeout_mod_SOURCES): Removed.
3504 (timeout_mod_CFLAGS): Likewise.
3505 (timeout_mod_LDFLAGS): Likewise.
3506
3507 * DISTLIST: Removed commands/default.c, commands/timeout.c and
3508 normal/context.c.
3509
3510 * commands/default.c: Removed.
3511 * commands/timeout.c: Likewise.
3512 * normal/context.c: Likewise.
3513
1eb9cc1d 35142006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
3515
3516 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
3517
385bd9c1 35182006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
3519
3520 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
3521 "next" to "prev" for readability.
3522 (struct grub_env_sorted_var): New struct.
3523 (grub_env_context): Renamed to ...
3524 (initial_context): ... this.
3525 (grub_env_var_context): Renamed to ...
3526 (current_context): ... this.
3527 (grub_env_find): Look only at CURRENT_CONTEXT.
3528 (grub_env_context_open): Rewritten to copy exported variables from
3529 previous context.
3530 (grub_env_context_close): Rewritten according to the new
3531 scheme. Also, add an assertion to prevent the initial context from
3532 removed.
3533 (grub_env_insert): Removed the code for the sorted list.
3534 (grub_env_remove): Likewise.
3535 (grub_env_export): Simply mark the variable with
3536 GRUB_ENV_VAR_GLOBAL.
3537 (grub_env_set): A cosmetic change for naming consistency.
3538 (grub_env_get): Likewise.
3539 (grub_env_unset): Likewise.
3540 (grub_env_iterate): Rewritten to sort variables within this
3541 function.
3542 (grub_register_variable_hook): Fixed for naming consistency. Call
3543 grub_env_find again, only if NAME is not found at the first time.
3544 (mangle_data_slot_name): New function.
3545 (grub_env_set_data_slot): Likewise.
3546 (grub_env_get_data_slot): Likewise.
3547 (grub_env_unset_data_slot): Likewise.
3548
3549 * include/grub/env.h (grub_env_var_type): New enum.
3550 (GRUB_ENV_VAR_LOCAL): New constant.
3551 (GRUB_ENV_VAR_GLOBAL): Likewise.
3552 (GRUB_ENV_VAR_DATA): Likewise.
3553 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
3554 "type".
3555 (grub_env_set): Replace VAR with NAME for consistency.
3556 (grub_register_variable_hook): Likewise.
3557 (grub_env_export): Specify the name of the argument.
3558 (grub_env_set_data_slot): New prototype.
3559 (grub_env_get_data_slot): Likewise.
3560 (grub_env_unset_data_slot): Likewise.
3561
7f362539 35622006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
3563
3564 Extend the loader so that GRUB can accept a loader which comes
3565 back to GRUB when a loaded image exits. Also, this change adds
3566 support for a chainloader on EFI.
3567
3568 * term/efi/console.c: Include grub/misc.h.
3569 (grub_console_checkkey): Display a scan code on the top for
3570 debugging. This will be removed once the EFI port gets stable.
3571 Correct the scan code mapping.
3572
3573 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
3574 allocate memory from larger regions, in order to reduce the number
3575 of allocated regions. Otherwise, the MacOSX loader panics.
3576 (filter_memory_map): Avoid less than 1MB for compatibility with
3577 other loaders.
3578 (add_memory_regions): Allocate from the tail of a region, if
3579 possible, to avoid allocating a region near to 1MB, for the MacOSX
3580 loader.
3581
3582 * kern/efi/init.c (grub_efi_set_prefix): Specify
3583 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
3584
3585 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
3586 argument IMAGE_HANDLE and specify it to get a loaded image.
3587 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
3588 grub_efi_get_loaded_image.
3589 (grub_efi_get_filename): Divide the legnth by the size of
3590 grub_efi_char16_t.
3591 (grub_efi_get_device_path): New function.
3592 (grub_efi_print_device_path): Print End Device Path nodes. Divide
3593 the length by the size of grub_efi_char16_t for a file path device
3594 path node.
3595
3596 * kern/loader.c (grub_loader_noreturn): New variable.
3597 (grub_loader_set): Accept a new argument NORETURN. Set
3598 GRUB_LOADER_NORETURN to NORETURN.
3599 All callers changed.
3600 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
3601 grub_machine_fini.
3602
3603 * include/grub/efi/efi.h (grub_efi_get_device_path): New
3604 prototype.
3605 (grub_efi_get_loaded_image): Take an argument to specify an image
3606 handle.
3607
3608 * include/grub/loader.h (grub_loader_set): Added one more argument
3609 NORETURN.
3610
3611 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
3612 instead of grub_efi_open_protocol.
3613 (grub_efidisk_get_device_name): Likewise.
3614 (grub_efidisk_close): Print a newline.
3615 (grub_efidisk_get_device_handle): Fixed to use
3616 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
3617 GRUB_EFI_DEVICE_PATH_TYPE.
3618
3619 * disk/efi/efidisk.c (device_path_guid): Moved to ...
3620 * kern/efi/efi.c (device_path_guid): ... here.
3621
3622 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
3623 chain.mod.
3624 (kernel_mod_HEADERS): Added efi/disk.h.
3625 (_chain_mod_SOURCES): New variable.
3626 (_chain_mod_CFLAGS): Likewise.
3627 (_chain_mod_LDFLAGS): Likewise.
3628 (chain_mod_SOURCES): Likewise.
3629 (chain_mod_CFLAGS): Likewise.
3630 (chain_mod_LDFLAGS): Likewise.
3631
3632 * DISTLIST: Added include/grub/efi/chainloader.h,
3633 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
3634
3635 * include/grub/efi/chainloader.h: New file.
3636 * loader/efi/chainloader.c: Likewise.
3637 * loader/efi/chainloader_normal.c: Likewise.
3638
c0111d6e 36392006-04-30 Marco Gerards <marco@gnu.org>
3640
3641 * commands/configfile.c (grub_cmd_source): New function.
3642 (GRUB_MOD_INIT): Register the commands `source' and `.'.
3643 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
3644
df5341da 36452006-04-30 Marco Gerards <marco@gnu.org>
3646
3647 * normal/execute.c (grub_script_execute_cmd): Change the return
3648 type to `grub_err_t'. Correctly return the error.
3649 (grub_script_execute_cmdline): In case a command line is not a
3650 command or a function, try to interpret it as an assignment.
3651
f85934bd 36522006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
3653
3654 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
3655 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
3656 skip a node whose name is obviously invalid as UTF-16,
3657 i.e. contains a NUL character. Stop the iteration when the last
3658 directory entry is found. Instead of using the return value of
3659 grub_hfsplus_btree_iterate_node, store the value in RET and use
3660 it, because the iterator can be stopped by the last directory
3661 entry.
3662
8f8a2cf8 36632006-04-30 Marco Gerards <marco@gnu.org>
3664
3665 * include/grub/env.h (grub_env_export): New prototype. Reported
3666 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
3667
a27e84ce 36682006-04-30 Marco Gerards <marco@gnu.org>
3669
3670 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
3671 size of the extents in a catalog file record.
3672
eaef0553 36732006-04-29 Marco Gerards <marco@gnu.org>
3674
3675 * commands/configfile.c (grub_cmd_configfile): Execute the
3676 configfile within its own context.
3677
3678 * include/grub/env.h (grub_env_context_open): New prototype.
3679 (grub_env_context_close): Likewise.
3680
3681 * kern/env.c (grub_env): Removed.
3682 (grub_env_sorted): Likewise.
3683 (grub_env_context): New variable.
3684 (grub_env_var_context): Likewise.
3685 (grub_env_find): Search both the active context and the global
3686 context.
3687 (grub_env_context_open): New function.
3688 (grub_env_context_close): Likewise.
3689 (grub_env_insert): Likewise.
3690 (grub_env_remove): Likewise.
3691 (grub_env_export): Likewise.
3692 (grub_env_set): Changed to use helper functions to avoid code
3693 duplication.
3694 (grub_env_iterate): Rewritten so both the current context and the
3695 global context are being used.
3696
3697 * normal/command.c (export_command): New function.
3698 (grub_command_init): Register the `export' function.
3699
7b455f4d 37002006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
3701
3702 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
3703 explicitly to suppress gcc's warnings.
3704 * fs/fat.c (grub_fat_find_dir): Likewise.
3705 (grub_fat_label): Likewise.
3706 * fs/xfs.c (grub_xfs_read_inode): Likewise.
3707 (grub_xfs_mount): Likewise.
3708 (grub_xfs_label): Likewise.
3709 * fs/affs.c (grub_affs_mount): Likewise.
3710 (grub_affs_label): Likewise.
3711 (grub_affs_iterate_dir): Likewise.
3712 * fs/sfs.c (grub_sfs_mount): Likewise.
3713 (grub_sfs_iterate_dir): Likewise.
3714 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
3715 * fs/hfs.c (grub_hfs_mount): Likewise.
3716 (grub_hfs_cmp_catkeys): Likewise.
3717 (grub_hfs_find_dir): Likewise.
3718 (grub_hfs_dir): Likewise.
3719 (grub_hfs_label): Likewise.
3720 * fs/jfs.c (grub_jfs_mount): Likewise.
3721 (grub_jfs_opendir): Likewise.
3722 (grub_jfs_getent): Likewise.
3723 (grub_jfs_lookup_symlink): Likewise.
3724 (grub_jfs_label): Likewise.
3725 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
3726 (grub_hfsplus_iterate_dir): Likewise.
3727 (grub_hfsplus_btree_iterate_node): Made static.
3728
3729 * util/grub-emu.c (prefix): New variable.
3730 (grub_machine_set_prefix): New function.
3731 (main): Do not set the environment variable "prefix" here. Only
3732 set PREFIX, which is used later by grub_machine_set_prefix.
3733
3734 * include/grub/video.h: Do not include grub/symbol.h.
3735 (grub_video_register): Not exported. This symbol is not defined in
3736 the kernel.
3737 (grub_video_unregister): Likewise.
3738 (grub_video_iterate): Likewise.
3739 (grub_video_setup): Likewise.
3740 (grub_video_restore): Likewise.
3741 (grub_video_get_info): Likewise.
3742 (grub_video_get_blit_format): Likewise.
3743 (grub_video_set_palette): Likewise.
3744 (grub_video_get_palette): Likewise.
3745 (grub_video_set_viewport): Likewise.
3746 (grub_video_get_viewport): Likewise.
3747 (grub_video_map_color): Likewise.
3748 (grub_video_map_rgb): Likewise.
3749 (grub_video_map_rgba): Likewise.
3750 (grub_video_fill_rect): Likewise.
3751 (grub_video_blit_glyph): Likewise.
3752 (grub_video_blit_bitmap): Likewise.
3753 (grub_video_blit_render_target): Likewise.
3754 (grub_video_scroll): Likewise.
3755 (grub_video_swap_buffers): Likewise.
3756 (grub_video_create_render_target): Likewise.
3757 (grub_video_delete_render_target): Likewise.
3758 (grub_video_set_active_render_target): Likewise.
3759
3760 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
3761 Undefined.
3762 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
3763
3764 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
3765 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
3766 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
3767 instead of $(srcdir)/genkernsyms.sh.
3768
3769 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
3770 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
3771 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
3772 instead of $(srcdir)/genkernsyms.sh.
3773
3774 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
3775 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
3776 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
3777 instead of $(srcdir)/genkernsyms.sh.
3778
3779 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
3780 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
3781 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
3782 instead of $(srcdir)/genkernsyms.sh.
3783
3784 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
3785 genkernsyms.sh.
3786
3787 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
3788 genkernsyms.sh.
3789 (gensymlist.sh): New target.
3790 (genkernsyms.sh): Likewise.
3791
3792 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
3793 genkernsyms.sh.in and gensymlist.sh.in.
3794
3795 * genkernsyms.sh: Removed.
3796 * gensymlist.sh: Likewise.
3797
3798 * genkernsyms.sh.in: New file.
3799 * gensymlist.sh.in: Likewise.
3800
1885bb27 38012006-04-25 Hollis Blanchard <hollis@penguinppc.org>
3802
3803 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
3804 clobber "prefix", since we may have already set it manually.
3805
71538dff 38062006-04-25 Hollis Blanchard <hollis@penguinppc.org>
3807
3808 * kern/misc.c (abort): New alias for grub_abort.
3809
2965c7cc 38102006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
3811
3812 A new machine-specific function "grub_machine_set_prefix" is
3813 defined. This is called after loading modules, so that a prefix
3814 initialization can use modules. Also, this change adds an
3815 intensive debugging feature for the memory manager via the
3816 configure option "--enable-mm-debug".
3817
3818 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
3819 PART.LEN.
3820
3821 * kern/sparc64/ieee1275/init.c (abort): Removed.
3822 (grub_stop): Likewise.
3823 (grub_exit): New function.
3824 (grub_set_prefix): Renamed to ...
3825 (grub_machine_set_prefix): ... this.
3826 (grub_machine_init): Do not call grub_set_prefix.
3827
3828 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
3829 (grub_machine_set_prefix): ... this.
3830 (grub_machine_init): Do not call grub_set_prefix.
3831
3832 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
3833 (grub_machine_init): Do not set the prefix here.
3834
3835 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
3836
3837 * kern/efi/init.c: Include grub/mm.h.
3838 (grub_efi_set_prefix): New function.
3839
3840 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
3841 (grub_efi_get_filename): New function.
3842 (grub_print_device_path): Renamed to ...
3843 (grub_efi_print_device_path): ... this.
3844
3845 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
3846 [MM_DEBUG] (grub_realloc): Likewise.
3847 [MM_DEBUG] (grub_free): Likewise.
3848 [MM_DEBUG] (grub_memalign): Likewise.
3849 [MM_DEBUG] (grub_mm_debug): New variable.
3850 [MM_DEBUG] (grub_debug_malloc): New function.
3851 [MM_DEBUG] (grub_debug_free): New function.
3852 [MM_DEBUG] (grub_debug_realloc): New function.
3853 [MM_DEBUG] (grub_debug_memalign): New function.
3854
3855 * kern/misc.c (grub_abort): Print a newline to distinguish
3856 the message.
3857
3858 * kern/main.c (grub_main): Call grub_machine_set_prefix and
3859 grub_set_root_dev after loading modules. This is necessary when
3860 setting a prefix depends on modules.
3861
3862 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
3863 (grub_efi_print_device_path): ... this.
3864 (grub_efi_get_filename): New prototype.
3865 (grub_efi_set_prefix): Likewise.
3866
3867 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
3868 and grub/disk.h.
3869 (grub_efidisk_get_device_handle): New prototype.
3870 (grub_efidisk_get_device_name): Likewise.
3871
3872 * include/grub/mm.h: Include config.h.
3873 (MM_DEBUG): Removed.
3874 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
3875 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
3876 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
3877 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
3878 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
3879 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
3880 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
3881 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
3882 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
3883
3884 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
3885
3886 * disk/efi/efidisk.c: Include grub/partition.h.
3887 (iterate_child_devices): New function.
3888 (add_device): First, compare only last device path nodes, so that
3889 devices are sorted by the types.
3890 (grub_efidisk_get_device_handle): New function.
3891 (grub_efidisk_get_device_name): Likewise.
3892
3893 * configure.ac (--enable-mm-debug): New option to enable the
3894 memory manager debugging feature. This makes the binary much
3895 bigger, so is disabled by default.
3896
9cacaa17 38972006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
3898
3899 Use grub_abort instead of grub_stop, and grub_exit must be
3900 define in each architecture now. Also, this change adds support
3901 for EFI disks.
3902
3903 * util/i386/pc/grub-probefs.c: Include grub/term.h.
3904 (grub_getkey): New function.
3905 (grub_term_get_current): Likewise.
3906
3907 * util/i386/pc/grub-setup.c: Include grub/term.h.
3908 (grub_getkey): New function.
3909 (grub_term_get_current): Likewise.
3910
3911 * util/misc.c (grub_stop): Renamed to ...
3912 (grub_exit): ... this.
3913
3914 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
3915 (grub_exit): ... this.
3916 (grub_machine_init): Use grub_abort instead of abort.
3917 (grub_stop): Removed.
3918
3919 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
3920 abort.
3921
3922 * kern/i386/pc/startup.S (grub_exit): New function.
3923 (cold_reboot): New label.
3924
3925 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
3926 (grub_efi_init): Call grub_efidisk_init.
3927 (grub_efi_fini): Call grub_efidisk_fini.
3928
3929 * kern/efi/efi.c: Include grub/mm.h.
3930 (grub_efi_console_control_guid): Renamed to ...
3931 (console_control_guid): ... this.
3932 (grub_efi_loaded_image_guid): Renamed to ...
3933 (loaded_image_guid): ... this.
3934 (grub_efi_locate_handle): New function.
3935 (grub_efi_open_protocol): Likewise.
3936 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
3937 GRUB_EFI_CONSOLE_CONTROL_GUID.
3938 (grub_efi_exit): Removed.
3939 (grub_stop): Likewise.
3940 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
3941 (grub_exit): New function.
3942 (grub_print_device_path): Likewise.
3943
3944 * kern/rescue.c (grub_rescue_cmd_exit): New function.
3945 (grub_enter_rescue_mode): Register "exit".
3946
3947 * kern/misc.c (grub_real_dprintf): A cosmetic change.
3948 (grub_abort): New function.
3949
3950 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
3951
3952 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
3953
3954 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
3955
3956 * include/grub/efi/efi.h (grub_efi_exit): Removed.
3957 (grub_print_device_path): New prototype.
3958 (grub_efi_locate_handle): Likewise.
3959 (grub_efi_open_protocol): Likewise.
3960
3961 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
3962 * disk/efi/efidisk.c: Likewise.
3963
3964 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
3965
3966 * include/grub/efi/console_control.h
3967 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
3968
3969 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
3970 last 8 bytes as an array.
3971 (GRUB_EFI_DISK_IO_GUID): New macro.
3972 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
3973 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
3974 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
3975 grub_uint8_t.
3976 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
3977 (struct grub_efi_device_path): Rename the member "sub_type" to
3978 "subtype".
3979 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
3980 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
3981 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
3982 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
3983 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
3984 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
3985 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
3986 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
3987 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
3988 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
3989 (struct grub_efi_pci_device_path): New structure.
3990 (grub_efi_pci_device_path_t): New type.
3991 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
3992 (struct grub_efi_pccard_device_path): New structure.
3993 (grub_efi_pccard_device_path_t): New type.
3994 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
3995 (struct grub_efi_memory_mapped_device_path): New structure.
3996 (grub_efi_memory_mapped_device_path_t): New type.
3997 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
3998 (struct grub_efi_vendor_device_path): New structure.
3999 (grub_efi_vendor_device_path_t): New type.
4000 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
4001 (struct grub_efi_controller_device_path): New structure.
4002 (grub_efi_controller_device_path_t): New type.
4003 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
4004 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
4005 (struct grub_efi_acpi_device_path): New structure.
4006 (grub_efi_acpi_device_path_t): New type.
4007 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
4008 (struct grub_efi_expanded_acpi_device_path): New structure.
4009 (grub_efi_expanded_acpi_device_path_t): New type.
4010 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
4011 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
4012 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
4013 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
4014 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
4015 (struct grub_efi_atapi_device_path): New structure.
4016 (grub_efi_atapi_device_path_t): New type.
4017 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
4018 (struct grub_efi_fibre_channel_device_path): New structure.
4019 (grub_efi_fibre_channel_device_path_t): New type.
4020 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
4021 (struct grub_efi_1394_device_path): New structure.
4022 (grub_efi_1394_device_path_t): New type.
4023 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
4024 (struct grub_efi_usb_device_path): New structure.
4025 (grub_efi_usb_device_path_t): New type.
4026 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
4027 (struct grub_efi_usb_class_device_path): New structure.
4028 (grub_efi_usb_class_device_path_t): New type.
4029 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
4030 (struct grub_efi_i2o_device_path): New structure.
4031 (grub_efi_i2o_device_path_t): New type.
4032 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
4033 (struct grub_efi_mac_address_device_path): New structure.
4034 (grub_efi_mac_address_device_path_t): New type.
4035 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
4036 (struct grub_efi_ipv4_device_path): New structure.
4037 (grub_efi_ipv4_device_path_t): New type.
4038 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
4039 (struct grub_efi_ipv6_device_path): New structure.
4040 (grub_efi_ipv6_device_path_t): New type.
4041 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
4042 (struct grub_efi_infiniband_device_path): New structure.
4043 (grub_efi_infiniband_device_path_t): New type.
4044 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
4045 (struct grub_efi_uart_device_path): New structure.
4046 (grub_efi_uart_device_path_t): New type.
4047 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
4048 (struct grub_efi_vendor_messaging_device_path): New structure.
4049 (grub_efi_vendor_messaging_device_path_t): New type.
4050 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
4051 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
4052 (struct grub_efi_hard_drive_device_path): New structure.
4053 (grub_efi_hard_drive_device_path_t): New type.
4054 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
4055 (struct grub_efi_cdrom_device_path): New structure.
4056 (grub_efi_cdrom_device_path_t): New type.
4057 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
4058 (struct grub_efi_vendor_media_device_path): New structure.
4059 (grub_efi_vendor_media_device_path_t): New type.
4060 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
4061 (struct grub_efi_file_path_device_path): New structure.
4062 (grub_efi_file_path_device_path_t): New type.
4063 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
4064 (struct grub_efi_protocol_device_path): New structure.
4065 (grub_efi_protocol_device_path_t): New type.
4066 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
4067 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
4068 (struct grub_efi_bios_device_path): New structure.
4069 (grub_efi_bios_device_path_t): New type.
4070 (struct grub_efi_disk_io): New structure.
4071 (grub_efi_disk_io_t): New type.
4072 (struct grub_efi_block_io_media): New structure.
4073 (grub_efi_block_io_media_t): New type.
4074 (struct grub_efi_block_io): New structure.
4075 (grub_efi_block_io_t): New type.
4076
4077 * include/grub/misc.h (grub_stop): Removed.
4078 (grub_exit): New prototype.
4079 (grub_abort): Likewise.
4080
4081 * include/grub/disk.h (enum grub_disk_dev_id): Added
4082 GRUB_DISK_DEVICE_EFIDISK_ID.
4083
4084 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
4085 disk/efi/efidisk.c.
4086 (kernel_syms.lst): Remove the target if an error occurs.
4087
49986a9f 40882006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
4089
4090 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
4091 as it was simply too buggy.
4092
970d3b8a 40932006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
4094
4095 * kern/misc.c (grub_lltoa): New function.
4096 (grub_vsprintf): Added support for the long long suffix,
4097 i.e. "ll".
4098
ff04ec24 40992006-04-20 Hollis Blanchard <hollis@penguinppc.org>
4100
4101 * Makefile.in (LDFLAGS): Add variable.
4102 (LD): Remove variable.
4103 * configure.ac: Add -m32 to LDFLAGS.
4104 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
4105 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
4106 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
4107 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
4108 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
4109 variables.
4110 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
4111 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
4112 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
4113
37e5e1a4 41142006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
4115
4116 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
4117 length for unknown glyph.
4118
c352d8dd 41192006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
4120
2eab1c0d 4121 Add support for pre-loaded modules into the EFI port.
4122
4123 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
4124 completely. Accept one more argument DIR. The caller has changed.
4125
4126 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
4127
4128 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
4129 (grub_efi_loaded_image_guid): New variable.
4130 (grub_efi_get_loaded_image): New function.
4131 (grub_arch_modules_addr): Likewise.
4132
4133 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
4134 prototype.
4135
4136 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
4137 (struct grub_efi_loaded_image): New structure.
4138 (grub_efi_loaded_image_t): New type.
4139
41402006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
4141
c352d8dd 4142 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
4143 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
4144 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
4145
6d01d6b4 41462006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
4147
4148 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
4149
976a4ea0 41502006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
4151
4152 * DISTLIST: Added include/grub/efi/console.h,
4153 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
4154 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
4155
4156 * include/grub/efi/console.h: New file.
4157 * include/grub/efi/time.h: Likewise.
4158 * include/grub/i386/efi/kernel.h: Likewise.
4159 * kern/efi/init.c: Likewise.
4160 * kern/efi/mm.c: Likewise.
4161 * term/efi/console.c: Likewise.
4162
4163 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
4164 (grub_stop): Removed.
4165 (grub_get_rtc): Likewise.
4166 (grub_machine_init): Simply call grub_efi_init.
4167 (grub_machine_fini): Call grub_efi_fini.
4168
4169 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
4170 (grub_efi_output_string): Removed.
4171 (grub_efi_stall): New function.
4172 (grub_stop): Likewise.
4173 (grub_get_rtc): Likewise.
4174
4175 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
4176 (grub_efi_stall): New prototype.
4177 (grub_efi_allocate_pages): Likewise.
4178 (grub_efi_free_pages): Likewise.
4179 (grub_efi_get_memory_map): Likewise.
4180 (grub_efi_mm_init): Likewise.
4181 (grub_efi_mm_fini): Likewise.
4182 (grub_efi_init): Likewise.
4183 (grub_efi_fini): Likewise.
4184
4185 * include/grub/i386/efi/time.h: Do not include
4186 grub/symbol.h. Include grub/efi/time.h.
4187 (GRUB_TICKS_PER_SECOND): Removed.
4188 (grub_get_rtc): Likewise.
4189
4190 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
4191 Added padding. The EFI spec is buggy.
4192 (GRUB_EFI_BLACK): New macro.
4193 (GRUB_EFI_BLUE): Likewise.
4194 (GRUB_EFI_GREEN): Likewise.
4195 (GRUB_EFI_CYAN): Likewise.
4196 (GRUB_EFI_RED): Likewise.
4197 (GRUB_EFI_MAGENTA): Likewise.
4198 (GRUB_EFI_BROWN): Likewise.
4199 (GRUB_EFI_LIGHTGRAY): Likewise.
4200 (GRUB_EFI_BRIGHT): Likewise.
4201 (GRUB_EFI_DARKGRAY): Likewise.
4202 (GRUB_EFI_LIGHTBLUE): Likewise.
4203 (GRUB_EFI_LIGHTGREEN): Likewise.
4204 (GRUB_EFI_LIGHTCYAN): Likewise.
4205 (GRUB_EFI_LIGHTRED): Likewise.
4206 (GRUB_EFI_LIGHTMAGENTA): Likewise.
4207 (GRUB_EFI_YELLOW): Likewise.
4208 (GRUB_EFI_WHITE): Likewise.
4209 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
4210 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
4211 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
4212 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
4213 (GRUB_EFI_BACKGROUND_RED): Likewise.
4214 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
4215 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
4216 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
4217 (GRUB_EFI_TEXT_ATTR): Likewise.
4218
4219 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
4220 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
4221 (kernel_mod_HEADERS): Added efi/time.h.
4222
83709125 42232006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
4224
4225 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
4226 include/grub/efi/api.h, include/grub/efi/console_control.h,
4227 include/grub/efi/efi.h, include/grub/efi/pe32.h,
4228 include/grub/i386/efi/time.h, kern/efi/efi.c,
4229 kern/i386/efi/init.c, kern/i386/efi/startup.S,
4230 and util/i386/efi/grub-mkimage.c.
4231
4232 * Makefile.in (RMKFILES): Added i386-efi.rmk.
4233
4234 * genmk.rb (PModule#rule): Do not export symbols if
4235 #{prefix}_EXPORTS is set to "no".
4236
4237 * conf/i386-efi.mk: New file.
4238 * conf/i386-efi.rmk: Likewise.
4239 * include/grub/efi/api.h: Likewise.
4240 * include/grub/efi/console_control.h: Likewise.
4241 * include/grub/efi/efi.h: Likewise.
4242 * include/grub/efi/pe32.h: Likewise.
4243 * include/grub/i386/efi/time.h: Likewise.
4244 * kern/efi/efi.c: Likewise.
4245 * kern/i386/efi/init.c: Likewise.
4246 * kern/i386/efi/startup.S: Likewise.
4247 * util/i386/efi/grub-mkimage.c: Likewise.
4248
42492006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 4250
4251 * include/grub/script.h: Include <grub/parser.h> and
4252 "grub_script.tab.h".
4253 (struct grub_lexer_param): New struct.
4254 (struct grub_parser_param): Likewise.
4255 (grub_script_create_arglist): Pass the state in an argument.
4256 (grub_script_add_arglist): Likewise.
4257 (grub_script_create_cmdline): Likewise.
4258 (grub_script_create_cmdblock): Likewise.
4259 (grub_script_create_cmdif): Likewise.
4260 (grub_script_create_cmdmenu): Likewise.
4261 (grub_script_add_cmd): Likewise.
4262 (grub_script_arg_add): Likewise.
4263 (grub_script_lexer_ref): Likewise.
4264 (grub_script_lexer_deref): Likewise.
4265 (grub_script_lexer_record_start): Likewise.
4266 (grub_script_lexer_record_stop): Likewise.
4267 (grub_script_mem_record): Likewise.
4268 (grub_script_mem_record_stop): Likewise.
4269 (grub_script_malloc): Likewise.
4270 (grub_script_yylex): Likewise.
4271 (grub_script_yyparse): Likewise.
4272 (grub_script_yyerror): Likewise.
4273 (grub_script_yylex): Likewise.
4274 (grub_script_lexer_init): Return the state.
4275
4276 * normal/lexer.c (grub_script_lexer_state): Removed variable.
4277 (grub_script_lexer_done): Likewise.
4278 (grub_script_lexer_getline): Likewise.
4279 (grub_script_lexer_refs): Likewise.
4280 (script): Likewise.
4281 (newscript): Likewise.
4282 (record): Likewise.
4283 (recording): Likewise.
4284 (recordpos): Likewise.
4285 (recordlen): Likewise.
4286 (grub_script_lexer_init): Return the state instead of setting
4287 global variables.
4288 (grub_script_lexer_ref): Use the newly added argument for state
4289 instead of globals.
4290 (grub_script_lexer_deref): Likewise.
4291 (grub_script_lexer_record_start): Likewise.
4292 (grub_script_lexer_record_stop): Likewise.
4293 (recordchar): Likewise.
4294 (nextchar): Likewise.
4295 (grub_script_yylex2): Likewise.
4296 (grub_script_yylex): Likewise.
4297 (grub_script_yyerror): Likewise.
4298
4299 * normal/parser.y (func_mem): Removed variable.
4300 (menu_entry): Likewise.
4301 (err): Likewise.
4302 (%lex-param): New parser option.
4303 (%parse-param): Likewise.
4304 (script): Always return the AST.
4305 (argument): Pass the state around.
4306 (arguments): Likewise.
4307 (grubcmd): Likewise.
4308 (commands): Likewise.
4309 (function): Likewise.
4310 (menuentry): Likewise.
4311 (if_statement): Likewise.
4312 (if): Likewise.
4313
4314 * normal/script.c (grub_script_memused): Removed variable.
4315 (grub_script_parsed): Likewise.
4316 (grub_script_malloc): Added a state argument. Use that instead of
4317 global variables.
4318 (grub_script_mem_record): Likewise.
4319 (grub_script_mem_record_stop): Likewise.
4320 (grub_script_arg_add): Likewise.
4321 (grub_script_add_arglist): Likewise.
4322 (grub_script_create_cmdline): Likewise.
4323 (grub_script_create_cmdif): Likewise.
4324 (grub_script_create_cmdmenu): Likewise.
4325 (grub_script_add_cmd): Likewise.
4326 (grub_script_parse): Setup the state before calling the parser.
4327
e2a8c904 43282006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 4329
4330 * normal/command.c (grub_command_init): Remove the title command.
4331
4332 * normal/lexer.c (grub_script_yylex): Renamed from this...
4333 (grub_script_yylex2): ... to this.
4334 (grub_script_yylex): New function. Temporary
4335 introduced to filter some tokens.
4336 (grub_script_yyerror): Print a newline.
4337
4338 * normal/main.c (read_config_file): Output information about the
4339 lines that contain errors. Wait for a key after all lines have
4340 been processed. Don't return an empty menu.
4341
4342 * normal/parser.y (func_mem): Don't initialize.
4343 (menu_entry): Likewise.
4344 (err): New variable.
4345 (script): Don't return anything when an error was encountered.
4346 (ws, returns): Removed rules.
4347 (argument): Disabled concatenated variable support.
4348 (arguments): Remove explicit separators.
4349 (grubcmd): Likewise.
4350 (function): Likewise.
4351 (menuentry): Likewise.
4352 (if): Likewise.
4353 (commands): Likewise. Add error handling.
4354
4355 * normal/script.c (grub_script_create_cmdline): If
4356 `grub_script_parsed' is 0, assume the parser encountered an error.
4357
c9a86192 43582006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
4359
4360 * configure.ac: Add support for EFI. Fix the typo
4361 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
4362
70f3b243 43632006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
4364
4365 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
4366 foreign multibyte characters should be shown correctly.
4367
65f201ad 43682006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
4369
4370 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
4371 calculation.
4372 (read_config_file): Made it to close file before returning.
4373
b4b93674 43742006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
4375
4376 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
4377 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
4378 video/i386/pc/vbefill.c.
4379
4380 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
4381 video/i386/pc/vbefill.c.
4382
4383 * include/grub/video.h (grub_video_blit_format): New enum.
4384 (grub_video_mode_info): Added new member blit_format.
4385 (grub_video_get_blit_format): New function prototype.
4386
4387 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
4388 function prototype.
4389 (grub_video_vbe_map_rgb): Likewise.
4390 (grub_video_vbe_unmap_color): Likewise.
4391
4392 * include/grub/i386/pc/vbeblit.h: New file.
4393
4394 * include/grub/i386/pc/vbefill.h: New file.
4395
4396 * video/video.c (grub_video_get_blit_format): New function.
4397 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
4398 (grub_video_vbe_map_rgb): Likewise.
4399 (grub_video_vbe_unmap_color): Likewise.
4400
4401 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
4402 optimized fills.
4403 (grub_video_vbe_blit_render_target): Changed to use more optimized
4404 blits.
4405 (grub_video_vbe_setup): Added detection for optimized settings.
4406 (grub_video_vbe_create_render_target): Likewise.
4407
4408 * video/i386/pc/vbeblit.c: New file.
4409
4410 * video/i386/pc/vbefill.c: New file.
4411
c2379b9c 44122006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
4413
4414 * font/manager.c (grub_font_get_glyph): Removed font fixup from
4415 here...
4416
4417 * util/unifont2pff.rb: ... and moved it to here. Improved argument
4418 parsing to support both hex and dec ranges. If filename was missing
4419 show usage information.
4420
bd0d7896 44212006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
4422
4423 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
4424 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
4425
4426 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
4427 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
4428 (video_mod_SOURCES): Added.
4429 (video_mod_CFLAGS): Likewise.
4430 (video_mod_LDFLAGS): Likewise.
4431 (gfxterm_mod_SOURCES): Likewise.
4432 (gfxterm_mod_CFLAGS): Likewise.
4433 (gfxterm_mod_LDFLAGS): Likewise.
4434 (videotest_mod_SOURCES): Likewise.
4435 (videotest_mod_CFLAGS): Likewise.
4436 (videotest_mod_LDFLAGS): Likewise.
4437 (vesafb_mod_SOURCES): Removed.
4438 (vesafb_mod_CFLAGS): Likewise.
4439 (vesafb_mod_LDFLAGS): Likewise.
4440 (vga_mod_SOURCES): Likewise.
4441 (vga_mod_CFLAGS): Likewise.
4442 (vga_mod_LDFLAGS): Likewise.
4443
4444 * commands/videotest.c: New file.
4445
4446 * font/manager.c (fill_with_default_glyph): Modified to use
4447 grub_font_glyph.
4448 (grub_font_get_glyph): Likewise.
4449 (fontmanager): Renamed from this...
4450 (font_manager): ... to this.
4451
4452 * include/grub/font.h (grub_font_glyph): Added new structure.
4453 (grub_font_get_glyph): Modified to use grub_font_glyph.
4454
4455 * include/grub/misc.h (grub_abs): Added as inline function.
4456
4457 * include/grub/video.h: New file.
4458
4459 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
4460 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
4461 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
4462 (grub_vbe_get_controller_info): Renamed from this...
4463 (grub_vbe_bios_get_controller_info): ... to this.
4464 (grub_vbe_get_mode_info): Renamed from this...
4465 (grub_vbe_bios_get_mode_info): ... to this.
4466 (grub_vbe_set_mode): Renamed from this...
4467 (grub_vbe_bios_set_mode): ... to this.
4468 (grub_vbe_get_mode): Renamed from this...
4469 (grub_vbe_bios_get_mode): ... to this.
4470 (grub_vbe_set_memory_window): Renamed from this...
4471 (grub_vbe_bios_set_memory_window): ... to this.
4472 (grub_vbe_get_memory_window): Renamed from this...
4473 (grub_vbe_bios_get_memory_window): ... to this.
4474 (grub_vbe_set_scanline_length): Renamed from this...
4475 (grub_vbe_set_scanline_length): ... to this.
4476 (grub_vbe_get_scanline_length): Renamed from this...
4477 (grub_vbe_bios_get_scanline_length): ... to this.
4478 (grub_vbe_set_display_start): Renamed from this...
4479 (grub_vbe_bios_set_display_start): ... to this.
4480 (grub_vbe_get_display_start): Renamed from this...
4481 (grub_vbe_bios_get_display_start): ... to this.
4482 (grub_vbe_set_palette_data): Renamed from this...
4483 (grub_vbe_bios_set_palette_data): ... to this.
4484 (grub_vbe_set_pixel_rgb): Removed.
4485 (grub_vbe_set_pixel_index): Likewise.
4486
4487 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
4488 from this...
4489 (grub_vbe_bios_get_controller_info): ... to this.
4490 (grub_vbe_get_mode_info): Renamed from this...
4491 (grub_vbe_bios_get_mode_info): ... to this.
4492 (grub_vbe_set_mode): Renamed from this...
4493 (grub_vbe_bios_set_mode): ... to this.
4494 (grub_vbe_get_mode): Renamed from this...
4495 (grub_vbe_bios_get_mode): ... to this.
4496 (grub_vbe_set_memory_window): Renamed from this...
4497 (grub_vbe_bios_set_memory_window): ... to this.
4498 (grub_vbe_get_memory_window): Renamed from this...
4499 (grub_vbe_bios_get_memory_window): ... to this.
4500 (grub_vbe_set_scanline_length): Renamed from this...
4501 (grub_vbe_set_scanline_length): ... to this.
4502 (grub_vbe_get_scanline_length): Renamed from this...
4503 (grub_vbe_bios_get_scanline_length): ... to this.
4504 (grub_vbe_set_display_start): Renamed from this...
4505 (grub_vbe_bios_set_display_start): ... to this.
4506 (grub_vbe_get_display_start): Renamed from this...
4507 (grub_vbe_bios_get_display_start): ... to this.
4508 (grub_vbe_set_palette_data): Renamed from this...
4509 (grub_vbe_bios_set_palette_data): ... to this.
4510 (grub_vbe_bios_get_controller_info): Fixed problem with registers
4511 getting corrupted after calling it. Added more pushes and pops.
4512 (grub_vbe_bios_set_mode): Likewise.
4513 (grub_vbe_bios_get_mode): Likewise.
4514 (grub_vbe_bios_get_memory_window): Likewise.
4515 (grub_vbe_bios_set_scanline_length): Likewise.
4516 (grub_vbe_bios_get_scanline_length): Likewise.
4517 (grub_vbe_bios_get_display_start): Likewise.
4518 (grub_vbe_bios_set_palette_data): Likewise.
4519
4520 * normal/cmdline.c (cl_set_pos): Refresh the screen.
4521 (cl_insert): Likewise.
4522 (cl_delete): Likewise.
4523
4524 * term/gfxterm.c: New file.
4525
4526 * term/i386/pc/vesafb.c: Removed file.
4527
4528 * video/video.c: New file.
4529
4530 * video/i386/pc/vbe.c (real2pm): Added new function.
4531 (grub_video_vbe_draw_pixel): Likewise.
4532 (grub_video_vbe_get_video_ptr): Likewise.
4533 (grub_video_vbe_get_pixel): Likewise
4534 (grub_video_vbe_init): Likewise.
4535 (grub_video_vbe_fini): Likewise.
4536 (grub_video_vbe_setup): Likewise.
4537 (grub_video_vbe_get_info): Likewise.
4538 (grub_video_vbe_set_palette): Likewise.
4539 (grub_video_vbe_get_palette): Likewise.
4540 (grub_video_vbe_set_viewport): Likewise.
4541 (grub_video_vbe_get_viewport): Likewise.
4542 (grub_video_vbe_map_color): Likewise.
4543 (grub_video_vbe_map_rgb): Likewise.
4544 (grub_video_vbe_map_rgba): Likewise.
4545 (grub_video_vbe_unmap_color): Likewise.
4546 (grub_video_vbe_fill_rect): Likewise.
4547 (grub_video_vbe_blit_glyph): Likewise.
4548 (grub_video_vbe_blit_bitmap): Likewise.
4549 (grub_video_vbe_blit_render_target): Likewise.
4550 (grub_video_vbe_scroll): Likewise.
4551 (grub_video_vbe_swap_buffers): Likewise.
4552 (grub_video_vbe_create_render_target): Likewise.
4553 (grub_video_vbe_delete_render_target): Likewise.
4554 (grub_video_vbe_set_active_render_target): Likewise.
4555 (grub_vbe_set_pixel_rgb): Remove function.
4556 (grub_vbe_set_pixel_index): Likewise.
4557 (index_color_mode): Remove static variable.
4558 (active_mode): Likewise.
4559 (framebuffer): Likewise.
4560 (bytes_per_scan_line): Likewise.
4561 (grub_video_vbe_adapter): Added new static variable.
4562 (framebuffer): Likewise.
4563 (render_target): Likewise.
4564 (initial_mode): Likewise.
4565 (mode_in_use): Likewise.
4566 (mode_list): Likewise.
4567
5f97350b 45682006-03-10 Marco Gerards <marco@gnu.org>
4569
4570 * configure.ac (AC_INIT): Bumped to 1.93.
4571
4572 * DISTLIST: Added `include/grub/hfs.h'.
4573
a3c5c6f8 45742006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
4575
4576 * boot/i386/pc/boot.S (general_error): Before looping, try INT
4577 18H, which might help the BIOS falling back to next boot media.
4578
6de53d26 45792006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
4580
4581 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
4582 Poe Chen <poe.poechen@gmail.com>.
4583
77c4a393 45842006-01-17 Marco Gerards <marco@gnu.org>
4585
4586 * include/grub/normal.h: Include <grub/script.h>.
4587 (grub_command_list): Removed struct.
4588 (grub_command_list_t): Removed type.
4589 (grub_menu_entry): Remove members `num' and `command_list'. Add
4590 members `commands' and `sourcecode'.
4591 * include/grub/script.h: Add inclusion guards.
4592 (grub_script_cmd_menuentry): New struct.
4593 (grub_script_execute_menuentry): New prototype.
4594 (grub_script_lexer_record_start): Likewise.
4595 (grub_script_lexer_record_stop): Likewise.
4596 * normal/execute.c (grub_script_execute_menuentry): New function.
4597 * normal/lexer.c (record, recording, recordpos, recordlen): New
4598 variables.
4599 (grub_script_lexer_record_start): New function.
4600 (grub_script_lexer_record_stop): Likewise.
4601 (recordchar): Likewise.
4602 (nextchar): Likewise.
4603 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
4604 2048 as the buffer size. Add the tokens `menuentry' and `@'.
4605 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
4606 (current_menu): New variable.
4607 (free_menu): Mainly rewritten.
4608 (grub_normal_menu_addentry): New function.
4609 (read_config_file): Rewritten.
4610 * normal/menu.c (run_menu_entry): Mainly rewritten.
4611 * normal/menu_entry.c (make_screen): Rewritten te code to insert
4612 the menu entry.
4613 (run): Mainly rewritten.
4614 * normal/parser.y (menu_entry): New variable.
4615 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
4616 (menuentry): New rule.
4617 (command): Add `menuentry'.
4618 (if_statement): Allow additional returns before `fi'.
4619 * normal/script.c (grub_script_create_cmdmenu): New function.
4620
144f1f98 46212006-01-03 Marco Gerards <marco@gnu.org>
4622
4623 * INSTALL: GNU Bison is required.
4624 * configure.ac: Rewritten the test to detect Bison.
4625 * Makefile.in (YACC): New variable. Reported by Xun Sun
4626 <xun.sun.cn@gmail.com>.
4627
af4b2d89 46282006-01-03 Marco Gerards <marco@gnu.org>
4629
4630 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
4631 the HFS+ filesystem to filesystem blocks.
4632 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
4633 GCC warning is silenced.
4634
15643b71 46352006-01-03 Marco Gerards <marco@gnu.org>
4636
4637 * partmap/apple.c (apple_partition_map_iterate): Convert the data
4638 read from disk from big endian to host byte order.
4639
00905879 46402006-01-03 Hollis Blanchard <hollis@penguinppc.org>
4641
4642 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
4643 documentation.
4644 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
4645 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
4646 embedded HFS+ filesystem.
4647 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
4648 (grub_hfs_sblock): Move from here...
4649 * include/grub/hfs.h: To here... New file.
4650 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
4651 documentation.
4652 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
4653 New macros.
4654 (grub_hfsplus_volheader): Change type of member `magic' to
4655 `grub_uint16_t'.
4656 (grub_hfsplus_data): Add new member `embedded_offset'.
4657 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
4658 returned block.
4659 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
4660 Calculate the offset.
4661
8899bc3e 46622005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
4663
4664 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
4665 Removed.
4666 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
4667
ae8c0277 46682005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
4669
4670 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
4671 ENV->NAME is NULL after allocating ENV->VALUE.
4672
07084456 46732005-12-25 Marco Gerards <marco@gnu.org>
4674
4675 * kern/env.c (grub_env_set): Rewritten the error handling code.
4676
4750f5f1 46772005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
4678
4679 * geninit.sh: Made more robust, and more portable.
4680
50214199 46812005-12-25 Marco Gerards <marco@gnu.org>
4682
4683 Add support for Apple HFS+ filesystems.
4684
4685 * fs/hfsplus.c: New file.
4686
4687 * DISTLIST: Added `fs/hfsplus.c'.
4688
4689 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
4690 (hfsplus_mod_SOURCES): New variable.
4691 (hfsplus_mod_CFLAGS): Likewise.
4692 (hfsplus_mod_LDFLAGS): Likewise.
4693 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
4694 (grub_setup_SOURCES): Likewise.
4695 (grub_mkdevicemap_SOURCES): Likewise.
4696 (grub_emu_SOURCES): Likewise.
4697 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4698
4699 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
4700
4701 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
4702
befaed6c 47032005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
4704
4705 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
4706 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
4707 include/grub/parser.h, include/grub/script.h, kern/parser.c,
4708 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
4709 normal/lexer.c, normal/parser.y, normal/script.c, and
4710 partmap/gpt.c.
4711 Removed kern/sparc64/cache.c.
4712
4713 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
4714 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
4715 grub_emu_init.c.
4716
4717 * configure.ac (AC_INIT): Bumped to 1.92.
4718
6a124103 47192005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
4720
4721 * kern/err.c (grub_error_push): Added new function to support error
4722 stacks.
4723 (grub_error_pop): Likewise.
4724 (grub_error_stack_items): New local variable to support error stacks.
4725 (grub_error_stack_pos): Likewise.
4726 (grub_error_stack_assert): Likewise.
4727 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
4728 stack depth.
4729 (grub_print_error): Added support to print errors from error stack.
4730
4731 * include/grub/err.h (grub_error_push): Added function prototype.
4732 (grub_error_pop): Likewise.
4733
be973c1b 47342005-12-09 Hollis Blanchard <hollis@penguinppc.org>
4735
4736 * configure.ac: Accept `powerpc64' as host_cpu.
4737 (amd64): Rename to `biarch32'.
4738
4739 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
4740 non-cacheline-aligned addresses.
4741
4742 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
4743 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
4744 if `size' is non-zero.
4745
b04216ab 47462005-12-03 Marco Gerards <mgerards@xs4all.nl>
4747
4748 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
4749 and `cd' to make sure the filename is not prefixed with a
4750 directory name.
4751 (pkgdata_MODULES): Add `gpt.mod'.
4752 (gpt_mod_SOURCES): New variable.
4753 (gpt_mod_CFLAGS): Likewise.
4754 (gpt_mod_LDFLAGS): Likewise.
4755
4756 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
4757
4758 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
4759 New macro.
4760
4761 * partmap/gpt.c: New file.
4762
4763 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
4764 GPT partition map is detected.
4765
41730ed9 47662005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
4767
4768 * commands/i386/pc/play.c: New file.
4769 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
4770 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
4771 macros.
4772
95dc3643 47732005-11-27 Marco Gerards <mgerards@xs4all.nl>
4774
4775 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
4776 ((unused))' to silence gcc warning.
4777
1569ec51 47782005-11-26 Hollis Blanchard <hollis@penguinppc.org>
4779
4780 * configure.ac: Correct `AC_PROG_YACC' test.
4781
9abde152 47822005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4783
4784 * util/powerpc/ieee1275/grub-install.in: Run the mount point
4785 check before installing files.
4786
44b83271 47872005-11-22 Mike Small <smallm@panix.com>
4788
4789 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
4790 number regex so multidigit numbers are recognized correctly.
4791
47922005-11-22 Mike Small <smallm@panix.com>
4793
4794 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
4795 debugging message before attempting to claim memory.
4796 (grub_rescue_cmd_initrd): Add a claim debugging message and try
4797 multiple addresses in case of failure.
4798
9c12956b 47992005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4800
4801 * term/tparm.c (get_space): Remove empty `if' statement.
4802
4803 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
4804
4805 * kern/parser.c (check_varstate): Rename `state' to 's'.
4806
aeaf81d9 48072005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4808
4809 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
4810 variable definitions to the beginning of each function. Sort stack
4811 variables by size.
4812 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
4813 `buf' argument to `char *'.
4814
79bbb63f 48152005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4816
4817 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
4818 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
4819 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
4820 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
4821 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
4822 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
4823 configfile.mod, search.mod, gzio.mod and test.mod.
4824 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
4825 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
4826 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
4827 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
4828 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
4829 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
4830 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
4831 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
4832 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
4833 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
4834 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
4835 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
4836 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
4837 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
4838 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
4839 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
4840 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
4841 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
4842 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
4843 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
4844 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
4845 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
4846 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
4847
4848 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
4849 `grep --include'.
4850 (pkgdata_MODULES): Add test.mod.
4851
233b1628 48522005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4853
4854 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
4855 appending to variables with "+=".
4856 (PModule): Use full pathname to generate *.lst filenames.
4857
4858 * Makefile.in: Fixed list rules moved from genmk.rb.
4859 (.DELETE_ON_ERROR): New special target.
4860 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
4861
4862 * conf/i386-pc.rmk: Include conf/common.mk.
4863 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
4864 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
4865 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
4866 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
4867 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
4868 configfile.mod, search.mod, gzio.mod and test.mod.
4869 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
4870 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
4871 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
4872 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
4873 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
4874 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
4875 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
4876 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
4877 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
4878 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
4879 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
4880 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
4881 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
4882 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
4883 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
4884 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
4885 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
4886 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
4887 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
4888 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
4889 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
4890 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
4891 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
4892 here...
4893 * conf/common.rmk: ... to here. New file.
4894
4895 * conf/common.mk: New file.
4896
16f820c8 48972005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
4898
4899 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
4900 (grub_script.tab.c): ... here.
4901
4902 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
4903 (grub_script.tab.c): ... here.
4904
4905 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
4906 (grub_script.tab.c): ... here.
4907
4908 * normal/command.c (grub_command_find): Fixed a memory leak of
4909 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
4910
63ba1554 49112005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4912
4913 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
4914 "@" which marks the start of a comment on ARM.
4915 (VARIABLE): Likewise.
4916
7f67dc13 49172005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4918
79bbb63f 4919 Add support for Linux/ADFS partition tables.
7f67dc13 4920
4921 * partmap/acorn.c: New file.
4922
4923 * include/grub/acorn_filecore.h: Likewise.
4924
4925 * DISTLIST: Added `partmap/acorn.c' and
4926 `include/grub/acorn_filecore.h'.
4927
4928 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4929 `partmap/acorn.c'.
4930 (pkgdata_MODULES): Add `acorn.mod'.
4931 (acorn_mod_SOURCES): New variable.
4932 (acorn_mod_CFLAGS): Likewise.
4933
4934 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
4935 `partmap/acorn.c'.
4936 (pkgdata_MODULES): Add `acorn.mod'.
4937 (acorn_mod_SOURCES): New variable.
4938 (acorn_mod_CFLAGS): Likewise.
4939
4940 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
4941 (pkgdata_MODULES): Add `acorn.mod'.
4942 (acorn_mod_SOURCES): New variable.
4943 (acorn_mod_CFLAGS): Likewise.
4944 (acorn_mod_LDFLAGS): Likewise.
4945
4946 * include/types.h (grub_disk_addr_t): New typedef.
4947
6d099807 49482005-11-13 Marco Gerards <mgerards@xs4all.nl>
4949
4950 * geninit.sh: New file.
4951
4952 * geninitheader.sh: Likewise.
4953
4954 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
4955 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
4956 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
4957 * commands/configfile.c (grub_configfile_init)
4958 (grub_configfile_fini): Likewise.
4959 * commands/default.c (grub_default_init, grub_default_fini):
4960 Likewise.
4961 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
4962 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
4963 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
4964 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
4965 Likewise.
4966 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
4967 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
4968 Likewise.
4969 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
4970 * commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
4971 Likewise.
4972 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
4973 Likewise.
4974 * commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
4975 Likewise.
4976 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
4977 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
4978 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
4979 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
4980 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
4981 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
4982 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
4983 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
4984 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
4985 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
4986 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
4987 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
4988 * partmap/amiga.c (grub_amiga_partition_map_init)
4989 (grub_amiga_partition_map_fini): Likewise.
4990 * partmap/apple.c (grub_apple_partition_map_init)
4991 (grub_apple_partition_map_fini): Likewise.
4992 * partmap/pc.c (grub_pc_partition_map_init)
4993 (grub_pc_partition_map_fini): Likewise.
4994 * partmap/sun.c (grub_sun_partition_map_init,
4995 grub_sun_partition_map_fini): Likewise.
4996 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
4997 Likewise.
4998
4999 * util/grub-emu.c: Include <grub_modules_init.h>.
5000 (main): Don't initialize and de-initialize any modules directly,
5001 use `grub_init_all' and `grub_fini_all' instead.
5002
5003 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
5004 `grub_vesafb_mod_init'.
5005 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
5006 all users.
5007 * term/i386/pc/vga.c (grub_vga_init): Renamed to
5008 `grub_vga_mod_init'. Updated all users.
5009 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
5010
5011 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
5012 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
5013 rules.
5014
5015 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
5016 Generate a function to initialize the module in utilities.
5017 Updated all callers.
5018 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
5019 initialize the module in utilities. Updated all callers.
5020
9046bcf0 50212005-11-09 Hollis Blanchard <hollis@penguinppc.org>
5022
5023 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
5024 escape sequence and a literal ^L to clear the screen.
5025
5026 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
5027 when returning from Open Firmware.
5028
d13ea639 50292005-11-09 Hollis Blanchard <hollis@penguinppc.org>
5030
5031 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
5032 (grub_ofconsole_height): Likewise.
5033 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
5034 manually insert a '\n'.
5035 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
5036 `grub_ofconsole_height'. Return early if these are already set.
5037
a8fcf206 50382005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
5039
5040 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
5041 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
5042 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
5043 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
5044 and `normal/script.c'.
5045 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
5046 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
5047 (test_mod_SOURCES): New variable.
5048 (test_mod_CFLAGS): Likewise.
5049 (test_mod_LDFLAGS): Likewise.
5050 (pkgdata_MODULES): Add `test.mod'.
5051 (grub_script.tab.c): New rule.
5052 (grub_script.tab.h): Likewise.
5053
b6b32745 50542005-11-07 Marco Gerards <mgerards@xs4all.nl>
5055
5056 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
5057 `commands/test.c', `normal/execute.c', `normal/lexer.c',
5058 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
5059 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
5060 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
5061 (test_mod_SOURCES): New variable.
5062 (test_mod_CFLAGS): Likewise.
5063 (pkgdata_MODULES): Add `test.mod'.
5064 (grub_script.tab.c): New rule.
5065 (grub_script.tab.h): Likewise.
5066
daac212a 50672005-11-06 Marco Gerards <mgerards@xs4all.nl>
5068
5069 Add initial scripting support.
5070
5071 * commands/test.c: New file.
5072 * include/grub/script.h: Likewise.
5073 * normal/execute.c: Likewise.
5074 * normal/function.c: Likewise.
5075 * normal/lexer.c: Likewise.
5076 * normal/parser.y: Likewise.
5077 * normal/script.c: Likewise.
5078
5079 * configure.ac: Add `AC_PROG_YACC' test.
5080
5081 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
5082 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
5083 `normal/function.c' and `normal/script.c'.
5084 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
5085 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 5086 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
5087 variables.
daac212a 5088 (pkgdata_MODULES): Add `test.mod'.
5089 (grub_script.tab.c): New rule.
5090 (grub_script.tab.h): Likewise.
5091
5092 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
5093
5094 * include/grub/normal.h (grub_test_init): New prototype.
5095 (grub_test_fini): Likewise.
5096
5097 * normal/command.c: Include <grub/script.h>.
5098 (grub_command_execute): Rewritten.
5099
5100 * util/grub-emu.c (main): Call `grub_test_init' and
5101 `grub_test_fini'.
5102
77500b2b 51032005-11-03 Hollis Blanchard <hollis@penguinppc.org>
5104
5105 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
5106 to 0.
5107 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
5108 there are no pending characters.
5109
e45deb9e 51102005-11-03 Hollis Blanchard <hollis@penguinppc.org>
5111
5112 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
5113 `grub_strndup' to drop device arguments. Replace unnecessary
5114 `grub_strndup' with `grub_strdup'.
5115
4ce32619 51162005-11-03 Hollis Blanchard <hollis@penguinppc.org>
5117
5118 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
5119 `debug' environment variable has been set.
5120
51212005-11-02 Hollis Blanchard <hollis@penguinppc.org>
5122
5123 * Makefile.in (install-local): Use $(DATA).
5124 (uninstall): Likewise.
5125 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
5126 (sbin_UTILITIES): ... to here.
5127 (sbin_SCRIPTS): New variable.
5128 (grub_install_SOURCES): New variable.
5129 * util/powerpc/ieee1275/grub-install.in: New file.
5130 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
5131 variable.
5132 (add_segments): Call `grub_util_get_path'.
5133
25fe6f03 51342005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
5135
5136 From Timothy Baldwin:
5137 * commands/ls.c (grub_ls_list_files): Close FILE with
5138 grub_file_close.
5139 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
5140
04ccf3ec 51412005-10-24 Marco Gerards <mgerards@xs4all.nl>
5142
5143 * include/grub/parser.h: New file.
5144
5145 * kern/parser.c: Likewise.
5146
5147 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
5148 (grub_setup_SOURCES): Likewise.
5149 (grub_probefs_SOURCES): Likewise.
5150 (grub_emu_SOURCES): Likewise.
5151 (kernel_img_HEADERS): Add `parser.h'.
5152
5153 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
5154 (grub_emu_SOURCES): Add `kern/parser.c'.
5155 (grubof_SOURCES): Likewise.
5156
5157 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
5158 (grubof_SOURCES): Add `kern/parser.c'.
5159
5160 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
5161
5162 * kern/misc.c (grub_split_cmdline): Removed function.
5163
5164 * kern/rescue.c: Include <grub/parser.h>.
5165 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
5166 of `grub_split_cmdline'.
5167
5168 * normal/command.c: Include <grub/parser.h>.
5169 (grub_command_execute): Use `grub_parser_split_cmdline' instead
5170 of `grub_split_cmdline'.
5171
5172 * normal/completion.c: Include <grub/parser.h>.
5173 (cmdline_state): New variable.
5174 (iterate_dir): End the filename with a quote depending on the
5175 command line state.
5176 (get_state): new function.
5177 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
5178 split the arguments and determine the current argument. When the
5179 argument string is not quoted, escape all spaces.
5180
6d8f4b0e 51812005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
5182
5183 * normal/sparc64/setjmp.S: New file.
5184
15cf03ed 51852005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
5186
5187 * include/grub/sparc64/libgcc.h: New file.
5188 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
5189 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
5190 normal/sparc64/setjmp.c.
5191
03e8661a 51922005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
5193
5194 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
5195 * kern/sparc64/cache.S: New file.
5196 * kern/sparc64/cache.c: Removed.
5197 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
5198 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
5199 -mtune=ultrasparc.
5200 (COMMON_LDFLAGS): Add -melf64_sparc.
5201 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
5202 (grubof_SOURCES): Use cache.S instead of cache.c.
5203 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
5204 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
5205 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
5206 commented though.
5207 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
5208 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
5209 (linux_mod_CFLAGS): Commented out.
5210 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
5211 out because module isn't built.
5212 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
5213 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
5214 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
5215 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
5216 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
5217 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
5218 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
5219 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
5220 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
5221 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
5222 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
5223 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
5224 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
5225 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
5226
34eeec8a 52272005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
5228
5229 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
5230 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
5231 longer, because HFS should not be used on PC.
5232
708367a3 52332005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
5234
5235 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
5236 consistently within the loop.
5237
6fa1251a 52382005-10-15 Marco Gerards <mgerards@xs4all.nl>
5239
5240 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
5241 directory can not be read.
5242
4801580b 52432005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
5244
5245 * configure.ac (AC_INIT): Increase the version number to 1.91.
5246
5247 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
5248 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
5249 term/i386/pc/serial.c.
5250
219ad426 52512005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
5252
5253 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
5254 file size must be permitted.
5255
5256 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
5257 between %ah and %al.
5258
688e5699 52592005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
5260
5261 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
5262 grub_uint64_t.
5263 Call the hook with a NUL-terminated filename.
5264 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
5265 grub_cpu_to_be32.
5266
5267 * kern/term.c (cursor_state): New variable.
5268 (grub_term_set_current): Reset the cursor state on a new
5269 terminal.
5270 (grub_setcursor): Rewritten to use CURSOR_STATE.
5271 (grub_getcursor): New function.
5272
5273 * include/grub/term.h (grub_getcursor): New prototype.
5274
5275 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
5276 integers on ARM. Reported by Timothy Baldwin
5277 <T.E.Baldwin99@members.leeds.ac.uk>.
5278
bb34586c 52792005-10-11 Marco Gerards <mgerards@xs4all.nl>
5280
5281 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
5282 allocated.
5283 (grub_sfs_dir): Likewise.
5284
9a909877 52852005-10-09 Marco Gerards <mgerards@xs4all.nl>
5286
5287 Add support for the SFS filesystem.
5288
5289 * fs/sfs.c: New file.
5290
5291 * DISTLIST: Added `fs/sfs.c'.
5292
5293 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
5294 (grub_probefs_SOURCES): Likewise.
5295 (grub_emu_SOURCES): Likewise.
5296 (pkgdata_MODULES): Add `sfs.mod'.
5297 (sfs_mod_SOURCES): New variable.
5298 (sfs_mod_CFLAGS): Likewise.
5299 (sfs_mod_LDFLAGS): Likewise.
5300
5301 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
5302 (pkgdata_MODULES): Add `sfs.mod'.
5303 (sfs_mod_SOURCES): New variable.
5304 (sfs_mod_CFLAGS): Likewise.
5305
5306 * util/grub-emu.c (main): Call `grub_sfs_init' and
5307 `grub_sfs_fini'.
5308
5309 * include/grub/fs.h (grub_sfs_init): New prototype.
5310 (grub_sfs_fini): Likewise.
5311
57bdbde3 53122005-10-07 Marco Gerards <mgerards@xs4all.nl>
5313
5314 Add support for the AFFS filesystem.
5315
5316 * fs/affs.c: New file.
5317
5318 * DISTLIST: Added `fs/affs.c'.
5319
5320 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
5321 (grub_probefs_SOURCES): Likewise.
5322 (grub_emu_SOURCES): Likewise.
5323 (pkgdata_MODULES): Add `affs.mod'.
5324 (affs_mod_SOURCES): New variable.
5325 (affs_mod_CFLAGS): Likewise.
5326 (affs_mod_LDFLAGS): Likewise.
5327
5328 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
5329 (pkgdata_MODULES): Add `affs.mod'.
5330 (affs_mod_SOURCES): New variable.
5331 (affs_mod_CFLAGS): Likewise.
5332
5333 * util/grub-emu.c (main): Call `grub_affs_init' and
5334 `grub_affs_fini'.
5335
5336 * include/grub/fs.h (grub_affs_init): New prototype.
5337 (grub_affs_fini): Likewise.
5338
047b67e0 53392005-10-01 Marco Gerards <mgerards@xs4all.nl>
5340
5341 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
5342
59b8208a 53432005-10-01 Marco Gerards <mgerards@xs4all.nl>
5344
5345 * configure.ac: Accept `x86_64' as host_cpu. In that case add
5346 `-m32' to CFLAGS.
5347
5348 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
5349 linking.
5350
5351 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
5352 (COMMON_LDFLAGS): New variable.
5353 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
5354 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
5355 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
5356 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
5357 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
5358 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
5359 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
5360 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
5361 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
5362 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
5363 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
5364 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
5365 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
5366 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
5367 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
5368 variables.
5369 (normal_mod_ASFLAGS): Add `-m32'.
5370
5371 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
5372 (grub_host_size_t, grub_host_ssize_t): New types.
5373 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
5374 dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
5375 `GRUB_HOST_SIZEOF_VOID_P'.
5376
5377 * include/grub/kernel.h (struct grub_module_header): Type of
5378 member offset changed to `grub_host_off_t'. Type of member size
5379 changed to `grub_host_size_t'.
5380 (struct grub_module_info): Type of member offset changed to
5381 `grub_host_off_t'. Type of member size changed to
5382 `grub_host_size_t'.
5383
b4093103 53842005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
5385
5386 Make GRUB's kernel compliant to Multiboot Specification.
5387
5388 * kern/i386/pc/startup.S (multiboot_header): New label.
5389 (multiboot_entry): Likewise.
5390 (multiboot_trampoline): Likewise.
5391
5392 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
5393 Increased to 0x4A0.
5394
5395 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
5396 put parentheses after a question mark.
5397 [!GRUB_UTIL] (my_mod): New variable.
5398
5399 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
5400
b2499b29 54012005-09-28 Marco Gerards <mgerards@xs4all.nl>
5402
5403 Adds support for the XFS filesystem. Btrees are not supported
5404 yet.
5405
5406 * fs/xfs.c: New file.
5407
5408 * DISTLIST: Added `fs/xfs.c'.
5409
5410 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
5411 (grub_probefs_SOURCES): Likewise.
5412 (grub_emu_SOURCES): Likewise.
5413 (pkgdata_MODULES): Add `xfs.mod'.
5414 (xfs_mod_SOURCES): New variable.
5415 (xfs_mod_CFLAGS): Likewise.
5416
5417 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
5418 (pkgdata_MODULES): Add `xfs.mod'.
5419 (xfs_mod_SOURCES): New variable.
5420 (xfs_mod_CFLAGS): Likewise.
5421
5422 * util/grub-emu.c (main): Call `grub_xfs_init' and
5423 `grub_xfs_fini'.
5424
5425 * include/grub/fs.h (grub_xfs_init): New prototype.
5426 (grub_xfs_fini): Likewise.
5427
5428
83d37a62 54292005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
5430
5431 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
5432 color modes, allow greater than 16 colors to be configured as
5433 a default palette.
5434
47d2d65e 54352005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5436
5437 * normal/completion.c (complete_arguments): Add the qualifier
5438 const into OPTIONS.
5439
5440 From Omniflux <omniflux+lists@omniflux.com>:
5441 * include/grub/terminfo.h: New file.
5442 * include/grub/tparm.h: Likewise.
5443 * include/grub/i386/pc/serial.h: Likewise.
5444 * term/terminfo.c: Likewise.
5445 * term/tparm.c: Likewise.
5446 * term/i386/pc/serial.c: Likewise.
5447 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
5448 serial.mod.
5449 (terminfo_mod_SOURCES): New variable.
5450 (terminfo_mod_CFLAGS): Likewise.
5451 (serial_mod_SOURCES): Likewise.
5452 (serial_mod_CFLAGS): Likewise.
5453
48b671ff 54542005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
5455
5456 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
5457 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
5458 and kern/powerpc/ieee1275/cmain.c, respectively.
5459
5460 * boot/powerpc/ieee1275/crt0.S: Moved to ...
5461 * kern/powerpc/ieee1275/crt0.S: ... here.
5462
5463 * boot/powerpc/ieee1275/cmain.c: Moved to ...
5464 * kern/powerpc/ieee1275/cmain.c: ... here.
5465
5466 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
5467 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
5468 instead of boot/powerpc/ieee1275/crt0.S and
5469 boot/powerpc/ieee1275/cmain.c, respectively.
5470
5471 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
5472 sectors. It was not used anyway.
5473
09fc77a7 54742005-08-30 Hollis Blanchard <hollis@penguinppc.org>
5475
5476 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
5477 `unused parameter' warning.
5478
003789c7 54792005-08-30 Hollis Blanchard <hollis@penguinppc.org>
5480
5481 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
5482 function.
5483 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
5484 getcharwidth.
5485
67f44c86 54862005-08-28 Marco Gerards <metgerards@student.han.nl>
5487
5488 * include/grub/normal.h (enum grub_completion_type): Added
5489 `GRUB_COMPLETION_TYPE_ARGUMENT'.
5490
5491 * normal/cmdline.c (print_completion): Handle
5492 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
5493 * normal/menu_entry.c (store_completion): Likewise.
5494
5495 * normal/completion.c (complete_arguments): New function.
5496 (grub_normal_do_completion): Call `complete_arguments' when the
5497 current words start with a dash.
5498
0b5abe02 54992005-08-27 Marco Gerards <metgerards@student.han.nl>
5500
5501 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
5502 `gzio.mod' instead of `io.mod').
5503
d9864ee1 55042005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
5505
5506 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
5507 (DISTDIRS): Added io and video.
5508 Rewrite the search routine to make an output consistently.
5509
5510 * DISTLIST: Added conf/sparc64-ieee1275.mk,
5511 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
5512 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
5513 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
5514 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
5515 util/powerpc/ieee1275/misc.c.
5516
5517 * include/grub/gzio.h: New file.
5518 * io/gzio.c: Likewise.
5519
5520 * kern/file.c (grub_file_close): Call grub_device_close only if
5521 FILE->DEVICE is not NULL.
5522
5523 * include/grub/mm.h [!NULL] (NULL): New macro.
5524
5525 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
5526
5527 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
5528 (pkgdata_MODULES): Added gzio.mod.
5529 (gzio_mod_SOURCES): New variable.
5530 (gzio_mod_CFLAGS): Likewise.
5531
5532 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
5533 (pkgdata_MODULES): Added gzio.mod.
5534 (gzio_mod_SOURCES): New variable.
5535 (gzio_mod_CFLAGS): Likewise.
5536
5537 * commands/cat.c: Include grub/gzio.h.
5538 (grub_cmd_cat): Use grub_gzfile_open instead of
5539 grub_file_open.
5540
5541 * commands/cmp.c: Include grub/gzio.h.
5542 (grub_cmd_cmp): Use grub_gzfile_open instead of
5543 grub_file_open.
5544
5545 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
5546 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
5547 grub_file_open.
5548 (grub_rescue_cmd_module): Likewise.
5549
fa46f4b5 55502005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
5551
5552 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
5553 kern/sparc64/ieee1275/init.c because it contains _start.
5554 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
5555
e9211b5d 55562005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
5557
5558 * configure.ac: Add support for sparc64 host with ieee1275
5559 firmware.
5560 * configure: Generated from configure.ac.
5561 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
5562 instead of int.
5563 (grub_ofdisk_read): Likewise.
5564 (grub_ofdisk_open): Use %p to print pointer values, and cast the
5565 pointers as (void *) to remove a warning.
5566 (grub_ofdisk_close): Likewise.
5567 (grub_ofdisk_read): Likewise.
5568 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
5569 returns, so make it return void to remove a warning.
5570 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
5571 Corresponding prototype change.
5572 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
5573 values, and cast the pointers as (void *) to remove a warning.
5574 (grub_mm_dump): Likewise.
5575 * conf/sparc64-ieee1275.mk: New file.
5576 * conf/sparc64-ieee1275.rmk: Likewise.
5577 * include/grub/sparc64/setjmp.h: Likewise.
5578 * include/grub/sparc64/types.h: Likewise.
5579 * include/grub/sparc64/ieee1275/console.h: Likewise.
5580 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
5581 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
5582 * include/grub/sparc64/ieee1275/time.h: Likewise.
5583 * kern/sparc64/cache.c: Likewise.
5584 * kern/sparc64/dl.c: Likewise.
5585 * kern/sparc64/ieee1275/init.c: Likewise.
5586 * kern/sparc64/ieee1275/openfw.c: Likewise.
5587
385c6a92 55882005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
5589
5590 * util/console.c (grub_ncurses_putchar): If C is greater than
5591 0x7f, set C to a question mark.
5592 (grub_ncurses_getcharwidth): New function.
5593 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
5594 getcharwidth.
5595
5596 * normal/menu.c (print_entry): Made aware of Unicode. First,
5597 convert TITLE to UCS-4, and predict the cursor position by
5598 grub_getcharwidth.
5599
5600 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
5601 const to SRC.
5602 * kern/misc.c (grub_utf16_to_utf8): Likewise.
5603
16ccb8b1 56042005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
5605
5606 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
5607 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
5608 grub_strcat.
5609
5610 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
5611 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
5612 grub_strcpy and grub_strlen. Take it into account that a space
5613 character is inserted as a delimiter.
5614
6a85ce79 56152005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
5616
5617 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
5618 invalid magic in thre error.
5619
5620 * commands/search.c: New file.
5621
5622 * util/grub-emu.c (main): Call grub_search_init and
5623 grub_search_fini.
5624
5625 * kern/rescue.c (grub_rescue_print_disks): Removed.
5626 (grub_rescue_print_devices): New function.
5627 (grub_rescue_cmd_ls): Use grub_device_iterate with
5628 grub_rescue_print_devices instead of grub_disk_dev_iterate with
5629 grub_rescue_print_disks.
5630
5631 * kern/partition.c (grub_partition_iterate): Return the result of
5632 PARTMAP->ITERATE instead of GRUB_ERRNO.
5633
5634 * kern/device.c: Include grub/partition.h.
5635 (grub_device_iterate): New function.
5636
5637 * include/grub/partition.h (grub_partition_iterate): Return int
5638 instead of grub_err_t.
5639
5640 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
5641 prototype.
5642 [GRUB_UTIL] (grub_search_fini): Likewise.
5643
5644 * include/grub/device.h (grub_device_iterate): New prototype.
5645
5646 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
5647 commands/search.c.
5648 (pkgdata_MODULES): Added search.mod.
5649 (search_mod_SOURCES): New variable.
5650 (search_mod_CFLAGS): Likewise.
5651
5652 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
5653 (pkgdata_MODULES): Added search.mod.
5654 (search_mod_SOURCES): New variable.
5655 (search_mod_CFLAGS): Likewise.
5656
5657 * commands/ls.c (grub_ls_list_disks): Renamed to ...
5658 (grub_ls_list_devices): ... this, and use grub_device_iterate.
5659 All callers changed.
5660
5661 * DISTLIST: Added commands/search.c.
5662
ef095434 56632005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
5664
5665 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
5666 conversion.
5667 (grub_getcharwidth): New function.
5668
5669 * kern/misc.c (grub_utf8_to_ucs4): New function.
5670
5671 * include/grub/term.h (struct grub_term): Added a new member
5672 "getcharwidth".
5673 (grub_getcharwidth): New prototype.
5674
5675 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
5676
5677 * term/i386/pc/console.c (map_char): New function. Segregated from
5678 grub_console_putchar.
5679 (grub_console_putchar): Use map_char.
5680 (grub_console_getcharwidth): New function.
5681 (grub_console_term): Specified grub_console_getcharwidth as
5682 getcharwidth.
5683
5684 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
5685 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
5686
5687 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
5688 GRUB_ERRNO.
5689 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
5690 on grub_strtoul completely.
5691 (write_char): Declare local variables in the beginning of the
5692 function.
5693 (grub_vesafb_getcharwidth): New function.
5694 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
5695 getcharwidth.
5696
1f0a95e4 56972005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
5698
5699 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
5700 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
5701 commands/i386/pc/vbetest.c.
5702
5703 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
5704 call grub_vbe_get_controller_info again, because the returned
5705 information is volatile.
5706 (grub_vbe_set_video_mode): Mostly rewritten.
5707 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
5708 grub_vbe_status_t correctly.
5709 (grub_vbe_get_video_mode_info): Likewise.
5710 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
5711 several if statements.
5712
5713 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
5714 * commands/i386/pc/vbeinfo.c: ... this.
5715
5716 * commands/i386/pc/vbe_test.c: Renamed to ...
5717 * commands/i386/pc/vbetest.c: ... this.
5718
5719 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
5720 ...
5721 (grub_cmd_vbeinfo): ... this. Save video modes before
5722 iterating. Skip a video mode, if it is not available, not enough
5723 information is given or it is monochrome. Show the memory
5724 model. Leave the interpretation of MODEVAR to grub_strtoul
5725 completely.
5726 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
5727 (GRUB_MOD_FINI): Likewise.
5728
5729 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
5730 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
5731 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
5732 duplicated grub_env_get. Leave the interpretation of MODEVAR to
5733 grub_strtoul completely.
5734 (real2pm): Removed.
5735 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
5736 (GRUB_MOD_FINI): Likewise.
5737
5738 * normal/misc.c: Include grub/mm.h.
5739
5740 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
5741 vbe_list_modes with vbetest.mod and vbeinfo.mod.
5742 (vbe_list_modes_mod_SOURCES): Removed.
5743 (vbe_list_modes_mod_CFLAGS): Likewise.
5744 (vbe_test_mod_SOURCES): Likewise.
5745 (vbe_test_mod_CFLAGS): Likewise.
5746 (vbeinfo_mod_SOURCES): New variable.
5747 (vbeinfo_mod_CFLAGS): Likewise.
5748 (vbetest_mod_SOURCES): Likewise.
5749 (vbetest_mod_CFLAGS): Likewise.
5750
992ffbbe 57512005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
5752
5753 * normal/misc.c: New file.
5754
5755 * DISTLIST: Added normal/misc.c.
5756
5757 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
5758 DISK to HOOK. Call HOOK with DISK.
5759 * partmap/apple.c (apple_partition_map_iterate): Likewise.
5760 * partmap/pc.c (pc_partition_map_iterate): Likewise.
5761 * partmap/sun.c (sun_partition_map_iterate): Likewise.
5762
5763 * normal/menu_entry.c (struct screen): Added a new member
5764 "completion_shown".
5765 (completion_buffer): New global variable.
5766 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
5767 (store_completion): New function.
5768 (complete): Likewise.
5769 (clear_completions): Likewise.
5770 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
5771 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
5772 a tab, call complete.
5773
5774 * normal/completion.c (disk_dev): Removed.
5775 (print_simple_completion): Likewise.
5776 (print_partition_completion): Likewise.
5777 (print_func): New global variable.
5778 (add_completion): Do not take the arguments WHAT or PRINT any
5779 longer. Added a new argument TYPE. Instead of printing directly,
5780 call PRINT_FUNC if not NULL.
5781 All callers changed.
5782 (complete_device): Use a local variable DEV instead of
5783 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
5784 (grub_normal_do_completion): Take a new argument HOOK. Do not
5785 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
5786 empty string, return NULL instead.
5787 All callers changed.
5788
5789 * normal/cmdline.c (print_completion): New function.
5790
5791 * kern/partition.c (grub_partition_iterate): Add an argument DISK
5792 to HOOK.
5793 All callers changed.
5794
5795 * kern/disk.c (grub_print_partinfo): Removed.
5796
5797 * include/grub/partition.h (struct grub_partition_map): Add a new
5798 argument DISK into HOOK of ITERATE.
5799 (grub_partition_iterate): Add a new argument DISK to HOOK.
5800
5801 * include/grub/normal.h (enum grub_completion_type): New enum.
5802 (grub_completion_type_t): New type.
5803 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
5804 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
5805 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
5806 (GRUB_COMPLETION_TYPE_FILE): Likewise.
5807 (grub_normal_do_completion): Added a new argument HOOK.
5808 (grub_normal_print_device_info): New prototype.
5809
5810 * include/grub/disk.h (grub_print_partinfo): Removed.
5811
5812 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
5813 (normal_mod_SOURCES): Likewise.
5814 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5815 (normal_mod_SOURCES): Likewise.
5816
5817 * commands/ls.c (grub_ls_list_disks): Use
5818 grub_normal_print_device_info instead of grub_print_partinfo. Free
5819 PNAME.
5820 (grub_ls_list_files): Use grub_normal_print_device_info instead of
5821 duplicating the code.
5822
0bd41162 58232005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
5824
5825 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
5826 follow GCS more precisely.
5827 * commands/i386/pc/vbe_test.c: Likewise.
5828 * include/grub/i386/pc/vbe.h: Likewise.
5829 * term/i386/pc/vesafb.c: Likewise.
5830 * video/i386/pc/vbe.c: Likewise.
5831
6323696a 58322005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
5833
5834 * DISTLIST: Added term/i386/pc/vesafb.c
5835 DISTLIST: Added video/i386/pc/vbe.c
5836 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
5837 DISTLIST: Added commands/i386/pc/vbe_test.c.
5838 * commands/i386/pc/vbe_list_modes.c: New file.
5839 * commands/i386/pc/vbe_test.c: Likewise.
5840 * term/i386/pc/vesafb.c: Likewise.
5841 * video/i386/pc/vbe.c: Likewise.
5842 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
5843 (grub_vbe_probe) Added prototype.
5844 (grub_vbe_set_video_mode) Likewise.
5845 (grub_vbe_get_video_mode) Likewise.
5846 (grub_vbe_get_video_mode_info) Likewise.
5847 (grub_vbe_set_pixel_rgb) Likewise.
5848 (grub_vbe_set_pixel_index) Likewise.
5849 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
5850 (pkgdata_MODULES): Added vesafb.mod.
5851 (pkgdata_MODULES): Added vbe_list_modes.mod.
5852 (pkgdata_MODULES): Added vbe_test.mod.
5853 (vbe_mod_SOURCES): Added.
5854 (vbe_mod_CFLAGS): Likewise.
5855 (vesafb_mod_SOURCES): Likewise.
5856 (vesafb_mod_CFLAGS): Likewise.
5857 (vbe_list_modes_mod_SOURCES): Likewise.
5858 (vbe_list_modes_mod_CFLAGS): Likewise.
5859 (vbe_test_mod_SOURCES): Likewise.
5860 (vbe_test_mod_CFLAGS): Likewise.
5861
0a74e62f 58622005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
5863
0a74e62f 5864 * normal/command.c (grub_command_execute): If INTERACTIVE is
5865 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
5866 CMDLINE. Disable the pager if INTERACTIVE is true.
5867 All callers are changed.
5868
5869 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
5870 before reading a config file.
5871 * normal/main.c (read_config_file): Even if a command is not
5872 found, register it if it is within an entry.
5873
5874 * util/grub-emu.c: Include sys/types.h and unistd.h.
5875 (options): Added --hold.
5876 (struct arguments): Added a new member "hold".
5877 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
5878 missing.
5879 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
5880 cleared by a debugger, if it is not zero.
5881
5882 * include/grub/normal.h (grub_command_execute): Add an argument
5883 INTERACTIVE.
5884
e51f85ae 58852005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
5886
5887 * DISTLIST: Added include/grub/i386/pc/vbe.h.
5888
e9c6f39b 58892005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
5890
5891 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
5892 program with another one, because the old one didn't detect a bug
5893 in gcc-3.4. Always use regparm 2, because the new test is still
5894 not enough for gcc-4.0. Someone must investigate a simple test
5895 case which detects a bug in gcc-4.0.
5896
8de3495c 58972005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
5898
5899 * DISTLIST: Added normal/completion.c.
5900
5901 * normal/completion.c: New file.
5902
5903 * term/i386/pc/console.c (grub_console_getwh): New function.
5904 (grub_console_term): Assign grub_console_getwh to getwh.
5905
5906 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
5907 function is defined in normal/completion.c as
5908 grub_normal_do_completion.
5909 (grub_cmdline_get): Use grub_normal_do_completion instead of
5910 grub_tab_complete.
5911
5912 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
5913 returns non-zero, otherwise return 0.
5914 (grub_partition_iterate): First, probe the partition map. Then,
5915 call ITERATE only for this partition map.
5916
5917 * kern/misc.c (grub_strncmp): Rewritten.
5918
5919 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
5920 returns non-zero. Otherwise return 0.
5921
5922 * include/grub/partition.h (grub_partition_map_iterate): Return
5923 int instead of void.
5924
5925 * include/grub/normal.h (grub_normal_do_completion): New prototype.
5926
5927 * include/grub/misc.h (grub_strncmp): Change the type of N to
5928 grub_size_t.
5929
5930 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
5931 of void.
5932
5933 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
5934 unsigned explictly before comparing it with I.
5935
5936 * kern/main.c (grub_env_write_root): Add the attribute unused into
5937 VAR.
5938
5939 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
5940 normal/completion.c.
5941 (normal_mod_SOURCES): Likewise.
5942 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5943 (normal_mod_SOURCES): Likewise.
5944
5945 * normal/command.c (grub_iterate_commands): If ITERATE returns
5946 non-zero, return one immediately.
5947
e85e144b 59482005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
5949
5950 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
5951 * kern/i386/pc/startup.S: Updated Global Descriptor table's
5952 descriptions.
5953 (grub_vbe_get_controller_info): New function.
5954 (grub_vbe_get_mode_info): Likewise.
5955 (grub_vbe_set_mode): Likewise.
5956 (grub_vbe_get_mode): Likewise.
5957 (grub_vbe_set_memory_window): Likewise.
5958 (grub_vbe_get_memory_window): Likewise.
5959 (grub_vbe_set_scanline_length): Likewise.
5960 (grub_vbe_get_scanline_length): Likewise.
5961 (grub_vbe_set_display_start): Likewise.
5962 (grub_vbe_get_display_start): Likewise.
5963 (grub_vbe_set_palette_data): Likewise.
5964 * include/grub/i386/pc/vbe.h: New file.
5965
c46153d2 59662005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5967
5968 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
5969 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
5970 * DISTLIST: Likewise.
5971 * kern/ieee1275/of.c: Moved to ...
5972 * kern/ieee1275/ieee1275.c: ... here.
5973
0cb90c45 59742005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5975
5976 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
5977 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
5978 Pass 0 as `end' parameter to grub_strtoul().
5979
a19fb360 59802005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5981
5982 * include/grub/powerpc/ieee1275/console.h: Do not include
5983 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
5984 ifdef.
5985 (grub_console_cur_color): Remove i386-specific prototype.
5986 (grub_console_real_putchar): Likewise.
5987 (grub_console_checkkey): Likewise.
5988 (grub_console_getkey): Likewise.
5989 (grub_console_getxy): Likewise.
5990 (grub_console_gotoxy): Likewise.
5991 (grub_console_cls): Likewise.
5992 (grub_console_setcursor): Likewise.
5993 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
5994 Include <grub/machine/console.h>.
5995 * term/ieee1275/ofconsole.c: Likewise.
5996
4ac9bd04 59972005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
5998
5999 * Makefile.in (LIBLZO): New variable.
6000
6001 * configure.ac: Check for LZO version 2.
6002
6003 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
6004 lzo/lzo1x.h instead of lzo1x.h.
6005
6006 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
6007 of -llzo.
6008
6009 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
6010 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
6011
6012 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
6013 copying the data from PARTITION to P.
6014
f4917dfd 60152005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
6016
6017 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
6018 negative, unload the module.
6019
6020 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
6021 map is "pc_partition_map" but not "pc".
6022 (usage): Fix the description. The options are --boot-image and
6023 --core-image but not --boot-file or --core-file.
6024 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
6025 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
6026 DEFAULT_DIRECTORY.
6027
6028 * util/i386/pc/grub-install.in: Do not specify --boot-file or
6029 --core-file. Specify INSTALL_DEVICE as an argument.
6030
6031 * util/console.c: Include config.h.
6032 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
6033 [HAVE_NCURSES_H]: Include ncurses.h.
6034 [HAVE_CURSES_H]: Include curses.h.
6035 [!A_NORMAL] (A_NORMAL): Defined as zero.
6036 [!A_STANDOUT] (A_STANDOUT): Likewise.
6037
6038 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
6039 -lncurses.
6040 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
6041
6042 * configure.ac: Check for curses libraries and headers.
6043
6044 * Makefile.in (LIBCURSES): New variable.
6045
6046 * genmk.rb (Script::rule): Set the executable bits.
6047
6048 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
6049 name of the PC partition map is "pc_partition_map" but not "pc".
6050
0e143073 60512005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
6052
6053 * util/i386/pc/grub-install.in (grub_probefs): New variable.
6054 (modules): Likewise.
6055 (usage): Added descriptions for --modules and --grub-probefs.
6056 Handle --modules and --grub-probefs. Save the arguments in MODULES
6057 and GRUB_PROBEFS, respectively.
6058 Auto-detect a filesystem module against GRUBDIR. If the result is
6059 empty and modules are not specified explicitly, abort the
6060 installation. Add the result to MODULES.
6061
6062 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
6063 disk/powerpc/ieee1275/ofdisk.c,
6064 include/grub/powerpc/ieee1275/init.h and
6065 term/powerpc/ieee1275/ofconsole.c.
6066 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
6067 term/ieee1275/ofconsole.c.
6068
6069 * include/grub/powerpc/ieee1275/console.h: Resurrected.
6070
6071 * COPYING: Upgraded to the latest version. Only the address of the
6072 FSF office has changed.
6073
efd6e6d5 60742005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
6075
6076 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
6077 kern/ieee1275.c with kern/ieee1275/of.c.
6078
6079 * kern/ieee1275.c: Moved to ...
6080 * kern/ieee1275/of.c: ... here.
6081
8ceafda2 60822005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
6083
6084 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
6085 readablity.
6086
6087 * config.guess: Updated to the latest version from gnulib.
6088 * config.sub: Likewise.
6089 * install.sh: Likewise.
6090 * mkinstalldirs: Likewise.
6091
6092 * include/grub/console.h: Removed. This file is arch-specific. Do
6093 not put this in include/grub.
6094
6095 * include/grub/i386/pc/console.h: Resurrected.
6096
6097 * util/console.c: Include grub/machine/console.h instead of
6098 grub/console.h.
6099 * util/grub-emu.c: Likewise.
6100
267f6cd9 61012005-08-04 Marco Gerards <metgerards@student.han.nl>
6102
6103 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
6104 hardcoded value.
6105
6106 From Vincent Pelletier <subdino2004@yahoo.fr>
6107 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
6108 Redefined to use grub_getwh.
6109 (grub_term): New member named getwh.
6110 (grub_getwh): New prototype.
6111 * kern/term.c (grub_getwh): New function.
6112 * term/i386/pc/console.c (grub_console_getwh): New function.
6113 (grub_console_term): New member `getwh'.
6114 * term/i386/pc/vga.c (grub_vga_getwh): New function.
6115 (grub_vga_term): New member `getwh'.
0b5abe02 6116 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 6117 grub_ssize_t.
6118 (grub_ofconsole_getw): New function.
6119 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
6120 (grub_ofconsole_term): New field named getwh and new initial
6121 value.
6122
3be7266d 61232005-08-03 Hollis Blanchard <hollis@penguinppc.org>
6124
6125 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
6126 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
6127 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
6128 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
6129 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
6130 of <grub/machine/ieee1275.h>.
6131 * commands/ieee1275/reboot.c: Likewise.
6132 * boot/powerpc/ieee1275/ieee1275.c: Move ...
6133 * kern/ieee1275.c: ... to here. All users updated. Change all
6134 parameter structs to use new type `grub_ieee1275_cell_t'.
6135 * term/powerpc/ieee1275/ofconsole.c: Move ...
6136 * term/ieee1275/ofconsole.c: ... to here. All users updated.
6137 * disk/powerpc/ieee1275/ofdisk.c: Move ...
6138 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
6139 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
6140 to return int.
6141 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
6142 Remove unused prototypes. All users updated.
6143 * include/grub/powerpc/ieee1275/console.h: Removed.
6144 * include/grub/powerpc/ieee1275/ieee1275.h: Define
6145 `grub_ieee1275_cell_t'.
6146 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
6147 Cast comparisons with -1 to the correct type.
6148 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
6149 type to match `grub_ieee1275_entry_fn'.
6150
8b5f3938 61512005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
6152
6153 * DISTLIST: Added util/i386/pc/grub-probefs.c.
6154
6155 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
6156 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
6157 partmap/sun.c.
6158 (grub_probefs_SOURCES): New variable.
6159
6160 * util/i386/pc/grub-probefs.c: New file.
6161
6162 * util/i386/pc/grub-setup.c (main): Call
6163 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
6164 grub_hfs_init and grub_jfs_init to initialize the system. Call
6165 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
6166 grub_pc_partition_map_fini to finish the system.
6167
ea409713 61682005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
6169
6170 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
6171 function.
6172 (grub_multiboot_load_elf32): Likewise.
6173 (grub_multiboot_is_elf64): Likewise.
6174 (grub_multiboot_load_elf64): Likewise.
6175 (grub_multiboot_load_elf): Likewise.
6176 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
6177 an ELF32 or ELF64 file.
6178 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
6179
6180 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
6181 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
6182 NULL before calling FS->LABEL.
6183 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
6184 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
6185 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
6186 before calling FS->LABEL.
6187
141a288b 61882005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
6189
6190 * util/i386/pc/grub-install.in (datadir): New variable.
6191 (libdir): Removed.
6192 (pkgdatadir): New variable.
6193 (pkglibdir): Removed.
6194
0d5f8a54 61952005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
6196
6197 * DISTLIST: Added util/i386/pc/grub-install.in.
6198
6199 * util/i386/pc/grub-install.in: New file.
6200
6201 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
6202 (grub_install_SOURCES): Likewise.
6203
6204 * genmk.rb: Added support for scripts.
6205 (Script): New class.
6206 (scripts): New variable.
6207
6208 * Makefile.in (install-local): Install sbin_SCRIPTS by
6209 INSTALL_SCRIPT.
6210 (uninstall): Remove sbin_SCRIPTS.
6211
6212 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
6213 device, try to get a GRUB device by
6214 grub_util_biosdisk_get_grub_dev.
6215 Free DEST_DEV.
6216
6217 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
6218 description for --device-map.
6219
5f968e1e 62202005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
6221
6222 Change the semantics of variable hooks. They now return strings
6223 instead of error values.
6224
6225 * util/i386/pc/grub-setup.c: Include grub/env.h.
6226 (setup): Use grub_device_set_root instead of grub_env_set.
6227
6228 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
6229 grub_env_get instead of grub_device_set_root and
6230 grub_device_get_root, respectively.
6231
6232 * kern/main.c (grub_env_write_root): New function.
6233 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
6234 grub_env_set instead of grub_device_set_root.
6235
6236 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
6237 many variables.
6238 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
6239 rather than calling ENV->WRITE_HOOK afterwards.
6240 (grub_env_get): Return the result of ENV->READ_HOOK rather than
6241 passing a pointer of a pointer.
6242 (grub_register_variable_hook): Change the types of "read_hook" and
6243 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
6244 respectively.
6245 Allocate the default empty string on the heap, because this string
6246 may be freed later.
6247
6248 * kern/device.c: Include grub/env.h.
6249 (grub_device_set_root): Removed.
6250 (grub_device_get_root): Likewise.
6251 (grub_device_open): Use grub_env_get instead of
6252 grub_device_get_root.
6253
6254 * include/grub/env.h (grub_env_read_hook_t): New type.
6255 (grub_env_write_hook_t): Likewise.
6256 (grub_env_var): Change the types of "read_hook" and "write_hook"
6257 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
6258 (grub_register_variable_hook): Likewise.
6259
6260 * include/grub/device.h (grub_device_set_root): Removed.
6261 (grub_device_set_root): Likewise.
6262
6263 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
6264 make sure that DIRNAME terminates with '/', so that
6265 grub_fat_find_dir will fail if PATH is not a directory.
6266
6267 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
6268 from DIRNAME.
6269 Use the qualifier auto for print_files and print_files_long.
6270 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
6271 as a regular file.
6272 Put a newline only if there is no error.
6273 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
6274 used.
6275
896f0afd 62762005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
6277
6278 * kern/partition.c (grub_partition_probe): Initialize PART to
6279 NULL. Otherwise, when no partition map is registered, this returns
6280 a garbage.
6281
b28b81b2 62822005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
6283
6284 * partmap/apple.c (apple_partition_map_iterate): Check if POS
6285 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
6286 valid.
6287
5f3607e0 62882005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
6289
6290 * commands/ls.c (grub_ls_list_disks): Print the filesystem
6291 information on each device, if it does not have partitions. Print
6292 "Device" instead of "Disk", because this function is not specific
6293 to disk devices.
6294
6295 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
6296 static to ensure that it is put on the memory rather than a
6297 register.
6298
502c87e8 62992005-07-17 Yoshinori Okuji <okuji@enbug.org>
6300
6301 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
6302 (grub_cat_init): Likewise.
6303 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
6304 (options): Likewise.
6305 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
6306 (grub_configfile_init): Likewise.
6307 * font/manager.c (GRUB_MOD_INIT): Likewise.
6308 * commands/help.c (GRUB_MOD_INIT): Likewise.
6309 (grub_help_init): Likewise.
6310 * normal/command.c (grub_command_init): Likewise.
6311 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
6312 * disk/loopback.c (grub_loop_init): Likewise.
6313 (GRUB_MOD_INIT): Likewise.
6314 * commands/ls.c (grub_ls_init): Likewise.
6315 (GRUB_MOD_INIT): Likewise.
6316 (options): Likewise.
6317 * commands/boot.c (grub_boot_init): Likewise.
6318 (GRUB_MOD_INIT): Likewise.
6319 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
6320 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
6321 (GRUB_MOD_INIT): Likewise.
6322 * commands/cmp.c (grub_cmp_init): Likewise.
6323 (GRUB_MOD_INIT): Likewise.
6324
6325 * normal/arg.c: Use <> instead of "" to include header files.
6326 (SHORT_ARG_HELP): New macro.
6327 (SHORT_ARG_USAGE): Likewise.
6328 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
6329 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
6330 descriptions.
6331 (find_short): Check if C is 'h' or 'u' explicitly.
6332 (grub_arg_show_help): Use space characters instead of tabs. Treat
6333 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
6334 are shown with --help and --usage only if they are not used for
6335 the command itself.
6336 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
6337 'h' and 'u'.
6338
6339 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
6340 const into "longarg". Change the type of "shortarg" to int.
6341
f806d18e 63422005-07-17 Yoshinori Okuji <okuji@enbug.org>
6343
6344 * boot/i386/pc/boot.S (boot_drive_check): New label.
6345
6346 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
6347 macro.
6348
6349 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
6350 which do not pass a boot drive correctly. Copied from GRUB Legacy.
6351
e293232b 63522005-07-17 Yoshinori Okuji <okuji@enbug.org>
6353
6354 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
6355 When turning off Gate A20, skip the check and return immediately,
6356 because this is not fatal usually.
6357
ebedfd00 63582005-07-17 Yoshinori Okuji <okuji@enbug.org>
6359
6360 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
6361 be 0x7C00 instead of 0x8000.
6362
6363 * boot/i386/pc/pxeboot.S: Rewritten.
6364
6365 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
6366 EXT_C.
6367 (gate_a20_check_state): Read a byte from 0x108000. Invert the
6368 result.
6369
654fc59f 63702005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
6371
6372 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
6373 robustness. This routine now supports a BIOS call and System
6374 Control Port A to modify the gate A20.
6375
6376 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
6377 Increased to 0x440.
6378
09f9923f 63792005-07-12 Hollis Blanchard <hollis@penguinppc.org>
6380
6381 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
6382 device path and resulting ihandle.
6383 (grub_ofdisk_close): dprintf the ihandle being closed.
6384 (grub_ofdisk_read): dprintf function parameters.
6385 * kern/mm.c (grub_mm_init_region): Likewise.
6386 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
6387 (grub_linux_boot): dprintf the Linux entry point, initrd address and
6388 size, and boot arguments.
6389 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
6390 before loading into memory.
6391 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
6392 before loading into memory.
6393
7ef504d8 63942005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
6395
6396 * kern/mm.c: Added much documentation.
6397 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
6398 8, set to 5 instead of 8.
6399
e0f050c2 64002005-07-10 Yoshinori Okuji <okuji@enbug.org>
6401
6402 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
6403
6404 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
6405 (grub_mkdevicemap_SOURCES): New variable.
6406
6407 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
6408 lib/device.c of GRUB Legacy.
6409
7224189a 64102005-07-10 Yoshinori Okuji <okuji@enbug.org>
6411
6412 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
6413 instead of PATH is NULL.
6414
68c864eb 64152005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
6416
6417 * commands/cmp.c (BUFFER_SIZE): New macro.
6418 (grub_cmd_cmp): Close the right file at the right time. Compare
6419 only data just read. Don't report files of different size as
6420 identical. Dynamically allocate buffers. Move variable
6421 declarations at the beginning of function.
6422
e6f3e614 64232005-07-09 Yoshinori Okuji <okuji@enbug.org>
6424
6425 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
6426 reverse.
6427
f8f1559a 64282004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
6429
6430 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
6431 when backspace is pressed at beginning of line.
6432
39c9d41d 64332005-07-03 Yoshinori Okuji <okuji@enbug.org>
6434
6435 * DISTLIST: Added genfslist.sh.
6436
6437 * normal/main.c (fs_module_list): New variable.
6438 (autoload_fs_module): New function.
6439 (read_fs_list): Likewise.
6440 (grub_normal_execute): Call read_fs_list.
6441
6442 * kern/fs.c (grub_fs_autoload_hook): New variable.
6443 (grub_fs_probe): Added support for auto-loading.
6444
6445 * include/grub/normal.h (struct grub_fs_module_list): New struct.
6446 (grub_fs_module_list_t): New type.
6447
6448 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
6449 (grub_fs_autoload_hook): New prototype.
6450
6451 * genfslist.sh: New file.
6452
6453 * genmk.rb: Added a rule to generate a filesystem list.
6454
121c1d83 64552005-06-30 Marco Gerards <metgerards@student.han.nl>
6456
6457 * configure.ac: Fix the test for cross-compiling.
6458
6459 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
6460 define GRUB_UTIL anymore.
6461
6462 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
6463 so this function works on other systems than just big endian.
6464 (load_modules): Likewise.
6465 (add_segments): Likewise.
6466
e75d76e1 64672005-06-23 Hollis Blanchard <hollis@penguinppc.org>
6468
6469 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
6470 contains `l' modifier, get a long from va_arg().
6471
50b5a0a7 64722005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
6473
6474 * kern/mm.c (grub_free): If the next free block which is being
6475 merged is the first free block, set the first block to the block
6476 being freed.
6477 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
6478
89371b20 64792005-05-08 Hollis Blanchard <hollis@penguinppc.org>
6480
6481 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
6482 `grub_ieee1275_chosen'.
6483
168d6e58 64842005-05-08 Hollis Blanchard <hollis@penguinppc.org>
6485
6486 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
6487 (grub_ieee1275_chosen): New variable.
6488 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
6489 `chosen'.
6490 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
6491 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
6492 Rename first argument to `phandle' for consistency.
6493 (grub_ieee1275_get_property_length): Likewise.
6494 (grub_ieee1275_next_property): Likewise. Change type of first argument
6495 to grub_ieee1275_phandle_t.
6496 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
6497 Move export next to declaration.
6498 (grub_ieee1275_chosen): New variable.
6499 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
6500 Correct cosmetic typo.
6501 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
6502 `grub_ieee1275_chosen'.
6503 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
6504 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
6505 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
6506 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
6507 `grub_ieee1275_chosen'.
6508
ca5baa3f 65092005-05-10 Hollis Blanchard <hollis@penguinppc.org>
6510
6511 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
6512 /chosen/bootargs.
6513 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
6514 /chosen/bootargs as "variable=value" pairs.
6515
708b345f 65162005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
6517
6518 * include/grub/misc.h (grub_dprintf): New macro.
6519 (grub_real_dprintf): New prototype.
6520 (grub_strword): Likewise.
6521 (grub_iswordseparator): Likewise.
6522 * kern/misc.c (grub_real_dprintf): New function.
6523 (grub_strword): Likewise.
6524 (grub_iswordseparator): Likewise.
6525
f4c5e67c 65262005-04-30 Hollis Blanchard <hollis@penguinppc.org>
6527
6528 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
6529 (roundup): Remove macro.
6530 (grub_ieee1275_flags): Make static.
6531 (grub_ieee1275_realmode): Remove.
6532 (grub_ieee1275_test_flag): New function.
6533 (grub_ieee1275_set_flag): Likewise.
6534 (find_options): Rename to `grub_ieee1275_find_options'; update
6535 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
6536 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
6537 (cmain): New prototype.
6538 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
6539 `grub_ieee1275_flags' directly.
6540 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
6541 machine/biosdisk.h.
6542 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
6543 Don't include grub/machine/init.h.
6544 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
6545 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
6546 Remove prototype.
6547 (grub_ieee1275_realmode): Likewise.
6548 (grub_ieee1275_flag): New enum.
6549 (grub_ieee1275_test_flag): New prototype.
6550 (grub_ieee1275_set_flag): New prototype.
6551 * include/grub/powerpc/ieee1275/init.h: Remove file.
6552 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
6553 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
6554 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
6555 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
6556 comment.
6557 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
6558 `grub_ieee1275_test_flag'.
6559 (grub_ieee1275_encode_devname): Likewise.
6560
ed16607e 65612005-04-21 Hollis Blanchard <hollis@penguinppc.org>
6562
6563 * include/grub/powerpc/ieee1275/ieee1275.h
6564 (grub_ieee1275_encode_devname): New prototype.
6565 (grub_ieee1275_get_filename): Likewise.
6566 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
6567 function.
6568 (grub_set_prefix): Likewise.
6569 (grub_machine_init): Call grub_set_prefix.
6570 * kern/powerpc/ieee1275/openfw.c: Fix typos.
6571 (grub_parse_type): New enum.
6572 (grub_ieee1275_get_devargs): New function.
6573 (grub_ieee1275_get_devname): Likewise.
6574 (grub_ieee1275_parse_args): Likewise.
6575 (grub_ieee1275_get_filename): Likewise.
6576 (grub_ieee1275_encode_devname): Likewise.
6577
be369920 65782005-03-30 Marco Gerards <metgerards@student.han.nl>
6579
6580 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
6581 `grub_loader_unset'.
6582
a5ce3a4a 65832005-03-26 Hollis Blanchard <hollis@penguinppc.org>
6584
6585 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
6586 instead of grub_ieee1275_interpret.
6587 (grub_halt_init): New function.
6588 (grub_halt_fini): Likewise.
6589 (GRUB_MOD_INIT): Correct message grammar.
6590 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
6591 instead of grub_ieee1275_interpret.
6592 (grub_reboot_init): New function.
6593 (grub_reboot_fini): Likewise.
6594 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
6595 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
6596 util/i386/pc/misc.c with commands/ieee1275/halt.c,
6597 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
6598 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
6599 function.
6600 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
6601 Add prototype.
6602 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
6603 prototype.
6604 (grub_halt): Likewise.
6605 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
6606 (cmain): Remove __attribute__((unused)).
6607 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
6608 (grub_heap_len): Likewise.
6609 (grub_machine_fini): New function.
6610 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
6611 (grub_halt): Likewise.
6612 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
6613 function.
6614 * util/powerpc/ieee1275/misc.c: New file.
6615
0058f771 66162005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
6617
6618 * DISTLIST: New file.
6619 * gendistlist.sh: Likewise.
6620
6621 * Makefile.in (COMMON_DISTFILES): Removed.
6622 (BOOT_DISTFILES): Likewise.
6623 (CONF_DISTFILES): Likewise.
6624 (DISK_DISTFILES): Likewise.
6625 (FS_DISTFILES): Likewise.
6626 (INCLUDE_DISTFILES): Likewise.
6627 (KERN_DISTFILES): Likewise.
6628 (LOADER_DISTFILES): Likewise.
6629 (TERM_DISTFILES): Likewise.
6630 (UTIL_DISTFILES): Likewise.
6631 (DISTFILES): Likewise.
6632 (uninstall): Uninstall files in $(pkgdata_DATA).
6633 (DISTLIST): New target.
6634 (distdir): Use the contents of the file DISTLIST to get a list of
6635 distributed files.
6636
46b3b8a5 66372005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
6638
6639 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
6640 descriptor. This is ported from GRUB Legacy.
6641
6642 * gencmdlist.sh: Added an extra semicolon to make it work with
6643 old sed versions. Reported by Robert Bihlmeyer
6644 <robbe@orcus.priv.at>.
6645
5822ff87 66462005-03-08 Yoshinori Okuji <okuji@enbug.org>
6647
6648 Automatic loading of commands is supported.
6649
6650 * normal/main.c (read_command_list): New function.
6651 (grub_normal_execute): Call read_command_list.
6652
6653 * normal/command.c (grub_register_command): Return zero or CMD.
6654 Allocate CMD->NAME from the heap.
6655 Initialize CMD->MODULE_NAME to zero.
6656 Find the same name as well. If the same command is found and it is
6657 a dummy command, overwrite members. If it is not a dummy command,
6658 return zero.
6659 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
6660 (grub_command_find): If a dummy command is found, load a module
6661 and retry to find a command only once.
6662
6663 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
6664 make sure that each command is loaded.
6665
6666 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
6667 macro.
6668 (struct grub_command): Remove const from the member `name'.
6669 Add a new member `module_name'.
6670 (grub_register_command): Return grub_command_t.
6671
6672 * commands/help.c (grub_cmd_help): Call grub_command_find to make
6673 sure that each command is loaded.
6674
6675 * genmk.rb (PModule::rule): Specify a module name without the
6676 suffix ".mod" to gencmdlist.sh.
6677
7b1f4b57 66782005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
6679
6680 * gencmdlist.sh: New file.
6681
6682 * genmk.rb (PModule::rule): Generate a rule for a command list.
6683 Clean command.lst.
6684 Generate command.lst from $(COMMANDFILES).
6685
6686 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
6687 (DATA): Added $(pkgdata_DATA).
6688 (install-local): Install files in $(pkgdata_DATA).
6689
062aaf39 66902005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
6691
6692 * term/i386/pc/vga.c (debug_command): Removed.
6693 (GRUB_MOD_INIT): Do not register the command "debug".
6694
6695 From Hollis Blanchard:
6696 * commands/configfile.c: New file.
6697 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6698 commands/configfile.c.
6699 (pkgdata_MODULES): Added configfile.mod.
6700 (configfile_mod_SOURCES): New variable.
6701 (configfile_mod_CFLAGS): Likewise.
6702 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
6703 commands/configfile.c.
6704 (pkgdata_MODULES): Added configfile.mod.
6705 (configfile_mod_SOURCES): New variable.
6706 (configfile_mod_CFLAGS): Likewise.
6707 * util/grub-emu.c (main): Call grub_configfile_init and
6708 grub_configfile_fini.
6709 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
6710 prototype.
6711 [GRUB_UTIL] (grub_configfile_fini): Likewise.
6712
cee01aa6 67132005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
6714
6715 * normal/arg.c (grub_arg_show_help): Do not show the bug report
6716 address.
6717
6718 * commands/help.c (grub_cmd_help): Do not print newlines after
6719 the last command in print_command_help.
6720
93f3a1d8 67212005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
6722
6723 * commands/default.h: New file.
6724 * commands/timeout.h: Likewise.
6725 * normal/context.c: Likewise.
6726
6727 * util/misc.c: Do not include sys/times.h.
6728 Include sys/time.h and grub/machine/time.h.
6729 (grub_get_rtc): Rewritten with gettimeofday.
6730
6731 * util/grub-emu.c (main): Call grub_default_init and
6732 grub_timeout_init before grub_normal_init, and call
6733 grub_timeout_fini and grub_default_fini after grub_main.
6734
6735 * util/console.c (grub_ncurses_checkkey): Return the read
6736 character or -1.
6737
6738 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
6739 timeouts.
6740
6741 * normal/main.c (read_config_file): Push MENU. If this fails,
6742 print an error and wait for a user input.
6743 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
6744 If a menu is empty or an error occurs, pop MENU.
6745 (grub_normal_execute): Pop and free MENU after grub_menu_run
6746 returns.
6747
6748 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
6749
6750 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
6751 include time.h.
6752 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
6753 without GRUB_UTIL.
6754 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
6755 time.h.
6756 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
6757 without GRUB_UTIL.
6758
6759 * include/grub/normal.h (struct grub_menu_list): New struct.
6760 (grub_menu_list_t): New type.
6761 (struct grub_context): New struct.
6762 (grub_context_t): New type.
6763 (grub_register_command): Got rid of EXPORT_FUNC.
6764 (grub_unregister_command): Likewise.
6765 (grub_context_get): New prototype.
6766 (grub_context_get_current_menu): Likewise.
6767 (grub_context_push_menu): Likewise.
6768 (grub_context_pop_menu): Likewise.
6769 [GRUB_UTIL] (grub_default_init): Likewise.
6770 [GRUB_UTIL] (grub_default_fini): Likewise.
6771 [GRUB_UTIL] (grub_timeout_init): Likewise.
6772 [GRUB_UTIL] (grub_timeout_fini): Likewise.
6773
6774 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
6775 commands/timeout.c and normal/context.c.
6776 (pkgdata_MODULES): Added default.mod and timeout.mod.
6777 (normal_mod_SOURCES): Added normal/context.c.
6778 (default_mod_SOURCES): New variable.
6779 (default_mod_CFLAGS): Likewise.
6780 (timeout_mod_SOURCES): Likewise.
6781 (timeout_mod_CFLAGS): Likewise.
6782 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
6783 conf/i386-pc.rmk.
6784 (pkgdata_MODULES): Added default.mod and timeout.mod.
6785 (normal_mod_SOURCES): Added normal/context.c.
6786 (default_mod_SOURCES): New variable.
6787 (default_mod_CFLAGS): Likewise.
6788 (timeout_mod_SOURCES): Likewise.
6789 (timeout_mod_CFLAGS): Likewise.
6790
6791 * Makefile.in (all-local): Added $(MKFILES).
6792
4ed2e1dd 67932005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
6794
6795 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
6796 (grub_emu_SOURCES): Likewise.
6797 (pkgdata_MODULES): Add `sun.mod'.
6798 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
6799 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6800 `partmap/sun.c'.
6801 (pkgdata_MODULES): Add `sun.mod'.
6802 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
6803 * include/grub/partition.h (grub_sun_partition_map_init): New
6804 prototype.
6805 (grub_sun_partition_map_fini): Likewise.
6806 * partmap/sun.c: New file.
6807 * util/grub-emu.c (main): Initialize and de-initialize the sun
6808 partitionmap support.
6809
4d4e372e 68102005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
6811
6812 This implements an Emacs-like menu entry editor.
6813
6814 * normal/menu_entry.c: New file.
6815
6816 * util/console.c (grub_ncurses_putchar): Translate some Unicode
6817 characters to ASCII.
6818 (saved_char): New variable.
6819 (grub_ncurses_checkkey): Rewritten completely.
6820 (grub_ncurses_getkey): Likewise.
6821 (grub_ncurses_init): Call raw instead of cbreak.
6822
6823 * normal/menu.c (print_entry): Do not put a space.
6824 (init_page): Renamed to ...
6825 (grub_menu_init_page): ... this. All callers changed.
6826 (edit_menu_entry): Removed.
6827 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
6828
6829 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
6830
6831 * kern/misc.c (grub_vprintf): Call grub_refresh.
6832
6833 * normal/menu.c (DISP_LEFT): Renamed to ...
6834 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
6835 * normal/menu.c (DISP_UP): Renamed to ...
6836 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
6837 * normal/menu.c (DISP_RIGHT): Renamed to ...
6838 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
6839 * normal/menu.c (DISP_DOWN): Renamed to ...
6840 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
6841 * normal/menu.c (DISP_HLINE): Renamed to ...
6842 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
6843 * normal/menu.c (DISP_VLINE): Renamed to ...
6844 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
6845 * normal/menu.c (DISP_UL): Renamed to ...
6846 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
6847 * normal/menu.c (DISP_UR): Renamed to ...
6848 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
6849 * normal/menu.c (DISP_LL): Renamed to ...
6850 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
6851 * normal/menu.c (DISP_LR): Renamed to ...
6852 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
6853 * normal/menu.c (TERM_WIDTH): Renamed to ...
6854 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
6855 * normal/menu.c (TERM_HEIGHT): Renamed to ...
6856 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
6857 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
6858 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
6859 * normal/menu.c (TERM_MARGIN): Renamed to ...
6860 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
6861 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
6862 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
6863 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
6864 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
6865 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
6866 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
6867 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
6868 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
6869 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
6870 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
6871 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
6872 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
6873 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
6874 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
6875 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
6876 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
6877 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
6878 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
6879 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
6880 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
6881 All callers changed.
6882
6883 * include/grub/normal.h: New prototype.
6884
6885 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6886 normal/menu_entry.c.
6887 (normal_mod_SOURCES): Likewise.
6888 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6889 (normal_mod_SOURCES): Likewise.
6890
e6b92c8a 68912005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
6892
6893 * include/grub/normal.h (grub_halt_init): New prototype.
6894 (grub_halt_fini): Likewise.
6895 (grub_reboot_init): Likewise.
6896 (grub_reboot_fini): Likewise.
6897
6898 * util/grub-emu.c: Include signal.h.
6899 (main_env): New global variable.
6900 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
6901 catch C-c.
6902 (grub_machine_fini): New function.
6903 (main): Call grub_halt_init and grub_reboot_init before
6904 grub_main, and grub_reboot_fini and grub_halt_fini after it.
6905 Call setjmp with MAIN_ENV to go back afterwards.
6906 Call grub_machine_fini right before return.
6907
6908 * include/grub/util/misc.h: Include setjmp.h.
6909 (main_env): New prototype.
6910
6911 * include/grub/kernel.h (grub_machine_fini): New prototype.
6912 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
6913 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
6914
6915 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
6916 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
6917 * term/i386/pc/console.c (grub_console_fini): Likewise.
6918
6919 * util/i386/pc/misc.c: New file.
6920
6921 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6922 util/i386/pc/misc.c, commands/i386/pc/halt.c and
6923 commands/i386/pc/reboot.c.
6924
c642636f 69252005-02-14 Guillem Jover <guillem@hadrons.org>
6926
6927 * include/grub/dl.h (grub_dl_check_header): New prototype.
6928 (grub_arch_dl_check_header): Change return type to grub_err_t,
6929 remove size parameter and export function. Update all callers.
6930 * kern/dl.c (grub_dl_check_header): New function.
6931 (grub_dl_load_core): Use `grub_dl_check_header' instead of
6932 `grub_arch_dl_check_header'. Check ELF type. Check if sections
6933 are inside the core.
6934 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
6935 independent ELF header checks.
6936 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
6937 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
6938 `grub_dl_check_header' instead of explicit checks. Check for the
6939 ELF type.
6940 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
6941 `grub_dl_check_header' instead of explicit checks. Remove arch
6942 specific ELF header checks.
6943
e6b92c8a 6944 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
6945 argument SIZE.
6946
5eabe94b 69472005-02-13 Hollis Blanchard <hollis@penguinppc.org>
6948
6949 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
6950 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
6951
1b14a681 69522005-02-12 Hollis Blanchard <hollis@penguinppc.org>
6953
6954 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
6955 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
6956 (part_map_iterate): Clear `grub_errno' and return 0 if
6957 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
6958 * partmap/amiga.c (amiga_partition_map_iterate): Return
6959 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
6960 * partmap/apple.c (apple_partition_map_iterate): Likewise.
6961
aca108aa 69622005-02-01 Guillem Jover <guillem@hadrons.org>
6963
6964 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
6965 help info.
6966
c9f9c556 69672005-01-31 Marco Gerards <metgerards@student.han.nl>
6968
6969 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
6970 Removed prototype.
6971 (grub_rescue_cmd_linux): New prototype.
6972 (grub_rescue_cmd_initrd): Likewise.
6973 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
6974 `bi_rec'.
6975 (grub_linux_release_mem): Release the memory for the initrd.
6976 (grub_load_linux): Renamed from this...
6977 (grub_rescue_cmd_linux): ...To this. Changed all callers.
6978 Changed `entry' not to be static. Loop over memory regions to
6979 find another one when the default fails.
6980 (grub_rescue_cmd_initrd): New function.
6981 (grub_linux_init): Remove function.
6982 (grub_linux_fini): Likewise.
6983 (GRUB_MOD_INIT): Register `initrd'.
6984 (GRUB_MOD_FINI): Unregister `initrd'.
6985 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
6986 Function removed.
6987 (grub_linux_normal_fini): Likewise.
6988 (GRUB_MOD_INIT): Register `initrd'.
6989 (GRUB_MOD_FINI): Unregister `initrd'.
6990
990cf3aa 69912005-01-31 Marco Gerards <metgerards@student.han.nl>
6992
6993 * commands/help.c: New file.
6994 * normal/arg.c (show_help): Renamed to...
6995 (grub_arg_show_help): ... this.
6996 * commands/i386/pc/halt.c: New file.
6997 * commands/i386/pc/reboot.c: Likewise.
6998 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
6999 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
7000 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
7001 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
7002 variables.
7003 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
7004 `commands/help.c'.
7005 (pkgdata_MODULES): Add `help.mod'.
7006 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
7007 * grub/i386/pc/init.h (grub_reboot): New prototype.
7008 (grub_halt): Likewise.
7009 * include/grub/normal.h (grub_arg_show_help): New prototype.
7010 (grub_help_init): Likewise.
7011 (grub_help_fini): Likewise.
7012 * util/grub-emu.c (main): Initialize and deinitialize the help
7013 command.
7014
7015 * normal/cmdline.c (grub_cmdline_get): Doc fix.
7016
7017 * normal/command.c (grub_command_init): Fixed the description of
7018 the `set' and `unset' commands.
7019
70202005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 7021
7022 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
7023 function.
7024 * commands/ieee1275/halt.c: New file.
7025 * commands/ieee1275/reboot.c: Likewise.
7026 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
7027 `__attribute__ ((unused))'. Some GCS related fixed.
7028 (grub_suspend_init) [GRUB_UTIL]: Function removed.
7029 (grub_suspend_fini): Likewise.
7030 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
7031 and `halt.mod'.
7032 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
7033 (halt_mod_CFLAGS): New variables.
7034 * include/grub/powerpc/ieee1275/ieee1275.h
7035 (grub_ieee1275_interpret): New prototype.
7036
1ab09cc7 70372005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
7038
7039 * include/grub/misc.h (memmove): New prototype.
7040 (memcpy): Likewise.
7041
8b8cbdb2 70422005-01-22 Hollis Blanchard <hollis@penguinppc.org>
7043
7044 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
7045 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
7046
e3741a27 70472005-01-22 Marco Gerards <metgerards@student.han.nl>
7048
7049 * kern/misc.c (grub_strndup): Function rewritten.
7050
776bd780 70512005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
7052
7053 * normal/menu.c (TERM_WIDTH): Macro redefined.
7054 (TERM_TOP_BORDER_Y): Likewise.
7055 (draw_border): Replaced while-loop by a for-loop. Make the number
7056 of lines consistent with the number of lines displayed in
7057 print_entries. Added a margin below the rectangle.
7058 (print_entry): Make the entry fit in the rectangle.
7059 (print_entries): Display the scroll arrows next to the right
7060 border.
7061
78026bce 70622005-01-21 Marco Gerards <metgerards@student.han.nl>
7063
7064 * fs/minix.c (grub_minix_find_file): Reserve more space for
7065 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
7066 `grub_strncpy' to copy `path' into it.
7067
67bbaf0f 70682005-01-21 Marco Gerards <metgerards@student.han.nl>
7069
7070 Add the loopback device, a device via which files can be accessed
7071 as devices.
7072
7073 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
7074 (pkgdata_MODULES): Add loopback.mod.
7075 (loopback_mod_SOURCES): New variable.
7076 (loopback_mod_CFLAGS): Likewise.
7077 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
7078 `disk/loopback.c'.
7079 (pkgdata_MODULES): Add loopback.mod.
7080 (loopback_mod_SOURCES): New variable.
7081 (loopback_mod_CFLAGS): Likewise.
7082 * disk/loopback.c: new file.
7083 * include/grub/normal.h (grub_loop_init): New prototype.
7084 (grub_loop_fini): New prototype.
7085 * util/grub-emu.c (main): Initialize and de-initialize loopback
7086 support.
7087 * include/grub/disk.h (grub_disk_dev_id): Add
7088 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
7089
6f1c18bd 70902005-01-20 Hollis Blanchard <hollis@penguinppc.org>
7091
7092 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
7093 function.
7094 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
7095 (suspend_mod_SOURCES): New variable.
7096 (suspend_mod_CFLAGS): Likewise.
7097 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
7098 New prototype.
7099 * commands/ieee1275/suspend.c: New file.
7100
b38551da 71012005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
7102
7103 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
7104 ((unused))' to `__attribute__ ((used))'.
7105 (GRUB_MOD_FINI): Likewise.
7106 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
7107 * genmk.rb (PModule): Assign space to common symbols when linking
7108 modules.
7109
777aff39 71102005-01-20 Marco Gerards <metgerards@student.han.nl>
7111
7112 * include/grub/mm.h (grub_mm_init_region): Change the type of the
7113 `unsigned' arguments to `grub_size_t'.
7114 (grub_malloc): Likewise.
7115 (grub_realloc): Likewise.
7116 (grub_memalign): Likewise.
7117 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
7118 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
7119 * util/misc.c (grub_malloc): Likewise.
7120 (grub_realloc): Likewise.
7121 * kern/mm.c (get_header_from_pointer): Change the casts to
7122 `unsigned' into a cast to `grub_size_t'.
7123
7124 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
7125 point to `currnode' when `currnode' is changed.
7126
7127 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
7128 Schottelius <nico-linux@schottelius.org>.
7129
d0ff18e1 71302005-01-09 Hollis Blanchard <hollis@penguinppc.org>
7131
7132 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
7133 (note_path): Remove variable.
7134 (GRUB_IEEE1275_NOTE_NAME): New macro.
7135 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
7136 (grub_ieee1275_note_hdr): New structure.
7137 (grub_ieee1275_note_desc): Likewise.
7138 (grub_ieee1275_note): Likewise.
7139 (load_note): Remove `dir' argument. All callers updated. Remove
7140 `note_img' and `path'. Do not load a file from `note_path'.
7141 Initialize a struct grub_ieee1275_note and write that to `out'.
7142 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
7143
4ca7004c 71442005-01-05 Marco Gerards <metgerards@student.han.nl>
7145
7146 * util/misc.c (grub_util_read_image): Revert last change. It
7147 called `grub_util_read_at', which seeks from the beginning of the
7148 file.
7149
0b412211 71502005-01-04 Hollis Blanchard <hollis@penguinppc.org>
7151
7152 * TODO: Add note about endianness in grub-mkimage.
7153 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
7154 section.
7155 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
7156 (grub_mkimage_SOURCES): New target.
7157 * include/grub/kernel.h (grub_start_addr): Remove variable.
7158 (grub_end_addr): Likewise.
7159 (grub_total_module_size): Likewise.
7160 (grub_kernel_image_size): Likewise.
7161 (GRUB_MODULE_MAGIC): New constant.
7162 (grub_module_info): New structure.
7163 (grub_arch_modules_addr): New prototype.
7164 (grub_get_end_addr): Remove prototype.
7165 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
7166 * include/grub/powerpc/ieee1275/kernel.h: New file.
7167 * include/grub/util/misc.h (grub_util_get_fp_size): New
7168 prototype.
7169 (grub_util_read_at): Likewise.
7170 (grub_util_write_image_at): Likewise.
7171 * kern/main.c (grub_get_end_addr): Remove function.
7172 (grub_load_modules): Call grub_arch_modules_addr instead of using
7173 grub_end_addr. Look for a grub_module_info struct in memory. Use
7174 the grub_module_info fields instead of calling grub_get_end_addr
7175 as loop conditions. Move grub_add_unused_region code here.
7176 (grub_add_unused_region): Remove function.
7177 * kern/i386/pc/init.c: Include grub/cache.h.
7178 (grub_machine_init): Remove call to grub_get_end_addr. Remove
7179 one call to add_mem_region.
7180 (grub_arch_modules_addr): New function.
7181 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
7182 (grub_total_module_size): Likewise.
7183 Include grub/machine/kernel.h.
7184 (grub_arch_modules_addr): New function.
7185 * util/grub-emu.c (grub_end_addr): Remove variable.
7186 (grub_total_module_size): Likewise.
7187 (grub_arch_modules_addr): New function.
7188 * util/misc.c: Include unistd.h.
7189 (grub_util_get_fp_size): New function.
7190 (grub_util_read_at): Likewise.
7191 (grub_util_write_image_at): Likewise.
7192 (grub_util_read_image): Call grub_util_read_at.
7193 (grub_util_write_image): Call grub_util_write_image_at.
7194 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
7195 additional memory in kernel_img for a struct grub_module_info.
7196 Fill in that grub_module_info.
7197 * util/powerpc/ieee1275/grub-mkimage.c: New file.
7198
458786f8 71992005-01-03 Hollis Blanchard <hollis@penguinppc.org>
7200
7201 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
7202 New function.
7203 * include/grub/powerpc/ieee1275/ieee1275.h
7204 (grub_ieee1275_milliseconds): New prototype.
7205 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
7206 Change to 1000.
7207 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
7208 grub_ieee1275_milliseconds.
7209
ac507d1b 72102005-01-03 Hollis Blanchard <hollis@penguinppc.org>
7211
7212 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
7213 variable.
7214 (find_options): New function.
7215 (cmain): Call find_options.
7216 * include/grub/powerpc/ieee1275/ieee1275.h
7217 (grub_ieee1275_realmode): New extern variable.
7218 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
7219 grub_map if grub_ieee1275_realmode is false.
7220
6b8fd1c4 72212004-12-29 Marco Gerards <metgerards@student.han.nl>
7222
7223 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
7224 lines are inserted and make it work like readline. Reported by
7225 Vincent Pelletier <subdino2004@yahoo.fr>.
7226
8514a1e0 72272004-12-28 Marco Gerards <metgerards@student.han.nl>
7228
7229 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
7230
7231 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
7232 `kern/powerpc/cache.S'.
7233
924b6140 72342004-12-27 Marco Gerards <metgerards@student.han.nl>
7235
7236 * genmk.rb: Handle the `Program' class in the main loop. Written
7237 by Johan Rydberg <jrydberg@gnu.org>.
7238 (Program): New class.
7239 (programs): New variable.
7240 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
7241 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
7242 instead of "grub/kernel.h". Include <grub/machine/init.h>.
7243 (help_arch): Function removed.
7244 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
7245 `powerpc/libgcc.h' and `loader.h'.
7246 (pkgdata_PROGRAMS): New variable.
7247 (sbin_UTILITIES): Variable removed.
7248 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
7249 (grubof_SOURCES): Variable re-defined so it only includes the
7250 core functionality.
7251 (grubof_CFLAGS): Remove `-DGRUBOF'.
7252 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
7253 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
7254 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
7255 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
7256 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
7257 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
7258 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
7259 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
7260 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
7261 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
7262 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
7263 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
7264 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
7265 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
7266 (pc_mod_CFLAGS): New variables.
7267 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
7268 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
7269 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
7270 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
7271 Moved from here...
7272 * include/grub/i386/pc/init.h (grub_os_area_addr)
7273 (rub_os_area_size): ... to here.
7274 * include/grub/powerpc/ieee1275/ieee1275.h
7275 (grub_ieee1275_entry_fn): Export symbol.
7276 * include/grub/powerpc/ieee1275/init.h: New file.
7277 * include/grub/powerpc/libgcc.h: Likewise.
7278 * include/grub/cache.h: Likewise.
7279 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
7280 <hollis@penguinppc.org>.
7281 * kern/dl.c: Include <grub/cache.h>.
7282 (grub_dl_flush_cache): New function.
7283 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
7284 for this module.
7285 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
7286 (grub_console_init): Removed prototypes.
7287 (grub_machine_init): Don't initialize the modules anymore.
7288 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
7289 static.
7290 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
7291 Macro undef removed.
7292 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
7293 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
7294 relocation `R_PPC_REL32'. Return an error when the relocation is
7295 unknown.
7296 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
7297 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
7298 * util/misc.c (grub_arch_sync_caches): Likewise.
7299
e4b47e0c 73002004-12-19 Marco Gerards <metgerards@student.han.nl>
7301
7302 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
7303 `symlist.c', add `grubof_symlist.c'.
7304 (symlist.c): Variable removed.
7305 (grubof_HEADERS): Variable added.
7306 (grubof_symlist.c): New target.
7307 (kernel_syms.lst): Use `grubof_HEADERS' instead of
7308 `kernel_img_HEADERS'.
7309 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
7310 * kern/powerpc/dl.c: New file.
7311 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
7312 Function removed.
7313 (grub_arch_dl_relocate_symbols): Likewise.
7314 (grub_register_exported_symbols): Likewise.
7315
4ceb3636 73162004-12-13 Marco Gerards <metgerards@student.han.nl>
7317
7318 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
7319 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
7320 to fail instead. Reported by Vincent Pelletier
7321 <subdino2004@yahoo.fr>.
7322
7323 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
7324 it is not allocated. Reported by Vincent Pelletier
7325 <subdino2004@yahoo.fr>.
7326
7327 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
7328 output so the output looks better.
7329
3f1578fe 73302004-12-04 Marco Gerards <metgerards@student.han.nl>
7331
7332 Modulize the partition map support and add support for the amiga
7333 partition map.
7334
7335 * commands/ls.c: Include <grub/partition.h> instead of
7336 <grub/machine/partition.h>.
7337 * kern/disk.c: Likewise.
7338 * kern/rescue.c: Likewise.
7339 * loader/i386/pc/chainloader.c: Likewise.
7340 * normal/cmdline.c: Likewise.
7341 * kern/powerpc/ieee1275/init.c: Likewise.
7342 (grub_machine_init): Call `grub_pc_partition_map_init',
7343 `grub_amiga_partition_map_init' and
7344 `grub_apple_partition_map_init'.
7345 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
7346 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
7347 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
7348 `partition.h' and `pc_partition.h'.
7349 (grub_setup_SOURCES): Remove
7350 `disk/i386/pc/partition.c'. Add `kern/partition.c',
7351 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
7352 (grub_emu_SOURCES): Likewise.
7353 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
7354 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
7355 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
7356 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
7357 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
7358 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
7359 (grubof_SOURCES): Likewise.
7360 * disk/i386/pc/partition.c: File removed.
7361 * disk/powerpc/ieee1275/partition.c: Likewise.
7362 * include/grub/powerpc/ieee1275/partition.h: Likewise.
7363 * include/grub/i386/pc/partition.h: Likewise.
7364 * kern/partition.c: New file.
7365 * partmap/amiga.c: Likewise.
7366 * partmap/apple.c: Likewise.
7367 * partmap/pc.c: Likewise.
7368 * include/grub/partition.h: Likewise..
7369 * include/grub/pc_partition.h: Likewise.
7370 * util/grub-emu.c: Include <grub/partition.h> instead of
7371 <grub/machine/partition.h>.
7372 (main): Call `grub_pc_partition_map_init',
7373 `grub_amiga_partition_map_init' and
7374 `grub_apple_partition_map_init' and deinitialize afterwards.
7375 * util/i386/pc/biosdisk.c: Include `#include
7376 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
7377 `<grub/machine/partition.h>'.
7378 * util/i386/pc/grub-setup.c: Likewise.
7379 * util/i386/pc/biosdisk.c: Likewise.
7380 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
7381 partition information in case of a PC partition.
7382 * util/i386/pc/grub-setup.c: Include `#include
7383 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
7384 `<grub/machine/partition.h>'.
7385 (setup): Only access the PC specific partition information in case
7386 of a PC partition.
7387
0ef4ced9 73882004-11-17 Hollis Blanchard <hollis@penguinppc.org>
7389
7390 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
7391 (grub_longjmp): Likewise.
7392 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
7393 20.
7394 * normal/powerpc/setjmp.S: New file.
7395 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
7396 `normal/powerpc/setjmp.S'.
7397 (grubof_CFLAGS): Add `-DGRUBOF'.
7398 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
7399 [GRUB_UTIL && !GRUBOF].
7400
19950e29 74012004-11-16 Marco Gerards <metgerards@student.han.nl>
7402
7403 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
7404 property named `name'. Correctly handle the error returned by
7405 `grub_ieee1275_finddevice' if a device can not be opened.
7406
a2fea427 74072004-11-02 Hollis Blanchard <hollis@penguinppc.org>
7408
7409 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
7410 `actual' for negativity.
7411 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
7412 kern/fshelp.c.
7413
41ea0ea3 74142004-11-01 Marco Gerards <metgerards@student.han.nl>
7415
7416 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
7417 (PAGE_OFFSET): New macro.
7418 (CRTC_ADDR_PORT): Likewise.
7419 (CRTC_DATA_PORT): Likewise.
7420 (START_ADDR_HIGH_REGISTER): Likewise.
7421 (START_ADDR_LOW_REGISTER): Likewise.
7422 (GRAPHICS_ADDR_PORT): Likewise.
7423 (GRAPHICS_DATA_PORT): Likewise.
7424 (READ_MAP_REGISTER): Likewise.
7425 (INPUT_STATUS1_REGISTER): Likewise.
7426 (INPUT_STATUS1_VERTR_BIT): Likewise.
7427 (page): New variable.
7428 (wait_vretrace): New function.
7429 (set_read_map): Likewise.
7430 (set_start_address): Likewise.
7431 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
7432 the right page.
7433 (check_vga_mem): Take the page into account.
7434 (write_char): Likewise.
7435 (write_cursor): Likewise.
7436 (scroll_up): Likewise. Copy the page to the page that is not
7437 shown and switch between both pages.
7438 (grub_vga_putchar): Fix off by one error.
7439 (grub_vga_cls): Wait for the vertical retrace. Take the page into
7440 account.
7441
ad0bd20b 74422004-11-01 Marco Gerards <metgerards@student.han.nl>
7443
7444 Add support for iso9660 (including rockridge).
7445
7446 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
7447 (iso9660_mod_SOURCES): New variable.
7448 (iso9660_mod_CFLAGS): Likewise.
7449 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
7450 * include/grub/fs.h (grub_iso9660_init): New prototype.
7451 * util/grub-emu.c (main): Call `grub_iso9660_init'.
7452 * fs/iso9660.c: New file.
7453
7454 * include/grub/misc.h (grub_strncat): New prototype.
7455 * kern/misc.c (grub_strncat): New function.
7456
7457 * fs/hfs.c (grub_hfs_mount): Translate the error
7458 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
7459 * fs/jfs.c (grub_jfs_mount): Likewise.
7460 * fs/ufs.c (grub_ufs_mount): Likewise.
7461
a5477a59 74622004-10-28 Hollis Blanchard <hollis@penguinppc.org>
7463
7464 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
7465 which initialized BAT registers.
7466 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
7467 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
7468 Move from here...
7469 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
7470 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
7471 ... to here.
7472 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
7473 (grub_mapclaim): Likewise.
7474 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
7475 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
7476 hand.
7477
9304c1f8 74782004-10-19 Hollis Blanchard <hollis@penguinppc.org>
7479
7480 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
7481 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
7482 -ffreestanding and -msoft-float.
7483
86f4ae25 74842004-10-15 Hollis Blanchard <hollis@penguinppc.org>
7485
7486 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
7487 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
7488 set in grub_ieee1275_flags.
7489
38912228 74902004-10-14 Hollis Blanchard <hollis@penguinppc.org>
7491
7492 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
7493 prototype.
7494 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
7495 grub_console_init first.
7496 Change the memory range used for grub_ieee1275_claim and
7497 grub_mm_init_region.
7498 Print an error message if the claim fails.
7499 Include <grub/misc.h>.
7500
d1923dc8 75012004-10-13 Hollis Blanchard <hollis@penguinppc.org>
7502
7503 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
7504 Call grub_children_iterate for device nodes of type `scsi',
7505 `ide', or `ata'.
7506 (grub_ofdisk_open): Remove manual device alias resolution.
7507 Fix memory leak when device cannot be opened.
7508 * include/grub/powerpc/ieee1275/ieee1275.h
7509 (grub_children_iterate): New prototype.
7510 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
7511 New function.
7512 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
7513 Return -1 if args.size was -1.
7514
4512e4f3 75152004-10-11 Hollis Blanchard <hollis@penguinppc.org>
7516
7517 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
7518 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
7519 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
7520 Open Firmware's memory for it; claim memory from _start to _end.
7521 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
7522 (_end): New extern.
7523 (_start): Zero BSS from __bss_start to _end.
7524 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
7525 New extern.
7526 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
7527
4d61feb0 75282004-10-11 Hollis Blanchard <hollis@penguinppc.org>
7529
ad0bd20b 7530 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
7531 -1 if args.base was -1.
4d61feb0 7532
026fa2f9 75332004-10-08 Hollis Blanchard <hollis@penguinppc.org>
7534
7535 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
7536 escape sequence instead of a literal ^L. Also call
7537 grub_ofconsole_gotoxy.
7538
9f2220ef 75392004-10-03 Hollis Blanchard <hollis@penguinppc.org>
7540
7541 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
7542 void * arguments to grub_addr_t. All callers updated. Also make
7543 the `result' argument optional.
7544 (grub_ieee1275_release): change void * arguments to grub_addr_t.
7545 All callers updated.
7546
8a572cd7 75472004-09-22 Hollis Blanchard <hollis@penguinppc.org>
7548
7549 * commands/ls.c (grub_ls_list_files): Use the string following the
7550 initial ')', if present, as the filesystem path.
7551 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
7552
7553 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
7554
18aa81f2 75552004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
7556
7557 Make the source code of the menu interface more readable.
7558
7559 * normal/menu.c: Include grub/mm.h.
7560 (TERM_WIDTH): New macro.
7561 (TERM_HEIGHT): Likewise.
7562 (TERM_INFO_HEIGHT): Likewise.
7563 (TERM_MARGIN): Likewise.
7564 (TERM_SCROLL_WIDTH): Likewise.
7565 (TERM_TOP_BORDER_Y): Likewise.
7566 (TERM_LEFT_BORDER_X): Likewise.
7567 (TERM_BORDER_WIDTH): Likewise.
7568 (TERM_MESSAGE_HEIGHT): Likewise.
7569 (TERM_BORDER_HEIGHT): Likewise.
7570 (TERM_NUM_ENTRIES): Likewise.
7571 (TERM_FIRST_ENTRY_Y): Likewise.
7572 (TERM_ENTRY_WIDTH): Likewise.
7573 (TERM_CURSOR_X): Likewise.
7574 (draw_border): Use macros instead of magic numbers.
7575 (print_entry): Likewise.
7576 (print_entries): Likewise.
7577 (run_menu): Likewise. Also, handle the key 'e'.
7578 (run_menu_entry): Ignore empty command lines.
7579 (print_message): Added a new argument EDIT. If EDIT is true,
7580 print a different message.
7581 (init_page): Likewise.
7582 (edit_menu_entry): New function. Not implemented yet.
7583
b47efe30 75842004-09-17 Marco Gerards <metgerards@student.han.nl>
7585
7586 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
7587 can be loaded from normal mode.
7588
7589 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
7590 `multiboot.mod'.
7591 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
7592 (multiboot_mod_CFLAGS): New variables.
7593 * loader/i386/pc/linux_normal.c: New file.
7594 * loader/i386/pc/multiboot_normal.c: Likewise.
7595
7596 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
7597 attribute `unused'.
7598
7599 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
7600 `fdiro' to read the mode information from instead of `diro'.
7601
7602 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
7603 looking up a symlink.
7604
7605 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
7606 macro.
7607 * normal/command.c (grub_command_execute): Don't parse the
7608 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
7609 flags of the command.
7610
7611 * normal/menu.c (grub_menu_run): Fix typo.
7612
da75ac71 76132004-09-14 Hollis Blanchard <hollis@penguinppc.org>
7614
7615 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
7616
7617 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
7618 `y + 1' instead of `y - 1'.
7619
7620 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
7621
062b24c2 76222004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
7623
7624 From Hollis Blanchard <hollis@penguinppc.org>:
7625 * kern/misc.c (memmove): New alias for grub_memmove.
7626 (memcmp): New alias for grub_memcmp.
7627 (memset): New alias for grub_memset.
7628 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
7629 Change "int handle" to "grub_ieee1275_phandle_t handle".
7630 * include/grub/powerpc/ieee1275/ieee1275.h
7631 (grub_ieee1275_get_property): Likewise.
7632
8ddad845 76332004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
7634
7635 Added normal mode command `chainloader' as module chain.mod, which
7636 depends on normal.mod and _chain.mod.
7637
7638 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
7639 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
7640 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
7641 Deleted prototype.
7642 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
7643 but arguments parsing moved to ...
7644 (grub_chainloader_cmd): ... here. New function.
7645 * include/grub/i386/pc/chainloader.h: New file.
7646 * loader/i386/pc/chainloader_normal.c: Likewise.
7647
2c1f4ce3 76482004-09-11 Marco Gerards <metgerards@student.han.nl>
7649
7650 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
7651 (grub_mkimage_LDFLAGS): Likewise.
7652 (grub_emu_SOURCES): Likewise.
7653 (kernel_img_HEADERS): Added fshelp.h.
7654 * fs/ext2.c: Include <grub/fshelp.h>.
7655 (FILETYPE_REG): New macro.
7656 (FILETYPE_INO_REG): Likewise.
7657 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
7658 Changed all users.
7659 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
7660 all users.
7661 (grub_fshelp_node): New struct.
7662 (grub_ext2_data): Added member `diropen'. Changed member `inode'
7663 to a pointer.
7664 (grub_ext2_get_file_block): Removed function.
7665 (grub_ext2_read_block): New function.
7666 (grub_ext2_read_file): Replaced parameter `data' by `node'.
7667 This function was written.
7668 (grub_ext2_mount): Read the root inode. Create a diropen struct.
7669 (grub_ext2_find_file): Removed function.
7670 (grub_ext2_read_symlink): New function.
7671 (grub_ext2_iterate_dir): Likewise.
7672 (grub_ext2_open): Rewritten.
7673 (grub_ext2_dir): Rewritten.
7674 * include/grub/fshelp.h: New file.
7675 * fs/fshelp.c: Likewise.
7676
3c52136a 76772004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
7678
7679 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
7680 (print_message): Add a missing newline.
7681 (run_menu): Added timeout support.
7682 (run_menu_entry): New local function.
7683 (grub_menu_run): Added support for booting.
7684
7685 * kern/loader.c (grub_loader_is_loaded): New function.
7686
7687 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
7688 (grub_get_rtc): Exported.
7689
7690 * include/grub/i386/pc/time.h: Include grub/symbol.h.
7691 (grub_get_rtc): Exported.
7692
7693 * include/grub/normal.h (struct grub_command_list): Remove
7694 constant from the member `command'.
7695
7696 * include/grub/loader.h (grub_loader_is_loaded): Declared.
7697
7698 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
7699
7700 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
7701
aa033560 77022004-08-28 Marco Gerards <metgerards@student.han.nl>
7703
7704 Add support for the JFS filesystem.
7705
7706 * fs/jfs.c: New file.
7707 * include/grub/fs.h (grub_jfs_init): New prototype.
7708 (grub_jfs_fini): New prototype.
7709 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
7710 (grub_emu_SOURCES): Likewise.
7711 (pkgdata_MODULES): Add jfs.mod.
7712 (jfs_mod_SOURCES): New variable.
7713 (jfs_mod_CFLAGS): Likewise.
7714 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
7715 (grubof_SOURCES): Likewise.
7716 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
7717
7718 * fs/fat.c (grub_fat_find_dir): Convert the filename little
7719 endian to the host endian.
7720 (grub_fat_utf16_to_utf8): Move function from there...
7721 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
7722 the endianess of the source string anymore.
7723 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
7724
94bc45af 77252004-08-24 Marco Gerards <metgerards@student.han.nl>
7726
7727 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
7728 (grub_boot_fini) [GRUB_UTIL]: Likewise.
7729 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
7730 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
7731
7732 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
7733 (grub_hfs_iterate_dir): Make the function static. Add prototypes
7734 for `node_found' and `it_dir'.
7735 (grub_hfs_dir): Add prototype for `dir_hook'.
7736
7737 * fs/minix.c (grub_minix_get_file_block): Add prototype for
7738 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
7739 and `indir32' to silence a gcc warning.
7740
7741 * include/grub/fs.h (grub_hfs_init): New prototype.
7742 (grub_hfs_fini): Likewise.
7743
7744
97543f08 77452004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
7746
7747 Each disk device has its own id now. This is useful to make use
7748 of multiple disk devices.
7749
7750 * include/grub/disk.h (grub_disk_dev_id): New enum.
7751 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
7752 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
7753
7754 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
7755 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
7756
7757 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
7758 GRUB_DISK_DEVICE_OFDISK_ID as an id.
7759
7760 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
7761 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
7762
7763 * include/grub/disk.h (struct grub_disk_dev): Added a new member
7764 "id" which is used by the cache manager.
7765
7766 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
7767 of just "GRUB".
7768
64372eb4 77692004-08-18 Marco Gerards <metgerards@student.han.nl>
7770
7771 * fs/hfs.c: New file.
7772 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
7773 (grub_emu_SOURCES): Likewise.
7774 (pkgdata_MODULES): Add hfs.mod.
7775 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
7776 (grubof_SOURCES): Likewise.
7777 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
7778
7779 * include/grub/misc.h (grub_strncasecmp): Add prototype.
7780 * kern/misc.c (grub_strncasecmp): Add function.
7781
cc61b58f 77822004-08-14 Marco Gerards <metgerards@student.han.nl>
7783
7784 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
7785 with parentheses.
7786
7787 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
7788 (grub_ext2_dir): In case the directory entry type is unknown, read
7789 it from the inode.
7790
0ef123f6 77912004-08-02 Peter Bruin <pjbruin@dds.nl>
7792
7793 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
7794 grub_load_linux instead of grub_rescue_cmd_linux as second
7795 argument of grub_rescue_register_command.
7796
7797 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
7798
a447c5df 77992004-07-27 Marco Gerards <metgerards@student.han.nl>
7800
7801 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
7802 function.
7803 * commands/boot.c: Remove the check for `GRUB_UTIL'.
7804 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
7805 `loader/powerpc/ieee1275/linux.c',
7806 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
7807 * include/grub/powerpc/ieee1275/ieee1275.h
7808 (grub_ieee1275_release): New prototype.
7809 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
7810 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
7811 normal, boot, linux and linux_normal.
7812 * loader/powerpc/ieee1275/linux.c: New file.
7813 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
7814
5a9e3546 78152004-07-12 Marco Gerards <metgerards@student.han.nl>
7816
7817 * normal/arg.c (grub_arg_parse): Correct error handling after
7818 reallocating the argumentlist (check if `argl' is not null instead
7819 of checking if `args' is not null).
7820 * kern/mm.c (grub_realloc): Return the same pointer when using the
7821 same region, instead of returning the header address.
7822
e15199cb 78232004-07-11 Marco Gerards <metgerards@student.han.nl>
7824
7825 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
7826 one block instead of two when looking for the initial partition.
7827 (grub_partition_probe): Initialize the local variable `p' with 0.
7828 Use base 10 for the grub_strtoul call.
7829 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
7830 need for one local variable.
7831 (grub_strtoul): Don't add the new value to `num', instead of that
7832 just assign it.
7833
020616c2 78342004-07-11 Marco Gerards <metgerards@student.han.nl>
7835
7836 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
7837 (pxeboot_img_SOURCES): New variable.
7838 (pxeboot_img_ASFLAGS): Likewise.
7839 (pxeboot_img_LDFLAGS): Likewise.
7840 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
7841 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
7842 <lode_leroy@hotmail.com>.
7843
6c51eb64 78442004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7845
7846 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
7847 there was no input.
7848
cfb12aff 78492004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7850
7851 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
7852 the history buffer logic.
7853
6eabba74 78542004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7855
7856 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
7857 (FILETYPE_INO_SYMLINK): New macros.
7858 (grub_ext2_find_file): Check if the node is a directory using the
7859 inode stat information instead of using the filetype in the
7860 dirent. Exclude the first character of an absolute symlink.
7861 (grub_ext2_dir): Mask out the filetype part of the mode member of
7862 the inode.
7863
66e19ef8 78642004-05-24 Marco Gerards <metgerards@student.han.nl>
7865
7866 Add support for UFS version 1 and 2. Add support for the minix
7867 filesystem version 1 and 2, both the variants with 14 and 30 long
7868 filenames.
7869
7870 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
7871 fs/minix.c.
7872 (grub_emu_SOURCES): Likewise.
7873 (pkgdata_MODULES): Add ufs.mod and minix.mod.
7874 (ufs_mod_SOURCES): New variable.
7875 (ufs_mod_CFLAGS): Likewise.
7876 (minix_mod_SOURCES): Likewise.
7877 (minix_mod_CFLAGS): Likewise.
7878 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
7879 fs/minix.c.
7880 (grubof_SOURCES): Likewise.
7881 * fs/ufs.c: New file.
7882 * fs/minix.c: New file.
7883 * include/grub/fs.h (grub_ufs_init): New prototype.
7884 (grub_ufs_fini): Likewise.
7885 (grub_minix_init): Likewise.
7886 (grub_minix_fini): Likewise.
7887 * util/grub-emu.c (main): Initialize and deinitialize UFS and
7888 minix fs.
7889
cc2e748a 78902004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
7891
7892 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
7893 commands/ls.c, commands/terminal.c, commands/boot.c,
7894 commands/cmp.c and commands/cat.c.
7895 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
7896
7897 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
7898 "env.h"
7899
4b13b216 79002004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
7901
7902 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
7903 and grub_, respectively. Because the conversion is trivial and
7904 mechanical, I omit the details here. Please refer to the CVS
7905 if you need more information.
7906
6a142551 79072004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
7908
7909 * include/pupa: Renamed to ...
7910 * include/grub: ... this.
7911 * util/i386/pc/pupa-mkimage.c: Renamed to ...
7912 * util/i386/pc/grub-mkimage.c: ... this.
7913 * util/i386/pc/pupa-setup.c: Renamed to ...
7914 * util/i386/pc/grub-setup.c: ... this.
7915 * util/pupa-emu.c: Renamed to ...
7916 * util/grub-emu.c: ... this.
7917
e56cdf21 79182004-03-29 Marco Gerards <metgerards@student.han.nl>
7919
7920 Add support for the newworld apple macintosh (PPC). This has been
7921 tested on the powerbook 2000 only. It only adds support for
7922 generic ieee1275 functions, console and disk support. This should
7923 be easy to port to other architectures with support for Open
7924 Firmware.
7925
7926 * configure.ac: Accept the powerpc as host_cpu. In the case of
7927 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
7928 specific tests are only executed while building for the i386.
7929 Inverse test for crosscompile.
7930 * genmk.rb (Utility): Allow assembler files.
7931 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
7932 * conf/powerpc-ieee1275.rmk: New file.
7933 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
7934 * disk/powerpc/ieee1275/partition.c: Likewise.
7935 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
7936 * include/pupa/powerpc/ieee1275/console.h: Likewise.
7937 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
7938 * include/pupa/powerpc/ieee1275/time.h: Likewise.
7939 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
7940 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
7941 * include/pupa/powerpc/ieee1275/loader.h
7942 * include/pupa/powerpc/setjmp.h: Likewise.
7943 * include/pupa/powerpc/types.h: Likewise.
7944 * kern/powerpc/ieee1275/init.c: Likewise.
7945 * kern/powerpc/ieee1275/openfw.c: Likewise.
7946 * term/powerpc/ieee1275/ofconsole.c: Likewise.
7947
7948 These files were written by Johan Rydberg
7949 (jrydberg@night.trouble.net) and I only modified them slightly.
7950
7951 * boot/powerpc/ieee1275/cmain.c: New file.
7952 * boot/powerpc/ieee1275/crt0.S: Likewise.
7953 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
7954 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
7955
8c8cc205 79562004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
7957
7958 * Makefile.in: Update copyright.
7959 * genmodsrc.sh: Likewise.
7960 * gensymlist.sh: Likewise.
7961 * term/i386/pc/vga.c: Indent correctly.
7962
7963 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
7964 bugreporting address.
7965 * util/i386/pc/pupa-setup.c (usage): Likewise,
7966 (main): Call pupa_ext2_init and pupa_ext2_fini.
7967
7968 * fs/fat.c (log2): Renamed to ...
7969 (fat_log2): ... this.
7970 All callers changed.
7971 * kern/misc.c (memcpy): Alias to pupa_memmove.
7972 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
7973 lvalue cast.
7974 * util/console.c (pupa_ncurses_fini): Return 0.
7975
7976 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
7977 Move fail label here.
7978 [__GNU__]: Don't warn when using stat.
7979 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
7980 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
7981 long int. Use strtol instead of strtoul.
7982
db1771cf 79832004-03-14 Marco Gerards <metgerards@student.han.nl>
7984
7985 * commands/boot.c: New file.
7986 * commands/cat.c: Likewise.
7987 * commands/cmp.c: Likewise.
7988 * commands/ls.c: Likewise.
7989 * commands/terminal.c: Likewise.
7990 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
7991 (pupa_register_command): Changed interface to match the new
7992 argument parser.
7993 (pupa_command_execute): Changed (almost rewritten) so it uses
7994 pupa_split_command. Added support for setting variables using the
7995 syntax `foo=bar'.
7996 (rescue_command): Changed to work with the new argument parser.
7997 (terminal_command): Moved from here to commands/terminal.c.
7998 (set_command): New function.
7999 (unset_command): New function.
8000 (insmod_command): New function.
8001 (rmmod_command): New function.
8002 (lsmod_command): New function.
8003 (pupa_command_init): Don't initialize the command terminal
8004 anymore. Initialize the commands set, unset, insmod, rmmod and
8005 lsmod.
8006 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
8007 (kernel_img_HEADERS): Add arg.h and env.h.
8008 (pupa_mkimage_LDFLAGS): Add kern/env.c.
8009 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
8010 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
8011 normal/arg.c.
8012 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
8013 terminal.mod.
8014 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
8015 (boot_mod_SOURCES): New variable.
8016 (terminal_mod_SOURCES): Likewise.
8017 (ls_mod_SOURCES): Likewise.
8018 (cmp_mod_SOURCES): Likewise.
8019 (cat_mod_SOURCES): Likewise.
8020
8021 * normal/arg.c: New file.
8022 * kern/env.c: Likewise.
8023 * include/pupa/arg.h: Likewise.
8024 * include/pupa/env.h: Likewise.
8025 * font/manager.c (font_command): Changed to match argument parsing
8026 interface changes.
8027 (PUPA_MOD_INIT): Likewise.
8028 * hello/hello.c (pupa_cmd_hello): Likewise.
8029 (PUPA_MOD_INIT): Likewise.
8030 * include/pupa/disk.h: Include <pupa/device.h>.
8031 (pupa_print_partinfo): New prototype.
8032 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
8033 (pupa_dl_get_prefix): Likewise.
8034 * include/pupa/misc.h: Include <pupa/err.h>.
8035 (pupa_isgraph): New prototype.
8036 (pupa_isdigit): Likewise.
8037 (pupa_split_cmdline): Likewise.
8038 * include/pupa/normal.h: Include <pupa/arg.h>.
8039 (pupa_command): Changed the prototype of the member `func' to
8040 match the argument parsing interface. Added member `options'.
8041 (pupa_register_command): Updated to match function.
8042 (pupa_arg_parse): New prototype.
8043 (pupa_hello_init) [PUPA_UTIL]: New prototype.
8044 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
8045 (pupa_ls_init) [PUPA_UTIL]: Likewise.
8046 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
8047 (pupa_cat_init) [PUPA_UTIL]: Likewise.
8048 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
8049 (pupa_boot_init) [PUPA_UTIL]: Likewise.
8050 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
8051 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
8052 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
8053 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
8054 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
8055 * kern/disk.c: Include <pupa/file.h>.
8056 (pupa_print_partinfo): New function.
8057 * kern/dl.c: Include <pupa/env.h>.
8058 (pupa_dl_dir): Variable removed.
8059 (pupa_dl_load): Use the environment variable `prefix' instead of
8060 the variable pupa_dl_dir.
8061 (pupa_dl_set_prefix): Function removed.
8062 (pupa_dl_get_prefix): Likewise.
8063 * kern/i386/pc/init.c: Include <pupa/env.h>.
8064 (pupa_machine_init): Use the environment variable `prefix' instead of
8065 using pupa_dl_set_prefix to set the prefix.
8066 * kern/main.c: Include <pupa/env.h>.
8067 (pupa_set_root_dev): Use the environment variable `prefix' instead of
8068 using pupa_dl_get_prefix to get the prefix.
8069 * kern/misc.c: Include <pupa/env.h>.
8070 (pupa_isdigit): New function.
8071 (pupa_isgraph): Likewise.
8072 (pupa_ftoa): Likewise.
8073 (pupa_vsprintf): Added support for printing values of the type
8074 `double'. Make it possible to format variable output when using
8075 formatting like `%1.2%f'.
8076 (pupa_split_cmdline): New function.
8077 * kern/rescue.c: Include <pupa/env.h>.
8078 (next_word): Removed function.
8079 (pupa_rescue_cmd_prefix): Likewise.
8080 (pupa_rescue_cmd_set): New function.
8081 (pupa_rescue_cmd_unset): New function.
8082 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
8083 split the command line instead of splitting it here. Added
8084 support for setting variables using the syntax `foo=bar'. Don't
8085 initialize the prefix command anymore. Initialized the set and
8086 unset commands.
8087 * normal/cmdline.c: Include <pupa/env.h>.
8088 (pupa_tab_complete): Added prototypes for print_simple_completion,
8089 print_partition_completion, add_completion, iterate_commands,
8090 iterate_dev, iterate_part and iterate_dir. Moved code to print
8091 partition information from here to kern/disk.c.
8092 (pupa_cmdline_run): Don't check if the funtion exists anymore.
8093 * normal/main.c: Include <pupa/env.h>.
8094 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
8095 instead of using pupa_dl_get_prefix to get the prefix.
8096 * term/i386/pc/vga.c: Include <pupa/arg.h>.
8097 (check_vga_mem): Cast pointers to `void *' to silence a gcc
8098 warning.
8099 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
8100 (pupa_vga_setcolor): Declare unused variables with `__attribute__
8101 ((unused))' to silence a gcc warning.
8102 (pupa_vga_setcolor): Likewise.
8103 (debug_command): Changed to match argument parsing
8104 interface changes.
8105 * util/pupa-emu.c: Include <pupa/env.h>.
8106 (options): Added 0's for unused fields to silence a gcc warning.
8107 (argp): Likewise.
8108 (main): Use the environment variable `prefix' instead of using
8109 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
8110 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
8111 and terminal.
8112
8113 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
8114 * util/misc.c: Include <malloc.h>.
8115 (pupa_malloc): Rewritten so errors are correctly reported.
8116 (pupa_realloc): Likewise.
8117 (pupa_memalign): Likewise.
8118 (pupa_mm_init_region): Declare unused variables with
8119 `__attribute__ ((unused))' to silence a gcc warning.
8120 * normal/i386/setjmp.S: Remove tab at the end of the file to
8121 silence a gcc warning.
8122 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
8123 variables with `__attribute__ ((unused))' to silence a gcc
8124 warning.
8125 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
8126 local variable i unsigned to silence a gcc warning.
8127
8128 * kern/term.c: Include <pupa/misc.h>.
8129 (pupa_more_lines): New variable.
8130 (pupa_more): Likewise.
8131 (pupa_putcode): When the pager is active pause at the end of every
8132 screen.
8133 (pupa_set_more): New function.
8134 * include/pupa/term.h (pupa_set_more): New prototype.
8135
8136
3b1139cb 81372004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
8138
8139 Now this project is GRUB 2 rather than PUPA. The location of
8140 the CVS repository was moved to GRUB's.
8141
8142 * configure.ac: Use bug-grub as the reporting address.
8143 Use GRUB instead of PUPA.
8144 Change the version number to 1.90.
8145
8367695c 81462004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
8147
8148 * genkernsyms.sh: Updated copyright information.
8149 * genmk.rb: Likewise.
8150 * genmodsrc.sh: Likewise.
8151 * gensymlist.sh: Likewise.
8152 * boot/i386/pc/boot.S: Likewise.
8153 * boot/i386/pc/diskboot.S: Likewise.
8154 * disk/i386/pc/biosdisk.c: Likewise.
8155 * disk/i386/pc/partition.c: Likewise.
8156 * font/manager.c: Likewise.
8157 * fs/ext2.c: Likewise.
8158 * fs/fat.c: Likewise.
8159 * include/pupa/boot.h: Likewise.
8160 * include/pupa/device.h: Likewise.
8161 * include/pupa/disk.h: Likewise.
8162 * include/pupa/dl.h: Likewise.
8163 * include/pupa/elf.h: Likewise.
8164 * include/pupa/err.h: Likewise.
8165 * include/pupa/file.h: Likewise.
8166 * include/pupa/font.h: Likewise.
8167 * include/pupa/fs.h: Likewise.
8168 * include/pupa/kernel.h: Likewise.
8169 * include/pupa/loader.h: Likewise.
8170 * include/pupa/misc.h: Likewise.
8171 * include/pupa/mm.h: Likewise.
8172 * include/pupa/net.h: Likewise.
8173 * include/pupa/normal.h: Likewise.
8174 * include/pupa/rescue.h: Likewise.
8175 * include/pupa/setjmp.h: Likewise.
8176 * include/pupa/symbol.h: Likewise.
8177 * include/pupa/term.h: Likewise.
8178 * include/pupa/types.h: Likewise.
8179 * include/pupa/i386/setjmp.h: Likewise.
8180 * include/pupa/i386/types.h: Likewise.
8181 * include/pupa/i386/pc/biosdisk.h: Likewise.
8182 * include/pupa/i386/pc/boot.h: Likewise.
8183 * include/pupa/i386/pc/console.h: Likewise.
8184 * include/pupa/i386/pc/init.h: Likewise.
8185 * include/pupa/i386/pc/kernel.h: Likewise.
8186 * include/pupa/i386/pc/linux.h: Likewise.
8187 * include/pupa/i386/pc/loader.h: Likewise.
8188 * include/pupa/i386/pc/memory.h: Likewise.
8189 * include/pupa/i386/pc/multiboot.h: Likewise.
8190 * include/pupa/i386/pc/partition.h: Likewise.
8191 * include/pupa/i386/pc/time.h: Likewise.
8192 * include/pupa/i386/pc/vga.h: Likewise.
8193 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
8194 * include/pupa/util/getroot.h: Likewise.
8195 * include/pupa/util/misc.h: Likewise.
8196 * include/pupa/util/resolve.h: Likewise.
8197 * kern/device.c: Likewise.
8198 * kern/disk.c: Likewise.
8199 * kern/dl.c: Likewise.
8200 * kern/err.c: Likewise.
8201 * kern/file.c: Likewise.
8202 * kern/fs.c: Likewise.
8203 * kern/loader.c: Likewise.
8204 * kern/main.c: Likewise.
8205 * kern/misc.c: Likewise.
8206 * kern/mm.c: Likewise.
8207 * kern/rescue.c: Likewise.
8208 * kern/term.c: Likewise.
8209 * kern/i386/dl.c: Likewise.
8210 * kern/i386/pc/init.c: Likewise.
8211 * kern/i386/pc/lzo1x.S: Likewise.
8212 * kern/i386/pc/startup.S: Likewise.
8213 * loader/i386/pc/chainloader.c: Likewise.
8214 * loader/i386/pc/linux.c: Likewise.
8215 * loader/i386/pc/multiboot.c: Likewise.
8216 * normal/cmdline.c: Likewise.
8217 * normal/command.c: Likewise.
8218 * normal/main.c: Likewise.
8219 * normal/menu.c: Likewise.
8220 * normal/i386/setjmp.S: Likewise.
8221 * term/i386/pc/console.c: Likewise.
8222 * term/i386/pc/vga.c: Likewise.
8223 * util/console.c: Likewise.
8224 * util/genmoddep.c: Likewise.
8225 * util/misc.c: Likewise.
8226 * util/pupa-emu.c: Likewise.
8227 * util/resolve.c: Likewise.
8228 * util/unifont2pff.rb: Likewise.
8229 * util/i386/pc/biosdisk.c: Likewise.
8230 * util/i386/pc/getroot.c: Likewise.
8231 * util/i386/pc/pupa-mkimage.c: Likewise.
8232 * util/i386/pc/pupa-setup.c: Likewise.
8233
e6eced71 82342004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
8235
8236 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
8237 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
8238 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
8239 reading and reset it after reading.
8240 (pupa_ext2_close): Return PUPA_ERR_NONE.
8241
8242 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
8243 Correct value.
8244 (struct linux_kernel_header): Add kernel_version and
8245 initrd_addr_max.
8246 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
8247 pupa_file_read succeeds.
8248 (pupa_rescue_cmd_initrd): Implement.
8249
5aded270 82502003-12-03 Marco Gerards <metgerards@student.han.nl>
8251
8252 * fs/ext2.c (pupa_ext2_label): New function.
8253 (pupa_ext2_fs): Added label.
8254 * fs/fat.c (pupa_fat_label): New function.
8255 (pupa_fat_fs): Added label.
8256 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
8257
8258 * kern/misc.c (pupa_strndup): New function.
8259 * include/pupa/misc.h (pupa_strndup): New prototype.
8260
8261 * include/pupa/normal.h: Include <pupa/err.h>.
8262 (pupa_set_history): New prototype.
8263 (pupa_iterate_commands): New prototype.
8264 * normal/cmdline.c: Include <pupa/machine/partition.h>,
8265 <pupa/disk.h>, <pupa/file.h>.
8266 (hist_size): New variable.
8267 (hist_lines): Likewise.
8268 (hist_end): Likewise.
8269 (hist_used): Likewise.
8270 (pupa_set_history): New function.
8271 (pupa_history_get): Likewise.
8272 (pupa_history_add): Likewise.
8273 (pupa_history_replace): Likewise.
8274 (pupa_tab_complete): Likewise.
8275 (pupa_cmdline_run): Added tab completion and history buffer. Tab
8276 completion shows partitionnames while completing partitions, this
8277 feature was suggested by Jeff Bailey.
8278 * normal/command.c (pupa_iterate_commands): New function.
8279 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
8280 (pupa_normal_init): Initialize history buffer.
8281 (PUPA_MOD_INIT): Likewise.
8282 (pupa_normal_fini): Free the history buffer.
8283 (PUPA_MOD_FINI): Likewise.
8284
8285 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
8286 key.
8287
8288 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
8289 * configure.ac [i386]: Check for regparam bug.
8290 (NESTED_FUNC_ATTR) [! i386]: Defined.
8291
1f7315a3 82922003-11-17 Marco Gerards <metgerards@student.han.nl>
8293
8294 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
8295 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
8296 (pupa_emu_SOURCES): New variable.
8297 (pupa_emu_LDFLAGS): Likewise.
8298 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
8299 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
8300 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
8301 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
8302 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
8303 (pupa_jmp_buf): New typedef.
8304 (pupa_setjmp) [PUPA_UTIL]: New macro.
8305 (pupa_longjmp) [PUPA_UTIL]: Likewise.
8306 * include/pupa/term.h (struct pupa_term): New member `refresh'.
8307 (pupa_refresh): New prototype.
8308 * include/pupa/util/getroot.h: New file.
8309 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
8310 it.
8311 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
8312 (pupa_rescue_cmd_cat): Likewise.
8313 (pupa_rescue_cmd_ls): Likewise.
8314 (pupa_rescue_cmd_testload): Likewise.
8315 (pupa_rescue_cmd_lsmod): Likewise.
8316 * normal/cmdline.c (pupa_cmdline_get): Likewise.
8317 * normal/menu.c (run_menu): Likewise.
8318 * kern/term.c (pupa_cls): Likewise.
8319 (pupa_refresh): New function.
8320 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
8321 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
8322 * util/console.c: New file.
8323
8324 * util/i386/pc/getroot.c: New file.
8325 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
8326 (pupa_putchar): New function.
8327 (pupa_refresh): Likewise.
8328 (xgetcwd): Function moved to ...
8329 (strip_extra_slashes): Likewise.
8330 (get_prefix): Likewise.
8331 * util/i386/pc/getroot.c: ... here.
8332 (find_root_device): Function moved and renamed to...
8333 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
8334 Changed all callers.
8335 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
8336 and renamed to...
8337 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
8338 Changed all callers.
8339 * util/misc.c (pupa_memalign): New function.
8340 (pupa_mm_init_region): Likewise.
8341 (pupa_register_exported_symbols): Likewise.
8342 (pupa_putchar): Function removed.
8343 * util/pupa-emu.c: New file.
8344
9a5c1ade 83452003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
8346
8347 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
8348 (_multiboot_mod_SOURCES): New variable.
8349 (_multiboot_mod_CFLAGS): Likewise.
8350 * loader/i386/pc/multiboot.c: New file.
8351 * include/pupa/i386/pc/multiboot.h: Likewise.
8352 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
8353 (pupa_multiboot_real_boot): New function.
8354 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
8355 (pupa_multiboot_real_boot): New prototype.
8356 (pupa_rescue_cmd_multiboot): Likewise
8357 (pupa_rescue_cmd_module): Likewise.
8358
8359 * kern/loader.c (pupa_loader_set): Continue when
8360 pupa_loader_unload_func() fails.
8361 (pupa_loader_unset): New function.
8362 * include/pupa/loader.h (pupa_loader_unset): New prototype.
8363
8364 * kern/misc.c (pupa_stpcpy): New function.
8365 * include/pupa/misc.h (pupa_stpcpy): New prototype.
8366
8e72a9c0 83672003-11-12 Marco Gerards <metgerards@student.han.nl>
8368
8369 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
8370 for available extensions.
8371
8372 * include/pupa/i386/pc/time.h: New file.
8373 * kern/disk.c: Include <pupa/machine/time.h>.
8374 (PUPA_CACHE_TIMEOUT): New macro.
8375 (pupa_last_time): New variable.
8376 (pupa_disk_open): Flush the cache when there was a timeout.
8377 (pupa_disk_close): Reset the timer.
8378 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
8379 pupa_currticks.
8380 * util/misc.c: Include <sys/times.h>
8381 (pupa_get_rtc): New function.
8382
c4adbd32 83832003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
8384
8385 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
8386 as blocks.
8387 (pupa_ext2_get_file_block): Use blocks member.
8388
8389 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
8390 first block. Return -1 instead of pupa_errno on error.
8391
bfd30f06 83922003-10-27 Marco Gerards <metgerards@student.han.nl>
8393
8394 * README: In the pupa-mkimage example use _chain instead of chain
8395 and ext2 instead of fat.
8396 * TODO: Replace ext2fs with jfs as an example. Add an item for
8397 adding journal playback for ext2fs.
8398 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
8399 (pkgdata_MODULES): Added ext2.mod.
8400 (ext2_mod_SOURCES): New variable.
8401 (ext2_mod_CFLAGS): Likewise.
8402 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
8403 * include/pupa/misc.h (pupa_strncpy): New prototype.
8404 (pupa_strcat): Likewise.
8405 (pupa_strncmp): Likewise.
8406 * kern/misc.c (pupa_strcat): Enable function.
8407 (pupa_strncpy): New function.
8408 (pupa_strncmp): Likewise.
8409 * fs/ext2.c: New file.
8410
8411 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
8412 when the read failed before retrying.
8413 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
8414 (_FILE_OFFSET_BITS): Likewise.
8415 * configure.ac: Added AC_SYS_LARGEFILE.
8416
98d15063 84172003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
8418
8419 * genmk.rb (PModule#rule): Make sure to get only symbol names
8420 from the output of nm.
8421 Reported by Robert Millan <zeratul2@wanadoo.es>.
8422
18d9c7cd 84232003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
8424
8425 I forgot to check in these changes for a long time. This adds
8426 incomplete support for VGA console, and this is still very
8427 buggy. Also, a lot of consideration is required for I18N,
8428 UNICODE, and VGA font issues. Therefore, assume that this is
8429 such that "better than nothing".
8430
8431 * font/manager.c: New file.
8432 * include/pupa/font.h: Likewise.
8433 * include/pupa/i386/pc/vga.h: Likewise.
8434 * term/i386/pc/vga.c: Likewise.
8435 * util/unifont2pff.rb: Likewise.
8436
8437 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
8438 (pkgdata_MODULES): Added vga.mod and font.mod.
8439 (vga_mod_SOURCES): New variables.
8440 (vga_mod_CFLAGS): Likewise.
8441 (font_mod_SOURCES): Likewise.
8442 (font_mod_CFLAGS): Likewise.
8443
8444 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
8445
8446 * include/pupa/term.h: Include pupa/err.h.
8447 (struct pupa_term): Added init and fini.
8448 Changed the argument of putchar to pupa_uint32_t.
8449
8450 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
8451 (pupa_console_real_putchar): New prototype.
8452 (pupa_console_putchar): Removed.
8453 (pupa_console_checkkey): Exported.
8454 (pupa_console_getkey): Likewise.
8455
8456 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
8457 characters.
8458
8459 * kern/term.c (pupa_term_set_current): Rewritten.
8460 (pupa_putchar): Likewise.
8461 (pupa_putcode): New function.
8462
8463 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
8464 (pupa_console_real_putchar): ... this.
8465 (pupa_vga_set_mode): New function.
8466 (pupa_vga_get_font): Likewise.
8467
8468 * normal/command.c: Include pupa/term.h.
8469 (terminal_command): New function.
8470 (pupa_command_init): Register the command "terminal".
8471
8472 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
8473 (DISP_UP): Likewise.
8474 (DISP_RIGHT): Likewise.
8475 (DISP_DOWN): Likewise.
8476 (DISP_HLINE): Likewise.
8477 (DISP_VLINE): Likewise.
8478 (DISP_UL): Likewise.
8479 (DISP_UR): Likewise.
8480 (DISP_LL): Likewise.
8481 (DISP_LR): Likewise.
8482
8483 * term/i386/pc/console.c (pupa_console_putchar): New function.
8484
977329f5 84852003-02-08 NIIBE Yutaka <gniibe@m17n.org>
8486
8487 * util/resolve.c (pupa_util_resolve_dependencies): BUG
8488 FIX. Reverse the path_list.
8489
8490 * include/pupa/normal.h: Export pupa_register_command and
8491 pupa_unregister_command.
8492
8493 * hello/hello.c (pupa_cmd_hello): New module.
8494 * conf/i386-pc.rmk: Added hello.mod.
8495
1f5ab428 84962003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
8497
8498 * kern/i386/pc/lzo1x.S: New file.
8499
8500 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
8501 (compress_kernel): New variable.
8502 (generate_image): Heavily modified to support compressing a
8503 large part of the core image.
8504
8505 * util/misc.c (pupa_util_read_image): Fix a file descriptor
8506 leak.
8507 (pupa_util_load_image): New function.
8508
8509 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
8510 (pupa_compressed_size): New variable.
8511 (codestart): Enable Gate A20 here.
8512 Decompress the compressed part of the core image.
8513 Rearrange the code to put functions and variables which are
8514 required for initialization in the non-compressed part.
8515 Include lzo1x.S.
8516
8517 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
8518 here.
8519
8520 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
8521
8522 * include/pupa/i386/pc/kernel.h
8523 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
8524 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
8525 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
8526 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
8527 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
8528
8529 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
8530
8531 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
8532 (Utility#rule): Likewise.
8533
8534 * configure.ac: Check if LZO is available.
8535
ce5bf700 85362003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
8537
8538 * include/pupa/normal.h: New file.
8539 * include/pupa/setjmp.h: Likewise.
8540 * include/pupa/i386/setjmp.h: Likewise.
8541 * normal/cmdline.c: Likewise.
8542 * normal/command.c: Likewise.
8543 * normal/main.c: Likewise.
8544 * normal/menu.c: Likewise.
8545 * normal/i386/setjmp.S: Likewise.
8546
8547 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
8548 (pupa_rescue_cmd_initrd): Likewise.
8549
8550 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
8551 Likewise.
8552
8553 * kern/i386/pc/startup.S (translation_table): New variable.
8554 (translate_keycode): New function.
8555 (pupa_console_getkey): Call translate_keycode.
8556
8557 * kern/rescue.c (attempt_normal_mode): New function.
8558 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
8559 it failed, print a message.
8560
8561 * kern/mm.c (pupa_real_malloc): Print more information when a
8562 free magic is broken.
8563 (pupa_free): If the first free header is not free actually, set
8564 it to P.
8565
8566 * kern/main.c (pupa_load_normal_mode): Just load the module
8567 "normal".
8568 (pupa_main): Don't print the message
8569 "Entering into rescue mode..." here.
8570
8571 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
8572 Declared.
8573 (pupa_rescue_cmd_initrd): Likewise.
8574 (pupa_rescue_cmd_initrd): Likewise.
8575
8576 * include/pupa/symbol.h (FUNCTION): Specify the type.
8577 (VARIABLE): Likewise.
8578
8579 * include/pupa/err.h (pupa_err_t): Added
8580 PUPA_ERR_UNKNOWN_COMMAND.
8581
8582 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
8583 (pupa_dl_get_prefix): Likewise.
8584
8585 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
8586 Added _chain.mod and _linux.mod instead of chain.mod and
8587 linux.mod.
8588 (chain_mod_SOURCES): Renamed to ...
8589 (_chain_mod_SOURCES): ... this.
8590 (chain_mod_CFLAGS): Renamed to ...
8591 (_chain_mod_CFLAGS): ... this.
8592 (linux_mod_SOURCES): Renamed to ...
8593 (_linux_mod_SOURCES): ... this.
8594 (linux_mod_CFLAGS): Renamed to ...
8595 (_linux_mod_CFLAGS): ... this.
8596 (normal_mod_SOURCES): New variable.
8597 (normal_mod_CFLAGS): Likewise.
8598 (normal_mod_ASFLAGS): Likewise.
8599
86002003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
8601
8602 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
8603 possible.
8604
8605 * kern/dl.c (pupa_dl_ref): Refer dependending modules
8606 recursively.
8607 (pupa_dl_unref): Unrefer depending modules recursively.
8608 Don't call pupa_dl_unload implicitly, because PUPA can crash if
8609 a module is unloaded before one depending on that module is
8610 unloaded.
8611 (pupa_dl_unload): Unload depending modules explicitly,
8612 if possible.
8613
c04da074 86142003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
8615
8616 * include/pupa/i386/pc/linux.h: New file.
8617 * loader/i386/pc/linux.c: Likewise.
8618
8619 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
8620 Removed.
8621 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
8622 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
8623 of PUPA_CHAINLOADER_BOOT_SECTOR.
8624
8625 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
8626 (pupa_linux_prot_size): New variable.
8627 (pupa_linux_tmp_addr): Likewise.
8628 (pupa_linux_real_addr): Likewise.
8629 (pupa_linux_boot_zimage): New function.
8630 (pupa_linux_boot_bzimage): Likewise.
8631
8632 * kern/i386/pc/init.c (struct mem_region): New structure.
8633 (MAX_REGIONS): New macro.
8634 (mem_regions): New variable.
8635 (num_regions): Likewise.
8636 (pupa_os_area_addr): Likewise.
8637 (pupa_os_area_size): Likewise.
8638 (pupa_lower_mem): Likewise.
8639 (pupa_upper_mem): Likewise.
8640 (add_mem_region): New function.
8641 (compact_mem_regions): Likewise.
8642 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
8643 the size of the conventional memory and that of so-called upper
8644 memory (before the first memory hole).
8645 Instead of adding each found region to free memory, use
8646 add_mem_region and add them after removing overlaps.
8647 Also, add only 1/4 of the upper memory to free memory. The rest
8648 is used for loading OS images. Maybe this is ad hoc, but this
8649 makes it much easier to relocate OS images when booting.
8650
8651 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
8652 (pupa_enter_rescue_mode): Don't register initrd and module.
8653
8654 * kern/mm.c: Include pupa/dl.h.
8655
8656 * kern/main.c: Include pupa/file.h and pupa/device.h.
8657
8658 * kern/loader.c (pupa_loader_load_module_func): Removed.
8659 (pupa_loader_load_module): Likewise.
8660
8661 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
8662 ``.o''.
8663
8664 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
8665 (pupa_linux_tmp_addr): Likewise.
8666 (pupa_linux_real_addr): Likewise.
8667 (pupa_linux_boot_zimage): Likewise.
8668 (pupa_linux_boot_bzimage): Likewise.
8669
8670 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
8671 (pupa_upper_mem): Likewise.
8672 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
8673 module is too dangerous.
8674
8675 * include/pupa/loader.h (pupa_os_area_addr): Declared.
8676 (pupa_os_area_size): Likewise.
8677 (pupa_loader_set): Remove the first argument. Loader doesn't
8678 manage modules or initrd any longer.
8679 (pupa_loader_load_module): Removed.
8680
8681 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
8682 (linux_mod_SOURCES): New variable.
8683 (linux_mod_CFLAGS): Likewise.
8684
a13f9237 86852003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
8686
8687 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
8688 the length of a blocklist correctly.
8689
8690 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
8691 Use ioctl only if the OS file is a block device.
8692 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
8693 not very useful for normal files.
8694
8695 * kern/main.c (pupa_set_root_dev): New function.
8696 (pupa_load_normal_mode): Likewise.
8697 (pupa_main): Call those above.
8698
8699 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
8700 pupa_uint16_t.
8701
8702 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
8703
a5ffe966 87042003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
8705
8706 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
8707 (setup): Configure the installed partition information and the
8708 dl prefix.
8709
8710 * loader/i386/pc/chainloader.c (my_mod): New variable.
8711 (pupa_chainloader_unload): New function.
8712 (pupa_rescue_cmd_chainloader): Refer itself.
8713 (PUPA_MOD_INIT): Save its own module in MY_MOD.
8714
8715 * kern/i386/pc/startup.S (install_partition): Removed.
8716 (version_string): Likewise.
8717 (config_file): Likewise.
8718 (pupa_install_dos_part): New variable.
8719 (pupa_install_bsd_part): Likewise.
8720 (pupa_prefix): Likewise.
8721 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
8722
8723 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
8724 and pupa/misc.h.
8725 (make_install_device): New function.
8726 (pupa_machine_init): Set the dl prefix.
8727
8728 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
8729 (buf): Renamed to ...
8730 (linebuf): ... this.
8731 (pupa_rescue_cmd_prefix): New function.
8732 (pupa_rescue_cmd_insmod): Likewise.
8733 (pupa_rescue_cmd_rmmod): Likewise.
8734 (pupa_rescue_cmd_lsmod): Likewise.
8735 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
8736 rmmod and lsmod.
8737
8738 * kern/mm.c (pupa_memalign): If failed even after invalidating
8739 disk caches, unload unneeded modules and retry.
8740
8741 * kern/misc.c (pupa_memmove): New function.
8742 (pupa_memcpy): Removed.
8743 (pupa_strcpy): New function.
8744 (pupa_itoa): Made static.
8745
8746 * kern/dl.c (pupa_dl_iterate): New function.
8747 (pupa_dl_ref): Likewise.
8748 (pupa_dl_unref): Likewise.
8749 (pupa_dl_unload): Return if succeeded or not.
8750 (pupa_dl_unload_unneeded): New function.
8751 (pupa_dl_unload_all): Likewise.
8752 (pupa_dl_init): Renamed to ...
8753 (pupa_dl_set_prefix): ... this.
8754 (pupa_dl_get_prefix): New function.
8755
8756 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
8757 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
8758 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
8759 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
8760 (pupa_install_dos_part): Declared.
8761 (pupa_install_bsd_part): Likewise.
8762 (pupa_prefix): Likewise.
8763 (pupa_boot_drive): Likewise.
8764
8765 * include/pupa/types.h: Fix a typo.
8766
8767 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
8768 pupa_memmove.
8769 (pupa_memmove): Declared.
8770 (pupa_strcpy): Likewise.
8771
8772 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
8773 pupa_mod_init takes one argument, its own module.
8774 (pupa_dl_unload_unneeded): Declared.
8775 (pupa_dl_unload_all): Likewise.
8776 (pupa_dl_ref): Likewise.
8777 (pupa_dl_unref): Likewise.
8778 (pupa_dl_iterate): Likewise.
8779 (pupa_dl_init): Renamed to ...
8780 (pupa_dl_set_prefix): ... this.
8781 (pupa_dl_get_prefix): Declared.
8782
8783 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
8784 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
8785 unloaded.
8786 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
8787 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
8788
8789 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
8790 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
8791
012d7999 87922003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
8793
8794 * util/i386/pc/pupa-setup.c (setup): Define the internal
8795 function find_first_partition_start at the top level, because GCC
8796 3.0.x cannot compile internal functions in deeper scopes
8797 correctly.
8798 (find_root_device): Use lstat instead of stat.
8799 Don't follow symbolic links.
8800 Fix the path-constructing code.
8801
8802 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
8803 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
8804 by a BLKGETSIZE ioctl first, because block devices don't fill
8805 the member st_mode of the structure stat on Linux.
8806 [__linux__] (linux_find_partition): Use a temporary buffer
8807 REAL_DEV for the working space. Copy it to DEV before returning.
8808 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
8809 buffer cache consistent.
8810 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
8811 strncmp. The previous value was merely wrong.
8812 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
8813
8814 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
8815 FAT size is 12. The previous value was merely wrong.
8816
8817 * kern/main.c (pupa_main): Don't split the starting message from
8818 newlines.
8819
8820 * kern/term.c (pupa_putchar): Put CR after LF instead of before
8821 LF, because BIOS goes crazy about character attributes in this
8822 case.
8823
1cc73a62 88242003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
8825
8826 * include/i386/pc/util/biosdisk.h: New file.
8827 * util/i386/pc/biosdisk.c: Likewise.
8828 * util/i386/pc/pupa-setup.c: Likewise.
8829
8830 * Makefile.in (INCLUDE_DISTFILES): Added
8831 include/pupa/i386/pc/util/biosdisk.h.
8832 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
8833 directory util/i386/pc.
8834 (install-local): Added a rule for sbin_UTILITIES.
8835 (uninstall): Likewise.
8836
8837 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
8838
8839 * util/misc.c (xrealloc): New function.
8840 (pupa_malloc): Likewise.
8841 (pupa_free): Likewise.
8842 (pupa_realloc): Likewise.
8843 (pupa_stop): Likewise.
8844 (pupa_putchar): Likewise.
8845
8846 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
8847
8848 * include/pupa/util/misc.h (xrealloc): Declared.
8849
8850 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
8851 macro.
8852 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
8853 (PUPA_BOOT_MACHINE_BPB_END): ... this.
8854
8855 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
8856 [PUPA_UTIL] (pupa_fat_fini): Likewise.
8857
8858 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
8859 way should be implemented.
8860 [PUPA_UTIL] (pupa_fat_fini): Likewise.
8861
8862 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
8863 the size of NAME for safety.
8864 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
8865 0x88.
8866
8867 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
8868 (pupa_setup_SOURCES): Likewise.
8869
8870 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
8871
08b70fe8 88722002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
8873
8874 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
8875 bunch of pushl's from pusha, because this destroys the return
8876 value.
8877
62ddcc8f 88782002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
8879
8880 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
8881 This means that any missing prototypes could be fatal. Also, you
8882 must take care when writing assembly code. See the comments at
8883 the beginning of startup.S, for more details.
8884
8885 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
8886 compilation mechanism.
8887 (pupa_chainloader_real_boot): Likewise.
8888 (pupa_biosdisk_rw_int13_extensions): Likewise.
8889 (pupa_biosdisk_rw_standard): Likewise.
8890 (pupa_biosdisk_check_int13_extensions): Likewise.
8891 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
8892 (pupa_biosdisk_get_diskinfo_standard): Likewise.
8893 (pupa_get_memsize): Likewise.
8894 (pupa_get_mmap_entry): Likewise.
8895 (pupa_console_putchar): Likewise.
8896 (pupa_console_setcursor): Likewise.
8897 (pupa_getrtsecs): Use pushl instead of push.
8898
8899 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
8900 memory instead of the stack for a mmap entry, because some
8901 BIOSes may ignore the maximum size and overflow.
8902
8903 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
8904
8905 * genmk.rb (PModule#rule): Compile automatically generated
8906 sources with module-specific CFLAGS as well as other sources.
8907
9962ed99 89082002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8909
8910 * configure.ac: Check ld.
8911 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
8912 respectively, before checking endianness and sizes.
8913
8914 * Makefile.in (LD): New variable.
8915
abdfc3c5 89162002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8917
8918 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
8919
6a161fa9 89202002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8921
8922 * Changelog: New file.
8923