]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
[grub2.git] / ChangeLog
CommitLineData
6c688477 12009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
2
3 Avoid aliases when compiling with Apple's CC for PCBIOS machine
4
5 * kern/misc.c [APPLE_CC] (memcpy): new function
6 [APPLE_CC] (memmove): likewise
7 [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
8 (memcpy): define alias conditionaly on !APPLE_CC
9 (memset): likewise
10 (abort): likewise
11 * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
12 APPLE_CC are defined
13 * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
14 (grub_assert_fail): make prototype conditional
15
e37ffc5c 162009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
17
18 Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
19
20 * conf/common.rmk (bin_UTILITIES): add (on false on condition)
21 grub-macho2img
22 (CLEANFILES): add grub-macho2img
23 (grub_macho2img_SOURCES): new variable
24 * kern/i386/pc/startup.S (bss_start): new variable
25 (bss_end): likewise
26 * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
27 * util/grub-macho2img.c: new file
28
cf00df31 292009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
30
31 Use objconv when compiling with Apple's CC
32
33 * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
34 (efiemu64.o): likewise
35 (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
36 when compiling with Apple's CC
37 (efiemu64_s.o): likewise
38 * configure.ac: check for objconv when compiling with Apple's CC
39 * genmk.rb: use objconv for modules when compiled with Apple's CC
40
d119a20c 412009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
42
43 Define segment as well as section when compiling with
44 Apple's CC
45
46 * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
47 (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
48 (efiemu_convert_pointer): likewise
49 (efiemu_set_virtual_address_map): likewise
50 (efiemu_convert_pointer): likewise
51 (efiemu_getcrc32): likewise
52 (init_crc32_table): likewise
53 (reflect): likewise
54 * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
55 (GRUB_MOD_DEP): likewise
56
c8600122 572009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
58
59 Allow a compilation without -mcmodel=large
60
61 * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
62 when compiled without -mcmodel=large
63 (filter_memory_map): remove memory post 4 GiB when compiled
64 without -mcmodel=large
65 * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
66 TARGET_CFLAGS when -mcmodel=large isn't supported
67
e8df1d4e 682009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
69
70 Remove nested functions in efiemu core
71
72 * efiemu/runtime/efiemu.c (reflect): make static instead of nested
73
cc6c3ac1 742009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
75
76 Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
77
78 * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
79 temporary storage
80 * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
81 using Apple's CC
82 (grub_cpu_is_tsc_supported): likewise
83 * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
84
3e325901 852009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
86
87 Absolute addressing through constant with Apple's cc
88
89 * kern/i386/pc/startup.S: Define necessary constants
90 and address through it when using ABS with Apple's CC
91 * boot/i386/pc/diskboot.S: likewise
92 * boot/i386/pc/boot.S: likewise
93 * boot/i386/pc/lnxboot.S: likewise
94 * boot/i386/pc/cdboot.S: likewise
95 * mmap/i386/pc/mmap_helper.S: likewise
96 * commands/i386/pc/drivemap_int13h.S: likewise
97
2b167a72 982009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
99
100 Check if compiler is apple cc
101
102 * Makefile.in (ASFLAGS): new variable
103 (TARGET_ASFLAGS): likewise
104 (TARGET_MODULE_FORMAT): likewise
105 (TARGET_APPLE_CC): likewise
106 (OBJCONV): likewise
107 (TARGET_IMG_CFLAGS): likewise
108 (TARGET_CPPFLAGS): add includedir
109 * configure.ac: call grub_apple_cc and grub_apple_target_cc
110 (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
111 Check for linker script only if compiler isn't Apple's CC
112 (TARGET_MODULE_FORMAT): set
113 (TARGET_APPLE_CC): likewise
114 (TARGET_ASFLAGS): likewise
115 (ASFLAGS): likewise
116 Check for objcopy only if compiler isn't Apple's CC
117 Check for BSS symbol only if compiler isn't Apple's CC
118 * genmk.rb: adapt nm options if we use Apple's utils
119 * aclocal.m4 (grub_apple_cc): new test
120 (grub_apple_target_cc): likewise
121
fb14123e 1222009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
123
124 Simplify sed expressions and improve awk
125
126 * Makefile.in (install-local): simplify sed expression
127 * gencmdlist.sh: likewise
128 * genmoddep.awk: avoid adding module as a dependency of itself
129
5b889789 1302009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
131
132 Add missing start symbols
133
134 * boot/i386/pc/boot.S: add start
fb14123e 135 * boot/i386/pc/pxeboot.S: likewise
5b889789 136
fd2bf2e3 1372009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
138
139 Fix wrong assumptions with grub-mkimage on EFI
140
141 * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefox here
142 (relocate_addresses): consider both r_addend and value at offset
143 (make_mods_section): zerofill modinfo and header
144 (convert_elf): write prefix here
145
5389763d 1462009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
147
148 Use .asciz instead of .string
149
150 * i386/pc/diskboot.S: use .asciz instead of .string
151 * i386/pc/boot.S: likewise
152 * include/grub/dl.h (GRUB_MOD_DEP): likewise
153 (GRUB_MOD_NAME): likewise
154
3eb5ed4e 1552009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
156
157 gfxpayload support
158
159 * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
160 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
161 (grub_video_setup): remove
162 (grub_video_set_mode): new prototype
163 * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
164 (vid_mode): remove
165 (linux_vesafb_res): compile only on PCBIOS
166 (grub_linux_boot): support gfxpayload
167 * loader/i386/pc/xnu.c (video_hook): new function
168 (grub_xnu_set_video): support gfxpayload
169 * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
170 (DEFAULT_VIDEO_HEIGHT): likewise
171 (DEFAULT_VIDEO_FLAGS): likewise
172 (DEFAULT_VIDEO_MODE): new definition
173 (video_hook): new function
174 (grub_gfxterm_init): use grub_video_set_mode
175 * util/grub.d/30_os-prober.in: remove explicit modesetting before
176 loading xnu
177 * video/video.c (grub_video_setup): removed
178 (grub_video_set_mode): new function based on grub_gfxterm_init and
179 grub_video_setup
180
4b0e1143 1812009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
182
183 Avoid calling biosdisk in drivemap
184
185 * commands/i386/pc/drivemap.c (parse_biosdisk): remove
186 (revparse_biosdisk): likewise
187 (list_mappings): derive name from id directly
188 (grub_cmd_drivemap): use tryparse_diskstring
189
fda6cb98 1902009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
191
192 Script fixes
193
194 * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
195 (grub_lexer_param): add tokenonhold
196 (grub_script_create_cmdline): remove cmdline. All callers updated
197 (grub_script_function_create): make functionname
198 grub_script_arg. All callers updated
199 (grub_script_execute_argument_to_string): new prototype
200 * kern/parser.c (state_transitions): reorder
201 (grub_parser_cmdline_state): fix a bug and make more compact
202 * script/sh/execute.c (grub_script_execute_argument_to_string):
203 make global
204 (grub_script_execute_cmdline): use new format
205 * script/sh/function.c (grub_script_function_create): make functionname
206 grub_script_arg. All callers updated
207 * script/sh/lexer.c (grub_script_lexer_init): initilaize tokenonhold
208 (grub_script_yylex): remove
209 (grub_script_yylex2): renamed to ...
210 (grub_script_yylex): ...renamed
211 parse the expressions like a${b}c
212 * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
213 (GRUB_PARSER_TOKEN_VAR): remove
214 (GRUB_PARSER_TOKEN_NAME): likewise
215 ("if"): declare as typeless
216 ("while"): likewise
217 ("function"): likewise
218 ("else"): likewise
219 ("then"): likewise
220 ("fi"): likewise
221 (text): remove
222 (argument): likewise
223 (script): accept empty scripts and make exit on error
224 (arguments): use GRUB_PARSER_TOKEN_ARG
225 (function): likewise
226 (command): move error handling to script
227 (menuentry): move grub_script_lexer_ref before
228 * script/sh/script.c (grub_script_create_cmdline): remove cmdline
229 argument. All callers updated
230
f4448a07 2312009-06-04 Robert Millan <rmh.grub@aybabtu.com>
232
233 Prevent GRUB from probing floppies during boot.
234
235 * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
236 * commands/search.c (options): Add --no-floppy.
237 (search_fs, search_file, grub_cmd_search): Support --no-floppy.
238 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
239 --no-floppy when searching for UUIDs.
240
2bf5885a 2412009-06-04 Robert Millan <rmh.grub@aybabtu.com>
242
243 Simplify the code duplication in commands/search.c.
244
245 * commands/search.c (search_label, search_fs_uuid): Merge into ...
246 (search_fs): ... this. Update all users.
247
f6fd460a 2482009-06-03 Felix Zielcke <fzielcke@z-51.de>
249
250 * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
251
cbb3c83e 2522009-05-28 Pavel Roskin <proski@gnu.org>
253
57788cfd 254 * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
255 Remove the original symlink explicitly.
256
cbb3c83e 257 * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
258 just one slash. That's how grub_fshelp_find_file() does it.
259
cd0d5e30 2602009-05-26 Pavel Roskin <proski@gnu.org>
261
f0f8bbe2 262 * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
263 to `str'.
264
cd0d5e30 265 * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
266 possibly unused.
267
8c2cab51 2682009-05-25 Christian Franke <franke@computer.org>
269
270 * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
271 register.
272 (grub_atapi_identify): Add wait after drive select.
273 (grub_ata_identify): Do more strict status register check before
274 calling grub_atapi_identify (). Suppress error message if status
275 register is 0x00 after command failure. Add status register
276 check after PIO read to avoid bogus identify due to stuck DRQ.
277 Thanks to Pavel Roskin for testing.
278 (grub_device_initialize): Remove unsafe status register check.
279 Thanks to 'phcoder' for problem report and patch.
280 Prevent sign extension in debug message.
281
230c0ad6 2822009-05-23 Colin D Bennett <colin@gibibit.com>
283
284 Cleaned up `include/grub/normal.h'. Grouped prototypes by
285 definition file, and functions defined in `normal/menu.c' have had
286 their prototypes moved to `include/grub/menu.h' for consistency.
287
288 * include/grub/menu.h (grub_menu_execute_callback): Added; moved
289 from normal.h.
290 (grub_menu_get_entry): Likewise.
291 (grub_menu_get_timeout): Likewise.
292 (grub_menu_set_timeout): Likewise.
293 (grub_menu_execute_entry): Likewise.
294 (grub_menu_execute_with_fallback): Likewise.
295 (grub_menu_entry_run): Likewise.
296
297 * include/grub/normal.h: Re-ordered and grouped function
298 prototypes by file that the function is defined in.
299 (grub_menu_execute_callback): Removed; moved to menu.h.
300 (grub_menu_get_entry): Likewise.
301 (grub_menu_get_timeout): Likewise.
302 (grub_menu_set_timeout): Likewise.
303 (grub_menu_execute_entry): Likewise.
304 (grub_menu_execute_with_fallback): Likewise.
305 (grub_menu_entry_run): Likewise.
306 (grub_menu_addentry): Renamed from this ...
307 (grub_normal_add_menu_entry): ... to this.
308
309 * normal/main.c (grub_menu_addentry): Renamed from this ...
310 (grub_normal_add_menu_entry): ... to this.
311
312 * script/sh/execute.c (grub_script_execute_menuentry): Update
313 reference to renamed grub_menu_addentry function.
314
861f03a5 3152009-05-23 Felix Zielcke <fzielcke@z-51.de>
316
317 * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
318
96b1619a 3192009-05-22 Pavel Roskin <proski@gnu.org>
320
bf6a5fb2 321 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
322 * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define
323 NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when
324 compiling for the i386 targets, but not for the utilities.
325
96b1619a 326 * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
327 to grub_uint8_t.
328 (grub_root_drive): Likewise.
329 * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
330 remove alignment.
331 (grub_root_drive): Change size to byte.
332 (grub_start_addr): Remove.
333 (grub_end_addr): Likewise.
334 (grub_apm_bios_info): Likewise.
335
b729776b 3362009-05-21 Felix Zielcke <fzielcke@z-51.de>
337
338 * normal/i386: Remove.
339 * normal/powerpc: Likewise.
340 * normal/sparc64: Likewise.
341 * normal/x86_64: Likewise.
342
0a15ce80 3432009-05-19 Vladimir Serbinenko <phcoder@gmail.com>
344
345 * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
346 * loader/i386/linux_trampoline.S: Fix identation
347 * loader/i386/xnu_helper.S: Likewise
d6da58e6 348
33db9015 3492009-05-18 Colin D Bennett <colin@gibibit.com>
350
d6da58e6 351 Display error messages when parsing a Lua statement fails.
352 Previously, executing a syntactically invalid statement like
353 ")foo" or "bar;" would silently fail.
33db9015 354
355 * script/lua/grub_main.c (handle_lua_error): New function.
d6da58e6 356 (grub_lua_parse_line): Improved reporting of Lua parser and
357 execution errors.
33db9015 358
46422c89 3592009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
360
361 Remove -Werror which causes build to fail on some systems
362
363 * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
364 * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
365 * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
18f547ad 366
22f53a96 3672009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
368
369 trampoline for linux on 64-bit platform
370
18f547ad 371 * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
372 loader/i386/efi/linux_trampoline.S
373 * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
22f53a96 374 declration
d6da58e6 375 * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
376 here
22f53a96 377 * loader/i386/linux_trampoline.S: moved here
d6da58e6 378 * loader/i386/efi/linux.c (allocate_pages): reserve space for
379 trampoline
22f53a96 380 (jumpvector): removed
381 (grub_linux_trampoline_start): new declaration
382 (grub_linux_trampoline_end): likewise
383 (grub_linux_boot): use trampoline when on 64-bit platform
384 * loader/i386/linux.c: likewise
385
cb5a0f40 3862009-05-16 Pavel Roskin <proski@gnu.org>
387
388 * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
389 const to avoid a warning.
390 (grub_lua_setenv): Likewise.
391 * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
392 lmsg to fix a warning.
393
334f2c28 3942009-05-16 Felix Zielcke <fzielcke@z-51.de>
395
396 * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
7dd10fce 397 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
398 * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
399 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
400 * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
401 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
402 * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
403 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
334f2c28 404
59e5d3ec 4052009-05-16 Felix Zielcke <fzielcke@z-51.de>
406
407 * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
408
9d87a1ba 4092009-05-16 Bean <bean123ch@gmail.com>
410
411 * conf/common.rmk (pkglib_MODULES): Add lua.mod.
412 (lua_mod_SOURCES): New variable.
413 (lua_mod_CFLAGS): Likewise.
414 (lua_mod_LDFLAGS): Likewise.
415
416 * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
417 (setjmp_mod_SOURCES): New variable.
418 (setjmp_mod_CFLAGS): Likewise.
419 (setjmp_LDFLAGS): Likewise.
420
421 * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
422 (setjmp_mod_SOURCES): New variable.
423 (setjmp_mod_CFLAGS): Likewise.
424 (setjmp_LDFLAGS): Likewise.
425
426 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
427 (setjmp_mod_SOURCES): New variable.
428 (setjmp_mod_CFLAGS): Likewise.
429 (setjmp_LDFLAGS): Likewise.
430
431 * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
432 (setjmp_mod_SOURCES): New variable.
433 (setjmp_mod_CFLAGS): Likewise.
434 (setjmp_LDFLAGS): Likewise.
435
436 * normal/i386/setjmp.S: Moved from here ...
437 * lib/i386/setjmp.S: ... Moved here
438 * normal/x86_64/setjmp.S: Moved from here ...
439 * lib/x86_64/setjmp.S: ... Moved here
440 * normal/powerpc/setjmp.S: Moved from here ...
441 * lib/powerpc/setjmp.S: ... Moved here
442 * normal/sparc64/setjmp.S: Moved from here ...
443 * lib/sparc64/setjmp.S: ... Moved here
444
445 * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
446 returns_twice in mingw.
447
448 * script/lua/grub_lib.c: New file.
449 * script/lua/grub_lib.h: Likewise.
450 * script/lua/grub_lua.h: Likewise.
451 * script/lua/grub_main.c: Likewise.
452 * script/lua/lapi.c: Likewise.
453 * script/lua/lapi.h: Likewise.
454 * script/lua/lauxlib.c: Likewise.
455 * script/lua/lauxlib.h: Likewise.
456 * script/lua/lbaselib.c: Likewise.
457 * script/lua/lcode.c: Likewise.
458 * script/lua/lcode.h: Likewise.
459 * script/lua/ldblib.c: Likewise.
460 * script/lua/ldebug.c: Likewise.
461 * script/lua/ldebug.h: Likewise.
462 * script/lua/ldo.c: Likewise.
463 * script/lua/ldo.h: Likewise.
464 * script/lua/ldump.c: Likewise.
465 * script/lua/lfunc.c: Likewise.
466 * script/lua/lfunc.h: Likewise.
467 * script/lua/lgc.c: Likewise.
468 * script/lua/lgc.h: Likewise.
469 * script/lua/linit.c: Likewise.
470 * script/lua/liolib.c: Likewise.
471 * script/lua/llex.c: Likewise.
472 * script/lua/llex.h: Likewise.
473 * script/lua/llimits.h: Likewise.
474 * script/lua/lmathlib.c: Likewise.
475 * script/lua/lmem.c: Likewise.
476 * script/lua/lmem.h: Likewise.
477 * script/lua/loadlib.c: Likewise.
478 * script/lua/lobject.c: Likewise.
479 * script/lua/lobject.h: Likewise.
480 * script/lua/lopcodes.c: Likewise.
481 * script/lua/lopcodes.h: Likewise.
482 * script/lua/loslib.c: Likewise.
483 * script/lua/lparser.c: Likewise.
484 * script/lua/lparser.h: Likewise.
485 * script/lua/lstate.c: Likewise.
486 * script/lua/lstate.h: Likewise.
487 * script/lua/lstring.c: Likewise.
488 * script/lua/lstring.h: Likewise.
489 * script/lua/lstrlib.c: Likewise.
490 * script/lua/ltable.c: Likewise.
491 * script/lua/ltable.h: Likewise.
492 * script/lua/ltablib.c: Likewise.
493 * script/lua/ltm.c: Likewise.
494 * script/lua/ltm.h: Likewise.
495 * script/lua/lua.h: Likewise.
496 * script/lua/luaconf.h: Likewise.
497 * script/lua/lualib.h: Likewise.
498 * script/lua/lundump.c: Likewise.
499 * script/lua/lundump.h: Likewise.
500 * script/lua/lvm.c: Likewise.
501 * script/lua/lvm.h: Likewise.
502 * script/lua/lzio.c: Likewise.
503 * script/lua/lzio.h: Likewise.
504
5e898c9d 5052009-05-16 Bean <bean123ch@gmail.com>
506
507 * include/grub/kernel.h (grub_module_header_types): Add type
508 OBJ_TYPE_CONFIG.
509
510 * kern/main.c (grub_load_config): New function.
511 (grub_main): Call grub_load_config to read boot config.
512
513 * grub-mkimage (generate_image): New parameter config_path.
514 (options): New option --config.
515 (main): Parse --config option, and pass it to generate_image.
516
cf353a47 5172009-05-14 Christian Franke <franke@computer.org>
518
519 * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
520 This fixes build on Cygwin.
521
3834887f 5222009-05-14 Pavel Roskin <proski@gnu.org>
523
524 * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
525 jump. This saves two bytes, so the typical case of 2 swapped
526 drives would fit 32 bytes.
527
8090fc01 5282009-05-13 Pavel Roskin <proski@gnu.org>
529
ac963883 530 * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
531 grub_uint32_t to avoid a warning.
532
8090fc01 533 * loader/i386/linux.c (allocate_pages): When assigning
534 real_mode_mem, cast through grub_size_t to fix a warning. The
535 code already makes sure that the value would fit a pointer.
536 (grub_linux_setup_video): Cast render_target->data to
537 grub_size_t to fix a warning.
538
18f547ad 5392009-05-13 Javier Martín <lordhabbit@gmail.com>
4246b8a9 540
541 * commands/i386/pc/drivemap.c: New file - implement drivemap
542 command.
543 * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
544 * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
545
6f6a8b28 5462009-05-13 Pavel Roskin <proski@gnu.org>
547
548 * util/i386/pc/grub-setup.c (setup): Remove unused variable
549 embedding_area_exists.
550
15fbf4c4 5512009-05-13 Robert Millan <rmh.grub@aybabtu.com>
552
553 * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
554 it easier to understand / work with.
59978c8a 555 Improve warning messages for cases where there's no embedding area,
556 or when it is too small (or core.img too large).
15fbf4c4 557
238e871f 5582009-05-13 Pavel Roskin <proski@gnu.org>
559
0ab3a9a4 560 * loader/i386/pc/multiboot2.c: Add necessary includes for
561 grub_multiboot2_real_boot().
562
a2c8c5f8 563 * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
564 PX record is always little-endian. We only need the lower 2
565 bytes of the mode.
566
faec96af 567 * fs/cpio.c: Use the same name "struct head" for tar and cpio to
568 facilitate code reuse.
569 (grub_cpio_mount): Use "struct head", not a char buffer. This
570 fixes a warning reported by gcc 4.4.
571
238e871f 572 * kernel/disk.c (grub_disk_read): Use void pointer for the
573 buffer.
574 (grub_disk_write): Use const void pointer for the buffer.
575 Adjust all callers. Remove unnecessary casts.
576
901d2f0c 5772009-05-10 Robert Millan <rmh.grub@aybabtu.com>
578
579 * util/i386/pc/grub-install.in: Update copyright year.
580
18f547ad 5812009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
2eac4c16 582
583 gptsync
584
585 * commands/gptsync.c: new file
586 * conf/common.rmk (pkglib_MODULES): add gptsync.mod
587 (gptsync_mod_SOURCES): new variable
588 (gptsync_mod_CFLAGS): likewise
589 (gptsync_mod_LDFLAGS): likewise
18f547ad 590 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
2eac4c16 591 new definition
592 (GRUB_PC_PARTITION_TYPE_HFS): likewise
593 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
594 * conf/i386-ieee1275.rmk: likewise
595 * conf/i386-pc.rmk: likewise
596 * conf/powerpc-ieee1275.rmk: likewise
597
b4ba690a 5982009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
599
600 Fixed grub-emu
601
602 * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
603 (grub_dl_ref): likewise
604
317e1a44 6052009-05-08 Robert Millan <rmh.grub@aybabtu.com>
606
607 * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
608 split in two functions (one for msdos and one for gpt).
609
041b8094 6102009-05-08 Pavel Roskin <proski@gnu.org>
611
752473c2 612 * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
613 not modified.
614
041b8094 615 * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
616 uninitialized err[0] and err[1]. Rename them to bad1 and bad2.
617 Initialize them with -1. Add sanity check for bad1. Eliminate
618 nerr variable.
619
172800ce 6202009-05-08 David S. Miller <davem@davemloft.net>
621
622 * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
623
29aa5e81 6242009-05-06 Robert Millan <rmh.grub@aybabtu.com>
625
626 * util/i386/pc/grub-setup.c (setup): Fix check for embed region
627 existance.
628
96613b62 6292009-05-05 Felix Zielcke <fzielcke@z-51.de>
630
631 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1905c57b 632 `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
96613b62 633
eef73c8a 6342009-05-05 David S. Miller <davem@davemloft.net>
635
636 * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
637
119494b5 6382009-05-05 Pavel Roskin <proski@gnu.org>
639
640 * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
641 of grub_dl_ref() and grub_dl_unref().
642 * commands/parttool.c: Remove preprocessor conditionals around
643 grub_dl_ref() and grub_dl_unref().
644 * fs/affs.c: Likewise.
645 * fs/afs.c: Likewise.
646 * fs/cpio.c: Likewise.
647 * fs/ext2.c: Likewise.
648 * fs/fat.c: Likewise.
649 * fs/hfs.c: Likewise.
650 * fs/hfsplus.c: Likewise.
651 * fs/iso9660.c: Likewise.
652 * fs/jfs.c: Likewise.
653 * fs/minix.c: Likewise.
654 * fs/ntfs.c: Likewise.
655 * fs/reiserfs.c: Likewise.
656 * fs/sfs.c: Likewise.
657 * fs/udf.c: Likewise.
658 * fs/ufs.c: Likewise.
659 * fs/xfs.c: Likewise.
660 * include/grub/dl.h: Likewise.
661 * loader/xnu.c: Likewise.
662
de5fd76e 6632009-05-04 Pavel Roskin <proski@gnu.org>
664
665 * commands/acpi.c: Remove unused variable my_mod.
666 * partmap/amiga.c: Likewise.
667 * partmap/apple.c: Likewise.
668 * partmap/gpt.c: Likewise.
669 * partmap/pc.c: Likewise.
670 * partmap/sun.c: Likewise.
671 * term/gfxterm.c: Likewise.
672 * term/i386/pc/vesafb.c: Likewise.
673 * term/i386/pc/vga.c: Likewise.
674
983598ad 6752009-05-04 David S. Miller <davem@davemloft.net>
676
677 * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
678 pointer args to grub_ieee1275_get_property().
679
8aadec43 680 * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
681
9554b15e 682 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
683 devices, and do not traverse down under controller nodes.
684
67e23c90 685 * disk/ieee1275/ofdisk.c (compute_dev_path): New.
686 (grub_ofdisk_open): Use it to un-escape "," characters.
687 * kern/disk.c (find_part_sep): New.
688 (grub_disk_open): Use it to find the first non-escaped ','
689 character in the disk name.
690 * util/ieee1275/devicemap.c (escape_of_path): New.
691 (grub_util_emit_devicemap_entry): Use it.
692 * util/sparc64/ieee1275/grub-install.in: Update script to
693 strip partition specifiers properly by not triggering on
694 '\' escaped ',' characters.
695
74bfdd2f 6962009-05-04 Robert Millan <rmh.grub@aybabtu.com>
697
698 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
699 to 0x300.
700 * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
701 resolutions.
702 (linux_vesafb_modes): Add a lot of additional modes to the list (based
703 on documentation from Wikipedia).
704
4241d2b1 7052009-05-04 Pavel Roskin <proski@gnu.org>
706
707 * disk/ata.c: Spelling fixes.
708 * disk/raid.c: Likewise.
709 * disk/usbms.c: Likewise.
710 * disk/dmraid_nvidia.c: Likewise.
711 * kern/ieee1275/openfw.c: Likewise.
712 * kern/ieee1275/init.c: Likewise.
713 * kern/ieee1275/cmain.c: Likewise.
714 * boot/i386/pc/cdboot.S: Likewise.
715 * video/readers/png.c: Likewise.
716 * video/i386/pc/vbe.c: Likewise.
717 * fs/udf.c: Likewise.
718 * fs/hfs.c: Likewise.
719 * fs/reiserfs.c: Likewise.
720 * efiemu/runtime/efiemu.c: Likewise.
721 * efiemu/main.c: Likewise.
722 * efiemu/mm.c: Likewise.
723 * include/grub/elf.h: Likewise.
724 * include/grub/xnu.h: Likewise.
725 * include/grub/usbdesc.h: Likewise.
726 * include/grub/usb.h: Likewise.
727 * include/grub/script_sh.h: Likewise.
728 * include/grub/lib/LzmaEnc.h: Likewise.
729 * include/grub/efiemu/efiemu.h: Likewise.
730 * include/grub/command.h: Likewise.
731 * normal/menu.c: Likewise.
732 * normal/main.c: Likewise.
733 * normal/datetime.c: Likewise.
734 * bus/usb/uhci.c: Likewise.
735 * mmap/i386/uppermem.c: Likewise.
736 * mmap/mmap.c: Likewise.
737 * commands/acpi.c: Likewise.
738 * commands/test.c: Likewise.
739 * partmap/apple.c: Likewise.
740 * font/font.c: Likewise.
741 * loader/sparc64/ieee1275/linux.c: Likewise.
742 * loader/macho.c: Likewise.
743 * loader/i386/bsd_trampoline.S: Likewise.
744 * loader/i386/bsd.c: Likewise.
745 * loader/xnu.c: Likewise.
746 * term/i386/pc/vesafb.c: Likewise.
747 * term/usb_keyboard.c: Likewise.
748 * util/resolve.c: Likewise.
749 * util/getroot.c: Likewise.
750
0cfc0083 7512009-05-04 Felix Zielcke <fzielcke@z-51.de>
752
753 * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
754
7c1d00cd 7552009-05-04 Robert Millan <rmh.grub@aybabtu.com>
756
757 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
758 build error.
759
b01f0548 7602009-05-04 Robert Millan <rmh.grub@aybabtu.com>
761
762 * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
763 parameter only available on BIOS.
764
ecc3eb22 7652009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
766
767 Removed wrong semicolon in declaration
768
769 * grub/misc.h (grub_dprintf): remove semicolon
770
112972a9 7712009-05-04 Robert Millan <rmh.grub@aybabtu.com>
772
773 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
774 (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
775 is done by grub_cmd_linux() now).
776 [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
777 restore video to text mode.
778 (grub_cmd_linux): Default `vid_mode' initialization to 0, which
779 indicates lack of "vga=" parameter. "vga=0" is mapped to
780 `GRUB_LINUX_VID_MODE_NORMAL'.
781
afd5c115 7822009-05-04 Felix Zielcke <fzielcke@z-51.de>
783
784 * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
785 `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
786 and `normal/script.c'. Add `kern/rescue_reader.c',
18f547ad 787 `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
afd5c115 788 `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
789 `grub_script.tab.c'.
790
791 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
792 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
793 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
794 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
795 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
796
faa517ce 797 * Makefile.in: Remove duplicated 2008 in Copyright line.
798
ae0c0bdc 7992009-05-04 Robert Millan <rmh.grub@aybabtu.com>
800
801 * util/misc.c (grub_util_warn): New function. Emmits a warning
802 unconditionally.
803 * include/grub/util/misc.h (grub_util_warn): New declaration.
804
805 * util/i386/pc/grub-install.in: Understand --force and pass it down
806 to grub-setup.
807
808 * util/i386/pc/grub-setup.c (main): Understand --force and pass it
809 down to setup().
810 (setup): Improve error messages and add warnings when requested to
811 install in odd layouts. Refuse to install using blocklists unless
812 --force was set.
813
18f547ad 8142009-05-04 martin f. krafft <madduck@madduck.net>
c149b500 815
816 * disk/raid.c (grub_raid_scan_device): Improve debug message.
817
6d260daa 8182009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
819
820 Updated copyright year
821
822 * fs/hfsplus.c: updated copyright year
18f547ad 823
69f853f8 8242009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
825
826 HFS+ UUID
827
18f547ad 828 * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
69f853f8 829 in the space previously used by unused3
830 (grub_hfsplus_uuid): new function
831 (grub_hfsplus_fs): added uuid field
832
4c402e73 8332009-05-03 Pavel Roskin <proski@gnu.org>
834
835 * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
836 suppress warnings. It's no longer needed.
837 * disk/host.c: Likewise.
838 * disk/ata_pthru.c: Likewise.
839 * disk/loopback.c: Likewise.
840 * hook/datehook.c: Likewise.
841 * parttool/pcpart.c: Likewise.
842 * fs/i386/pc/pxe.c: Likewise.
843 * fs/ntfscomp.c: Likewise.
844 * efiemu/main.c: Likewise.
845 * mmap/mmap.c: Likewise.
846 * commands/crc.c: Likewise.
847 * commands/hexdump.c: Likewise.
848 * commands/hdparm.c: Likewise.
849 * commands/acpi.c: Likewise.
850 * commands/echo.c: Likewise.
851 * commands/minicmd.c: Likewise.
852 * commands/blocklist.c: Likewise.
853 * commands/memrw.c: Likewise.
854 * commands/loadenv.c: Likewise.
855 * commands/usbtest.c: Likewise.
856 * commands/lsmmap.c: Likewise.
857 * commands/boot.c: Likewise.
858 * commands/parttool.c: Likewise.
859 * commands/configfile.c: Likewise.
860 * commands/search.c: Likewise.
861 * commands/ieee1275/suspend.c: Likewise.
862 * commands/cat.c: Likewise.
863 * commands/i386/pc/pxecmd.c: Likewise.
864 * commands/i386/pc/play.c: Likewise.
865 * commands/i386/pc/halt.c: Likewise.
866 * commands/i386/pc/vbeinfo.c: Likewise.
867 * commands/i386/pc/vbetest.c: Likewise.
868 * commands/lspci.c: Likewise.
869 * commands/date.c: Likewise.
870 * commands/handler.c: Likewise.
871 * commands/ls.c: Likewise.
872 * commands/test.c: Likewise.
873 * commands/cmp.c: Likewise.
874 * commands/efi/loadbios.c: Likewise.
875 * commands/efi/fixvideo.c: Likewise.
876 * commands/halt.c: Likewise.
877 * commands/help.c: Likewise.
878 * commands/reboot.c: Likewise.
879 * hello/hello.c: Likewise.
880 * script/sh/main.c: Likewise.
881 * loader/xnu.c: Likewise.
882 * term/terminfo.c: Likewise.
883 * term/i386/pc/serial.c: Likewise.
884 * term/usb_keyboard.c: Likewise.
885
515b5079 8862009-05-03 David S. Miller <davem@davemloft.net>
887
888 * normal/menu.c: Include grub/parser.h
889
dfc31a22 8902009-05-03 Pavel Roskin <proski@gnu.org>
891
2fee74f1 892 * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
893 not char*.
894 * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
895 Suggested by Javier Martín <lordhabbit@gmail.com>
896
dfc31a22 897 * util/i386/pc/grub-mkrescue.in: Allow for the case when
898 efiemu??.o doesn't exist.
899 * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for
900 copying.
901
18f547ad 9022009-05-03 Bean <bean123ch@gmail.com> Vladimir Serbinenko <phcoder@gmail.com>
cef17233 903
904 FreeBSD 64-bit support
905
18f547ad 906 * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
cef17233 907 and loader/i386/bsd_trampoline.S
908 (bsd_mod_ASFLAGS): new variable
909 * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
910 (FREEBSD_MODTYPE_KERNEL64): likewise
911 (grub_bsd64_trampoline_start): likewise
912 (grub_bsd64_trampoline_end): likewise
913 (grub_bsd64_trampoline_selfjump): likewise
914 (grub_bsd64_trampoline_gdt): likewise
915 * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
916 * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
917 * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
918 * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
18f547ad 919 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
cef17233 920 of "attrib" member
921 * loader/i386/bsd_pagetable.c: new file
922 * loader/i386/bsd_trampoline.S: likewise
923 * loader/i386/bsd.c (ALIGN_QWORD): new macro
924 (ALIGN_VAR): likewise
925 (entry_hi): new variable
926 (kern_end_mdofs): likewise
927 (is_64bit): likewise
928 (grub_freebsd_add_meta): use ALIGN_VAR
929 (grub_e820_mmap): new declaration
930 (grub_freebsd_add_mmap): new function
931 (grub_freebsd_add_meta_module): support 64 bit kernels
932 (grub_freebsd_list_modules): use ALIGN_VAR
933 (gdt_descriptor): new declaration
934 (grub_freebsd_boot): support 64 bit kernels
935 (grub_bsd_elf64_hook): new function
936 (grub_bsd_load_elf): support elf64
937
038c5720 9382009-05-03 Bean <bean123ch@gmail.com>
939
940 * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
941 after we get the result of if statement.
942
fc45fb58 9432009-05-03 Bean <bean123ch@gmail.com>
944
945 * Makefile.in (enable_efiemu): New variable.
946
947 * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
948 set.
949 (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
950 path.
951 (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
952 path, add -mno-red-zone option.
953 (efiemu64_s.o): Likewise.
954 (efiemu64.o): Use macro $^ for source file.
955
956 * configure.ac (--enable-efiemu): New option.
957
bbee0f2b 9582009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
959
960 xnu support
961
962 * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
963 (pkglib_MODULES): add xnu.mod
964 (xnu_mod_SOURCES): new variable
965 (xnu_mod_CFLAGS): likewise
966 (xnu_mod_LDFLAGS): likewise
967 (xnu_mod_ASFLAGS): likewise
968 * conf/i386-pc.rmk: likewise
969 * conf/x86_64-efi.rmk: likewise
7dd4a573 970 * include/grub/efi/efi.h (grub_efi_finish_boot_services):
bbee0f2b 971 new declaration
972 * include/grub/i386/macho.h: new file
973 * include/grub/i386/xnu.h: likewise
974 * include/grub/macho.h: likewise
975 * include/grub/machoload.h: likewise
976 * include/grub/x86_64/macho.h: likewise
977 * include/grub/x86_64/xnu.h: likewise
978 * include/grub/xnu.h: likewise
979 * kern/efi/efi.c (grub_efi_finish_boot_services): new function
980 * kern/efi/mm.c (MAX_HEAP_SIZE): increase
981 * loader/i386/efi/xnu.c: new file
982 * loader/i386/pc/xnu.c: likewise
983 * loader/i386/xnu.c: likewise
984 * loader/i386/xnu_helper.S: likewise
985 * loader/macho.c: likewise
986 * loader/xnu.c: likewise
987 * loader/xnu_resume.c: likewise
988 * util/grub-dumpdevtree: likewise
989 * include/grub/i386/pit.h: include grub/err.h
990 (grub_pit_wait): export
991 * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
7dd4a573 992
5caf964d 9932009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
994
995 Efiemu
7dd4a573 996
5caf964d 997 * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
7dd4a573 998 _linux_efi, linux_efi.
999 new files in grub-emu
5caf964d 1000 new targets efiemu32.o and efiemu64.o
1001 * loader/linux_normal_efiemu.c: likewise
1002 * loader/i386/efi/linux.c: added preliminary efiemu support
7dd4a573 1003 * util/i386/pc/grub-install.in: add efiemu??.o to the list of
5caf964d 1004 files to copy
1005 * include/grub/autoefi.h: new file
7dd4a573 1006 * include/grub/i386/efiemu.h: likewise
5caf964d 1007 * include/grub/i386/pc/efiemu.h: likewise
1008 * include/grub/efi/api.h: add LL suffix when necessary
1009 new definitions relating to tables
1010 * include/grub/efiemu/efiemu.h: new file
1011 * include/grub/efiemu/runtime.h: likewise
1012 * efiemu/prepare.c: likewise
1013 * efiemu/loadcore_common.c: likewise
1014 * efiemu/loadcore64.c: likewise
1015 * efiemu/runtime/efiemu.sh: likewise
1016 * efiemu/runtime/efiemu.S: likewise
1017 * efiemu/runtime/efiemu.c: likewise
1018 * efiemu/runtime/config.h: likewise
1019 * efiemu/prepare32.c: likewise
1020 * efiemu/main.c: likewise
1021 * efiemu/modules/pnvram.c: likewise
1022 * efiemu/modules/i386: likewise
1023 * efiemu/modules/i386/pc: likewise
1024 * efiemu/modules/acpi.c: likewise
1025 * efiemu/i386/pc/cfgtables.c: likewise
1026 * efiemu/i386/loadcore64.c: likewise
1027 * efiemu/i386/loadcore32.c: likewise
1028 * efiemu/prepare64.c: likewise
1029 * efiemu/loadcore.c: likewise
1030 * efiemu/symbols.c: likewise
1031 * efiemu/mm.c: likewise
1032 * efiemu/loadcore32.c: likewise
7dd4a573 1033
10342009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
f8efe3ad 1035
1036 ACPI spoofing
1037
1038 * commands/acpi.c: new file
1039 * commands/i386/pc/acpi.c: likewise
1040 * commands/efi/acpi.c: likewise
1041 * include/grub/acpi.h: likewise
1042 * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
1043 (acpi_mod_SOURCES): new variable
1044 (acpi_mod_CFLAGS): likewise
1045 (acpi_mod_LDFLAGS): likewise
1046 * conf/i386-efi.rmk: likewise
1047 * conf/x86_64-efi.rmk: likewise
1048
7dd4a573 10492009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
28a85665 1050
1051 Missing part from mmap patch
1052
1053 * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
1054 (grub_mmap_unregister)
1055 (grub_mmap_free_and_unregister): use grub_mmap_register
1056
7dd4a573 10572009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
09d842b9 1058
1059 Mmap services
1060
1061 * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
1062 * loader/i386/linux.c (find_mmap_size): likewise
1063 (allocate_pages): likewise
1064 * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
1065 (grub_fill_multiboot_mmap): likewise
1066 (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
1067 * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
1068 * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
1069 (OPENBSD_MMAP_RESERVED): likewise
1070 * include/grub/i386/pc/memory.h: include grub/memory.h
1071 (grub_lower_mem): removed
1072 (grub_upper_mem): likewise
1073 (GRUB_MACHINE_MEMORY_ACPI): new definition
1074 (GRUB_MACHINE_MEMORY_NVS): likewise
1075 (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
1076 (GRUB_MACHINE_MEMORY_HOLE): likewise
1077 (grub_machine_mmap_register): likewise
1078 (grub_machine_mmap_unregister): likewise
1079 (grub_machine_get_upper): likewise
1080 (grub_machine_get_lower): likewise
1081 (grub_machine_get_post64): likewise
1082 * include/grub/i386/efi/memory.h: new file
1083 * include/grub/x86_64/efi/memory.h: likewise
1084 * include/grub/efi/memory.h: likewise
1085 * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
1086 (mmap_mod_SOURCES): new variable
1087 (mmap_mod_LDFLAGS): likewise
1088 (mmap_mod_ASFLAGS): likewise
1089 * conf/i386-coreboot.rmk: likewise
1090 * conf/i386-ieee1275.rmk: likewise
1091 * conf/i386-efi.rmk: likewise
1092 * conf/x86_64-efi.rmk: likewise
1093 * include/grub/types.h (UINT_TO_PTR): new macro
1094 (PTR_TO_UINT32): likewise
1095 (PTR_TO_UINT64): likewise
1096 * include/grub/memory.h: new file
1097 * mmap/i386/pc/mmap.c: likewise
1098 * mmap/i386/pc/mmap_helper.S: likewise
1099 * mmap/i386/uppermem.c: likewise
1100 * mmap/mmap.c: likewise
1101 * mmap/efi/mmap.c: likewise
7dd4a573 1102 * kern/i386/coreboot/init.c (grub_machine_init): don't use
09d842b9 1103 grub_upper_mem
1104 * kern/i386/pc/init.c (grub_lower_mem): removed variable
1105 (grub_upper_mem): likewise
1106 (grub_machine_init): don't use grub_upper_mem,
1107 make grub_lower_mem local
1108 * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
1109 grub_mmap_iterate and grub_mmap_get_upper
1110 (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
1111
d558e6b5 11122009-05-02 Bean <bean123ch@gmail.com>
1113
1114 * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
1115 script/sh/parser.y.
1116 (pkglib_MODULES): Add normal.mod and sh.mod.
1117 (normal_SOURCES): New variable.
1118 (normal_mod_CFLAGS): Likewise.
1119 (normal_mod_LDFLAGS): Likewise.
1120 (sh_mod_SOURCES): Likewise.
1121 (sh_mod_CFLAGS): Likewise.
1122 (sh_mod_LDFLAGS): Likewise.
1123
1124 * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
1125 script/sh/lexer.c_DEPENDENCIES.
1126 (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
1127 kern/rescue_reader.c and kern/rescue_parser.c.
1128 (kernel_img_HEADERS): Remove rescue.h, add reader.h.
1129 (grub_emu_SOURCES): Change source files.
1130 (pkglib_MODULES): Remove normal.mod.
1131 (normal_SOURCES): Removed.
1132 (normal_mod_CFLAGS): Likewise.
1133 (normal_mod_LDFLAGS): Likewise.
1134 * conf/i386-coreboot.rmk: Likewise.
1135 * conf/i386-efi.rmk: Likewise.
1136 * conf/i386-ieee1276.rmk: Likewise.
1137 * conf/powerpc-ieee1275.rmk: Likewise.
1138 * conf/sparc64-ieee1275.rmk: Likewise.
1139 * conf/x86_64-efi.rmk: Likewise.
1140
1141 * include/grub/command.h (grub_command_execute): New inline function.
1142
1143 * include/grub/menu.h (grub_menu_entry): Removed commands field.
1144
1145 * include/grub/normal.h: Remove <grub/setjmp.h>.
1146 (grub_fs_module_list): Moved to normal/autofs.c.
1147 (grub_exit_env): Removed.
1148 (grub_command_execute): Likewise.
1149 (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
1150 parameter script.
1151 (read_command_list): New function declaration.
1152 (read_fs_list): Likewise.
1153
1154 * include/parser.h: Include <grub/reader.h>.
1155 (grub_parser_split_cmdline): Change type of getline parameter.
1156 (grub_parser): New structure.
1157 (grub_parser_class): New variable.
1158 (grub_parser_execute): New function declaration.
1159 (grub_register_rescue_parser): Likewise.
1160 (grub_parser_register): New inline function.
1161 (grub_parser_unregister): Likewise.
1162 (grub_parser_get_current): Likewise.
1163 (grub_parser_set_current): Likewise.
1164
1165 * include/grub/reader.h: New file.
1166 * kern/reader.c: Likewise.
1167 * kern/rescue_parser.c: Likewise.
1168 * kern/rescue_reader.c: Likewise.
1169 * normal/autofs.c: Likewise.
1170 * normal/dyncmd.c: Likewise.
1171
1172 * include/grub/rescue.h: Removed.
1173 * normal/command.h: Likewise.
1174
1175 * include/grub/script.h: Moved to ...
1176 * include/grub/script_sh.h: ... Moved here.
1177 * normal/execute.c: Moved to ...
1178 * script/sh/execute.c: ... Moved here.
1179 * normal/function.c: Moved to ...
1180 * script/sh/function.c: ... Moved here.
1181 * normal/lexer.c: Moved to ...
1182 * script/sh/lexer.c: ... Moved here.
1183 * normal/parser.y: Moved to ...
1184 * script/sh/parser.y: ... Moved here.
1185 * normal/script.c: Moved to ...
1186 * script/sh/script.c: ... Moved here.
1187
1188 * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
1189 <grub/reader.h>.
1190 (grub_exit_env): Removed.
1191 (fs_module_list): Moved to normal/autofs.c.
1192 (grub_file_getline): Don't handle comment here.
1193 (free_menu): Skip removed field entry->commands.
1194 (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
1195 script parameter.
1196 (read_config_file): Removed nested parameter, change getline function.
1197 (grub_enter_normal_mode): Removed.
1198 (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
1199 (read_command_list): Likewise.
1200 (autoload_fs_module): Moved to normal/autofs.c.
1201 (read_fs_list): Likewise.
1202 (reader_nested): New variable.
1203 (grub_normal_execute): Run parser.sh to switch to sh parser.
1204 (grub_cmd_rescue): Removed.
1205 (cmd_normal): Removed.
1206 (grub_cmd_normal): Unregister itself at the beginning. Don't register
1207 rescue command.
1208 (grub_cmdline_run): New function.
1209 (grub_normal_reader_init): Likewise.
1210 (grub_normal_read_line): Likewise.
1211 (grub_env_write_pager): Likewise.
1212 (cmdline): New variable.
1213 (grub_normal_reader): Likewise.
1214 (GRUB_MOD_INIT): Register normal reader and set as current, register
1215 pager hook, register normal command with grub_register_command_prio,
1216 so that it won't show up in command.lst.
1217 (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
1218 grub_fs_autoload_hook.
1219
1220 * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
1221 (grub_menu_execute_entry): Replace grub_script_execute with
1222 grub_parser_execute, change parameter to grub_command_execute.
1223
1224 * normal/menu_text.c: Remove <grub/script.h>.
1225
1226 * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
1227 and <grub/parser.h>.
1228 (run): Change editor_getline to use new parser interface. Change
1229 parameter to grub_command_execute.
1230
1231 * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
1232 <grub/reader.h> and <grub/parser.h>.
1233 (grub_load_normal_mode): Execute normal command.
1234 (grub_main): Call grub_register_core_commands,
1235 grub_register_rescue_parser and grub_register_rescue_reader, use
1236 grub_reader_loop to enter input loop.
1237
7dd4a573 1238 * kern/parser.c (grub_parser_split_cmdline): Change type of
1239 getline parameter.
d558e6b5 1240 (grub_parser_class): New variable.
1241 (grub_parser_execute): New function.
1242
1243 * loader/i386/multiboot.c: Remove <grub/rescue.h>.
1244 * loader/multiboot2.c: Likewise.
1245 * loader/sparc64/ieee1275/linux.c: Likewise.
1246
1247 * util/grub-emu.c (read_command_list): New dummy function.
1248
18db813d 12492009-05-02 Robert Millan <rmh.grub@aybabtu.com>
1250
1251 * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
1252 count to 16 for CCISS and IDA.
1253
6c67de15 12542009-05-02 Robert Millan <rmh.grub@aybabtu.com>
1255
1256 * normal/menu_text.c (grub_wait_after_message): Print a newline
1257 after waiting for user input.
1258
1259 * loader/i386/linux.c: Include `<grub/normal.h>'.
1260 (grub_cmd_linux): Improve the error message about `ask' mode, by
1261 waiting for user input so it's not missed (we can do this, since
1262 user requested interaction).
1263
d9dc87b0 12642009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
1265
1266 Added missing lst to grub-mkrescue
1267
1268 * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
1269 and ${input_dir}/parttool.lst
1270
ac8a2baa 12712009-04-30 David S. Miller <davem@davemloft.net>
1272
ad22a610 1273 * util/hostdisk.c (device_is_wholedisk): New function.
1274 (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
1275 zero only if device_is_wholedisk() returns true.
1276
6966215d 1277 * util/hostdisk.c (convert_system_partition_to_system_disk):
1278 Handle virtual disk devices named /dev/vdiskX as found on sparc
1279 and powerpc.
1280
ac8a2baa 1281 * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
1282 lettered partition specifier is found, convert to numbered.
1283
979b4fb4 12842009-04-29 David S. Miller <davem@davemloft.net>
1285
e2bf39b2 1286 * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
1287 * include/grub/sparc64/ieee1275/memory.h: Likewise.
1288
3c64e104 1289 * normal/command.c: Add missing newline at end of file.
1290
979b4fb4 1291 * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
1292 warnings.
1293 * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
1294 * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
1295 grub_ofdisk_read): Likewise, and deal similarly with the fact that
1296 ihandles have a 32-bit type but need to be stored in a "void *".
1297
136d9f82 12982009-04-28 Pavel Roskin <proski@gnu.org>
1299
9459c306 1300 * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
1301 not disk. Adjust all dependencies.
2e08a26a 1302 (grub_fs_uuid_close): Use grub_device_close(), not
9459c306 1303 grub_disk_close().
1304
136d9f82 1305 * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
1306 parent's partition, don't copy it by reference, as it gets freed
1307 on close.
1308
7dd4a573 13092009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
75a807cf 1310
1311 Preboot hooks support
1312
1313 * commands/boot.c (struct grub_preboot_t): new declaration
1314 (preboots_head): new variable
1315 (preboots_tail): likewise
1316 (grub_loader_register_preboot_hook): new function
1317 (grub_loader_unregister_preboot_hook): likewise
1318 (grub_loader_set): launch preboot hooks
1319 * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
1320 (grub_loader_register_preboot_hook): new declaration
1321 (grub_loader_unregister_preboot_hook): likewise
1322
5af922b5 13232009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
1324
1325 Warning fix
1326
7dd4a573 1327 * disk/scsi.c (grub_scsi_open): added missing cast when
5af922b5 1328 calling grub_dprintf
1329
a5562c30 13302009-04-26 Vladimir Serbinenko <phcoder@gmail.com>
1331
1332 Bug and warning fixes
1333
7dd4a573 1334 * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
a5562c30 1335 declaration
1336 * commands/test.c (test_parse): fixed bug with file tests and corrected
1337 declaration of find_file
1338
4006f85c 13392009-04-26 Pavel Roskin <proski@gnu.org>
1340
1341 * Makefile.in: Don't install empty manual pages if help2man is
1342 missing. Use help2man option for output, not shell redirection.
1343
5c77c3de 13442009-04-26 David S. Miller <davem@davemloft.net>
1345
1346 * util/grub-mkdevicemap.c (make_device_map): Add missing
1347 NESTED_FUNC_ATTR to process_device().
1348
033b10a8 13492009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
1350
1351 Test command
1352
1353 * commands/test.c: rewritten to use bash-like test
1354
e4343593 13552009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
1356
1357 Parttool autoloading and improvements
1358
7dd4a573 1359 * Makefile.in (pkglib_DATA): add parttool.lst
e4343593 1360 (parttool.lst): new target
1361 * genmk.rb: generate parttool-*
1362 (CLEANFILES): add #{parttool}
1363 (PARTTOOLFILES): new variable
1364 * genparttoollist.sh: new file
7dd4a573 1365 * parttool/pcpart.c (grub_pcpart_boot): more feedback
e4343593 1366 (grub_pcpart_type): likewise
1367 * commands/parttool.c (helpmsg): new variable
1368 (grub_cmd_parttool): output help if not enough arguments are supplied
1369 autoload modules
1370 (GRUB_MOD_INIT(parttool)): use helpmsg
1371
0d312500 13722009-04-24 David S. Miller <davem@davemloft.net>
1373
7dd4a573 1374 Avoiding opening same device multiple times in device iterator.
0d312500 1375
1376 * kern/device.c: (grub_device_iterate): Define struct part_ent,
7dd4a573 1377 and use it to build a list of partitions in iterate_disk() and
0d312500 1378 iterate_partition().
1379
ac20caff 1380 * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
1381 on disk->data.
1382
0dcf7495 1383 * disk/ieee1275/nand.c (grub_nand_iterate): Return
1384 grub_devalias_iterate() result instead of unconditional 0.
1385 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
1386 Also, capture hook return value, either directly or via
1387 grub_children_iterate(), and propagate to caller.
1388 * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
1389 grub_children_iterate): Return value is now 'int' instead of
1390 'grub_err_t'.
1391 * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
1392 like a proper iterator, stopping when hooks return non-zero.
1393 (grub_devalias_iterate): Likewise.
1394
c8c08833 13952009-04-23 David S. Miller <davem@davemloft.net>
1396
1397 * kern/sparc64/ieee1275/openfw.c: Unused, delete.
1398
f01005a8 13992009-04-22 David S. Miller <davem@davemloft.net>
1400
1401 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
1402 is larger than address_cells, use that value for address_cells too.
1403
4e8269da 1404 * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
1405 IEEE1275_MAX_PATH_LEN): Define.
1406 * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
1407 allocate 'childtype', 'childpath', 'childname', and 'fullname'.
1408 (grub_devalias_iterate): Dynamically allocate 'aliasname' and
1409 'devtype'. Explicitly NULL terminate devalias expansion.
1410
a1447506 1411 * util/sparc64/ieee1275/misc.c: New file.
1412 * util/sparc64/ieee1275/grub-setup.c: New file.
1413 * util/sparc64/ieee1275/grub-ofpathname.c: New file.
1414 * util/sparc64/ieee1275/grub-mkimage.c: New file.
1415 * util/sparc64/ieee1275/grub-install.in: New file.
1416 * util/ieee1275/ofpath.c: New file.
1417 * util/ieee1275/devicemap.c: New file.
1418 * util/devicemap.c: New file.
1419 * util/deviceiter.c: New file.
1420 * kern/sparc64/ieee1275/init.c: New file.
1421 * include/grub/util/ofpath.h: New file.
1422 * include/grub/util/deviceiter.h: New file.
1423 * util/grub-mkdevicemap.c: Include deviceiter.h.
1424 Implement using grub_util_emit_devicemap_entry and
1425 grub_util_iterate_devices.
1426 * conf/i386-corebook.rmk: Build util/deviceiter.c and
1427 util/devicemap.c into grub-mkdevicemap
1428 * conf/i386-efi.rmk: Likewise.
1429 * conf/i386-ieee1275.rmk: Likewise.
1430 * conf/i386-pc.rmk: Likewise.
1431 * conf/powerpc-ieee1275.rmk: Likewise.
1432 * conf/sparc64-ieee1275.rmk: Add rules to build boot block
1433 images and installation utilities. Build kernel as image
1434 instead of as elf binary. Use common rules as much as possible.
1435
7dd4a573 14362009-04-19 Vladimir Serbinenko <phcoder@gmail.com>
0aefc632 1437
1438 Correct GPT definition
1439
7dd4a573 1440 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
0aefc632 1441 of "attrib" member
1442
c6c5219f 14432009-04-19 Felix Zielcke <fzielcke@z-51.de>
1444
1445 * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
1446
0552ff9f 14472009-04-19 David S. Miller <davem@davemloft.net>
1448
1449 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
1450 (grub_rescue_cmd_linux): Rename to...
1451 (grub_cmd_linux): and fix prototype.
1452 (grub_rescue_cmd_initrd): Rename to...
1453 (grub_cmd_initrd): and fix prototype.
1454 (cmd_linux, cmd_initrd): New.
1455 (GRUB_MOD_INIT(linux)): Use grub_register_command().
1456 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
1457
d1a282fc 14582009-04-17 Pavel Roskin <proski@gnu.org>
1459
07c5039f 1460 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
1461 format.
1462 (grub_ohci_transfer): Likewise.
1463
b012002d 1464 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
1465
1bc09c35 1466 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
1467 return without a value. Fix inconsistent indentation.
1468
e0ff9126 1469 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
1470 match struct grub_fs.
1471
d1a282fc 1472 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
1473 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
1474 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
1475 * commands/lspci.c (grub_lspci_iter): Likewise.
1476
a96df3f2 14772009-04-16 Bean <bean123ch@gmail.com>
1478
1479 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
1480 value.
1481
41bb0fe9 14822009-04-15 Pavel Roskin <proski@gnu.org>
1483
1484 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
1485 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
1486 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
1487 definitions.
1488
596c6970 14892009-04-15 Felix Zielcke <fzielcke@z-51.de>
1490
1491 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
7dd4a573 1492 that no multiple data or metadata areas are supported and `Unknown
596c6970 1493 metadata header'.
1494
7dd4a573 14952009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
0d5d5653 1496
1497 Move loader out of the kernel
1498
1499 * kern/loader.c: moved to ...
1500 * commands/boot.c: ... moved here
1501 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
1502 * commands/boot.c (grub_cmd_boot): moved here. All users updated
1503 * include/grub/kernel.h (grub_machine_fini): export
1504 * include/grub/loader.h (grub_loader_is_loaded): update declaration
1505 (grub_loader_set): likewise
1506 (grub_loader_unset): likewise
1507 (grub_loader_boot): likewise
1508 * conf/common.rmk: new module boot.mod
1509 (pkglib_MODULES): add boot.mod
1510 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
1511 (grub_emu_SOURCES): likewise
1512 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
1513 (grub_emu_SOURCES): likewise
1514 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
1515 (grub_emu_SOURCES): likewise
1516 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
1517 (grub_emu_SOURCES): likewise
1518 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
1519 (grub_emu_SOURCES): likewise
7dd4a573 1520 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
1521 (grub_emu_SOURCES): likewise
0d5d5653 1522 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
7dd4a573 1523 (grub_emu_SOURCES): likewise
0d5d5653 1524
7dd4a573 15252009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5999d619 1526
1527 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
7dd4a573 1528
5999d619 1529 * kern/misc.c (grub_itoa): Removed function
1530 (grub_ltoa): likewise
1531 (grub_vsprintf): use grub_lltoa
1532
7dd4a573 15332009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
13c00781 1534
1535 Restore grub-emu
1536
1537 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
1538 * conf/i386-coreboot.rmk: likewise
1539 * conf/i386-ieee1275.rmk: likewise
1540 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 1541
20318222 15422009-04-15 Felix Zielcke <fzielcke@z-51.de>
1543
1544 * INSTALL: Add that `./autogen.sh' needs to be run before
1545 `./configure.'.
1546
d05f0df3 15472009-04-14 Bean <bean123ch@gmail.com>
1548
1549 * Makefile.in (pkglib_DATA): Add handler.lst.
1550 (handler.lst): New rule.
1551
1552 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
1553 * conf/i386-coreboot.rmk: Likewise.
1554 * conf/i386-ieee1275.rmk: Likewise.
1555 * conf/i386-efi.rmk: Likewise.
1556 * conf/x86_64-efi.rmk: Likewise.
1557 * conf/powerpc-ieee1275.rmk: Likewise.
1558 * conf/sparc64-ieee1275.rmk: Likewise.
1559
1560 * genhandlerlist.sh: New file.
1561
1562 * genmk.rb: Add rules to generate handler.lst.
1563
1564 * include/grub/normal.h (grub_file_getline): New function definition.
1565 (read_handler_list): Likewise.
1566 (free_handler_list): Likewise.
1567
1568 * include/grub/term.h (grub_term_register_input): Add name parameter
1569 for auto generation of handler.lst.
1570 (grub_term_register_output): Likewise.
1571
1572 * normal/handler.c: New file.
1573
1574 * normal/main.c (get_line): Renamed to grub_file_getline.
1575 (read_config_file): Use the newly renamed grub_file_getline.
1576 (read_command_list): Likewise.
1577 (read_fs_list): Likewise.
1578 (grub_normal_execute): Call read_handler_list to parse handler.lst.
1579 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
1580
1581 * term/efi/console.c (grub_console_init): Add name parameter for auto
1582 generation of handler.lst.
1583 * term/gfxterm.c: Likewise.
1584 * term/i386/pc/at_keyboard.c: Likewise.
1585 * term/i386/pc/console.c: Likewise.
1586 * term/i386/pc/serial.c: Likewise.
1587 * term/i386/pc/vesafb.c: Likewise.
1588 * term/i386/pc/vga.c: Likewise.
1589 * term/i386/pc/vga_text.c: Likewise.
1590 * term/ieee1275/ofconsole.c: Likewise.
1591 * term/usb_keyboard.c: Likewise.
1592
33c846be 15932009-04-14 Bean <bean123ch@gmail.com>
1594
1595 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
1596 properly with null character.
1597
4484e01e 15982009-04-14 Felix Zielcke <fzielcke@z-51.de>
1599
1600 * configure: Remove.
1601 * config.h.in: Likewise.
f93d668e 1602 * stamp-h.in: Likewise.
4484e01e 1603 * DISTLIST: Likewise.
1604 * conf/common.mk: Likewise.
1605 * conf/i386-coreboot.mk: Likewise.
1606 * conf/i386-efi.mk: Likewise.
1607 * conf/i386-ieee1275.mk: Likewise.
1608 * conf/i386.mk: Likewise.
1609 * conf/i386-pc.mk: Likewise.
1610 * conf/powerpc-ieee1275.mk: Likewise.
1611 * conf/sparc64-ieee1275.mk: Likewise.
1612 * conf/x86_64-efi.mk: Likewise.
1613
1614 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
1615 develop on GRUB.
1616
7dd4a573 16172009-04-14 John Stanley <jpsinthemix@verizon.net>
5c5bf96a 1618 David S. Miller <davem@davemloft.net>
1619
1620 * util/hostdisk.c (make_device_name): Fix buffer length
1621 calculations.
1622
e25b5a8c 16232009-04-14 Felix Zielcke <fzielcke@z-51.de>
1624
1625 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
1626 <sys/param.h> and <sys/sysctl.h>.
1627 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
1628 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
1629 opening the device and reset them afterwards.
1630
1f1f580c 16312009-04-13 Pavel Roskin <proski@gnu.org>
1632
1633 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
1634 Reported by John Stanley <jpsinthemix@verizon.net>
1635
7ebc2d6b 16362009-04-13 Robert Millan <rmh@aybabtu.com>
1637
1638 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
7dd4a573 1639 that name for menuentries when appropriate.
7ebc2d6b 1640
d8ba3667 16412009-04-13 Felix Zielcke <fzielcke@z-51.de>
1642
1643 * util/grub.d/10_freebsd.in: Add a missing `fi'.
1644
cba416eb 16452009-04-13 Robert Millan <rmh@aybabtu.com>
1646
1647 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
1648 to Linux, simply abort telling the user it's no longer supported.
1649
a547a745 16502009-04-13 Felix Zielcke <fzielcke@z-51.de>
1651
1652 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
7dd4a573 1653 doesn't exist. Check also for /boot/kernel/kernel.gz. Print
a547a745 1654 `freebsd_loadenv' only when devices.hints exist.
1655
232a769c 16562009-04-13 Pavel Roskin <proski@gnu.org>
1657
1658 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
1659
c3012039 16602009-04-13 Felix Zielcke <fzielcke@z-51.de>
1661
1662 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
1663 partition number.
1664 (grub_drive): Likewise.
1665
234022fe 16662009-04-13 David S. Miller <davem@davemloft.net>
1667
1668 * kern/sparc64/ieee1275/ieee1275.c: New file.
1669 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
1670 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
1671 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
1672 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
1673 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
1674 grub_ieee1275_alloc_physmem): Declare new exported functions.
1675
d8e1836c 1676 * include/grub/sparc64/ieee1275/loader.h: New file.
1677 * include/grub/sparc64/ieee1275/memory.h: Likewise.
1678 * include/grub/sparc64/kernel.h: Likewise.
1679 * loader/sparc64/ieee1275/linux.c: Likewise.
1680
96bd81ec 1681 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
1682 (grub_fstest_SOURCES): Likewise.
1683
6a4737e5 1684 * util/hostdisk.c (make_device_name): Do not make any assumptions
1685 about the length of drive names.
1686
1d7a72fd 1687 * kern/dl.c (grub_dl_load_file): Close file immediately when
1688 we are done using it.
1689
56bc2471 16902009-04-12 David S. Miller <davem@davemloft.net>
1691
1692 * kern/misc.c (grub_ltoa): Fix cast when handling negative
1693 values. Noticed by Pavel Roskin.
1694
df38d0bb 1695 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
1696 target compiler.
7dd4a573 1697
e382e93a 1698 * genmk.rb: Add more flexible image type specification, also
1699 pass --strip-unneeded to objcopy.
1700 * conf/i386-pc.rmk: Use *_FORMAT.
1701 * conf/i386-pc.mk: Rebuilt.
1702
f5dbbca9 1703 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
1704 (OFDISK_HASH_SZ): Define.
1705 (ofdisk_hash): New hash table.
1706 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
1707 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
1708 instead of device phandle which is not unique.
1709
91c88b12 1710 * kern/sparc64/ieee1275/init.c: Delete, replace with...
1711 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
1712 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
1713 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
1714 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
1715 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
1716 GRUB_KERNEL_MACHINE_DATA_END): Define.
1717 (grub_kernel_image_size, grub_total_module_size): Declare.
1718
5b5d4aa5 17192009-04-12 Pavel Roskin <proski@gnu.org>
1720
7dd4a573 1721 * configure.ac: Change the logic when we check for target tools.
1722 Do it when the target is specified and it's different from the
1723 specified value of the host.
5b5d4aa5 1724
c91e1793 17252009-04-11 Felix Zielcke <fzielcke@z-51.de>
1726
1727 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
1728 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
1729 GNU/kFreeBSD. Check if a device is a character device. Use
1730 DIOCGMEDIASIZE to get the size.
1731 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
1732 support for GNU/kFreeBSD.
1733 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
1734 is a character device instead of a block device. Add support for
1735 FreeBSD device names.
1736
1737 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
1738 is a character device instead of a block device.
1739
1740 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
1741 is a character device instead of a block device.
1742
b1ac8644 17432009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
1744
1745 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
1746 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
1747 FreeBSD. Check if a device is a character device. Use
1748 DIOCGMEDIASIZE to get the size.
1749 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
1750 support for FreeBSD.
1751 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
1752 is a character device instead of a block device. Add support for
1753 FreeBSD device names.
1754
1755 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
1756 a character device instead of a block device.
1757 (grub_util_check_char_device): New function.
1758
1759 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
1760 a character device instead of a block device.
1761
1762 * include/grub/util/getroot.h (grub_util_check_char_device): New
1763 prototype.
1764
a3f7515a 17652009-04-11 David S. Miller <davem@davemloft.net>
1766
1767 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
1768 static libgcc.
1769 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
1770 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
1771 function, if present.
1772 (__bswapdi2): Likewise.
1773
0d44993d 1774 * include/grub/sparc64/ieee1275/boot.h: New file.
1775 * boot/sparc64/ieee1275/boot.S: Likewise.
1776 * boot/sparc64/ieee1275/diskboot.S: Likewise.
1777
ed3d2bc2 1778 * kern/misc.c (grub_ltoa): New function.
1779 (grub_vsprintf): Use it to format 'long' integers.
1780
d3bfb59c 17812009-04-10 David S. Miller <davem@davemloft.net>
1782
1783 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
1784 slots are of type grub_ieee1275_cell_t.
1785 (grub_nand_read): Likewise.
1786 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
1787 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
1788 macros are used to compare values in arg/ret block of the call.
1789 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
1790 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
1791 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
1792 grub_ieee1275_instance_to_path, grub_ieee1275_write,
1793 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
1794 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
1795 grub_ieee1275_close, grub_ieee1275_set_property,
1796 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
1797 grub_ieee1275_cell_t.
1798 * kern/ieee1275/openfw.c (grub_map): Likewise.
1799 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
1800 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
1801
450e2238 1802 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
1803 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
1804 (grub_devalias_iterate): Likewise.
1805
7dd4a573 18062009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
6df8cc76 1807
1808 UFS improvements
1809
1810 * fs/ufs.c (INODE_NBLOCKS): new definition
1811 (struct grub_ufs_dirent): added fields for non-BSD dirents
1812 (grub_ufs_get_file_block): fixed double indirect handling
1813 (grub_ufs_lookup_symlink): use more robust way to determine whether
1814 symlink is inline
1815 (grub_ufs_find_file): support for non-BSD dirents
1816 (grub_ufs_dir): support for non-BSD dirents
1817
e7e6862a 18182009-04-10 Bean <bean123ch@gnail.com>
1819
1820 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
1821 attribute, otherwise the size would be wrong for i386 platform.
1822
1823 * include/grub/pci.h (grub_pci_read_word): New inline function.
1824 (grub_pci_read_byte): Likewise.
1825 (grub_pci_write): Likewise.
1826 (grub_pci_write_word): Likewise.
1827 (grub_pci_write_byte): Likewise.
1828
1829 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
1830
1831 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
1832 (find_framebuf): Scan pci to locate the frame buffer address.
1833
1834 * commands/efi/fixvideo.c: New file.
1835
1836 * commands/efi/loadbios.c: Likewise.
1837
1838 * commands/memrw.c: Likewise.
1839
1840 * util/grub-dumpbios.in: Likewise.
1841
1842 * conf/common.rmk (grub-dumpbios): New utility.
1843 (pkglib_MODULES): New module memrw.mod.
1844 (memrw_mod_SOURCE): New macro.
1845 (memrw_mod_CFLAGS): Likewise.
1846 (memrw_mod_LDFLAGS): Likewise.
1847
7dd4a573 1848 * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 1849 fixvideo.mod.
1850 (loadbios_mod_SOURCE): New macro.
1851 (loadbios_mod_CFLAGS): Likewise.
1852 (loadbios_mod_LDFLAGS): Likewise.
1853 (fixvideo_mod_SOURCE): Likewise.
1854 (fixvideo_mod_CFLAGS): Likewise.
1855 (fixvideo_mod_LDFLAGS): Likewise.
1856
7dd4a573 1857 * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 1858 fixvideo.mod.
1859 (loadbios_mod_SOURCE): New macro.
1860 (loadbios_mod_CFLAGS): Likewise.
1861 (loadbios_mod_LDFLAGS): Likewise.
1862 (fixvideo_mod_SOURCE): Likewise.
1863 (fixvideo_mod_CFLAGS): Likewise.
1864 (fixvideo_mod_LDFLAGS): Likewise.
1865
af63ada2 18662009-04-08 Felix Zielcke <fzielcke@z-51.de>
1867
1868 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
1869
c2cdde70 18702009-04-07 David S. Miller <davem@davemloft.net>
1871
1872 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
1873 support for R_SPARC_OLO10 relocations. Fix compile warning for
1874 R_SPARC_WDISP30 case.
ea3f72cf 1875 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 1876
761319cf 18772009-04-06 Pavel Roskin <proski@gnu.org>
1878
1007d1f5 1879 * include/grub/misc.h (ARRAY_SIZE): New macro.
1880 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
1881 New macro.
1882 * loader/i386/linux.c (allocate_pages): Use free_pages().
1883 (grub_linux_unload): Don't use free_pages().
1884 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
1885 wrong index. Treat all other modes as text modes.
1886 (grub_cmd_linux): Initialize vid_mode unconditionally to
1887 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
1888
761319cf 1889 * commands/help.c (print_command_help): Use cmd->prio, not
1890 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
1891
ea761d40 18922009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
7dd4a573 1893
ea761d40 1894 Parttool
1895
1896 * parttool/pcpart.c: new file
1897 * commands/parttool.c: likewise
1898 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
1899 (parttool_mod_SOURCES): new variable
1900 (parttool_mod_CFLAGS): likewise
1901 (parttool_mod_LDFLAGS): likewise
1902 (pcpart_mod_SOURCES): likewise
1903 (pcpart_mod_CFLAGS): likewise
1904 (pcpart_mod_LDFLAGS): likewise
7dd4a573 1905 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
ea761d40 1906 and parttool/pcpart.c
1907 * conf/i386-efi.rmk: likewise
1908 * conf/i386-ieee1275.rmk: likewise
1909 * conf/i386-pc.rmk: likewise
1910 * conf/powerpc-ieee1275.rmk: likewise
1911 * conf/sparc64-ieee1275.rmk: likewise
1912 * conf/x86_64-ieee1275.rmk: likewise
1913
05aaebfb 19142009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
1915
1916 Support for mtime and further expandability of dir command
1917
1918 * include/grub/lib/datetime.h: moved to ...
7dd4a573 1919 * include/grub/datetime.h: ... moved here and added
05aaebfb 1920 declaration of grub_unixtime2datetime. All users updated
7dd4a573 1921 * include/grub/fs.h: new syntax for dir and mtime functions in
1922 struct grub_fs
05aaebfb 1923 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
1924 and GRUB_FSHELP_FLAGS_MASK
1925 * commands/ls.c (grub_ls_list_files): Write mtime in long format
1926 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
1927 (grub_ext2_mtime): new function
1928 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
1929 (grub_hfsplus_mtime): new function
1930 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
1931 (GRUB_UFS_ATTR_FILE): likewise
1932 (GRUB_UFS_ATTR_LNK): likewise
1933 (struct grub_ufs_sblock): new fields mtime
1934 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
1935 all users updated
1936 (grub_ufs_dir): mtime support
1937 (grub_ufs_mtime): new function
1938 * fs/affs.c (grub_affs_dir): use new dir syntax
1939 * fs/afs.c (grub_afs_dir): likewise
1940 * fs/cpio.c (grub_cpio_dir): likewise
1941 * fs/fat.c (grub_fat_find_dir): likewise
1942 * fs/hfs.c (grub_hfs_dir): likewise
1943 * fs/iso9660.c (grub_iso9660_dir): likewise
1944 * fs/jfs.c (grub_jfs_dir): likewise
1945 * fs/minix.c (grub_minix_dir): likewise
1946 * fs/ntfs.c (grub_ntfs_dir): likewise
1947 * fs/reiserfs.c (grub_reiserfs_dir): likewise
1948 * fs/sfs.c (grub_sfs_dir): likewise
1949 * fs/xfs.c (grub_xfs_dir): likewise
1950 * util/hostfs.c (grub_hostfs_dir): likewise
1951 * lib/datetime.c: moved to ...
1952 * normal/datetime.c: ... moved here
1953 (grub_unixtime2datetime): new function
1954 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
7dd4a573 1955 * normal/completion.c (iterate_dir): use new dir syntax
1956 * normal/misc.c (grub_normal_print_device_info): tell the
05aaebfb 1957 last modification time of a volume
7dd4a573 1958 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
05aaebfb 1959 * conf/common.rmk: added lib/datetime.c to ls.mod
7dd4a573 1960 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
05aaebfb 1961 (normal_mod_SOURCES): likewise
1962 (datetime_mod_SOURCES): Removed lib/datetime.c
1963 * conf/i386-efi.rmk: likewise
7dd4a573 1964 * conf/i386-ieee1275.rmk: likewise
05aaebfb 1965 * conf/i386-pc.rmk: likewise
1966 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 1967 * conf/sparc64-ieee1275.rmk: likewise
1968 * conf/x86_64-efi.rmk: likewise
05aaebfb 1969
8a7e1a14 19702009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
1971
1972 Trim trailing spaces in FAT label and support mtools-like labels
7dd4a573 1973
1974 * fs/fat.c (grub_fat_iterate_dir): New function based
8a7e1a14 1975 on grub_fat_find_dir
1976 (grub_fat_find_dir): use grub_fat_iterate_dir
1977 (grub_fat_label): likewise
1978
04186a9c 19792009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
1980
7dd4a573 1981 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
04186a9c 1982 and command.h
1983 remove extraneous kernel_elf_HEADERS
1984
da4c0bb6 19852009-04-04 Bean <bean123ch@gnail.com>
1986
1987 * include/grub/util/misc.h: Add dummy function fsync for mingw.
1988
1989 * util/misc.c: Likewise.
1990
54ad9555 19912009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
1992
1993 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
1994 instead of grub_printf.
1995
7a6bf9f2 19962009-04-03 Robert Millan <rmh@aybabtu.com>
1997
1998 * loader/i386/linux.c (grub_linux_setup_video): Fill
1999 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
2000 values from `mode info' structure instead of hardcoded
2001 values.
2002
3fcc2083 20032009-04-01 Pavel Roskin <proski@gnu.org>
2004
2005 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
2006 unused now.
2007 * genmk.rb: Likewise.
2008 * configure.ac: Likewise.
2009
5ec9740b 20102009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
2011
2012 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
2013 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
2014
5270cec8 20152009-04-01 David S. Miller <davem@davemloft.net>
2016
2017 * normal/sparc64/setjmp.S: Fix setjmp implementation.
7dd4a573 2018 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
5270cec8 2019 (grub_setjmp): Mark with 'returns_twice' attribute.
2020 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
2021 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
2022 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
2023
9c3dd854 20242009-04-01 Robert Millan <rmh@aybabtu.com>
2025
2026 Reapply fix from 2008-07-28 which was accidentally reverted; also
2027 perform the same fix to a similar check in same function.
2028
2029 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
2030 with the same number are found, just use issue a warning with
2031 grub_dprintf(), as this error has been reported to be non-fatal.
2032
0d818b7e 20332009-03-31 Pavel Roskin <proski@gnu.org>
2034
2035 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
2036 for cross-compilation.
2037
95646d92 20382009-03-30 Robert Millan <rmh@aybabtu.com>
2039
2040 Fix i386-ieee1275 build.
2041
2042 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
2043 Remove declaration.
2044
6a003ed1 20452009-03-30 Pavel Roskin <proski@gnu.org>
2046
2047 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
2048 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
2049 zero-terminated, rely only on the strlen value. Fix comparison
2050 of strings differing in length.
2051
92f33540 20522009-03-30 Robert Millan <rmh@aybabtu.com>
2053
2054 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
2055 checking for abi version. Improve error messages on BIOS to notify
2056 user about `linux16' command.
2057
a8c48fd5 20582009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
2059
f968172e 2060 Leak fixes
a8c48fd5 2061
f968172e 2062 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
2063 in case of collision
2064 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 2065
9c323f09 20662009-03-29 Robert Millan <rmh@aybabtu.com>
2067
2068 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
2069 set `vid_mode' accordingly.
2070 (grub_linux_boot): Process `vid_mode' and set video mode.
2071
ae68f423 20722009-03-29 Robert Millan <rmh@aybabtu.com>
2073
2074 * util/grub.d/10_linux.in (linux_entry): New function.
2075 Factorize generation of Linux boot entries.
2076
5709cfc4 20772009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
2078
2079 Make the format of Environment Block plain text. The boot loader
2080 part is not tested well yet.
7dd4a573 2081
5709cfc4 2082 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
2083 (buffer): Removed.
2084 (envblk): Likewise.
2085 (usage): Remove "info" and "clear". Add "unset". Update the
2086 description of "set", as this does not delete variables any
2087 longer.
2088 (create_envblk_file): Complete rewrite.
2089 (open_envblk_file): Likewise.
2090 (cmd_info): Removed.
2091 (cmd_list): Likewise.
2092 (cmd_set): Likewise.
2093 (cmd_clear): Likewise.
2094 (list_variables): New function.
2095 (write_envblk): Likewise.
2096 (set_variables): Likewise.
2097 (unset_variables): Likewise.
2098 (main): Complete rewrite.
2099
2100 * commands/loadenv.c (buffer): Removed.
2101 (envblk): Likewise.
2102 (open_envblk_file): New function.
2103 (read_envblk_file): Complete rewrite.
2104 (grub_cmd_load_env): Likewise.
2105 (grub_cmd_list_env): Likewise.
2106 (struct blocklist): New struct.
2107 (free_blocklists): New function.
2108 (check_blocklists): Likewise.
2109 (write_blocklists): Likewise.
2110 (grub_cmd_save_env): Complete rewrite.
2111
2112 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
2113 a plain text signature.
2114 (GRUB_ENVBLK_MAXLEN): Removed.
2115 (struct grub_envblk): Complete rewrite.
2116 (grub_envblk_find): Removed.
2117 (grub_envblk_insert): Likewise.
2118 (grub_envblk_open): New prototype.
2119 (grub_envblk_set): Likewise.
2120 (grub_envblk_delete): Put const to VALUE.
2121 (grub_envblk_iterate): Put const to NAME and VALUE.
2122 (grub_envblk_close): New prototype.
2123 (grub_envblk_buffer): New inline function.
2124 (grub_envblk_size): Likewise.
2125
2126 * lib/envblk.c: Include grub/mm.h.
2127 (grub_env_find): Removed.
2128 (grub_envblk_open): New function.
2129 (grub_envblk_close): Likewise.
2130 (escaped_value_len): Likewise.
2131 (find_next_line): Likewise.
2132 (grub_envblk_insert): Removed.
2133 (grub_envblk_set): New function.
2134 (grub_envblk_delete): Complete rewrite.
2135 (grub_envblk_iterate): Likewise.
2136
a9368fd3 21372009-03-28 Robert Millan <rmh@aybabtu.com>
2138
2139 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
2140 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
2141 variables. Use 16-bit loader.
2142 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
2143 loader.
2144 * kern/i386/loader.S (grub_linux_boot): Rename to ...
2145 (grub_linux16_boot): ... this. Update all users.
2146 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
2147 (grub_linux_boot): ... this. Update all users.
2148
2149 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
2150 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
2151 commands to `linux16' and `initrd16'.
2152 (GRUB_MOD_FINI(linux)): Rename to ...
2153 (GRUB_MOD_FINI(linux16)): ... this.
2154
e4dd5a7e 21552009-03-24 Pavel Roskin <proski@gnu.org>
2156
2157 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
2158 not just for compilation.
2159
c04d6e05 21602009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
2161
2162 Move multiboot helper out of kernel
2163
2164 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
2165 `loader/i386/multiboot_helper.S'.
2166 * conf/i386-coreboot.rmk: Likewise
2167 * conf/i386-ieee1275.rmk: Likewise
2168
2169 * kern/i386/loader.S: Move multiboot helpers from here...
2170 * loader/i386/multiboot_helper.S: ...moved here
2171 * include/grub/i386/loader.h: Move declarations of multiboot
2172 helpers from here...
2173 * include/grub/i386/multiboot.h: ...moved here
2174 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
2175
42a5b3fc 21762009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2177
2178 * kern/env.c (grub_env_context_open): Added an argument to specify
2179 whether a new context inherits exported variables from current
2180 one. This is useful when making a sandbox to interpret a config
2181 file.
2182 All callers updated.
2183
2184 * include/grub/env.h (grub_env_context_open): Updated the prototype.
2185
b28bbc4e 21862009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2187
2188 * kern/env.c (grub_env_context_close): Fix memory leaks.
2189
f04f02e4 21902009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2191
2192 * normal/main.c (grub_normal_execute): Added an argument
2193 BATCH to specify if an interactive interface should be provided
2194 after reading a config file.
2195 All callers updated.
2196 (read_command_list): Prevent being executed twice.
2197 (read_fs_list): Likewise.
2198
42a5b3fc 2199 * include/grub/normal.h (grub_normal_execute): Updated the
2200 prototype.
f04f02e4 2201
41473ac2 22022009-03-22 Pavel Roskin <proski@gno.org>
2203
fbc00b0c 2204 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
2205 _start.
2206 * kern/i386/pc/startup.S: Likewise.
2207 * kern/i386/efi/startup.S: Likewise.
2208 * kern/i386/ieee1275/startup.S: Likewise.
2209 * kern/i386/coreboot/startup.S: Likewise.
2210 * kern/x86_64/efi/startup.S: Likewise.
2211
41473ac2 2212 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
2213 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
2214 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
2215
2274cc8f 22162009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
2217
2218 Bugfixes in multiboot for bugs uncovered by solaris kernel.
2219
2220 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
2221 limit detection.
2222 Use vaddr of correct segment for entry_point.
2223
b1b797cb 22242009-03-21 Bean <bean123ch@gmail.com>
2225
2226 * commands/blocklist.c: Add include file <grub/command.h>, remove
2227 <grub/normal.h> and <grub/arg.h>.
2228 (grub_cmd_blocklist): Use the new command interface.
2229 (GRUB_MOD_INIT): Likewise.
2230 (GRUB_MOD_FINI): Likewise.
2231 * commands/boot.c: Likewise.
2232 * commands/cat.c: Likewise.
2233 * commands/cmp.c: Likewise.
2234 * commands/configfile.c: Likewise.
2235 * commands/crc.c: Likewise.
2236 * commands/echo.c: Likewise.
2237 * commands/halt.c: Likewise.
2238 * commands/handler.c: Likewise.
2239 * commands/hdparm.c: Likewise.
2240 * commands/help.c: Likewise.
2241 * commands/hexdump.c: Likewise.
2242 * commands/loadenv.c: Likewise.
2243 * commands/ls.c: Likewise.
2244 * commands/lsmmap.c: Likewise.
2245 * commands/lspci.c: Likewise.
2246 * commands/loadenv.c: Likewise.
2247 * commands/read.c: Likewise.
2248 * commands/reboot.c: Likewise.
2249 * commands/search.c: Likewise.
2250 * commands/sleep.c: Likewise.
2251 * commands/test.c: Likewise.
2252 * commands/usbtest.c: Likewise.
2253 * commands/videotest.c: Likewise.
2254 * commands/i386/cpuid.c: Likewise.
2255 * commands/i386/pc/halt.c: Likewise.
2256 * commands/i386/pc/play.c: Likewise.
2257 * commands/i386/pc/pxecmd.c: Likewise.
2258 * commands/i386/pc/vbeinfo.c: Likewise.
2259 * commands/i386/pc/vbetest.c: Likewise.
2260 * commands/ieee1275/suspend.c: Likewise.
2261 * disk/loopback.c: Likewise.
2262 * font/font_cmd.c: Likewise.
2263 * hello/hello.c: Likewise.
2264 * loader/efi/appleloader.c: Likewise.
2265 * loader/efi/chainloader.c: Likewise.
2266 * loader/i386/bsd.c: Likewise.
2267 * loader/i386/efi/linux.c: Likewise.
2268 * loader/i386/ieee1275/linux.c: Likewise.
2269 * loader/i386/linux.c: Likewise.
2270 * loader/i386/pc/chainloader.c: Likewise.
2271 * loader/i386/pc/linux.c: Likewise.
2272 * loader/powerpc/ieee1275/linux.c: Likewise.
2273 * loader/multiboot_loader.c: Likewise.
2274 * term/gfxterm.c: Likewise.
2275 * term/i386/pc/serial.c: Likewise.
2276 * term/terminfo.c: Likewise.
2277
2278 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
2279 * term/i386/pc/vga.c: Likewise.
2280 * video/readers/jpeg.c: Likewise.
2281 * video/readers/png.c: Likewise.
2282 * video/readers/tga.c: Likewise.
2283
2284 * util/grub-fstest (cmd_loopback): Removed.
2285 (cmd_blocklist): Likewise.
2286 (cmd_ls): Likewise.
2287 (grub_register_command): Likewise.
2288 (grub_unregister_command): Likewise.
2289 (execute_command): Use grub_command_find to locate command and execute
2290 it.
2291
2292 * include/grub/efi/chainloader.h: Removed.
2293 * loader/efi/chainloader_normal.c: Likewise.
2294 * loader/i386/bsd_normal.c: Likewise.
2295 * loader/i386/pc/chainloader_normal.c: Likewise.
2296 * loader/i386/pc/multiboot_normal.c: Likewise.
2297 * loader/linux_normal.c: Likewise.
2298 * loader/multiboot_loader_normal.c: Likewise.
2299 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
2300
2301 * gencmdlist.sh: Scan new registration command grub_register_extcmd
2302 and grub_register_command_p1.
2303
2304 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
2305 kern/command.c, lib/arg.c and commands/extcmd.c.
2306 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
2307 (minicmd_mod_SOURCES): New variable.
2308 (minicmd_mod_CFLAGS): Likewise.
2309 (minicmd_mod_LDFLAGS): Likewise.
2310 (extcmd_mod_SOURCES): Likewise.
2311 (extcmd_mod_CFLAGS): Likewise.
2312 (extcmd_mod_LDFLAGS): Likewise.
2313 (boot_mod_SOURCES): Removed.
2314 (boot_mod_CFLAGS): Likewise.
2315 (boot_mod_LDFLAGS): Likewise.
2316
2317 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
2318 kern/corecmd.c.
2319 (kernel_img_HEADERS): Add command.h.
2320 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
2321 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
2322 and lib/arg.c.
2323 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
2324 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
2325 remove the corresponding normal mode command.
2326 (normal_mod_SOURCES): Remove normal/arg.c.
2327 * conf/i386-coreboot.rmk: Likewise.
2328 * conf/i386-efi.rmk: Likewise.
2329 * conf/i386-ieee1275.rmk: Likewise.
2330 * conf/powerpc-ieee1275.rmk: Likewise.
2331 * conf/x86_64-efi.rmk: Likewise.
2332
2333 * include/grub/arg.h: Move from here ...
2334 * include/grub/lib/arg.h: ... to here.
2335
2336 * normal/arg.c: Move from here ...
2337 * lib/arg.c: ... to here.
2338
2339 * commands/extcmd.c: New file.
2340 * commands/minicmd.c: Likewise.
2341 * include/grub/command.h: Likewise.
2342 * include/grub/extcmd.h: Likewise.
2343 * kern/command.c: Likewise.
2344 * kern/corecmd.c: Likewise.
2345
2346 * kern/list.c (grub_list_iterate): Return int instead of void.
2347 (grub_list_insert): New function.
2348 (grub_prio_list_insert): Likewise.
2349
2350 * kern/rescue.c (grub_rescue_command): Removed.
2351 (grub_rescue_command_list): Likewise.
2352 (grub_rescue_register_command): Likewise.
2353 (grub_rescue_unregister_command): Likewise.
2354 (grub_rescue_cmd_boot): Move to minicmd.c
2355 (grub_rescue_cmd_help): Likewise.
2356 (grub_rescue_cmd_info): Likewise.
2357 (grub_rescue_cmd_boot): Likewise.
2358 (grub_rescue_cmd_testload): Likewise.
2359 (grub_rescue_cmd_dump): Likewise.
2360 (grub_rescue_cmd_rmmod): Likewise.
2361 (grub_rescue_cmd_lsmod): Likewise.
2362 (grub_rescue_cmd_exit): Likewise.
2363 (grub_rescue_print_devices): Moved to corecmd.c.
2364 (grub_rescue_print_files): Likewise.
2365 (grub_rescue_cmd_ls): Likewise.
2366 (grub_rescue_cmd_insmod): Likewise.
2367 (grub_rescue_cmd_set): Likewise.
2368 (grub_rescue_cmd_unset): Likewise.
7d074e3c 2369 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 2370 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 2371 commands, remove grub_rescue_register_command calls.
b1b797cb 2372
7d074e3c 2373 * normal/command.c (grub_register_command): Removed.
b1b797cb 2374 (grub_unregister_command): Likewise.
2375 (grub_command_find): Likewise.
2376 (grub_iterate_commands): Likewise.
2377 (rescue_command): Likewise.
2378 (export_command): Moved to corecmd.c.
2379 (set_command): Removed.
2380 (unset_command): Likewise.
2381 (insmod_command): Likewise.
2382 (rmmod_command): Likewise.
2383 (lsmod_command): Likewise.
2384 (grub_command_init): Likewise.
2385
2386 * normal/completion.c (iterate_command): Use cmd->prio to check for
2387 active command.
2388 (complete_arguments): Use grub_extcmd_t structure to find options.
2389 (grub_normal_do_completion): Change function grub_iterate_commands to
2390 grub_command_iterate.
2391
2392 * normal/execute.c (grub_script_execute_cmd): No need to parse
2393 argument here.
2394
2395 * normal/main.c (grub_dyncmd_dispatcher): New function.
2396 (read_command_list): Register unload commands as dyncmd.
2397 (grub_cmd_normal): Use new command interface, register rescue,
2398 unregister normal at entry, register normal, unregister rescue at exit.
2399
2400 * include/grub/list.h (grub_list_test_t): New type.
2401 (grub_list_iterate): Return int instead of void.
2402 (grub_list_insert): New function.
2403 (GRUB_AS_NAMED_LIST_P): New macro.
2404 (GRUB_AS_PRIO_LIST): Likewise.
2405 (GRUB_AS_PRIO_LIST_P): Likewise.
2406 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
2407 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
2408 (grub_prio_list): New structure.
2409 (grub_prio_list_insert): New function.
2410 (grub_prio_list_remove): New inline function.
2411
2412 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
2413 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
2414 (GRUB_COMMAND_FLAG_MENU): Likewise.
2415 (GRUB_COMMAND_FLAG_BOTH): Likewise.
2416 (GRUB_COMMAND_FLAG_TITLE): Likewise.
2417 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
2418 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
2419 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
2420 (grub_command): Likewise.
2421 (grub_register_command): Likewise.
2422 (grub_command_find): Likewise.
2423 (grub_iterate_commands): Likewise.
2424 (grub_command_init): Likewise.
2425 (grub_arg_parse): Likewise.
2426 (grub_arg_show_help): Likewise.
2427
2428 * include/grub/rescue.h (grub_rescue_register_command): Removed.
2429 (grub_rescue_unregister_command): Likewise.
2430
2431 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
2432 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
2433 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
2434
2435 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
2436 grub_rescue_cmd_initrd.
2437 * include/grub/i386/loader.h: Likewise.
2438 * include/grub/x86_64/loader.h: Likewise.
2439
2440 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
2441
1f4147aa 24422009-03-21 Bean <bean123ch@gmail.com>
2443
2444 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
2445 instead of stat in mingw environment.
2446
2447 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
2448
2449 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
2450
2451 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
2452 AC_CONFIG_LINKS.
2453
2156d5ba 24542009-03-21 Bean <bean123ch@gmail.com>
2455
2456 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
2457 out of range error.
2458
177b82ca 24592009-03-18 Michel Dänzer <michel@daenzer.net>
2460
2461 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
2462 checking inode flags for EXT4_EXTENTS_FLAG.
2463
14aad807 24642009-03-18 Robert Millan <rmh@aybabtu.com>
2465
2466 * loader/i386/linux.c: Include `<grub/video.h>' and
2467 `<grub/i386/pc/vbe.h>'..
2468 (grub_linux_setup_video): New function. Loosely based on the EFI one.
2469 (grub_linux32_boot): Attempt to configure video settings with
2470 grub_linux_setup_video().
2471 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
2472 to avoid grub_console_fini() which would step out of graphical mode
2473 unconditionally.
2474
8cf83a27 24752009-03-14 Robert Millan <rmh@aybabtu.com>
2476
2477 Fix build on powerpc.
2478 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
2479
40164e75 24802009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
2481
2482 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
2483 background image command.
2484
c58bc32a 24852009-03-12 Colin D Bennett <colin@gibibit.com>
2486
2487 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
2488 (grub_gfxterm_putchar): Extract pairs of identical calls to
2489 draw_cursor out of conditional blocks.
2490
5415144a 24912009-03-11 Pavel Roskin <proski@gnu.org>
2492
2493 * fs/hfs.c (grub_hfs_strncasecmp): New function.
2494 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
2495
6394042e 24962009-03-11 Robert Millan <rmh@aybabtu.com>
2497
2498 * loader/i386/multiboot_elfxx.c
2499 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
2500
b7b50e5f 25012009-03-11 Felix Zielcke <fzielcke@z-51.de>
2502
2503 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
2504 `kern/handler.c'.
2505
1ca7fc96 25062009-03-11 Robert Millan <rmh@aybabtu.com>
2507
2508 * loader/i386/multiboot.c (code_size): New variable.
2509 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 2510 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 2511 4-byte alignment to MBI and others by increasing
7d074e3c 2512 `boot_loader_name_length' appropriately.
1ca7fc96 2513
2514 * loader/i386/multiboot_elfxx.c
2515 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
2516
a83ea1d2 25172009-03-09 Felix Zielcke <fzielcke@z-51.de>
2518
2519 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
2520 `fs/ext2.c'.
2521
aa9f3bff 25222009-03-08 Robert Millan <rmh@aybabtu.com>
2523
2524 Make loader/i386/linux.c usable on i386-pc again.
2525
2526 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
2527 memory to heap.
2528 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
2529 `#error' stanza.
2530
d8b3b60e 25312009-03-07 Bean <bean123ch@gmail.com>
2532
2533 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
2534 allocation.
2535
b362c9e9 25362009-03-06 Robert Millan <rmh@aybabtu.com>
2537
2538 Fix display issue on terminals with screen size other than 80x25
2539 (e.g. gfxterm with resolution higher than 640x480).
2540
2541 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 2542 position relative to the center of the terminal instead of relying
b362c9e9 2543 on a hardcoded offset.
2544
9304eef1 25452009-03-04 Robert Millan <rmh@aybabtu.com>
2546
2547 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
2548 installed.
2549
2550 * Makefile.in (host_kernel): New variable.
2551 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
2552 scripts instead of just the windows one.
2553 * configure.ac: Initialize and AC_SUBST `host_kernel'.
2554
eabc95fb 25552009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 2556
2557 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
2558 `kern/handler.c'.
2559 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2560 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2561 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
2562 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2563 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2564 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2565
ceb1223c 25662009-03-04 Felix Zielcke <fzielcke@z-51.de>
2567
2568 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
2569 or if there's no space for the disk label and print the partition number on a
2570 invalid magic.
2571
4910684a 25722009-03-04 Felix Zielcke <fzielcke@z-51.de>
2573
2574 * util/misc.c: Include <time.h>.
2575 (grub_millisleep): New function.
2576
7e9ca17a 25772009-03-04 Bean <bean123ch@gmail.com>
2578
2579 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
2580 another option -mno-red-zone.
2581
2582 * commands/handler.c: Change module description.
2583
2584 * kern/handler.c: Add missing space at the end of description line.
2585
2586 * kern/list.c: Likewise.
2587
f501677c 25882009-03-03 Robert Millan <rmh@aybabtu.com>
2589
2590 Move more components to the relocation area, and fix mbi pointer
2591 handling to use the destination rather than the origin (thanks to
2592 Vladimir Serbinenko for spotting).
2593
2594 * loader/i386/multiboot.c (mbi_dest): New variable.
2595 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
2596 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
2597 relocation area.
2598
9902d047 25992009-03-01 Bean <bean123ch@gmail.com>
2600
50fb7002 2601 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 2602 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
2603 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
2604 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
2605
2606 * loader/i386/efi/linux.c (acpi_guid): New variable.
2607 (acpi_guid): Likewise.
2608 (EBDA_SEG_ADDR): New constant.
2609 (LOW_MEM_ADDR): Likewise.
2610 (FAKE_EBDA_SEG): Likewise.
2611 (fake_bios_data): New function.
2612 (grub_linux_boot): Call fake_bios_data.
2613
71b9f361 26142009-03-01 Bean <bean123ch@gmail.com>
2615
2616 * commands/terminal.c: Removed.
2617
2618 * commands/handler.c: New file.
2619
2620 * include/grub/list.h: Likewise.
2621
2622 * include/grub/handler.h: Likewise.
2623
2624 * kern/list.c: Likewise.
2625
2626 * kern/handler.c: Likewise.
2627
2628 * kern/term.h: Include header file <grub/handler.h>.
2629 (grub_term_input): Move next field to the beginning.
2630 (grub_term_output): Likewise.
2631 (grub_term_input_class): New variable.
2632 (grub_term_output_class): Likewise.
2633 (grub_term_register_input): Changed to inline function.
2634 (grub_term_register_output): Likewise.
2635 (grub_term_unregister_input): Likewise.
2636 (grub_term_unregister_output): Likewise.
2637 (grub_term_set_current_input): Likewise.
2638 (grub_term_set_current_output): Likewise.
2639 (grub_term_get_current_input): Likewise.
2640 (grub_term_get_current_output): Likewise.
2641 (grub_term_iterate_input): Removed.
2642 (grub_term_iterate_output): Likewise.
2643
2644 * kern/term.c (grub_term_list_input): Removed.
2645 (grub_term_list_output): Likewise.
2646 (grub_term_input_class): New variable.
2647 (grub_term_output_class): Likewise.
50fb7002 2648 (grub_cur_term_input): Change variable as macro.
71b9f361 2649 (grub_cur_term_output): Likewise.
2650 (grub_term_register_input): Removed.
2651 (grub_term_register_output): Likewise.
2652 (grub_term_unregister_input): Likewise.
2653 (grub_term_unregister_output): Likewise.
2654 (grub_term_set_current_input): Likewise.
2655 (grub_term_set_current_output): Likewise.
2656 (grub_term_iterate_input): Likewise.
2657 (grub_term_iterate_output): Likewise.
2658 (grub_term_get_current_input): Likewise.
2659 (grub_term_get_current_output): Likewise.
2660
2661 * util/grub-editenv.c: Include header file <grub/handler.h>.
2662 (grub_term_get_current_input): Removed.
2663 (grub_term_get_current_output): Likewise.
2664 (grub_term_input_class): New variable.
50fb7002 2665 (grub_term_output_class): Likewise.
71b9f361 2666
2667 * util/grub-fstest.c (grub_term_get_current_input): Removed.
2668 (grub_term_get_current_output): Likewise.
2669 (grub_term_input_class): New variable.
50fb7002 2670 (grub_term_output_class): Likewise.
71b9f361 2671
2672 * util/grub-probe.c (grub_term_get_current_input): Removed.
2673 (grub_term_get_current_output): Likewise.
2674 (grub_term_input_class): New variable.
50fb7002 2675 (grub_term_output_class): Likewise.
71b9f361 2676
2677 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
2678 (grub_term_get_current_output): Likewise.
2679 (grub_term_input_class): New variable.
50fb7002 2680 (grub_term_output_class): Likewise.
71b9f361 2681
2682 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
2683 (terminal_mod_SOURCES): Likewise.
2684 (terminal_mod_CFLAGS): Likewise.
2685 (terminal_mod_LDFLAGS): Likewise.
2686
2687 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
2688 handler.c.
2689 (kernel_img_SOURCES): Add list.c and handler.c.
2690 (kernel_img_HEADERS): Add list.h and handler.h.
2691
2692 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
2693 handler.c.
2694 (kernel_mod_SOURCES): Add list.c and handler.c.
2695 (kernel_mod_HEADERS): Add list.h and handler.h.
2696
2697 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
2698 handler.c.
2699 (kernel_elf_SOURCES): Add list.c and handler.c.
2700 (kernel_elf_HEADERS): Add list.h and handler.h.
2701
2702 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
2703 handler.c.
2704 (kernel_elf_SOURCES): Add list.c and handler.c.
2705 (kernel_elf_HEADERS): Add list.h and handler.h.
2706
2707 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
2708 handler.c.
2709 (kernel_mod_SOURCES): Add list.c and handler.c.
2710 (kernel_mod_HEADERS): Add list.h and handler.h.
2711
2712 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
2713 handler.c.
2714 (kernel_elf_SOURCES): Add list.c and handler.c.
2715 (kernel_elf_HEADERS): Add list.h and handler.h.
2716
8a31787f 27172009-02-27 Robert Millan <rmh@aybabtu.com>
2718
2719 Factorize elf32 / elf64 code in Multiboot loader. This will
2720 prevent it from getting out of sync again.
2721
2722 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
2723 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
2724 grub_multiboot_load_elf64): Move from here ...
2725 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
2726 grub_multiboot_load_elf): ... to here (new file).
2727
51cd3dfc 27282009-02-27 Robert Millan <rmh@aybabtu.com>
2729
2730 * util/grub.d/10_linux.in: Rename "single-user mode" to
2731 "recovery mode".
2732
6e8c9c3a 27332009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
2734
2735 Don't leak in SCSI code.
2736 * disk/scsi.c (grub_scsi_close): free `scsi'.
2737
4b6bf4f9 27382009-02-27 Robert Millan <rmh@aybabtu.com>
2739
2740 * loader/i386/pc/multiboot.c: Move from here ...
2741 * loader/i386/multiboot.c: ... to here. Update all users.
2742
b9413424 27432009-02-27 Robert Millan <rmh@aybabtu.com>
2744
2745 Patch from Alexandre Bique <bique.alexandre@gmail.com>
2746 * util/i386/pc/grub-setup.c (setup): Fix directory path.
2747
50fb7002 27482009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 2749
2750 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
2751 b-tree.
2752
8cc50345 27532009-02-27 Robert Millan <rmh@aybabtu.com>
2754
2755 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
2756 `0x' qualifier as 0 when base is specified as parameter).
2757
6e09b8b7 27582009-02-24 Bean <bean123ch@gmail.com>
2759
2760 * configure.ac: Check for -mcmodel=large in x86_64 target.
2761
2762 * include/grub/efi/api.h (efi_call_10): New macro.
2763 (efi_wrap_10): New function.
2764
2765 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
2766 (GRUB_PE32_REL_BASED_HIGH): Likewise.
2767 (GRUB_PE32_REL_BASED_LOW): Likewise.
2768 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
2769 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
2770 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
2771 (GRUB_PE32_REL_BASED_SECTION): Likewise.
2772 (GRUB_PE32_REL_BASED_REL): Likewise.
2773 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
2774 (GRUB_PE32_REL_BASED_DIR64): Likewise.
2775 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
2776
2777 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
2778 issue.
2779
2780 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
2781 (efi_wrap_10): New function.
2782
2783 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
2784
2785 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
2786 MB/MBP model (NV chipset).
2787 (devdata_devs): Add devpath_5 to the list.
2788
2789 * load/i386/efi/linux.c (video_base): Remove variable.
2790 (RGB_MASK): New macro.
2791 (RGB_MAGIC): Likewise.
2792 (LINE_MIN): Likewise.
2793 (LINE_MAX): Likewise.
2794 (FBTEST_STEP): Likewise.
2795 (FBTEST_COUNT): Likewise.
2796 (fb_list): New variable.
2797 (grub_find_video_card): Remove function.
2798 (find_framebuf): New function.
2799 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
2800 line length.
2801
2802 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
2803 problem for x86_64.
2804
74b21bee 28052009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
2806
2807 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
2808
2809 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
2810 coding tool name.
2811
a455f472 28122009-02-22 Robert Millan <rmh@aybabtu.com>
2813
2814 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
2815 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
2816 in our relocation, instead of using it directly from heap. Also
2817 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
2818
6374daf3 28192009-02-21 Robert Millan <rmh@aybabtu.com>
2820
2821 Implement USB keyboard support (based on patch by Marco Gerards)
2822
2823 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
2824 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
2825 (usb_keyboard_mod_LDFLAGS): New variables.
2826
2827 * term/usb_keyboard.c: New file.
2828
8fa4ea70 28292009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
2830
2831 Corrected wrong declaration
2832
2833 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
2834
353976ac 28352009-02-14 Christian Franke <franke@computer.org>
2836
2837 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
2838 (grub_lspci_iter): Print class code and programming interface byte.
2839
6aa1169b 28402009-02-14 Christian Franke <franke@computer.org>
2841
2842 * gendistlist.sh: Ignore `.svn' directories.
2843
265372ca 28442009-02-14 Felix Zielcke <fzielcke@z-51.de>
2845
2846 * fs/fat.c: Add 2009 to Copyright line.
2847
9ff516f3 28482009-02-14 Christian Franke <franke@computer.org>
2849
2850 * commands/hdparm.c: New file. Provides `hdparm' command
2851 which sends ATA commands via grub_disk_ata_pass_through ().
2852
2853 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
2854
2855 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
2856 and <grub/cpu/io.h> to include/grub/ata.h.
2857 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
2858 (GRUB_CDROM_SECTOR_SIZE): Remove.
2859 (GRUB_ATA_*): Move to include/grub/ata.h.
2860 (GRUB_ATAPI_*): Likewise.
2861 (enum grub_ata_commands): Likewise.
2862 (enum grub_ata_timeout_milliseconds): Likewise.
2863 (struct grub_ata_device): Likewise.
2864 (grub_ata_regset): Likewise.
2865 (grub_ata_regget): Likewise.
2866 (grub_ata_regset2): Likewise.
2867 (grub_ata_regget2): Likewise.
2868 (grub_ata_check_ready): Likewise.
2869 (grub_ata_wait_not_busy): Remove static, exported in
2870 include/grub/ata.h.
2871 (grub_ata_wait_drq): Likewise.
2872 (grub_ata_pio_read): Likewise.
2873
2874 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
2875 function for hdparm.mod.
2876
2877 * include/grub/ata.h: New file, contains declarations from
2878 disk/ata.c.
2879 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
2880
2881 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
2882 (grub_disk_ata_pass_through): New exported variable.
2883
2884 * kern/disk.c (grub_disk_ata_pass_through): New variable.
2885
772e23da 28862009-02-13 Colin D Bennett <colin@gibibit.com>
2887
2888 Support multiple fallback entries, and provide an API to support
2889 executing default+fallback menu entries. Renamed the `terminal' menu
2890 viewer to `text'.
2891
2892 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
2893 variable declaration.
2894 (grub_menu_execute_callback): New structure declaration.
2895 (grub_menu_execute_callback_t): New typedef.
2896 (grub_menu_execute_with_fallback): New function declaration.
2897 (grub_menu_get_entry): Likewise.
2898 (grub_menu_get_timeout): Likewise.
2899 (grub_menu_set_timeout): Likewise.
2900
2901 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
2902
2903 * normal/menu.c (grub_wait_after_message): Moved to
2904 `normal/menu_text.c'.
2905 (draw_border): Likewise.
2906 (print_message): Likewise.
2907 (print_entry): Likewise.
2908 (print_entries): Likewise.
2909 (grub_menu_init_page): Likewise.
2910 (get_entry_number): Likewise.
2911 (print_timeout): Likewise.
2912 (run_menu): Likewise.
2913 (grub_menu_execute_entry): Likewise.
2914 (show_text_menu): Likewise.
2915 (get_and_remove_first_entry_number): New function.
2916 (grub_menu_execute_with_fallback): Likewise.
2917 (get_entry): Renamed to ...
2918 (grub_menu_get_entry): .. this and made it global.
2919 (get_timeout): Renamed to ...
2920 (grub_menu_get_timeout): ... this and made it global.
2921 (set_timeout): Renamed to ...
2922 (grub_menu_set_timeout): ... this and made it global.
2923 (grub_normal_terminal_menu_viewer): Renamed to ...
2924 (grub_normal_text_menu_viewer): ... this.
2925
2926 * normal/menu_text.c: New file. Extracted text-menu-specific code
2927 from normal/menu.c.
2928
2929 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
2930 (normal_mod_SOURCES): Likewise.
2931
2932 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2933 (normal_mod_SOURCES): Likewise.
2934
2935 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2936 (normal_mod_SOURCES): Likewise.
2937
2938 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
2939 (normal_mod_SOURCES): Likewise.
2940
2941 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2942 (normal_mod_SOURCES): Likewise.
2943
2944 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2945 (normal_mod_SOURCES): Likewise.
2946
2947 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2948 (normal_mod_SOURCES): Likewise.
2949
16ac430e 29502009-02-11 Robert Millan <rmh@aybabtu.com>
2951
2952 * util/grub.d/00_header.in: Update old reference to `font' command.
2953
06ff20fc 29542009-02-10 Felix Zielcke <fzielcke@z-51.de>
2955
2956 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
2957
2958 Based on patch from Javier Martín.
2959
96da9407 29602009-02-09 Felix Zielcke <fzielcke@z-51.de>
2961
2962 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 2963 to avoid false positives with FAT.
96da9407 2964 (grub_fstest_SOURCES): Likewise.
2965 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2966 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2967 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2968 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
2969 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2970 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2971
6dca6fe4 29722009-02-09 Felix Zielcke <fzielcke@z-51.de>
2973
06ff20fc 2974 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 2975 bpb.version_specific.fat12_or_fat16.fstype and
2976 bpb.version_specific.fat32.fstype.
2977
2550c62f 29782009-02-08 Robert Millan <rmh@aybabtu.com>
2979
be110b30 2980 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 2981
56978920 29822009-02-08 Robert Millan <rmh@aybabtu.com>
2983
2984 * Makefile.in (host_os, host_cpu): New variables.
2985 (target_os): Remove. Update all users.
2986
d64399b5 29872009-02-08 Marco Gerards <marco@gnu.org>
2988
2989 * Makefile.in (enable_grub_emu_usb): New variable.
2990 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
2991 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
2992 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
2993 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
2994 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
2995 `usbtest.mod' and `usbms.mod'.
2996 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
2997 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
2998 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
2999 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
3000 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
3001 variables.
3002
3003 * disk/usbms.c: New file.
3004
3005 * include/grub/usb.h: Likewise.
3006
3007 * include/grub/usbtrans.h: Likewise.
3008
3009 * include/grub/usbdesc.h: Likewise.
3010
3011 * bus/usb/usbtrans.c: Likewise.
3012
3013 * bus/usb/ohci.c: Likewise.
3014
3015 * bus/usb/uhci.c: Likewise.
3016
3017 * bus/usb/usbhub.c: Likewise.
3018
3019 * bus/usb/usb.c: Likewise.
3020
3021 * commands/usbtest.c: Likewise.
3022
3023 * util/usb.c: Likewise.
50fb7002 3024
d64399b5 3025 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
3026
3027 * configure.ac: Test for libusb presence.
50fb7002 3028
d64399b5 3029 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
3030
2b40d6bb 30312009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
3032
3033 * kern/mm.c: Add more comments.
3034
73a4ce81 30352009-02-08 Robert Millan <rmh@aybabtu.com>
3036
3037 Patch from Javier Martín.
3038 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
3039 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
3040
f821ce59 30412009-02-08 Robert Millan <rmh@aybabtu.com>
3042
3043 * fs/cpio.c: Split tar functionality to ...
3044 * fs/tar.c: ... here (new file). Update all users.
3045
aebfc4b0 30462009-02-07 Robert Millan <rmh@aybabtu.com>
3047
3048 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
3049 backward-incompatible features.
3050
3051 Based on patch from Javier Martín, with some adjustments.
3052
50fb7002 30532009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 3054
3055 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
3056
0bb5115e 30572009-02-07 Robert Millan <rmh@aybabtu.com>
3058
3059 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
3060 position of `disk/lvm.c' to ensure grub_init_all() always picks it
3061 after the RAID stuff.
3062
38a0f8e7 30632009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
3064
50fb7002 3065 Fixes problem when running vbetest command as reported by
38a0f8e7 3066 Vladimir Serbinenko <phcoder@gmail.com>.
3067
3068 * (grub_vbe_set_video_mode): Fixed problem with text modes.
3069
3143cc1c 30702009-02-04 Felix Zielcke <fzielcke@z-51.de>
3071
3072 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
3073 /dev/md/NpN style mdraid devices.
3074
9cba6fce 30752009-02-03 Felix Zielcke <fzielcke@z-51.de>
3076
3077 * util/unifont2pff.rb: Remove.
3078
e507a2c1 30792009-02-03 Felix Zielcke <fzielcke@z-51.de>
3080
3081 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
3082 `#'.
3083
d2c2b4cd 30842009-02-03 Felix Zielcke <fzielcke@z-51.de>
3085
3086 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
3087 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3088 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3089 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
3090 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3091 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3092 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3093
b4315fb0 30942009-02-02 Christian Franke <franke@computer.org>
3095
3096 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
3097
de3aa260 30982009-02-01 Felix Zielcke <fzielcke@z-51.de>
3099
7c3ff286 3100 * INSTALL: Note that we now require at least autoconf 2.59 and
3101 that LZO is optional.
de3aa260 3102
825a182b 31032009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
3104
3105 Base on patch on bug #24154 created by Tomas Tintera
3106 <trosos@seznam.cz>.
3107
3108 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
3109
a69ef770 31102009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
3111
7c3ff286 3112 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 3113 <bero@arklinux.org>.
3114
3115 * normal/parser.y (script_init): Add missing semicolon.
3116
6fa42fa6 31172009-01-31 Colin D Bennett <colin@gibibit.com>
3118
7c3ff286 3119 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 3120 (free_menu_entry_classes): Added.
3121 (grub_normal_menu_addentry): Added class property handling.
3122 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
3123 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
3124
3125 * normal/menu_viewer.c: New file.
3126
3127 * normal/menu.c (run_menu_entry): Renamed to ...
3128 (grub_menu_execute_entry): ... this and made it as global.
3129 (grub_menu_run): Renamed to ...
3130 (show_text_menu): ... this and made it local.
3131 (show_text_menu): Adapt to new function names.
3132 (grub_normal_terminal_menu_viewer): New global variable.
3133
3134 * include/grub/menu.h: New file.
3135
3136 * include/grub/menu_viewer.h: New file.
3137
3138 * include/grub/normal.h: Added include to grub/menu.h.
3139 (grub_menu_entry): Moved to include/grub/menu.h.
3140 (grub_menu_entry_t): Likewise.
3141 (grub_menu): Likewise.
3142 (grub_menu_t): Likewise.
3143 (grub_normal_terminal_menu_viewer): Added.
3144 (grub_menu_execute_entry): Likewise.
3145 (grub_menu_run): Removed.
3146
3147 * DISTLIST: Added include/grub/menu.h.
3148 Added include/grub/menu_viewer.h.
3149 Added normal/menu_viewer.c.
3150
31512009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
3152
3153 * normal/execute.c (grub_script_execute_menuentry): Changed to use
3154 arglist for menutitle arguments.
3155
3156 * normal/main.c (grub_normal_menu_addentry): Likewise.
3157
3158 * normal/parser.y (menuentry): Likewise.
3159
3160 * normal/script.c (grub_script_create_cmdmenu): Likewise.
3161
3162 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
3163 (grub_script_create_cmdmenu): Likewise.
3164
3165 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
3166
3167 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
3168 changes.
3169
3170 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
3171
3172 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
3173
3174 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
3175
3176 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3177
3178 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3179
3180 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3181
56192c23 31822009-01-30 Christian Franke <franke@computer.org>
3183
3184 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
3185 in option help text.
3186
d72521b3 31872009-01-27 Pavel Roskin <proski@gnu.org>
3188
3189 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
3190
994b5e84 31912009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
3192
3193 * commands/lsmmap.c: Add include to grub/machine/memory.h.
3194
3195 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
3196
3197 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
3198 unregister function.
3199
6a7eab2c 32002009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
3201
3202 * disk/scsi.c (grub_scsi_read): Fix sign problem.
3203
3204 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
3205
3206 * util/grub-mkfont.c (usage): Fix typo.
3207
3208 * util/elf/grub-mkimage.c (load_modules): Fix warning.
3209
1806b56e 32102009-01-26 Daniel Mierswa <impulze@impulze.org>
3211
3fb18f09 3212 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
3213
336e1fb9 3214 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
3215
1806b56e 3216 * kern/misc.c (grub_strcasecmp): New function.
3217 (grub_strcasecmp): Use grub_size_t instead of int for length.
3218 Fix return value.
3219 * include/grub/misc.h: Update function prototypes.
3220
580b2a0f 32212009-01-26 Robert Millan <rmh@aybabtu.com>
3222
3223 * configure.ac: Fix cross-compilation check.
ef257b36 3224
d31c24f1 32252009-01-22 Christian Franke <franke@computer.org>
3226
3227 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
3228 (precision) digit string. Allow `.format2' without `format1' (width).
3229 Limit input chars for `%s' output to `format2' if specified. This is
3230 compatible with standard printf ().
3231
3138b44c 32322009-01-22 Christian Franke <franke@computer.org>
3233
3234 * disk/ata.c (grub_ata_wait_status): Replace by ...
3235 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
3236 other status bits may be invalid while BSY is asserted.
3237 (grub_ata_check_ready): New function.
3238 (grub_ata_cmd): Removed.
3239 (grub_ata_wait_drq): New function.
3240 (grub_ata_strncpy): Remove inline.
3241 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
3242 and error check now done by grub_ata_wait_drq ().
3243 (grub_ata_pio_write): Likewise.
3244 (grub_atapi_identify): Set DEV before check for !BSY. Use
3245 grub_ata_wait_drq () to wait for data.
3246 (grub_ata_device_initialize): Add status register check to
3247 detect missing SATA slave devices. Add debug messages.
3248 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
3249 (grub_atapi_packet): Set DEV before check for !BSY. Replace
3250 transfer loop by grub_ata_pio_write ().
3251 (grub_ata_identify): Set DEV before check for !BSY. Use
3252 grub_ata_wait_drq () to wait for data.
ef257b36 3253 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 3254 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
3255 read/write in one loop. Fix invalid command on write. Fix incomplete
3256 command on (size % batch) == 0. Add missing error check after write of
3257 last block. Add debug messages.
3258 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
3259
59a64ef6 32602009-01-19 Christian Franke <franke@computer.org>
3261
3262 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
3263 (GRUB_ATAPI_IREASON_*): Likewise.
3264 (grub_ata_pio_write): Fix timeout error return.
3265 (grub_atapi_identify): Add grub_ata_wait () after cmd.
3266 (grub_atapi_wait_drq): New function.
3267 (grub_atapi_packet): New parameter `size'.
3268 Use grub_atapi_wait_drq () and direct write instead of
3269 grub_ata_pio_write ().
3270 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
3271 reads the number of bytes requested by the device for each DRQ
3272 assertion.
3273 (grub_atapi_write): Remove old implementation, return not
3274 implemented instead.
3275
1cfe20b3 32762009-01-19 Christian Franke <franke@computer.org>
3277
3278 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
3279 of 512 to calculate data size.
3280 (grub_scsi_read12): Likewise.
3281 (grub_scsi_write10): Likewise.
3282 (grub_scsi_write12): Likewise.
3283 (grub_scsi_read): Adjust size according to blocksize.
3284 Add checks for invalid blocksize and unaligned transfer.
3285
bee5fe5d 32862009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
3287
3288 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
3289
ef257b36 3290 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 3291 width glyphs.
3292
3e643f8c 32932009-01-19 Robert Millan <rmh@aybabtu.com>
3294
3295 * config.guess: Update to latest version from config git.
3296 * config.sub: Likewise.
3297
4fa80998 32982009-01-17 Felix Zielcke <fzielcke@z-51.de>
3299
3300 * Makefile.in: Change font compilation to use new grub-mkfont instead
3301 of java version.
3302
3303 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
3304 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
3305 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
3306 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
3307 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
3308 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
3309 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
3310 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
3311 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
3312
7086085b 33132009-01-16 Christian Franke <franke@computer.org>
3314
3315 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
3316 (enum grub_ata_timeout_milliseconds): New enum.
3317 (grub_ata_wait_status): Add parameter milliseconds.
3318 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
3319 recovery from timed-out commands.
3320 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
3321 return grub_errno instead of REG_ERROR.
3322 (grub_ata_pio_write): Add parameter milliseconds.
3323 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
3324 Pass milliseconds to grub_ata_wait_status () and
3325 grub_ata_pio_read ().
3326 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
3327 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
3328 grub_ata_wait_status (). Fix IDENTIFY timeout check.
3329 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
3330 It is not suitable for device detection, because DEV bit is ignored,
3331 the command may run too long, and not all devices set the signature
3332 properly.
3333 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
3334 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
3335 Fix device selection, DEV bit must be set first to address the registers
3336 of the correct device.
3337 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
3338 grub_ata_pio_read/write ().
3339 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
3340 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
3341
4a412913 33422009-01-13 Carles Pina i Estany <carles@pina.cat>
3343
3344 * util/grub-editenv.c (main): Use fseeko(), not fseek().
3345
7795c55e 33462009-01-13 Bean <bean123ch@gmail.com>
d913988c 3347
3348 * util/grub-mkfont.c (write_font): forget to remove some debug code.
3349
7795c55e 33502009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 3351
3352 * Makefile.in: (enable_grub_mkfont): New variable.
3353 (freetype_cflags): Likewise.
3354 (freetype_libs): Likewise.
3355
3356 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
3357 (grub_mkfont_SOURCES): New variable.
3358 (grub_mkfont_CFLAGS): Likewise.
3359 (grub_mkfont_LDFLAGS): Likewise.
3360
3361 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
3362 library if `--enable-grub-mkfont' is requested.
3363 (enable_grub_mkfont): New variable.
3364 (freetype_cflags): Likewise.
3365 (freetype_libs): Likewise.
3366
3367 * util/grub-mkfont.c: New file.
3368
093af1fe 33692009-01-12 Christian Franke <franke@computer.org>
3370
3371 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
3372 mode check. Fix setting of compat_use[].
3373
f36cc108 33742009-01-10 Robert Millan <rmh@aybabtu.com>
3375
3376 Update a few copyright years which we forgot to do in 2008 (only for
3377 files whose changes made in 2008 were copyright-significant)
3378
3379 * Makefile.in: Add 2008 to Copyright line.
3380 * disk/ieee1275/ofdisk.c: Likewise.
3381 * disk/efi/efidisk.c: Likewise.
3382 * kern/dl.c: Likewise.
3383 * kern/sparc64/ieee1275/init.c: Likewise.
3384 * kern/mm.c: Likewise.
3385 * kern/efi/mm.c: Likewise.
3386 * boot/i386/pc/boot.S: Likewise.
3387 * genfslist.sh: Likewise.
3388 * fs/iso9660.c: Likewise.
3389 * fs/hfs.c: Likewise.
3390 * fs/jfs.c: Likewise.
3391 * fs/minix.c: Likewise.
3392 * fs/ufs.c: Likewise.
3393 * gensymlist.sh.in: Likewise.
3394 * genkernsyms.sh.in: Likewise.
3395 * include/grub/misc.h: Likewise.
3396 * include/grub/types.h: Likewise.
3397 * include/grub/symbol.h: Likewise.
3398 * include/grub/elf.h: Likewise.
3399 * include/grub/kernel.h: Likewise.
3400 * include/grub/disk.h: Likewise.
3401 * include/grub/dl.h: Likewise.
3402 * include/grub/i386/linux.h: Likewise.
3403 * include/grub/i386/pc/biosdisk.h: Likewise.
3404 * include/grub/efi/api.h: Likewise.
3405 * include/grub/efi/pe32.h: Likewise.
3406 * include/grub/util/misc.h: Likewise.
3407 * normal/execute.c: Likewise.
3408 * normal/arg.c: Likewise.
3409 * normal/completion.c: Likewise.
3410 * normal/lexer.c: Likewise.
3411 * normal/parser.y: Likewise.
3412 * normal/misc.c: Likewise.
3413 * commands/i386/pc/vbeinfo.c: Likewise.
3414 * commands/hexdump.c: Likewise.
3415 * commands/terminal.c: Likewise.
3416 * commands/ls.c: Likewise.
3417 * commands/help.c: Likewise.
3418 * partmap/pc.c: Likewise.
3419 * loader/efi/chainloader.c: Likewise.
3420 * loader/multiboot_loader.c: Likewise.
3421 * loader/i386/pc/multiboot2.c: Likewise.
3422 * term/efi/console.c: Likewise.
3423 * term/i386/pc/serial.c: Likewise.
3424 * util/lvm.c: Likewise.
3425 * util/console.c: Likewise.
3426 * util/i386/efi/grub-mkimage.c: Likewise.
3427 * util/raid.c: Likewise.
3428
7f02114b 34292009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
3430
3431 * commands/videotest.c: Removed include to grub/machine/memory.h.
3432
3433 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
3434 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
3435 (video_mod_SOURCES): Removed.
3436 (video_mod_CFLAGS): Likewise.
3437 (video_mod_LDFLAGS): Likewise.
3438 (gfxterm_mod_SOURCES): Likewise.
3439 (gfxterm_mod_CFLAGS): Likewise.
3440 (gfxterm_mod_LDFLAGS): Likewise.
3441 (videotest_mod_SOURCES): Likewise.
3442 (videotest_mod_CFLAGS): Likewise.
3443 (videotest_mod_LDFLAGS): Likewise.
3444 (bitmap_mod_SOURCES): Likewise.
3445 (bitmap_mod_CFLAGS): Likewise.
3446 (bitmap_mod_LDFLAGS): Likewise.
3447 (tga_mod_SOURCES): Likewise.
3448 (tga_mod_CFLAGS): Likewise.
3449 (tga_mod_LDFLAGS): Likewise.
3450 (jpeg_mod_SOURCES): Likewise.
3451 (jpeg_mod_CFLAGS): Likewise.
3452 (jpeg_mod_LDFLAGS): Likewise.
3453 (png_mod_SOURCES): Likewise.
3454 (png_mod_CFLAGS): Likewise.
3455 (png_mod_LDFLAGS): Likewise.
3456
3457 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
3458 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
3459 (video_mod_SOURCES): Added.
3460 (video_mod_CFLAGS): Likewise.
3461 (video_mod_LDFLAGS): Likewise.
3462 (videotest_mod_SOURCES): Likewise.
3463 (videotest_mod_CFLAGS): Likewise.
3464 (videotest_mod_LDFLAGS): Likewise.
3465 (bitmap_mod_SOURCES): Likewise.
3466 (bitmap_mod_CFLAGS): Likewise.
3467 (bitmap_mod_LDFLAGS): Likewise.
3468 (tga_mod_SOURCES): Likewise.
3469 (tga_mod_CFLAGS): Likewise.
3470 (tga_mod_LDFLAGS): Likewise.
3471 (jpeg_mod_SOURCES): Likewise.
3472 (jpeg_mod_CFLAGS): Likewise.
3473 (jpeg_mod_LDFLAGS): Likewise.
3474 (png_mod_SOURCES): Likewise.
3475 (png_mod_CFLAGS): Likewise.
3476 (png_mod_LDFLAGS): Likewise.
3477 (gfxterm_mod_SOURCES): Likewise.
3478 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 3479 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 3480
3481 * term/gfxterm.c: Removed include to grub/machine/memory.h,
3482 grub/machine/console.h.
3483
644fff97 34842009-01-04 Jerone Young <jerone@gmail.com>
3485
3486 Make on screen instructions clearer
3487
3488 Based on patch created by Jidanni <jidanni@jidanni.org>
3489
3490 * normal/menu.c: print clearer instructions on the screen
3491
1e901a75 34922009-01-02 Colin D Bennett <colin@gibibit.com>
3493
3494 New font engine.
34c44600 3495
1e901a75 3496 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
3497 build system and fixed gfxterm.c to work with different sized fonts.
3498
3499 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 3500
1e901a75 3501 * configure: Re-generated.
34c44600 3502
1e901a75 3503 * DISTLIST: Removed font/manager.c.
3504 Added font/font.c.
3505 Added font/font_cmd.c.
34c44600 3506
1e901a75 3507 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
3508 compilation.
34c44600 3509
1e901a75 3510 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 3511
3512 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 3513
3514 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 3515
1e901a75 3516 * normal/menu.c: Likewise.
34c44600 3517
1e901a75 3518 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
3519 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 3520
1e901a75 3521 * include/grub/font.h: Replaced with new file.
34c44600 3522
1e901a75 3523 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
3524 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
3525 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
3526 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
3527 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 3528 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 3529 fg_red, fg_green, fg_blue, fg_alpha.
3530 (grub_video_adapter): Removed blit_glyph.
34c44600 3531 (grub_video_blit_glyph): Removed.
3532
1e901a75 3533 * font/manager.c: Removed file.
34c44600 3534
3535 * font/font.c: New file.
3536
1e901a75 3537 * font/font_cmd.c: Likewise.
34c44600 3538
1e901a75 3539 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 3540
1e901a75 3541 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
3542 (grub_video_vbe_map_rgba): Likewise.
3543 (grub_video_vbe_unmap_color_int): Likewise.
3544 (grub_video_vbe_blit_glyph): Removed.
3545 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 3546
1e901a75 3547 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
3548 (get_pixel): Likewise.
34c44600 3549 (set_pixel): Likewise.
3550
1e901a75 3551 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 3552
1e901a75 3553 * term/gfxterm.c: Adapted to new font engine.
34c44600 3554
1e901a75 3555 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 3556
1e901a75 3557 * term/i386/pc/vga.c: Likewise.
34c44600 3558
1e901a75 3559 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 3560
1e901a75 3561 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 3562
1e901a75 3563 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 3564
1e901a75 3565 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 3566
1e901a75 3567 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 3568
1e901a75 3569 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 3570
1e901a75 3571 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 3572
1e901a75 3573 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 3574
1e901a75 3575 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
3576
3577 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 3578
1e901a75 3579 * util/grub-mkconfig_lib.in: Changed font extension.
3580
278922e8 35812008-12-28 Felix Zielcke <fzielcke@z-51.de>
3582
3583 * util/getroot.c (grub_util_get_grub_dev): Add support for
3584 /dev/md/dNNpNN style partitionable mdraid devices.
3585
3ced05cf 35862008-12-12 Alex Smith <alex@alex-smith.me.uk>
3587
3588 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
3589 at a time limit of the PXE TFTP API correctly.
3590 (grub_pxefs_close): Likewise.
3591
7fd0ee30 35922008-11-29 Robert Millan <rmh@aybabtu.com>
3593
34c44600 3594 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 3595 grub_ata_device_initialize() calls.
3596
34c44600 35972008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 3598
3599 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
3600 iteration failed.
3601 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
3602
89313780 36032008-11-28 Robert Millan <rmh@aybabtu.com>
3604
3605 Fix build on powerpc-ieee1275. Based on patch created by
3606 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
3607 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
3608 `kern/ieee1275/mmap.c'.
3609 * include/grub/powerpc/ieee1275/memory.h: New file.
3610
15257703 3611 Provide grub-install on coreboot.
3612 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
3613 (grub_install_SOURCES): New variable.
3614 * util/i386/pc/grub-install.in: Add a few condition checks to make it
3615 usable on coreboot.
3616
9fc5388a 36172008-11-25 Felix Zielcke <fzielcke@z-51.de>
3618
3619 * util/grub-fstest.c (grub_term_get_current_input): Change return type
3620 to `grub_term_input_t'.
3621 (grub_term_get_current_output): Change return type to
3622 `grub_term_output_t'.
3623
bc3a2f31 36242008-11-22 Robert Millan <rmh@aybabtu.com>
3625
34c44600 3626 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 3627 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
3628 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
3629 grub_vga_text_cls().
3630
80fc88f2 3631 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 3632 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 3633
cbf36fd3 3634 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
3635 to 0x200000 (avoids trouble with some OFW implementations, and matches
3636 with the one in Yaboot).
3637 Reported by Manoel Abranches
3638
73e8e268 36392008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 3640
3641 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
3642 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
3643
73e8e268 3644 * util/grub-mkconfig_lib.in (grub_warn): New function.
3645 (convert_system_path_to_grub_path): Use grub_warn() when issuing
3646 warnings, to obtain consistent formatting.
3647 * util/grub.d/00_header.in: Likewise.
3648 * util/update-grub_lib.in: Likewise.
3649
e94045a1 3650 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 3651 Move comment text to `#error' stanza.
e94045a1 3652
79d29fd7 3653 Harmonize ieee1275's grub_available_iterate() with the generic
3654 grub_machine_mmap_iterate() interface (fixes a recently-introduced
3655 build problem on i386-ieee1275):
3656 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
3657 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
3658 parameter `type'. Update all users of this function.
3659 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
3660 `kern/ieee1275/mmap.c'.
3661 * kern/ieee1275/init.c
3662 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
3663 with ...
3664 (grub_machine_mmap_iterate): ... this.
3665 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
3666 return type to `grub_err_t'. Update all implementations of this
3667 function prototype.
3668 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
3669 Likewise.
3670
60d6b16e 3671 Add `lsmmap' command (lists firmware-provided memory map):
3672 * commands/lsmmap.c: New file.
3673 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
3674 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
3675 variables.
3676 * conf/powerpc-ieee1275.rmk: Likewise.
3677 * conf/i386-coreboot.rmk: Likewise.
3678 * conf/i386-ieee1275.rmk: Likewise.
3679
ebaaf49b 36802008-11-19 Robert Millan <rmh@aybabtu.com>
3681
3682 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 3683 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
3684 constraints to initrd allocation (based on code from
3685 loader/i386/pc/linux.c). Without them, initrd was allocated too high
3686 for Linux to find it.
ebaaf49b 3687
dfab719f 36882008-11-14 Robert Millan <rmh@aybabtu.com>
3689
3690 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
3691 order to cope with duplicate slashes.
3692
10fc3eb9 36932008-11-14 Robert Millan <rmh@aybabtu.com>
3694
3695 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
3696 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
3697 don't want to mess with lower memory, because it is used in the Linux
3698 loader.
3699
3700 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 3701 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 3702 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
3703 is in our heap (probably as a result of it being corrupted during
2f2a3442 3704 decompression). Add #error instance with comment to explain why this
3705 loader isn't currently usable on PC/BIOS.
10fc3eb9 3706
e2e07847 37072008-11-14 Robert Millan <rmh@aybabtu.com>
3708
3709 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 3710 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 3711
fe8e8d69 37122008-11-12 Robert Millan <rmh@aybabtu.com>
3713
3714 Make loader/i386/linux.c buildable on i386-pc (although disabled).
3715
3716 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
3717 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
3718 from here ...
3719 * include/grub/i386/pc/memory.h: ... to here.
3720
976b07d0 37212008-11-12 Robert Millan <rmh@aybabtu.com>
3722
3723 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
3724 split).
3725
3726 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
3727 (grub_console_cur_color, grub_console_real_putchar)
3728 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
3729 (grub_console_setcolorstate, grub_console_setcolor)
3730 (grub_console_getcolor): Move from here ...
3731 * include/grub/i386/vga_common.h: ... to here (new file).
3732
3733 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
3734 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
3735 `<grub/i386/io.h>'.
3736 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
3737 `<grub/i386/vga_common.h>'.
3738
76679cd3 37392008-11-12 Robert Millan <rmh@aybabtu.com>
3740
3741 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
3742 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
3743 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
3744 variables.
3745 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
3746 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
3747
3748 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
3749 grub_console_init() with call to grub_vga_text_init().
3750 (grub_machine_fini): Replace call to
3751 grub_console_fini() with call to grub_vga_text_fini() and
3752 grub_at_keyboard_fini().
3753
3754 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
3755 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
3756 (grub_console_setcolorstate, grub_console_setcolor)
3757 (grub_console_getcolor): New function prototypes.
3758
3759 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
3760 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
3761 (grub_vga_text_setcursor): Static-ize.
3762 (grub_vga_text_term): New structure.
3763 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
3764
3765 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
3766 (grub_console_cur_color, grub_console_standard_color)
3767 (grub_console_normal_color, grub_console_highlight_color)
3768 (map_char, grub_console_putchar, grub_console_getcharwidth)
3769 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
3770 (grub_console_getcolor): Move from here ...
3771 * term/i386/vga_common.c: ... to here (same function names).
3772
95b841d3 37732008-11-12 Robert Millan <rmh@aybabtu.com>
3774
3775 Use newly-added Multiboot support in coreboot.
3776
3777 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
3778 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
3779
3780 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
3781 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
3782 (codestart): Store the MBI in `startup_multiboot_info' when we're
3783 being loaded using Multiboot.
3784
3785 * kern/i386/coreboot/init.c (grub_machine_init): Move
3786 grub_at_keyboard_init() call to beginning of function (useful for
3787 debugging). Call grub_machine_mmap_init() before attempting to use
3788 grub_machine_mmap_iterate().
3789 (grub_lower_mem, grub_upper_mem): Move from here ...
3790 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
3791 here (new file).
3792
3793 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
3794 function prototype.
3795
761ca975 37962008-11-12 Robert Millan <rmh@aybabtu.com>
3797
3798 Fix a regression introduced by the at_keyboard.mod split. Because
3799 some terminals are default on some platforms and non-default on
3800 others, the first terminal being registered determines which is
3801 going to be default.
3802
3803 * kern/term.c (grub_term_register_input): If this is the first
3804 terminal being registered, set it as the current one.
3805 (grub_term_register_output): Likewise.
3806
3807 * term/efi/console.c (grub_console_init): Do not call
3808 grub_term_set_current_output() or grub_term_set_current_input().
3809 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
3810 * term/i386/pc/console.c (grub_console_init): Likewise.
3811 (grub_console_fini): Do not call grub_term_set_current_input()
3812 (but leave grub_term_set_current_output() to restore text mode).
3813
6c529df7 38142008-11-10 Robert Millan <rmh@aybabtu.com>
3815
3816 * util/grub.d/00_header.in: Add backward compatibility check for
3817 versions of terminal.mod that don't understand `terminal_input' or
3818 `terminal_output'.
3819
132e4113 38202008-11-09 Robert Millan <rmh@aybabtu.com>
3821
3822 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
3823 `terminal_input' / `terminal_output', not `terminal'.
3824
ac293d50 38252008-11-08 Robert Millan <rmh@aybabtu.com>
3826
3827 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 3828 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 3829
0025933a 38302008-11-08 Robert Millan <rmh@aybabtu.com>
3831
3832 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 3833 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 3834 members. Update all users.
3835 * util/console.c (grub_ncurses_term): Split in ...
3836 (grub_ncurses_term_input): ... this, and ...
3837 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 3838 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 3839
37c86336 38402008-11-08 Robert Millan <rmh@aybabtu.com>
3841
3842 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
3843 (PKGDATA): Add $(pkgdata_SRCDIR).
3844 (pkglib_BUILDDIR): New variable.
3845 (pkgdata_SRCDIR): New variable.
3846 (build_env.mk): New target.
3847 (include_DATA): New variable.
3848 (install-local): Install $(include_DATA) files in $(includedir).
3849
b6c15a2d 38502008-11-07 Pavel Roskin <proski@gnu.org>
3851
d99d46f1 3852 * gendistlist.sh: Use C locale for sorting to ensure consistent
3853 output on all systems.
3854
b6c15a2d 3855 * util/grub.d/00_header.in: Remove incorrect space before
3856 "serial".
3857
c32ee8c9 38582008-11-07 Robert Millan <rmh@aybabtu.com>
3859
3860 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
3861 per specification.
3862 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
3863 * loader/multiboot_loader.c (find_multi_boot2_header): New function
3864 (based on find_multi_boot1_header).
3865 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
3866 using find_multi_boot2_header(), and abort if neither Multiboot or
3867 Multiboot headers were found.
3868
651c29b7 38692008-11-07 Robert Millan <rmh@aybabtu.com>
3870
3871 Modularize at_keyboard.mod:
3872
3873 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
3874 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
3875 (at_keyboard_mod_LDFLAGS): New variables.
3876
3877 Actual terminal split:
3878
3879 * include/grub/term.h (struct grub_term): Split in ...
3880 (struct grub_term_input): ... this, and ...
3881 (struct grub_term_output): ... this. Update all users.
3882 (grub_term_set_current): Split in ...
3883 (grub_term_set_current_input): ... this, and ...
3884 (grub_term_set_current_output): ... this.
3885 (grub_term_get_current): Split in ...
3886 (grub_term_get_current_input): ... this, and ...
3887 (grub_term_get_current_output): ... this.
3888 (grub_term_register): Split in ...
3889 (grub_term_register_input): ... this, and ...
3890 (grub_term_register_output): ... this.
3891 (grub_term_unregister): Split in ...
3892 (grub_term_unregister_input): ... this, and ...
3893 (grub_term_unregister_output): ... this.
3894 (grub_term_iterate): Split in ...
3895 (grub_term_iterate_input): ... this, and ...
3896 (grub_term_iterate_output): ... this.
3897
3898 * kern/term.c (grub_term_list): Split in ...
3899 (grub_term_list_input): ... this, and ...
3900 (grub_term_list_output): ... this. Update all users.
3901 (grub_cur_term): Split in ...
3902 (grub_cur_term_input): ... this, and ...
3903 (grub_cur_term_output): ... this. Update all users.
3904 (grub_term_set_current): Split in ...
3905 (grub_term_set_current_input): ... this, and ...
3906 (grub_term_set_current_output): ... this.
3907 (grub_term_get_current): Split in ...
3908 (grub_term_get_current_input): ... this, and ...
3909 (grub_term_get_current_output): ... this.
3910 (grub_term_register): Split in ...
3911 (grub_term_register_input): ... this, and ...
3912 (grub_term_register_output): ... this.
3913 (grub_term_unregister): Split in ...
3914 (grub_term_unregister_input): ... this, and ...
3915 (grub_term_unregister_output): ... this.
3916 (grub_term_iterate): Split in ...
3917 (grub_term_iterate_input): ... this, and ...
3918 (grub_term_iterate_output): ... this.
3919
3920 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
3921 a check for input and one for output (and only attempt to get keys
3922 from user when input works).
3923
3924 * util/grub-probe.c (grub_term_get_current): Split in ...
3925 (grub_term_get_current_input): ... this, and ...
3926 (grub_term_get_current_output): ... this.
3927 * util/grub-fstest.c: Likewise.
3928 * util/i386/pc/grub-setup.c: Likewise.
3929 * util/grub-editenv.c: Likewise.
3930
3931 Portability adjustments:
3932
3933 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
3934 `term/i386/pc/at_keyboard.c'.
3935 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
3936 grub_keyboard_controller_init() (now handled by terminal .init).
3937 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
3938 grub_at_keyboard_init().
3939 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
3940 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
3941 at_keyboard.mod via input terminal interface).
3942 * include/grub/i386/coreboot/console.h: Convert into a stub for
3943 `<grub/i386/pc/console.h>'.
3944
3945 Migrate full terminals to new API:
3946
3947 * term/efi/console.c (grub_console_term): Split into ...
3948 (grub_console_term_input): ... this, and ...
3949 (grub_console_term_output): ... this. Update all users.
3950 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
3951 (grub_ofconsole_init): Split into ...
3952 (grub_ofconsole_init_input): ... this, and ...
3953 (grub_ofconsole_init_output): ... this.
3954 (grub_ofconsole_term): Split into ...
3955 (grub_ofconsole_term_input): ... this, and ...
3956 (grub_ofconsole_term_output): ... this. Update all users.
3957 * term/i386/pc/serial.c (grub_serial_term): Split into ...
3958 (grub_serial_term_input): ... this, and ...
3959 (grub_serial_term_output): ... this. Update all users.
3960 * term/i386/pc/console.c (grub_console_term): Split into ...
3961 (grub_console_term_input): ... this, and ...
3962 (grub_console_term_output): ... this. Update all users.
3963 (grub_console_term_input): Only enable it on PC/BIOS platform.
3964 (grub_console_init): Remove grub_keyboard_controller_init() call.
3965
3966 Migrate input terminals to new API:
3967
3968 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
3969 `i386' and `i386/pc' to enable build on x86_64 (this driver is
3970 i386-specific anyway).
3971 (grub_console_checkkey): Rename to ...
3972 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
3973 users.
3974 (grub_keyboard_controller_orig): New variable.
3975 (grub_console_getkey): Rename to ...
3976 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
3977 users.
3978 (grub_keyboard_controller_init): Static-ize. Save original
3979 controller value so that it can be restored ...
3980 (grub_keyboard_controller_fini): ... here (new function).
3981 (grub_at_keyboard_term): New structure.
3982 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
3983 functions.
3984
3985 Migrate output terminals to new API:
3986
3987 * term/i386/pc/vga.c (grub_vga_term): Change type to
3988 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
3989 members. Update all users.
3990 * term/gfxterm.c (grub_video_term): Change type to
3991 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
3992 members. Update all users.
3993 * include/grub/i386/pc/console.h (grub_console_checkkey)
3994 (grub_console_getkey): Do not export (no longer needed by gfxterm,
3995 etc).
3996
3997 Migrate `terminal' command and userland tools to new API:
3998
3999 * commands/terminal.c (grub_cmd_terminal): Split into ...
4000 (grub_cmd_terminal_input): ... this, and ...
4001 (grub_cmd_terminal_output): ... this.
4002 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
4003 `terminal_input' and `terminal_output'.
4004 * util/grub.d/00_header.in: Adjust `terminal' calls to new
4005 `terminal_input' / `terminal_output' API.
4006 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
4007 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
4008 provided ${GRUB_TERMINAL}, convert it).
4009
96e5d876 40102008-11-04 Robert Millan <rmh@aybabtu.com>
4011
4012 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
4013 for FreeBSD.
4014 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
4015
556f3775 40162008-11-03 Bean <bean123ch@gmail.com>
4017
4018 * kern/elf.c (grub_elf32_load): Revert to previous code.
4019 (grub_elf64_load): Likewise.
4020
4021 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
4022
926b9823 40232008-11-01 Robert Millan <rmh@aybabtu.com>
4024
4025 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
4026 (TARGET_CPPFLAGS): Likewise.
4027 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
4028
1432e958 40292008-11-01 Carles Pina i Estany <carles@pina.cat>
4030
4031 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
4032
dba3f844 40332008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 4034
4035 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
4036 addition of objects until the code is not going to be able to fail.
4037
dba3f844 40382008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 4039
4040 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
4041 (add a missing NULL check, and correct them by moving the pointer
4042 operations after the actual check).
4043
7ab28c21 40442008-10-29 Robert Millan <rmh@aybabtu.com>
4045
4046 * util/i386/pc/grub-install.in: Handle empty string as output from
4047 make_system_path_relative_to_its_root().
4048
1b7748eb 40492008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
4050
4051 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
4052 circular metadata worst case scenario. If the metadata is circular
4053 then copy the wrap in place.
4054 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
4055 project lib/format_text/layout.h
4056 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
4057
c9618ab2 40582008-10-03 Felix Zielcke <fzielcke@z-51.de>
4059
7a36edca 4060 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 4061
bf981c62 40622008-10-03 Felix Zielcke <fzielcke@z-51.de>
4063
4064 * util/update-grub_lib.in: Mention filename in warning message.
4065
6d994591 40662008-09-29 Felix Zielcke <fzielcke@z-51.de>
4067
4068 * NEWS: Update for rename of update-grub to grub-mkconfig.
4069
18ade780 40702008-09-29 Felix Zielcke <fzielcke@z-51.de>
4071
4072 * util/update-grub_lib.in: Copy to ...
4073 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 4074 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 4075 * util/update-grub.in: Rename to ...
4076 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
4077 option. Add `--output' option to allow users to specify the generated
4078 configuration file. Default to stdout.
4079 (update_grub_dir): Rename to ...
4080 (grub_mkconfig_dir): ... this.
4081 (grub_cfg): Default to an empty string.
4082 * conf/common.rmk (update-grub): Rename to ...
4083 (grub-mkconfig): ... this.
4084 (update-grub_lib): Copy to ...
4085 (grub-mkconfig_lib): ... this.
4086 (update-grub_SCRIPTS): Copy to ...
4087 (grub-mkconfig_SCRIPTS): ... this. Update all users.
4088 (update-grub_DATA): Rename to ...
4089 (grub-mkconfig_DATA): ... this.
4090
556ce6ac 40912008-09-28 Robert Millan <rmh@aybabtu.com>
4092
4093 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
4094 to `modified'. Add the real `created' field.
4095 (grub_iso9660_uuid): Use `modified' rather than `created' for
4096 constructing the UUID.
4097
40982008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 4099
4100 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
4101 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
4102
92274e85 41032008-09-28 Bean <bean123ch@gmail.com>
4104
4105 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
4106 Thanks to Christian Franke for finding this bug.
4107
add6f17a 41082008-09-25 Robert Millan <rmh@aybabtu.com>
4109
4110 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
4111 instances of grub_util_get_disk_name() (see previous commit).
4112
d2a367b8 41132008-09-25 Robert Millan <rmh@aybabtu.com>
4114
4115 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
4116 `util/i386/get_disk_name.c'.
4117 * conf/i386-efi.rmk: Likewise.
4118 * conf/x86_64-efi.rmk: Likewise.
4119 * conf/i386-coreboot.rmk: Likewise.
4120 * conf/i386-ieee1275.rmk: Likewise.
4121 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
4122 `util/ieee1275/get_disk_name.c'.
4123 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
4124 * util/ieee1275/get_disk_name.c: Remove file.
4125 * util/i386/get_disk_name.c: Remove file.
4126 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
4127 "hd%d" for device.map entries, rather than using
4128 grub_util_get_disk_name().
4129
81a06771 41302008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 4131
4132 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
4133 warning.
4134 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
4135
5a004279 41362008-09-24 Carles Pina i Estany <carles@pina.cat>
4137
4138 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
4139 Changed to 0x5100.
4140 (GRUB_TERM_PPAGE): Changed to 0x4900.
4141
397093d3 41422008-09-24 Robert Millan <rmh@aybabtu.com>
4143
4144 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
4145 macros (they were i386-pc specific).
4146 * include/grub/sparc64/ieee1275/console.h: Likewise.
4147 * include/grub/efi/console.h: Likewise.
4148
a91b6c7c 41492008-09-22 Bean <bean123ch@gmail.com>
4150
4151 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
4152 resident and in attribute list.
4153
4154 * include/grub/ntfs.h (BMP_LEN): Removed.
4155
c40fd116 41562008-09-22 Bean <bean123ch@gmail.com>
4157
81a06771 4158 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 4159 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
4160
4161 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
4162 error occurs, as grub_disk_open will call grub_disk_close, which will
4163 call p->close (scsi).
4164
81a06771 41652008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 4166
4167 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
4168 (AC_PREREQ): Bumped to 2.59.
4169 (AC_TRY_COMPILE): Replace obsolete macro with ...
4170 (AC_COMPILE_IFELSE): ... this.
4171 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
4172 (AC_LINK_IFELSE): ... this.
4173
5dc43410 41742008-09-21 Felix Zielcke <fzielcke@z-51.de>
4175
4176 * autogen.sh: Add a call to `gendistlist.sh'.
4177
9035dce4 41782008-09-19 Christian Franke <franke@computer.org>
4179
4180 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
4181 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
4182 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
4183 Export __enable_execute_stack() to modules.
4184 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
4185 New function.
4186
7fd75377 41872008-09-09 Felix Zielcke <fzielcke@z-51.de>
4188
040030b3 4189 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
4190 Sort the list.
4191
41922008-09-09 Felix Zielcke <fzielcke@z-51.de>
4193
4194 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 4195 #include <grub/util/hostdisk.h>.
4196
89d5ffcf 41972008-09-08 Robert Millan <rmh@aybabtu.com>
4198
4199 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
4200 segments when their filesz is zero (grub_file_read() interprets
81a06771 4201 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 4202 Use `lowest_segment' rather than 0 for calculating the current
4203 segment load address.
4204
40da438f 42052008-09-08 Robert Millan <rmh@aybabtu.com>
4206
4207 * util/hostdisk.c (open_device): Replace a grub_util_info() call
4208 with grub_dprintf("hostdisk", ...), as it was so verbose that it
4209 clobbered useful information.
4210
ddbf5556 42112008-09-08 Robert Millan <rmh@aybabtu.com>
4212
4213 * include/grub/util/biosdisk.h: Move to ...
4214 * include/grub/util/hostdisk.h: ... here. Update all users.
4215 * util/biosdisk.c: Move to ...
4216 * util/hostdisk.c: ... here. Update all users.
4217
783d0f48 42182008-09-07 Robert Millan <rmh@aybabtu.com>
4219
4220 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
4221 variables.
4222 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
4223 and length can be stored directly in the `mbi->mmap_addr' and
4224 `mbi->mmap_length' struct fields.
4225
548e2ea5 42262008-09-07 Robert Millan <rmh@aybabtu.com>
4227
4228 * conf/i386.rmk: New file. Provides declaration for building
4229 `cpuid.mod'.
4230 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
4231 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
4232 variables.
4233 Include `conf/i386.mk'.
4234 * conf/i386-efi.rmk: Likewise.
4235 * conf/x86_64-efi.rmk: Likewise.
4236 * conf/i386-coreboot.rmk: Likewise.
4237 * conf/i386-ieee1275.rmk: Likewise.
4238
0ea85a37 42392008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
4240
4241 Based on patch created by Colin D Bennett <colin@gibibit.com>.
4242 Adds optimization support for BGR based modes.
4243
4244 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
4245 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
4246 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
4247 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
4248 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
4249 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
4250 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
4251 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
4252 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
4253 (grub_video_i386_vbeblit_index_index): Likewise.
4254 (grub_video_i386_vbeblit_replace_directN): Added.
4255 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
4256 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
4257 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
4258 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
4259 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
4260 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 4261 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 4262 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
4263 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
4264 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
4265 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
4266 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
4267 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
4268
4269 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
4270 (grub_video_i386_vbefill_R8G8B8): Likewise.
4271 (grub_video_i386_vbefill_index): Likewise.
4272 (grub_video_i386_vbefill_direct32): Added.
4273 (grub_video_i386_vbefill_direct24): Likewise.
4274 (grub_video_i386_vbefill_direct16): Likewise.
4275 (grub_video_i386_vbefill_direct8): Likewise.
4276
81a06771 4277 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 4278 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
4279 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
4280 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
4281 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
4282 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 4283
0ea85a37 4284 * video/video.c (grub_video_get_blit_format): Updated to use new
4285 blit formats. Added handling for 16 bit color modes.
81a06771 4286
4287 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 4288 fillers.
4289 (common_blitter): Updated to use new blitters.
4290
4291 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
4292 Removed.
4293 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
4294 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
4295 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
4296 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
4297 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
4298 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
4299 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
4300 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
4301 (grub_video_i386_vbeblit_index_index): Likewise.
4302 (grub_video_i386_vbeblit_replace_directN): Added.
4303 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
4304 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
4305 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
4306 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
4307 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
4308 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
4309 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
4310 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
4311 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
4312 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
4313 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
4314 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
4315 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 4316
0ea85a37 4317 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
4318 (grub_video_i386_vbefill_R8G8B8): Likewise.
4319 (grub_video_i386_vbefill_index): Likewise.
4320 (grub_video_i386_vbefill_direct32): Added.
4321 (grub_video_i386_vbefill_direct24): Likewise.
4322 (grub_video_i386_vbefill_direct16): Likewise.
4323 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 4324
0ea85a37 4325 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
4326 types.
81a06771 4327
0ea85a37 4328 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
4329 types.
81a06771 4330
0ea85a37 4331 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
4332 blitter types.
81a06771 4333
0ea85a37 4334 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
4335 types.
4336
e8a83df6 43372008-09-06 Felix Zielcke <fzielcke@z-51.de>
4338
4339 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
4340 RAID level 1.
4341
6bcd8ee5 43422008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 4343
6bcd8ee5 4344 * fs/iso9660.c (grub_iso9660_date): New structure.
4345 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
4346 (grub_iso9660_uuid): New function.
c375ae58 4347
59261157 43482008-09-05 Bean <bean123ch@gmail.com>
4349
4350 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
4351
4352 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
4353 insensitive bit for names in Win32 and Win32 & DOS namespace.
4354
4355 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
4356
4357 * include/grub/types.h (LONG_MAX): Likewise.
4358
58b6645a 43592008-09-04 Felix Zielcke <fzielcke@z-51.de>
4360
4ee55921 4361 * util/getroot.c: Include <config.h>.
4362 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
4363 add support for /dev/md/N devices and handle LVM double dash escaping.
4364
43652008-09-04 Felix Zielcke <fzielcke@z-51.de>
4366
4367 * config.guess: Update to latest version from config git.
4368 * config.sub: Likewise.
58b6645a 4369
9124f65d 43702008-09-03 Robert Millan <rmh@aybabtu.com>
4371
4372 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
4373 `disk->total_sectors'.
4374
81a06771 43752008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 4376
4377 * include/grub/normal.h: Fixed incorrect comment for
4378 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
4379
81a06771 43802008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 4381
4382 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
4383 values with defines.
4384
4385 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
4386 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
4387 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
4388 (GRUB_VBE_MODEATTR_COLOR): Likewise.
4389 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
4390 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
4391 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
4392 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
4393 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
4394 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
4395 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
4396 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
4397 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
4398 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
4399 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
4400 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
4401 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
4402 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
4403 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
4404
93d5cbf8 44052008-08-31 Robert Millan <rmh@aybabtu.com>
4406
4407 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
4408 declaration.
4409 (grub_multiboot): Fix a few warnings.
4410
21751d50 44112008-08-31 Robert Millan <rmh@aybabtu.com>
4412
4413 * loader/i386/pc/multiboot.c: Update comment not to say that
4414 boot_device support is unimplemented.
4415
e27a75c5 44162008-08-31 Robert Millan <rmh@aybabtu.com>
4417
4418 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
4419 or memory map support are unimplemented.
4420
81a06771 44212008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 4422
4423 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
4424
81a06771 44252008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 4426
4427 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
4428 total video memory in 'vbeinfo' output; show color format details for
4429 each video mode.
4430
7c5d8d95 44312008-08-30 Pavel Roskin <proski@gnu.org>
4432
4433 * util/genmoddep.c: Remove for real this time.
4434 * DISTLIST: Remove util/genmoddep.c.
4435
4cebd25a 44362008-08-30 Robert Millan <rmh@aybabtu.com>
4437
4438 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
4439 as required by Multiboot spec (it was already 4-byte aligned, but
4440 only by chance).
4441
b497a269 44422008-08-29 Pavel Roskin <proski@gnu.org>
4443
e3925185 4444 * kern/powerpc/ieee1275/crt0.S: Rename to ...
4445 * kern/powerpc/ieee1275/startup.S: ... this.
4446 * conf/powerpc-ieee1275.rmk: Adjust for the above.
4447 * DISTLIST: Likewise.
4448
b497a269 4449 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
4450 grub/cpu/kernel.h. Add start label for consistency with other
4451 platforms. Add grub_prefix immediately after start. Add jump
4452 to the code after grub_prefix.
4453 * include/grub/powerpc/kernel.h: Provide valid values for
4454 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
4455
6e5a42fe 44562008-08-29 Bean <bean123ch@gmail.com>
4457
4458 * configure.ac: Change host_os to cygwin for mingw.
4459 (asprintf): New check for function.
4460
4461 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
4462 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
4463
4464 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 4465 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 4466 sync, sleep and grub_util_get_disk_size for mingw.
4467
4468 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
4469 to get size in mingw.
4470 (open_device): Use flag O_BINARY if it's defined.
4471 (find_root_device): Add dummy code for mingw.
4472
4473 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
4474 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
4475 (get_scsi_disk_name): Return 0 for mingw.
4476
4477 * util/hostfs.c: #include <grub/util/misc.h>.
4478 (grub_hostfs_open): Use "rb" flag to open file, use
4479 grub_util_get_disk_size to get disk size for mingw.
4480
4481 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
4482 (asprintf): New function if HAVE_ASPRINTF is not set.
4483 (sync): New function for mingw.
4484 (sleep): Likewise.
4485 (grub_util_get_disk_size): Likewise.
4486
ab3f2673 44872008-08-28 Pavel Roskin <proski@gnu.org>
4488
4489 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
4490 kern/time.c.
4491
1c282483 44922008-08-28 Robert Millan <rmh@aybabtu.com>
4493
4494 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
4495
678e849c 44962008-08-28 Robert Millan <rmh@aybabtu.com>
4497
4498 Change find_grub_drive() syntax so it doesn't prevent it from
4499 detecting NULL names as errors.
4500
4501 * util/biosdisk.c (find_grub_drive): Move free slot search code
4502 from here ...
4503 (find_free_slot): ... to here.
4504 (read_device_map): Use find_free_slot() to search for free slots.
4505
965c75ca 45062008-08-27 Marco Gerards <marco@gnu.org>
4507
4508 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
4509 (scsi_mod_SOURCES): New variable.
4510 (scsi_mod_CFLAGS): Likewise
4511 (scsi_mod_LDFLAGS): Likewise.
4512
4513 * disk/scsi.c: New file.
4514
4515 * include/grub/scsi.h: Likewise.
4516
4517 * include/grub/scsicmd.h: Likewise.
4518
4519 * disk/ata.c: Include <grub/scsi.h>.
4520 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
4521 instead.
4522 (grub_ata_iterate): Skip ATAPI devices.
4523 (grub_ata_open): Only handle ATAPI devices.
4524 (struct grub_atapi_read): Removed.
4525 (grub_atapi_readsector): Likewise.
4526 (grub_ata_read): No longer handle ATAPI devices.
4527 (grub_ata_write): Likewise.
4528 (grub_atapi_iterate): New function.
4529 (grub_atapi_read): Likewise.
4530 (grub_atapi_write): Likewise.
4531 (grub_atapi_open): Likewise.
4532 (grub_atapi_close): Likewise.
4533 (grub_atapi_dev): New variable.
4534 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
4535 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
4536
4537 * include/grub/disk.h (enum grub_disk_dev_id): Add
4538 `GRUB_DISK_DEVICE_SCSI_ID'.
4539
c07ae501 45402008-08-26 Robert Millan <rmh@aybabtu.com>
4541
4542 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
4543 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
4544 descriptive.
4545
5ed20adc 45462008-08-23 Bean <bean123ch@gmail.com>
4547
4548 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
4549 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
4550 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
4551 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
4552 dm_nv.mod.
4553 (raid5rec_mod_SOURCES): New macro.
4554 (raid5rec_mod_CFLAGS): Likewise.
4555 (raid5rec_mod_LDFLAGS): Likewise.
4556 (raid6rec_mod_SOURCES): Likewise.
4557 (raid6rec_mod_CFLAGS): Likewise.
4558 (raid6rec_mod_LDFLAGS): Likewise.
4559 (mdraid_mod_SOURCES): Likewise.
4560 (mdraid_mod_CFLAGS): Likewise.
4561 (mdraid_mod_LDFLAGS): Likewise.
4562 (dm_nv_mod_SOURCES): Likewise.
4563 (dm_nv_mod_CFLAGS): Likewise.
4564 (dm_nv_mod_LDFLAGS): Likewise.
4565
4566 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
4567 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
4568 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
4569
4570 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
4571 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
4572
4573 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4574
4575 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4576
4577 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4578
4579 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4580
4581 * disk/raid5_recover.c: New file.
4582
4583 * disk/raid6_recover.c: Likewise.
4584
4585 * disk/mdraid_linux.c: Likewise.
4586
4587 * disk/dmraid_nvidia.c: Likewise.
4588
4589 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
4590 ULONG_MAX.
4591
4592 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
4593 calculate the size of raid device.
4594 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
4595 different layout of raid5.
4596 (grub_raid_scan_device): Remove code specific to mdraid.
4597 (grub_raid_list): New variable.
4598 (free_array): New function.
4599 (grub_raid_register): Likewise.
4600 (grub_raid_unregister): Likewise.
4601 (grub_raid_rescan): Likewise.
4602 (GRUB_MOD_INIT): Don't iterate device here.
4603 (GRUB_MOD_FINI): Use free_array to release resource.
4604
4605 * include/grub/raid.h: Remove macro and structure specific to mdraid.
4606 (grub_raid5_recover_func_t): New function variable type.
4607 (grub_raid6_recover_func_t): Likewise.
4608 (grub_raid5_recover_func): New variable.
4609 (grub_raid6_recover_func): Likewise.
4610 (grub_raid_register): New function.
4611 (grub_raid_unregister): Likewise.
4612 (grub_raid_rescan): Likewise.
4613 (grub_raid_block_xor): Likewise.
4614
4615 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
4616 (CMD_CRC): New macro.
4617 (part): Removed.
4618 (read_file): Handle device as well as file.
4619 (cmd_crc): New function.
4620 (fstest): Handle multiple disks.
4621 (options): Remove part, raw and long, add root and diskcount.
4622 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 4623 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 4624 add handling for the new options, support multiple disks.
4625
4626 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
4627
29c18915 46282008-08-23 Bean <bean123ch@gmail.com>
4629
4630 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
4631
4632 * genfslist.sh: Ignore kernel.mod.
4633
4634 * genpartmaplist.sh: Likewise.
4635
8415f261 46362008-08-23 Robert Millan <rmh@aybabtu.com>
4637
4638 * util/getroot.c (find_root_device): Skip anything that starts with
4639 a dot, not just directories. This avoids things like /dev/.tmp.md0.
4640
d5a7dc5b 46412008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 4642
d5a7dc5b 4643 * util/update-grub.in (GRUB_GFXMODE): Export variable.
4644 * util/grub.d/00_header.in: Allow the administrator to change default
4645 gfxmode via ${GRUB_GFXMODE}.
4646
380cfbb4 46472008-08-21 Felix Zielcke <fzielcke@z-51.de>
4648
4649 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
4650
c9baafe7 46512008-08-21 Robert Millan <rmh@aybabtu.com>
4652
4653 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
4654 loader.
4655 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
4656 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
4657
e290bef2 46582008-08-20 Carles Pina i Estany <carles@pina.cat>
4659
4660 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
4661 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
4662
f9dbfc96 46632008-08-19 Robert Millan <rmh@aybabtu.com>
4664
4665 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
4666 (struct grub_virtual_screen): Remove `cursor_color'.
4667 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
4668 initialization.
4669 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
4670
dd6bd6ab 46712008-08-18 Robert Millan <rmh@aybabtu.com>
4672
4673 Unify (identical) linux_normal.c files.
4674 * loader/i386/efi/linux_normal.c: Move from here ...
4675 * loader/linux_normal.c: ... to here. Update all users.
4676 * loader/i386/pc/linux_normal.c: Delete. Update all users.
4677 * loader/i386/ieee1275/linux_normal.c: Likewise.
4678
7f42f83e 46792008-08-18 Robert Millan <rmh@aybabtu.com>
4680
4681 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
4682 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
4683 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
4684 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
4685 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
4686 New macros.
4687 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
4688 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
4689 (GRUB_LINUX_CL_END_OFFSET): ... to here.
4690 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
4691 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
4692 (GRUB_EFI_CL_END_OFFSET): Rename to ...
4693 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
4694 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
4695 Initialize `params->video_cursor_x' and `params->video_cursor_y'
4696 portably using grub_getxy().
4697 Replace `-EFI' with `-bzImage' in boot message.
4698
38487ddb 46992008-08-17 Robert Millan <rmh@aybabtu.com>
4700
4701 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
4702
deceb3ec 47032008-08-17 Robert Millan <rmh@aybabtu.com>
4704
4705 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
4706
4707 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
4708 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
4709 (grub_machine_mmap_iterate): New function declaration.
4710 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
4711 structure.
4712 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
4713 macros.
4714
4715 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
4716 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
4717 Move e820 parsing from here ...
4718 * kern/i386/pc/mmap.c: New file.
4719 (grub_machine_mmap_iterate): ... to here.
4720
4721 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
4722 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
4723 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
4724 (grub_available_iterate): Redeclare to return `void', and redeclare
4725 its hook to use grub_uint64_t as addr and size parameters, and rename
4726 to ...
4727 (grub_machine_mmap_iterate): ... this. Update all users.
4728
4729 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
4730 to make it more readable. Rename to ...
4731 (grub_machine_mmap_iterate): ... this.
4732
4733 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
4734 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
4735 (grub_multiboot): Allocate an extra region after the payload, and fill
4736 it with a Multiboot memory map. Adjust a.out loader to calculate size
4737 with the extra space.
4738 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
4739 with the extra space.
4740
f8aa0f43 47412008-08-17 Carles Pina i Estany <carles@pina.cat>
4742
9807deb9 4743 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 4744
605f5bb6 47452008-08-17 Felix Zielcke <fzielcke@z-51.de>
4746
4747 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
4748 mdate-sh to the list `find' searches for.
4749 * DISTLIST: Regenerated.
4750
210db6c6 47512008-08-16 Felix Zielcke <fzielcke@z-51.de>
4752
4753 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
4754 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 4755 genmoddep.awk, gensymlist.sh.in.
4756 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 4757 * DISTLIST: Regenerated.
48cdbfd4 4758 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 4759
1082b929 47602008-08-16 Robert Millan <rmh@aybabtu.com>
4761
4762 * disk/raid.c (grub_raid_init): Handle/report errors set by
4763 grub_device_iterate().
4764 * disk/lvm.c (grub_lvm_init): Likewise.
4765
42ce5170 47662008-08-15 Bean <bean123ch@gmail.com>
4767
4768 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
4769 and datehook.mod.
4770 (datetime_mod_SOURCES): New macro.
4771 (datetime_mod_CFLAGS): Likewise.
4772 (datetime_mod_LDFLAGS): Likewise.
4773 (date_mod_SOURCES): Likewise.
4774 (date_mod_CFLAGS): Likewise.
4775 (date_mod_LDFLAGS): Likewise.
4776 (datehook_mod_SOURCES): Likewise.
4777 (datehook_mod_CFLAGS): Likewise.
4778 (datehook_mod_LDFLAGS): Likewise.
4779
4780 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
4781 and datehook.mod.
4782 (datetime_mod_SOURCES): New macro.
4783 (datetime_mod_CFLAGS): Likewise.
4784 (datetime_mod_LDFLAGS): Likewise.
4785 (date_mod_SOURCES): Likewise.
4786 (date_mod_CFLAGS): Likewise.
4787 (date_mod_LDFLAGS): Likewise.
4788 (datehook_mod_SOURCES): Likewise.
4789 (datehook_mod_CFLAGS): Likewise.
4790 (datehook_mod_LDFLAGS): Likewise.
4791
4792 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
4793 and datehook.mod.
4794 (datetime_mod_SOURCES): New macro.
4795 (datetime_mod_CFLAGS): Likewise.
4796 (datetime_mod_LDFLAGS): Likewise.
4797 (date_mod_SOURCES): Likewise.
4798 (date_mod_CFLAGS): Likewise.
4799 (date_mod_LDFLAGS): Likewise.
4800 (datehook_mod_SOURCES): Likewise.
4801 (datehook_mod_CFLAGS): Likewise.
4802 (datehook_mod_LDFLAGS): Likewise.
4803
4804 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
4805 and datehook.mod.
4806 (datetime_mod_SOURCES): New macro.
4807 (datetime_mod_CFLAGS): Likewise.
4808 (datetime_mod_LDFLAGS): Likewise.
4809 (date_mod_SOURCES): Likewise.
4810 (date_mod_CFLAGS): Likewise.
4811 (date_mod_LDFLAGS): Likewise.
4812 (datehook_mod_SOURCES): Likewise.
4813 (datehook_mod_CFLAGS): Likewise.
4814 (datehook_mod_LDFLAGS): Likewise.
4815
4816 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
4817 and datehook.mod.
4818 (datetime_mod_SOURCES): New macro.
4819 (datetime_mod_CFLAGS): Likewise.
4820 (datetime_mod_LDFLAGS): Likewise.
4821 (date_mod_SOURCES): Likewise.
4822 (date_mod_CFLAGS): Likewise.
4823 (date_mod_LDFLAGS): Likewise.
4824 (datehook_mod_SOURCES): Likewise.
4825 (datehook_mod_CFLAGS): Likewise.
4826 (datehook_mod_LDFLAGS): Likewise.
4827
4828 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
4829
4830 * commands/date.c: New file.
4831
4832 * hook/datehook.c: Likewise.
4833
4834 * include/grub/lib/datetime.h: Likewise.
4835
4836 * include/grub/i386/cmos.h: Likewise.
4837
4838 * lib/datetime.c: Likewise.
4839
4840 * lib/i386/datetime.c: Likewise.
4841
4842 * lib/efi/datetime.c: Likewise.
4843
0e9242da 48442008-08-14 Robert Millan <rmh@aybabtu.com>
4845
4846 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
4847 (grub_mkelfimage_SOURCES): New variable.
4848 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
4849
4850 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
4851 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
4852 * conf/powerpc-ieee1275.rmk: Likewise.
4853 * conf/i386-ieee1275.rmk: Likewise.
4854
4855 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
4856 * kern/i386/coreboot/init.c: Likewise.
4857
4858 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
4859 with `<grub/cpu/kernel.h>'.
4860 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
4861 to ...
4862 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
4863 * kern/i386/coreboot/startup.S: Likewise.
4864
4865 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
4866 (GRUB_MOD_GAP): Remove.
4867 * include/grub/powerpc/kernel.h: New file.
4868 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
4869 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
4870 * include/grub/i386/kernel.h: New file.
4871 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
4872 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
4873 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
4874
4875 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
4876 `grub-mkelfimage'.
4877 Use --directory when invoking grub_mkimage.
4878
4879 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
4880 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
4881 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
4882 and GRUB_KERNEL_CPU_PREFIX.
4883
b86408f8 48842008-08-14 Felix Zielcke <fzielcke@z-51.de>
4885
d5e619ca 4886 * include/grub/err.h (grub_err_printf): New function prototype.
4887 * util/misc.c (grub_err_printf): New function.
4888 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
4889 grub_printf.
4890 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 4891
7161f0e0 48922008-08-13 Robert Millan <rmh@aybabtu.com>
4893
4894 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
4895
a1967522 48962008-08-13 Robert Millan <rmh@aybabtu.com>
4897
4898 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
4899 boot entry.
4900
371458b5 49012008-08-12 Robert Millan <rmh@aybabtu.com>
4902
4903 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
4904 of the relocation code from here ...
4905 (grub_multiboot): ... to here.
4906 (forward_relocator, backward_relocator): Move from here ...
4907 * kern/i386/loader.S (grub_multiboot_forward_relocator)
4908 (grub_multiboot_backward_relocator): ... to here.
4909 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
4910 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
4911 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
4912 (grub_multiboot_forward_relocator_end)
4913 (grub_multiboot_backward_relocator)
4914 (grub_multiboot_backward_relocator_end): New variables.
4915
05f9452b 49162008-08-12 Bean <bean123ch@gmail.com>
4917
4918 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
4919
20024ab0 49202008-08-11 Robert Millan <rmh@aybabtu.com>
4921
4922 * kern/i386/linuxbios/startup.S: Move from here ...
4923 * kern/i386/coreboot/startup.S: ... to here.
4924
4925 * kern/i386/linuxbios/init.c: Move from here ...
4926 * kern/i386/coreboot/init.c: ... to here.
4927
4928 * kern/i386/linuxbios/table.c: Move from here ...
4929 * kern/i386/coreboot/mmap.c: ... to here.
4930
4931 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
4932
e352e9cd 49332008-08-11 Robert Millan <rmh@aybabtu.com>
4934
4935 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
4936 errors. Leave it to the upper layer to handle them.
4937
2d05bc6a 49382008-08-09 Christian Franke <franke@computer.org>
4939
4940 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
4941 * conf/common.rmk: Install `grub-pe2elf' only if requested.
4942 Install `grub.d/10_windows' only on Cygwin.
4943 * configure.ac: Add subst of `target_os'.
4944 Check `target_os' also before setting TARGET_OBJ2ELF.
4945 Add `--enable-grub-pe2elf'.
4946
042bd419 49472008-08-08 Robert Millan <rmh@aybabtu.com>
4948
4949 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
4950 (grub_last_time): Change type to grub_uint64_t.
4951 (grub_disk_open): Migrate code from to using grub_get_time_ms().
4952 (grub_disk_close): Likewise.
4953
4954 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
4955 (run_menu): Migrate code from to using grub_get_time_ms().
4956
4957 * util/misc.c (grub_get_time_ms): New function.
4958
7f280db5 49592008-08-08 Marco Gerards <marco@gnu.org>
4960
4961 * disk/ata.c (grub_ata_regget): Change return type to
4962 `grub_uint8_t'.
4963 (grub_ata_regget2): Likewise.
4964 (grub_ata_wait_status): New function.
4965 (grub_ata_wait_busy): Removed function, updated all users to use
4966 `grub_ata_wait_status'.
4967 (grub_ata_wait_drq): Likewise.
4968 (grub_ata_cmd): New function.
4969 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
4970 error handling.
4971 (grub_ata_pio_write): Add error handling.
4972 (grub_atapi_identify): Likewise.
4973 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
4974 handling.
4975 (grub_ata_identify): Use `grub_ata_cmd' and improve error
4976 handling. Actually use the detected registers. Reorder the
4977 detection logic such that it is easier to read.
4978 (grub_ata_pciinit): Do not assign the same ID to each controller.
4979 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
4980 handling.
4981 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
4982
4983 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
4984
1fbc5e66 49852008-08-08 Marco Gerards <marco@gnu.org>
4986
4987 * NEWS: Update.
4988
819ce6c0 49892008-08-07 Bean <bean123ch@gmail.com>
4990
4991 * include/grub/x86_64/pci.h: New file.
4992
5c41d44d 49932008-08-07 Christian Franke <franke@computer.org>
4994
4995 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
4996 (TIMER2_GATE): Likewise.
4997 (grub_pit_wait): Add enable/disable of the timer2 gate
4998 bit of port 0x61. This fixes a possible infinite loop.
4999
5ebc275d 50002008-08-07 Bean <bean123ch@gmail.com>
5001
5002 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
5003 kern/i386/tsc.c and kern/i386/pit.c.
5004
5005 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
5006 x86_64 platform.
5007
5008 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
5009 <grub/i386/tsc.h>.
5010
5011 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
5012
e383b3d0 50132008-08-07 Bean <bean123ch@gmail.com>
5014
5015 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
5016
5017 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
5018
5019 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
5020 multiple inclusion. Add #include <grub/types.h>.
5021
1cbb58ac 50222008-08-06 Christian Franke <franke@computer.org>
5023
5024 * conf/common.rmk: Build and install `10_windows'.
5025 * util/grub.d/10_windows.in: New script.
5026
337f5a1e 50272008-08-06 Pavel Roskin <proski@gnu.org>
5028
5029 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
5030
057bc4ac 50312008-08-06 Robert Millan <rmh@aybabtu.com>
5032
5033 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
5034 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
5035
2b99f123 50362008-08-06 Bean <bean123ch@gmail.com>
5037
5038 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
5039 (grub_pxefs_fs_int): Remove dummy definition.
5040 (grub_pxefs_open): Use data->block_size to store the current block
5041 size setting.
5042 (grub_pxefs_read): Use block size stored in data->block_size. As the
5043 value of grub_pxe_blksize can be changed after the file is opened.
5044
9f0234cb 50452008-08-06 Bean <bean123ch@gmail.com>
5046
5047 * fs/i386/pc/pxe.c (curr_file): new variable.
5048 (grub_pxefs_open): Simply the handling of pxe file system. Don't
5049 require the dummy internal file system anymore.
5050 (grub_pxefs_read): Removed.
5051 (grub_pxefs_close): Likewise.
5052 (grub_pxefs_fs_int): Likewise.
5053 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
5054 connection when we switch file.
5055 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
5056
a55d42e0 50572008-08-06 Robert Millan <rmh@aybabtu.com>
5058
5059 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
5060 `halt.mod'.
5061 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
5062 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
5063
5064 * kern/i386/halt.c: New file.
5065 * kern/i386/reboot.c: Likewise.
5066 * include/grub/i386/reboot.h: Likewise.
5067 * include/grub/i386/halt.h: Likewise.
5068
5069 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
5070 Include `<grub/cpu/halt.h>'.
5071 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
5072 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
5073
5074 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
5075 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
5076 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
5077 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
5078 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
5079 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
5080 from here ...
5081 * include/grub/i386/at_keyboard.h: ... to here.
5082
24371d26 50832008-08-05 Robert Millan <rmh@aybabtu.com>
5084
5085 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
5086 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
5087 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
5088 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
5089 `kern/generic/millisleep.c'.
5090
5091 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
5092 instead of grub_get_rtc().
5093 (grub_tsc_init): Initialize `tsc_boot_time'.
5094
5095 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
5096 (grub_machine_init): Use grub_tsc_init() rather than
5097 installing an RTC-based handler via grub_install_get_time_ms().
5098
5099 * kern/i386/pit.c: New file.
5100 * include/grub/i386/pit.h: Likewise.
5101
9e7007b3 51022008-08-05 Bean <bean123ch@gmail.com>
5103
5104 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
5105
5106 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
5107 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
5108 (pxe_mod_SOURCES): New macro.
5109 (pxe_mod_CFLAGS): Likewise.
5110 (pxe_mod_LDFLAGS): Likewise.
5111 (pxecmd_mod_SOURCES): Likewise.
5112 (pxecmd_mod_CFLAGS): Likewise.
5113 (pxecmd_mod_LDFLAGS): Likewise.
5114
5115 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
5116 (grub_pxe_call): Likewise.
5117
5118 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
5119
5120 * commands/i386/pc/pxecmd.c: New file.
5121
9f0234cb 5122 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 5123
5124 * include/grub/i386/pc/pxe.h: Likewise.
5125
6977d49f 51262008-08-05 Bean <bean123ch@gmail.com>
5127
5128 * util/console.c (grub_console_cur_color): New variable.
5129 (grub_console_standard_color): Likewise.
5130 (grub_console_normal_color): Likewise.
5131 (grub_console_highlight_color): Likewise.
5132 (color_map): Likewise.
5133 (use_color): Likewise.
5134 (NUM_COLORS): New macro.
5135 (grub_ncurses_setcolorstate): Handle color properly.
5136 (grub_ncurses_setcolor): Don't change color here, just remember the
5137 settings, color will be set in grub_ncurses_setcolorstate.
5138 (grub_ncurses_getcolor): New function.
5139 (grub_ncurses_init): Initialize color pairs.
5140 (grub_ncurses_term): New member grub_ncurses_getcolor.
5141
9c2ff3ee 51422008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 5143
9c2ff3ee 5144 High resolution timer support. Implemented for x86 CPUs using TSC.
5145 Extracted generic grub_millisleep() so it's linked in only as needed.
5146 This requires a Pentium compatible CPU; if the RDTSC instruction is
5147 not supported, then it falls back on the generic grub_get_time_ms()
5148 implementation that uses the machine's RTC.
5149
5150 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
5151 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
5152 `kern/generic/millisleep.c'.
5153
5154 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
5155 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
5156
5157 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
5158 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
5159
5160 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
5161
5162 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
5163 `kern/generic/millisleep.c'.
5164
5165 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
5166
5167 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
5168
5169 * kern/generic/rtc_get_time_ms.c: New file.
5170
5171 * kern/generic/millisleep.c: New file.
337f5a1e 5172
9c2ff3ee 5173 * kern/misc.c: Don't include
5174 <kern/time.h> anymore.
5175 (grub_millisleep_generic): Removed.
5176
5177 * commands/sleep.c (grub_interruptible_millisleep): Uses
5178 grub_get_time_ms() instead of grub_get_rtc().
5179
5180 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
5181 function.
5182 (grub_cpu_is_cpuid_supported): New inline function.
5183 (grub_cpu_is_tsc_supported): New inline function.
5184 (grub_tsc_init): New function prototype.
5185 (grub_tsc_get_time_ms): New function prototype.
5186
5187 * kern/i386/tsc.c (grub_get_time_ms): New file.
5188
5189 * include/grub/time.h: Include <grub/types.h.
5190 (grub_millisleep_generic): Removed.
5191 (grub_get_time_ms): New prototype.
5192 (grub_install_get_time_ms): New prototype.
5193 (grub_rtc_get_time_ms): New prototype.
5194
5195 * kern/time.c (grub_get_time_ms): New function.
5196 (grub_install_get_time_ms): New function.
5197
5198 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
5199 <grub/time.h> anymore.
5200 (grub_millisleep): Removed.
5201 (grub_machine_init): Call grub_tsc_init.
5202
5203 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
5204 get_time_ms() implementation.
5205
5206 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
5207 (ieee1275_get_time_ms): New function.
5208 (grub_machine_init): Install get_time_ms() implementation.
5209
5210 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
5211 (grub_machine_init): Call grub_tsc_init().
5212 (grub_millisleep): Removed.
bf06a93f 5213
9c2ff3ee 5214 * kern/ieee1275/init.c (grub_millisleep): Removed.
5215 (grub_machine_init): Install ieee1275_get_time_ms()
5216 implementation.
5217 (ieee1275_get_time_ms): New function.
5218 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
5219 real work.
5220
9ec92aaf 52212008-08-05 Marco Gerards <marco@gnu.org>
5222
5223 * disk/ata.c: Include <grub/pci.h>.
5224 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
5225 (grub_ata_initialize): Rewritten.
5226 (grub_ata_device_initialize): New function.
5227
8d23f507 52282008-08-04 Pavel Roskin <proski@gnu.org>
5229
5230 * kern/main.c: Include grub/mm.h.
5231
5e15ee3d 52322008-08-04 Robert Millan <rmh@aybabtu.com>
5233
5234 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
5235 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
5236 corruption problem).
5237
a9053f8f 52382008-08-04 Robert Millan <rmh@aybabtu.com>
5239
5240 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
5241 warnings introduced in my last commit.
5242
dd19c7d7 52432008-08-03 Robert Millan <rmh@aybabtu.com>
5244
5245 Make PCI available on all i386 architectures.
5246
5247 * include/grub/i386/pc/pci.h: Move from here ...
5248 * include/grub/i386/pci.h: ... to here.
5249
5250 * include/grub/i386/pc/pci.h: Remove.
5251 * include/grub/i386/efi/pci.h: Remove.
5252 * include/grub/x86_64/efi/pci.h: Remove.
5253
5254 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
5255 `<grub/cpu/pci.h>'.
5256
5257 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
5258 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
5259 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
5260
5261 * conf/i386-ieee1275.rmk: Likewise.
5262
e14a6184 52632008-08-03 Robert Millan <rmh@aybabtu.com>
5264
5265 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
5266 (grub_console_setcursor): Make it possible to set cursor off.
5267
52768e37 52682008-08-03 Robert Millan <rmh@aybabtu.com>
5269
5270 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
5271 of modules instead of assuming which platform provides what.
5272 * util/update-grub.in: Likewise.
5273
2d52f57f 52742008-08-03 Robert Millan <rmh@aybabtu.com>
5275
5276 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
5277 instead of `grub_install_dos_part' to determine whether a drive needs
5278 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 5279 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 5280
2a5cd121 52812008-08-02 Robert Millan <rmh@aybabtu.com>
5282
5283 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
5284
93808428 52852008-08-02 Robert Millan <rmh@aybabtu.com>
5286
5287 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
5288 of informational grub_dprintf() calls.
5289
3bd0a12a 52902008-08-02 Robert Millan <rmh@aybabtu.com>
5291
5292 * disk/memdisk.c (memdisk_size): Don't initialize.
5293 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
5294
5295 * include/grub/i386/pc/kernel.h
5296 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
5297 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
5298 (grub_memdisk_image_size, grub_arch_memdisk_addr)
5299 (grub_arch_memdisk_size): Remove.
5300
5301 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
5302 field (was only used to transfer a constant). Add `type' field to
5303 support multiple module types.
5304 (grub_module_iterate): New function.
5305
5306 * kern/device.c (grub_device_open): Do not hide error messages
5307 when grub_disk_open() fails. Use grub_print_error() instead.
5308
5309 * kern/i386/pc/init.c (grub_arch_modules_addr)
5310 (grub_arch_memdisk_size): Remove functions.
5311 (grub_arch_modules_addr): Return the module address in high memory
5312 (now that it isn't copied anymore).
5313
5314 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
5315 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
5316 decompression routine (grub_total_module_size already includes that
5317 now). Don't copy modules back to low memory.
5318
5319 * kern/main.c: Include `<grub/mm.h>'.
5320 (grub_load_modules): Split out (and use) ...
5321 (grub_module_iterate): ... this function, which iterates through
5322 module objects and runs a hook.
5323 Comment out grub_mm_init_region() call, as it would cause non-ELF
5324 modules to be overwritten.
5325
5326 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
5327 the memdisk image in its own region, make it part of the module list.
5328 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
5329 (main): Parse --memdisk|-m option, and pass user-provided path as
5330 parameter to generate_image().
5331 (add_segments): Pass `memdisk_path' down to load_modules().
5332 (load_modules): Embed memdisk image in module section when requested.
5333 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
5334 `header.type' instead of `header.offset'.
5335
5336 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
5337 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
5338 (memdisk_mod_LDFLAGS): New variables.
5339 * conf/i386-coreboot.rmk: Likewise.
5340 * conf/i386-ieee1275.rmk: Likewise.
5341
a927cc73 53422008-08-02 Robert Millan <rmh@aybabtu.com>
5343
5344 * loader/i386/pc/multiboot.c (playground, forward_relocator)
5345 (backward_relocator): New variables. Used to allocate and relocate
5346 the payload, respectively.
5347 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 5348 address, install the appropriate relocator code in each bound of
a927cc73 5349 the payload, and set the entry point such that
5350 grub_multiboot_real_boot() will jump to one of them.
5351
5352 * kern/i386/loader.S (grub_multiboot_payload_size)
5353 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
5354 (grub_multiboot_payload_entry_offset): New variables.
5355 (grub_multiboot_real_boot): Set cpu context to what the relocator
5356 expects, and jump to the relocator instead of the payload.
5357
5358 * include/grub/i386/loader.h (grub_multiboot_payload_size)
5359 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
5360 (grub_multiboot_payload_entry_offset): Export.
5361
b15d8a0c 53622008-08-01 Bean <bean123ch@gmail.com>
5363
5364 * normal/menu_entry.c (editor_getline): Don't return the original
5365 string as result, as it will be released by lexer once it has done
5366 using it.
5367
cdfb3d22 53682008-08-01 Robert Millan <rmh@aybabtu.com>
5369
5370 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
5371 within menuentries, not before them.
5372 util/grub.d/10_hurd.in: Likewise.
5373
9175e93d 53742008-08-01 Bean <bean123ch@gmail.com>
5375
5376 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
5377 (bufio_mod_SOURCES): New macro.
5378 (bufio_mod_CFLAGS): Likewise.
5379 (bufio_mod_LDFLAGS): Likewise.
5380
5381 * include/grub/bufio.h: New file.
5382
5383 * io/bufio.c: Likewise.
5384
5385 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
5386 (grub_video_reader_png): Use grub_buffile_open to open file.
5387
5388 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
5389 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
5390
5391 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
5392 (grub_video_reader_tga): Use grub_buffile_open to open file.
5393
5394 * font/manager.c: Include <grub/bufio.h>.
5395 (add_font): Use grub_buffile_open to open file.
5396
3d8383e7 53972008-07-31 Robert Millan <rmh@aybabtu.com>
5398
5399 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
5400 ELF segments, use a macro for arbitrarily accessing any of them instead
5401 of preparing a pointer that allows access to one at a time.
5402 (grub_multiboot_load_elf64): Likewise.
5403
16e641b6 54042008-07-31 Bean <bean123ch@gmail.com>
5405
5406 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
5407 GRUB_KERNEL_MACHINE_DATA_END.
5408
59198b72 54092008-07-30 Robert Millan <rmh@aybabtu.com>
5410
5411 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
5412 Increase from 0x50 to 0x60.
5413 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
5414 use UUIDs to identify the root drive for them. If that's not
5415 possible, abort.
5416 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
5417 check, for cross-disk installs.
5418
ae88bca3 54192008-07-30 Robert Millan <rmh@aybabtu.com>
5420
5421 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
5422 is non-empty, use it to set the `prefix' environment variable instead
5423 of the usual approach.
5424 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
5425 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
5426 environment variable instead of dummy make_install_device().
5427
5428 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
5429 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 5430 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 5431
5432 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
5433 New variable reference.
5434 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
5435 New macro. Defines offset of `grub_prefix' within startup.S (relative
5436 to `start').
5437 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
5438 section within startup.S (relative to `start').
5439 * include/grub/i386/coreboot/kernel.h: Likewise.
5440
5441 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
5442 Overwrite grub_prefix with its contents, at the beginning of the
5443 first segment.
5444 (main): Understand -p|--prefix.
5445
14f41dd1 54462008-07-30 Robert Millan <rmh@aybabtu.com>
5447
5448 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
5449
4ca049a3 54502008-07-30 Robert Millan <rmh@aybabtu.com>
5451
5452 * term/i386/pc/vga_text.c (grub_console_cls): Use
5453 grub_console_gotoxy() to go back to beginning of the screen.
5454 Found by Patrick Georgi <patrick.georgi@coresystems.de>
5455
2921d337 54562008-07-29 Christian Franke <franke@computer.org>
5457
5458 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5459 Add conversion of emulated mount points on Cygwin.
5460
b609876d 54612008-07-29 Christian Franke <franke@computer.org>
5462
5463 * util/update-grub.in: Add a check for admin
5464 group on Cygwin.
5465 Remove old `grub.cfg.new' before creation.
5466 Add `-f' to `mv' to handle the different filesystem
5467 semantics of Windows.
5468
e93e4679 54692008-07-29 Bean <bean123ch@gmail.com>
5470
5471 * normal/main.c (get_line): Fix buffer overflow bug.
5472
41694fd0 54732008-07-28 Robert Millan <rmh@aybabtu.com>
5474
5475 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
5476 (struct grub_apple_header): New struct. Describes the layout of
5477 the partmap header.
5478 (apple_partition_map_iterate): Check the header magic as well as the
5479 partition magic (which was already being checked).
5480
cfd0b4e6 54812008-07-28 Pavel Roskin <proski@gnu.org>
5482
5483 * genmk.rb: Add a warning to the beginning of the output that
5484 it's a generated file and should not be edited.
5485
93cce016 54862008-07-28 Robert Millan <rmh@aybabtu.com>
5487
5488 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
5489 with the same number are found, just use issue a warning with
5490 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 5491
cd1df915 54922008-07-27 Robert Millan <rmh@aybabtu.com>
5493
5494 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
5495 information.
5496
b70a8427 54972008-07-27 Bean <bean123ch@gmail.com>
5498
5499 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
5500 (grub_fat_find_dir): Ignore case when comparing filename.
5501
8f5e379f 55022008-07-27 Bean <bean123ch@gmail.com>
5503
5504 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
5505 smallino, as it's more descriptive, and i8count can be confused with
5506 the other field count.
5507 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
5508 inode type.
5509
a85cd5a0 55102008-07-27 Bean <bean123ch@gmail.com>
5511
5512 * commands/crc.c: New file.
5513
5514 * lib/crc.c: Likewise.
5515
5516 * include/grub/lib/crc.h: Likewise.
5517
5518 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
5519
5520 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
5521 (hexdump): Move this function to ...
5522
5523 * lib/hexdump.c: ... here.
5524
5525 * include/grub/hexdump.h: Renamed to ...
5526
5527 * include/grub/lib/hexdump.h: ... this.
5528
5529 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
5530
5531 * util/grub-editenv.c: Likewise.
5532
5533 * include/envblk.h: Renamed to ...
5534
5535 * include/lib/envblk.h: ... this.
5536
5537 * util/envblk.c: Renamed to ...
5538
5539 * lib/envblk.c: ... this.
5540
5541 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
5542 lib/hexdump.c.
5543 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
5544 (pkglib_MODULES): Add crc.mod.
5545 (hexdump_mod_SOURCES): Add lib/hexdump.c.
5546 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
5547 (crc_mod_SOURCES): New macro.
5548 (crc_mod_CFLAGS): Likewise.
5549 (crc_mod_LDFLAGS): Likewise.
5550
5551 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
5552
5553 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5554
5555 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5556
5557 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5558
5559 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
5560
c298def0 55612008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 5562
5563 * commands/help.c: Include <grub/term.h>.
5564 (TERM_WIDTH): Removed. Updated all users.
5565
cc349fb3 55662008-07-27 Pavel Roskin <proski@gnu.org>
5567
5568 * util/getroot.c (find_root_device): Rephrase a comment to avoid
5569 spurious warnings about a comment within a comment.
5570
9051607e 55712008-07-25 Robert Millan <rmh@aybabtu.com>
5572
5573 * util/getroot.c (find_root_device): Skip devices that match
5574 /dev/dm-[0-9]. This lets the real device be found for any type of
5575 abstraction (LVM, EVMS, RAID..).
5576 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
5577 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
5578 device is found first, find_root_device() will now skip it.
5579
01453bfc 55802008-07-24 Pavel Roskin <proski@gnu.org>
5581
5582 * include/grub/types.h: Use __builtin_bswap32() and
5583 __builtin_bswap64() with gcc 4.3 and newer.
5584
6af9849f 55852008-07-24 Christian Franke <franke@computer.org>
5586
3a0fa256 5587 * util/i386/pc/grub-install.in: If `--debug' is specified,
5588 pass `--verbose' to grub-setup.
5589 Abort script if make_system_path_relative_to_its_root() fails.
5590
7810e747 55912008-07-24 Bean <bean123ch@gmail.com>
5592
5593 * configure.ac: Fixed a bug caused by the previous cygwin patch,
5594 variable `target_platform' should be `platform'.
5595
42290e17 55962008-07-24 Bean <bean123ch@gmail.com>
5597
51cc5193 5598 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 5599 (grub_png_init_fixed_block): New function.
5600 (grub_png_decode_image_data): Handle fixed huffman code compression.
5601
2a8a80e4 56022008-07-24 Bean <bean123ch@gmail.com>
5603
5604 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
5605 (grub_pe2elf_SOURCES): New macro.
5606 (CLEANFILES): Add grub-pe2elf.
5607
5608 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
5609 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
5610 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
5611 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
5612 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
5613 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
5614 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
5615 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
5616 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
5617 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
5618 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
5619 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
5620 (GRUB_PE32_DT_FUNCTION): Likewise.
5621 (GRUB_PE32_REL_I386_DIR32): Likewise.
5622 (GRUB_PE32_REL_I386_REL32): Likewise.
5623 (grub_pe32_symbol): New structure.
5624 (grub_pe32_reloc): Likewise.
5625
5626 * util/grub-pe2elf.c: New file.
5627
5628 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
5629 start symbol in non pc platform.
5630
5631 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
5632
5633 The following patches are from Christian Franke.
5634
5635 * include/grub/dl.h: Remove .previous, gas supports this only
5636 for ELF format.
5637
5638 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
5639 Remove .type, gas supports this only for ELF format.
5640
5641 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
5642 nullbytes in symbol table. This fixes an infinite loop if table is
5643 zero filled.
5644
5645 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
5646 TARGET_IMG_LDFLAGS and EXEEXT.
5647
5648 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
5649 TARGET_IMG_LDFLAGS_AC.
5650 (grub_CHECK_STACK_ARG_PROBE): New function.
5651
5652 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
5653
5654 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
5655
5656 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
5657 to set TARGET_IMG_LD* accordingly.
5658 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
5659 Add call to grub_CHECK_STACK_ARG_PROBE.
5660 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
5661
5662 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
5663
5664 * genmk.rb: Add EXEEXT to CLEANFILES.
5665
12ccdb75 56662008-07-23 Robert Millan <rmh@aybabtu.com>
5667
5668 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
5669 define the codes for arrows and lines used for the menu).
5670 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
5671 as well.
5672
5673 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
5674 fonts, because the latter are too slow.
5675
18eeaf04 56762008-07-21 Bean <bean123ch@gmail.com>
5677
5678 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
5679 a20. Run keyboard test last, as it will cause macbook to halt.
5680
b095e2ad 56812008-07-18 Pavel Roskin <proski@gnu.org>
5682
5683 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
5684 load foreign architecture modules correctly anyway. Keep
5685 support for loading host architecture modules, whether we
5686 compile them or not.
5687
737feb35 56882008-07-17 Pavel Roskin <proski@gnu.org>
5689
3f4ce737 5690 * configure.ac: Use -m32 or -m64 regardless of whether we had to
5691 change target_cpu. The compiler default can mismatch target_cpu
5692 in any case.
5693
4ad2d049 5694 * disk/efi/efidisk.c: Fix format warnings on x86_64.
5695 * kern/efi/efi.c: Likewise.
5696
f6130a12 5697 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
5698 target compiler is functional.
5699 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
5700 are set up.
5701
58393a2d 5702 * configure.ac: Default to efi platform for x86_64-apple. Allow
5703 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
5704 adjustments from the rest, only do them if target is not
5705 explicitly given. Merge other adjustments with the final sanity
5706 check. Remove an extraneous check for supported CPU. Be
5707 specific which CPU and which platform is not supported.
5708
737feb35 5709 * configure.ac: Default to pc platform for x86_64.
5710
546f966a 57112008-07-17 Robert Millan <rmh@aybabtu.com>
5712
5713 Partial LinuxBIOS -> Coreboot rename.
5714
5715 * conf/i386-linuxbios.rmk: Renamed to ...
5716 * conf/i386-coreboot.rmk: ... this.
5717 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
5718 * configure.ac: Accept "coreboot" as input platform (but maintain
5719 compatibility with "linuxbios").
5720 * include/grub/i386/linuxbios: Renamed to ...
5721 * include/grub/i386/coreboot: ... this.
5722
20011694 57232008-07-17 Bean <bean123ch@gmail.com>
5724
5725 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 5726 (appleldr_mod_SOURCE): New variable.
20011694 5727 (appleldr_mod_CFLAGS): Likewise.
5728 (appleldr_mod_LDFLAGS): Likewise.
5729 (pci_mod_SOURCES): Likewise.
5730 (pci_mod_CFLAGS): Likewise.
5731 (pci_mod_LDFLAGS): Likewise.
5732 (lspci_mod_SOURCES): Likewise.
5733 (lspci_mod_CFLAGS): Likewise.
5734 (lspci_mod_LDFLAGS): Likewise.
5735
5736 * conf/x86_64-efi.rmk: New file.
5737
5738 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
5739 macro.
5740 (grub_efidisk_write): Likewise.
5741
5742 * include/efi/api.h (efi_call_0): New macro.
5743 (efi_call_1): Likewise.
5744 (efi_call_2): Likewise.
5745 (efi_call_3): Likewise.
5746 (efi_call_4): Likewise.
5747 (efi_call_5): Likewise.
5748 (efi_call_6): Likewise.
5749
5750 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
5751 grub_rescue_cmd_chainloader.
5752
5753 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
5754 (grub_pe32_optional_header): Change some fields based on i386 or
5755 x86_64 platform.
5756 (GRUB_PE32_PE32_MAGIC): Likewise.
5757
5758 * include/grub/efi/uga_draw.h: New file.
5759
5760 * include/grub/elf.h (STN_ABS): New constant.
5761 (R_X86_64_NONE): Relocation constant for x86_64.
5762 (R_X86_64_64): Likewise.
5763 (R_X86_64_PC32): Likewise.
5764 (R_X86_64_GOT32): Likewise.
5765 (R_X86_64_PLT32): Likewise.
5766 (R_X86_64_COPY): Likewise.
5767 (R_X86_64_GLOB_DAT): Likewise.
5768 (R_X86_64_JUMP_SLOT): Likewise.
5769 (R_X86_64_RELATIVE): Likewise.
5770 (R_X86_64_GOTPCREL): Likewise.
5771 (R_X86_64_32): Likewise.
5772 (R_X86_64_32S): Likewise.
5773 (R_X86_64_16): Likewise.
5774 (R_X86_64_PC16): Likewise.
5775 (R_X86_64_8): Likewise.
5776 (R_X86_64_PC8): Likewise.
5777
5778 * include/grub/i386/efi/pci.h: New file.
5779
5780 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
5781 Change it value based on platform.
5782 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
5783 (GRUB_E820_RAM): Likewise.
5784 (GRUB_E820_RESERVED): Likewise.
5785 (GRUB_E820_ACPI): Likewise.
5786 (GRUB_E820_NVS): Likewise.
5787 (GRUB_E820_EXEC_CODE): Likewise.
5788 (GRUB_E820_MAX_ENTRY): Likewise.
5789 (grub_e820_mmap): New structure.
5790 (linux_kernel_header): Change the efi field according to different
5791 kernel version, also field from linux_kernel_header.
5792
5793 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
5794
5795 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
5796 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
5797 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
5798 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
5799 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
5800 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
5801 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
5802 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
5803 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
5804 (GRUB_PCI_ADDR_IO_MASK): Likewise.
5805
5806 * include/grub/x86_64/efi/kernel.h: New file.
5807
5808 * include/grub/x86_64/efi/loader.h: Likewise.
5809
5810 * include/grub/x86_64/efi/machine.h: Likewise.
5811
5812 * include/grub/x86_64/efi/pci.h: Likewise.
5813
5814 * include/grub/x86_64/efi/time.h: Likewise.
5815
5816 * include/grub/x86_64/linux.h: Likewise.
5817
5818 * include/grub/x86_64/setjmp.h: Likewise.
5819
5820 * include/grub/x86_64/time.h: Likewise.
5821
5822 * include/grub/x86_64/types.h: Likewise.
5823
5824 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
5825 GRUB_TARGET_SIZEOF_VOID_P.
5826
5827 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
5828 (grub_efi_locate_handle): Likewise.
5829 (grub_efi_open_protocol): Likewise.
5830 (grub_efi_set_text_mode): Likewise.
5831 (grub_efi_stall): Likewise.
5832 (grub_exit): Likewise.
5833 (grub_reboot): Likewise.
5834 (grub_halt): Likewise.
5835 (grub_efi_exit_boot_services): Likewise.
5836 (grub_get_rtc): Likewise.
5837
5838 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
5839 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
5840 (grub_efi_allocate_pages): Wrap efi calls.
5841 (grub_efi_free_pages): Wrap efi calls.
5842 (grub_efi_get_memory_map): Wrap efi calls.
5843
5844 * kern/x86_64/dl.c: New file.
5845
5846 * kern/x86_64/efi/callwrap.S: Likewise.
5847
5848 * kern/x86_64/efi/startup.S: Likewise.
5849
5850 * loader/efi/appleloader.c: Likewise.
5851
5852 * loader/efi/chainloader.c (cmdline): New variable.
5853 (grub_chainloader_unload): Wrap efi calls.
5854 (grub_chainloader_boot): Likewise.
5855 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
5856 command line.
5857
5858 * loader/efi/chainloader_normal.c (chainloader_command):
5859 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
5860 command line.
5861
5862 * loader/i386/efi/linux.c (allocate_pages): Change allocation
5863 method.
5864 (grub_e820_add_region): New function.
5865 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
5866 booting.
5867 (grub_find_video_card): New function.
5868 (grub_linux_setup_video): New function.
5869 (grub_rescue_cmd_linux): Probe for video information.
5870
5871 * normal/x86_64/setjmp.S: New file.
5872
5873 * term/efi/console.c (map_char): New function.
5874 (grub_console_putchar): Map unicode char.
5875 (grub_console_checkkey): Wrap efi calls.
5876 (grub_console_getkey): Likewise.
5877 (grub_console_getwh): Likewise.
5878 (grub_console_gotoxy): Likewise.
5879 (grub_console_cls): Likewise.
5880 (grub_console_setcolorstate): Likewise.
5881 (grub_console_setcursor): Likewise.
5882
5883 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
5884
59652a20 58852008-07-16 Pavel Roskin <proski@gnu.org>
5886
ef294055 5887 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
5888 format strings.
5889
59652a20 5890 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
5891 pointer, not an integer. This fixes a warning and prevents
5892 precision loss on 64-bit systems.
5893 (relocate_addresses): Remove unneeded cast.
5894
afc3b5d7 58952008-07-15 Pavel Roskin <proski@gnu.org>
5896
506b2b3e 5897 * kern/i386/ieee1275/init.c: Include grub/cache.h.
5898
62ead89c 5899 * term/ieee1275/ofconsole.c: Disable code unused on i386.
5900
c4cd51d7 5901 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
5902 Fix comparison between signed and unsigned.
5903
0d3d8f28 5904 * include/grub/i386/ieee1275/console.h: Declare
5905 grub_console_init() and grub_console_fini().
5906
8804b286 5907 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
5908 It's empty and unused.
5909
ee01cf35 5910 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
5911 beginning to avoid warnings with some compilers.
5912
afc3b5d7 5913 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
5914 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
5915
e4e8eaa5 59162008-07-14 Pavel Roskin <proski@gnu.org>
5917
407aceb4 5918 * kern/env.c (grub_register_variable_hook): Don't copy empty
5919 string, it leaks memory. Pass "" to grub_env_set(), it should
5920 handle constant strings.
5921
e4e8eaa5 5922 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
5923 * commands/cmp.c (grub_cmd_cmp): Likewise.
5924 * kern/dl.c (grub_dl_flush_cache): Likewise.
5925 (grub_dl_load_core): Likewise.
5926 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
5927 (grub_elf64_load_phdrs): Likewise.
5928
d4e2dad3 59292008-07-13 Pavel Roskin <proski@gnu.org>
5930
5931 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
5932 between signed and unsigned.
5933 (LzmaEnc_Finish): Fix warning about an unused parameter.
5934
aa24b516 59352008-07-13 Bean <bean123ch@gmail.com>
5936
5937 * Makefile.in (enable_lzo): New rule.
5938
5939 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
5940
5941 * configure.ac (ENABLE_LZO): New option --enable-lzo.
5942
5943 * boot/i386/pc/lnxboot.S: #include <config.h>.
5944
5945 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 5946 its value according to the compression algorithm used, lzo or lzma.
aa24b516 5947
5948 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
5949 compression algorithm according to configure macro.
5950
5951 * kern/i386/pc/startup.S (codestart): Likewise.
5952
5953 * kern/i386/pc/lzma_decode.S: New file.
5954
5955 * include/grub/lib/LzFind.h: Likewise.
5956
5957 * include/grub/lib/LzHash.h: Likewise.
5958
5959 * include/grub/lib/LzmaDec.h: Likewise.
5960
5961 * include/grub/lib/LzmaEnc.h: Likewise.
5962
5963 * include/grub/lib/LzmaTypes.h: Likewise.
5964
5965 * lib/LzFind.c: Likewise.
5966
5967 * lib/LzmaDec.c: Likewise.
5968
5969 * lib/LzmaEnc.c: Likewise.
5970
4ae821ac 59712008-07-13 Bean <bean123ch@gmail.com>
5972
5973 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
5974 (grub_ext4_extent_header): New structure.
5975 (grub_ext4_extent): Likewise.
5976 (grub_ext4_extent_idx): Likewise.
5977 (grub_ext4_find_leaf): New function.
5978 (grub_ext2_read_block): Handle extents.
5979
9a745147 59802008-07-12 Robert Millan <rmh@aybabtu.com>
5981
5982 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
5983
d49a4cf6 59842008-07-11 Robert Millan <rmh@aybabtu.com>
5985
5986 * util/grub.d/40_custom.in: New file. Example on how to add custom
5987 entries to /etc/grub.d.
5988 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
5989 40_custom (implicitly, by merging all the grub.d rules).
5990
947414b4 59912008-07-11 Pavel Roskin <proski@gnu.org>
5992
0059cf6f 5993 * commands/read.c (grub_getline): Fix invalid memory access.
5994 Don't add newline to the variable value.
5995
947414b4 5996 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
5997 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
5998 (serial_hw_get_port): Check validity of the port number.
5999 (grub_cmd_serial): Check return value of serial_hw_get_port().
6000
62a02d00 60012008-07-07 Pavel Roskin <proski@gnu.org>
6002
6003 * boot/i386/pc/diskboot.S (notification_string): Replace
6004 "Loading kernel" with just "loading". This is shorter, less
6005 confusing and saves a few bytes for possible future changes.
6006
3e5581b0 60072008-07-05 Pavel Roskin <proski@gnu.org>
6008
ea387a48 6009 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
6010 size for ATAPI devices, they are undefined. Output sector
6011 number in decimal form.
6012
3e5581b0 6013 * disk/ata.c: Use named constants for status bits.
6014
fdecb8fd 60152008-07-04 Pavel Roskin <proski@gnu.org>
6016
bcd35b90 6017 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
6018 grub_addr_t before casting it to the void pointer to fix a
6019 warning. Non-addressable regions are discarded earlier.
6020 (grub_arch_modules_addr): Cast _end to grub_addr_t.
6021 * kern/i386/linuxbios/table.c: Include grub/misc.h.
6022 (check_signature): Don't shadow table_header.
6023 (grub_linuxbios_table_iterate): Cast numeric constants to
6024 grub_linuxbios_table_header_t.
6025 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
6026 grub_stop().
6027
af58ab3d 6028 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
6029 prevent warnings.
6030
1759aa57 6031 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
6032 pointer, which can cause warnings. Support 64-bit addresses.
6033
fdecb8fd 6034 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
6035 of sizeof(long). This fixes PowerPC image generation on x86_64.
6036
8516d2a8 60372008-07-04 Robert Millan <rmh@aybabtu.com>
6038
6039 This fixes a performance issue when pc & gpt partmap iterators
6040 didn't abort iteration even after our hook found what it was
fe987087 6041 looking for (often causing expensive probes of non-existent drives).
8516d2a8 6042
6043 Some callers relied on previous buggy behaviour, since they would
34c44600 6044 raise an error when their own hooks caused early abortion of its
8516d2a8 6045 iteration.
6046
6047 * kern/device.c (grub_device_open): Improve error message.
6048 * disk/lvm.c (grub_lvm_open): Likewise.
6049 * disk/raid.c (grub_raid_open): Likewise.
6050
6051 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
6052 when hook requests it, independently of grub_errno.
6053 (pc_partition_map_probe): Do not fail when find_func() caused
6054 early abortion of pc_partition_map_iterate().
6055
6056 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
6057 when hook requests it, independently of grub_errno.
6058 (gpt_partition_map_probe): Do not fail when find_func() caused
6059 early abortion of gpt_partition_map_iterate().
6060
6061 * kern/partition.c (grub_partition_iterate): Abort parent iteration
6062 when hook requests it, independently of grub_errno. Do not fail when
6063 part_map_iterate_hook() caused early abortion of p->iterate().
6064
6065 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
6066 when grub_partition_iterate() returned with non-zero.
6067
277d0de9 60682008-07-03 Pavel Roskin <proski@gnu.org>
6069
6070 * disk/ata.c (grub_ata_pio_write): Check status before writing,
6071 like we do in grub_ata_pio_read().
6072 (grub_ata_readwrite): Always write individual sectors. Fix the
6073 sector count for the remainder.
6074 (grub_ata_write): Enable writing to ATA devices. Correctly
6075 report error for ATAPI devices.
6076
d4c9b428 60772008-07-02 Pavel Roskin <proski@gnu.org>
6078
e43fc690 6079 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
6080 warning.
6081
f707af42 6082 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
6083 for every read sector, we already increment it for the whole
6084 batch. This fixes reading more than 256 sectors at once.
6085
11e16b15 6086 * util/grub-editenv.c (cmd_info): Cast argument to long
6087 explicitly. ptrdiff_t reduces to int on i386.
6088
cbabfdd4 6089 * util/grub-editenv.c (main): Be specific which parameter is
6090 missing.
6091
b8fbce0a 6092 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
6093 (memdisk): Make memdisk_orig_addr a pointer.
6094
c9c8e606 6095 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
6096 for file offsets, use grub_off_t instead. Fix printf format
6097 warnings.
6098
ca62e598 6099 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
6100 there. Real unexpected warnings should not drown in the noise
6101 about known problems.
6102
ce8d1766 6103 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
6104 grub_disk_addr_t for memory addresses.
6105
00c7a56a 6106 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
6107 explicitly to fix a warning.
6108
08d3ef09 6109 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
6110
cb71ba20 6111 * Makefile.in (MODULE_LDFLAGS): New variable.
6112 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
6113 the linker accepts --build-id=none.
6114 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
6115 MODULE_LDFLAGS.
6116 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
6117
d4c9b428 6118 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
6119 those in Linux XFS code. Provide a way to access 64-bit parent
6120 inode.
6121 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
6122 the end of struct grub_xfs_dir_header.
6123
d4156eee 61242008-07-02 Bean <bean123ch@gmail.com>
6125
6126 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
6127 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
6128 and GRUB_IEEE1275_FLAG_NO_ANSI.
6129
6130 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
6131 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
6132 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
6133
6134 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
6135 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
6136
6137 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
6138 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
6139
6140 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
6141 esc sequence on non ANSI terminal.
6142 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
6143
6144 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
6145 beginning of file.
6146
2270f77b 61472008-07-02 Bean <bean123ch@gmail.com>
6148
6149 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
6150 (grub_editenv_SOURCES): New variable.
6151 (pkglib_MODULES): Add loadenv.mod.
6152 (loadenv_mod_SOURCES): New variable.
6153 (loadenv_mod_CFLAGS): Likewise.
6154 (loadenv_mod_LDFLAGS): Likewise.
6155
6156 * include/grub/envblk.h: New file.
6157
6158 * util/envblk.c: New file.
6159
6160 * util/grub-editenv.c: New file.
6161
6162 * commands/loadenv.c: New file.
6163
0e9e51ec 61642008-07-01 Pavel Roskin <proski@gnu.org>
6165
d89b7634 6166 * include/multiboot2.h (struct multiboot_tag_module): Use char,
6167 not unsigned char. This fixes warnings and is consistent with
6168 other tags.
6169
bf1835b1 6170 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
6171
8222a04b 6172 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
6173
6a42d99d 6174 * term/tparm.c (analyze): Always set *popcount.
6175
10b159d1 6176 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
6177 cast to fix a warning.
6178
b8789f6c 6179 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
6180 cast to suppress a warning.
6181
29d7e38a 6182 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
6183 grub_fshelp_read_file() expects.
6184
f341f669 6185 * fs/fat.c: Fix UUID calculation on big-endian systems. We
6186 write uuid as a 32-bit value in CPU byte order, so declare and
6187 use it as such.
6188
0e9e51ec 6189 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
6190 long if the format specifier expects it.
6191 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
6192 * partmap/pc.c (pc_partition_map_iterate): Likewise.
6193 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
6194 long to fix a warning.
6195 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
6196 grub_dprintf() arguments to fix warnings.
6197
3aefa857 61982008-06-30 Pavel Roskin <proski@gnu.org>
6199
56c7668b 6200 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
6201 install_bsd_part immediately before core.img is embedded or
6202 modified on disk. This fixes core.img verification if core.img
6203 cannot be embedded.
6204
3aefa857 6205 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
6206 core_path to calculate the blocklist.
6207 Patch from Javier Martín <lordhabbit@gmail.com>
6208
5444088d 62092008-06-29 Robert Millan <rmh@aybabtu.com>
6210
6211 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
6212 block to disk block.
6213 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
6214 Patch from Niels Böhm <bitbucket@arcor.de>
6215
674835c8 62162008-06-29 Robert Millan <rmh@aybabtu.com>
6217
6218 * util/update-grub_lib.in (font_path): Search for fonts in
6219 /boot/grub first, which is more likely to be readable (we aren't
6220 deciding where fonts live, just looking for them).
6221
f527dbc8 62222008-06-26 Pavel Roskin <proski@gnu.org>
6223
6c2d8df6 6224 * util/biosdisk.c (read_device_map): Don't leave dead map
6225 entries for devices failing stat() check.
6226
f527dbc8 6227 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
6228 core_path_dev for the core.img path on the target device.
6229
aebe3d13 62302008-06-26 Robert Millan <rmh@aybabtu.com>
6231
6232 * disk/fs_uuid.c: New file.
6233 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
6234 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
6235 (fs_uuid_mod_LDFLAGS): New variables.
6236 * include/grub/disk.h (grub_disk_dev_id): Add
6237 `GRUB_DISK_DEVICE_UUID_ID'.
6238 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
6239 implement iterate().
6240
37aaf354 62412008-06-26 Robert Millan <rmh@aybabtu.com>
6242
6243 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
6244 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
6245 Linux image includes no initrd.
6246
25ff262a 62472008-06-21 Javier Martín <lordhabbit@gmail.com>
6248
6249 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
6250 call to resolve the core image location that effectively appended the
6251 name twice.
6252
76a2bd44 62532008-06-21 Robert Millan <rmh@aybabtu.com>
6254
6255 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
6256 call from here ...
6257
6258 * util/grub.d/10_hurd.in: ... to here ...
6259 * util/grub.d/10_linux.in: ... and here.
6260
650e1c79 62612008-06-19 Robert Millan <rmh@aybabtu.com>
6262
fe987087 6263 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 6264 after it has been set by grub_machine_set_prefix().
6265
6ce63911 62662008-06-19 Robert Millan <rmh@aybabtu.com>
6267
6268 * commands/search.c (search_label, search_fs_uuid, search_file): Print
6269 search result when not saving to variable, not the other way around.
6270 When saving to variable, abort iteration as soon as a match is found.
6271
73940cec 62722008-06-19 Robert Millan <rmh@aybabtu.com>
6273
6274 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
6275 check for partition that provides /boot/grub. Its logic is flawed,
6276 as it prevents prepare_grub_to_access_device() from being called
6277 multiple times.
6278
3c62a39d 62792008-06-19 Robert Millan <rmh@aybabtu.com>
6280
6281 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
6282 "insmod" command directly when abstraction modules are needed,
fe987087 6283 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 6284 since it had already been processed).
6285
47395a42 62862008-06-19 Pavel Roskin <proski@gnu.org>
6287
6288 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
6289 changed. This is needed in case GRUB_LIBDIR changes.
6290 * conf/i386-ieee1275.rmk: Likewise.
6291 * conf/i386-linuxbios.rmk: Likewise.
6292 * conf/i386-pc.rmk: Likewise.
6293 * conf/powerpc-ieee1275.rmk: Likewise.
6294
a145ac2d 62952008-06-18 Pavel Roskin <proski@gnu.org>
6296
6297 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
6298 kernel_elf_symlist.c to symlist.c for consistency with other
6299 architectures. Update all users.
6300 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
6301
7847c51e 63022008-06-18 Robert Millan <rmh@aybabtu.com>
6303
6304 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
6305 it in prefix.
6306
6307 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
6308 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
6309 a RAID device, run setup() for all members independently on whether
6310 LVM abstraction is being used.
6311 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
6312 If grub-mkimage has set `*install_dos_part == -2', don't override this
6313 value.
6314 Perform *install_dos_part adjustments independently on whether
6315 we're embedding or not.
6316 Clarify error message when image is too big for embedding.
6317 Remove duplicate *install_dos_part stanza.
6318
b23e5644 63192008-06-17 Robert Millan <rmh@aybabtu.com>
6320
6321 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
6322 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
6323 variables.
6324 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
6325 values in grub_ofconsole_normal_color and
6326 grub_ofconsole_highlight_color (they're not directly related to
6327 background and foreground).
6328 (grub_ofconsole_setcolorstate): Extract background and foreground
6329 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
6330
0aac2f79 63312008-06-17 Robert Millan <rmh@aybabtu.com>
6332
6333 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
6334 /boot/grub for the check in last commit, not /boot (they could be
6335 different partitions).
6336
3cca7ef3 63372008-06-16 Robert Millan <rmh@aybabtu.com>
6338
6339 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
6340 asked to setup access for the same partition that provides /boot,
6341 don't bother using UUIDs since our root already has the value we
6342 want.
6343
347396d8 63442008-06-16 Robert Millan <rmh@aybabtu.com>
6345
6346 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
6347 I2O devices.
6348 Patch from Sven Mueller <sven@debian.org>.
6349
991477f8 63502008-06-16 Robert Millan <rmh@aybabtu.com>
6351
6352 * util/update-grub.in: Check for $EUID instead of $UID.
6353 Reported by Vincent Zweije.
6354
d31a32a1 63552008-06-16 Bean <bean123ch@gmail.com>
6356
fe987087 6357 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 6358 (grub_ext2_read_block): Likewise.
6359 (grub_ext2_read_inode): Likewise.
6360 (grub_ext2_mount): Likewise.
6361 (grub_ext2_close): Likewise.
6362 (grub_ext3_get_journal): Removed.
6363
fe987087 6364 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 6365 (grub_reiserfs_read_symlink): Likewise.
6366 (grub_reiserfs_mount): Likewise.
6367 (grub_reiserfs_open): Likewise.
6368 (grub_reiserfs_read): Likewise.
6369 (grub_reiserfs_close): Likewise.
6370 (grub_reiserfs_get_journal): Removed.
6371
6372 * fs/fshelp.c (grub_fshelp_read): Removed.
6373 (grub_fshelp_map_block): Likewise.
6374
6375 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
6376 (grub_fshelp_journal): Likewise.
6377 (grub_fshelp_read): Likewise.
6378 (grub_fshelp_map_block): Likewise.
6379
3540a760 63802008-06-16 Pavel Roskin <proski@gnu.org>
6381
6382 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
6383 floating point anymore.
6384 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
6385
95614c84 63862008-06-15 Pavel Roskin <proski@gnu.org>
6387
6388 * commands/ls.c (grub_ls_list_files): Use integer calculations
6389 for human readable format, avoid floating point use.
6390 * kern/misc.c (grub_ftoa): Remove.
6391 (grub_vsprintf): Remove floating point support.
6392
50465dd6 63932008-06-15 Robert Millan <rmh@aybabtu.com>
6394
fe6b695a 6395 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 6396 devices.
6397 Reported by Max Vozeler.
6398
a9207284 63992008-06-15 Robert Millan <rmh@aybabtu.com>
6400
6401 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
6402 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
6403 skipped later.
6404 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
6405 the beginning of the prefix.
6406
6407 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
6408 It is assumed that if we have a memdisk, grub-mkimage has set
6409 grub_prefix to include the "(memdisk)" drive in it.
6410
a7cbd45a 64112008-06-15 Robert Millan <rmh@aybabtu.com>
6412
6413 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
6414 Initialize keyboard controller after registering the terminal, so that
6415 grub_printf() can be called from grub_keyboard_controller_init().
6416
21cf716a 64172008-06-15 Robert Millan <rmh@aybabtu.com>
6418
6419 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
6420 extent-btree which is written as big endian on disk.
6421 Reported by Alain Greppin <al@chilibi.org>.
6422
23a64d8e 64232008-06-14 Robert Millan <rmh@aybabtu.com>
6424
6425 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
6426 * util/i386/pc/grub-install.in (modules): Likewise.
6427
d687651c 64282008-06-13 Pavel Roskin <proski@gnu.org>
6429
6430 * commands/ls.c (grub_ls_list_files): Fix format warnings.
6431
dfe9ddd4 64322008-06-13 Bean <bean123ch@gmail.com>
6433
6434 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
6435
6436 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
6437
6438 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
6439 to indicate sparse block.
6440
16ae7781 64412008-06-12 Pavel Roskin <proski@gnu.org>
6442
e6d1a308 6443 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
6444 number, grub_fshelp_read() does it for us.
6445
16ae7781 6446 * fs/fshelp.c (grub_fshelp_read): New function. Implement
6447 linear disk read with journal translation.
6448 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
6449 * include/grub/fshelp.h: Declare grub_fshelp_read().
6450
40fd3a2b 64512008-06-09 Pavel Roskin <proski@gnu.org>
6452
6453 * fs/minix.c (grub_minix_mount): Handle error reading
6454 superblock.
6455
f5679726 64562008-06-08 Robert Millan <rmh@aybabtu.com>
6457
6458 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
6459 don't append the RAID prefix afterwards.
6460 Reported by Clint Adams.
6461
ce525529 64622008-06-08 Robert Millan <rmh@aybabtu.com>
6463
6464 Based on description from Pavel:
6465 * kern/disk.c (grub_disk_check_range): Rename to ...
6466 (grub_disk_adjust_range): ... this. Add a comment explaining the
6467 tasks performed by this function.
6468
ad4936a0 64692008-06-08 Robert Millan <rmh@aybabtu.com>
6470
6471 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
6472 `num_serial' (for consistency with other variables).
6473 (struct grub_ntfs_data): Add `uuid' member.
6474 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
6475 (grub_ntfs_uuid): New function.
6476 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
6477
dc20b0f9 64782008-06-07 Pavel Roskin <proski@gnu.org>
6479
6480 * util/biosdisk.c (open_device): Revert last change to the
6481 function, it broke installation. The sector needs to be
6482 different dependent on which device is opened.
6483
c5e3cfba 64842008-06-06 Robert Millan <rmh@aybabtu.com>
6485
6486 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
6487 rest of GRUB, and breakage doesn't happen if its value were modified.
6488
6489 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
6490 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
6491 a constant (same value).
6492 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
6493 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
6494
26a1f8c4 64952008-06-06 Robert Millan <rmh@aybabtu.com>
6496
6497 * util/biosdisk.c (open_device): Do not modify sector offset when
6498 accessing a partition. kern/disk.c already handles this for us.
6499
25d6b327 65002008-06-06 Robert Millan <rmh@aybabtu.com>
6501
6502 * util/grub-emu.c (grub_machine_init): Move code in this function from
6503 here ...
6504 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
6505 segfault in case grub_printf() is called).
6506
6507 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
6508 grub_probe. Update all users not to explicitly add it again.
6509 (grub_device): New variable; contains corresponding device for grubdir.
6510 (fs_module, partmap_module, devabstraction_module): Pass
6511 `--device ${grub_device}' to grub_probe to avoid traversing /dev
6512 every time.
6513
9ece62fb 65142008-06-05 Robert Millan <rmh@aybabtu.com>
6515
6516 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
6517 is found, print it (same layout as with labels).
6518
1ad36d37 65192008-06-04 Robert Millan <rmh@aybabtu.com>
6520
6521 * util/biosdisk.c (get_drive): Rename to ...
6522 (find_grub_drive): ... this. Update all users.
6523
6524 (get_os_disk): Rename to ...
6525 (convert_system_partition_to_system_disk): ... this. Update all users.
6526
6527 (find_drive): Rename to ...
6528 (find_system_device): ... this. Update all users.
6529
e6a30859 65302008-06-04 Robert Millan <rmh@aybabtu.com>
6531
6532 * util/biosdisk.c (get_os_disk): Handle IDA devices.
6533 * util/grub-mkdevicemap.c (get_mmc_disk_name)
6534 (make_device_map): Likewise.
6535
00c108a4 65362008-06-01 Robert Millan <rmh@aybabtu.com>
6537
6538 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
6539 before dereferencing it.
6540
6541 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
6542 union with fat12/fat16-specific ones. Add some new fields, including
6543 `num_serial' for both versions.
6544 (struct grub_fat_data): Add `uuid' member.
6545 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
6546 names. Initialize `data->uuid' using `num_serial'.
6547 (grub_fat_uuid): New function.
6548 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
6549
6550 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
6551 (grub_reiserfs_uuid): New function.
6552 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
6553 member.
6554
6555 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
6556 (grub_xfs_uuid): New function.
6557 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
6558
1385c5bb 65592008-06-01 Robert Millan <rmh@aybabtu.com>
6560
6561 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
6562 code that is backward compatible with pre-uuid search command.
6563
c682dfd7 65642008-05-31 Robert Millan <rmh@aybabtu.com>
6565
6566 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
6567 floppies after everything else, to ensure floppy drive isn't accessed
6568 unnecessarily (patch from Bean).
6569
b7db5d47 65702008-05-31 Robert Millan <rmh@aybabtu.com>
6571
6572 * commands/search.c (search_label, search_fs_uuid, search_file): Do
6573 not print device names when we were asked to set a variable.
6574
6e037aa9 65752008-05-31 Robert Millan <rmh@aybabtu.com>
6576
6577 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
6578 using "cursor-on" and "cursor-off" commands (understood at least by
6579 the Open Firmware flavour on OLPC).
6580
41305bc8 65812008-05-31 Michael Gorven <michael@gorven.za.net>
6582
6583 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
6584 on and off sequences.
6585
69ba137e 65862008-05-31 Robert Millan <rmh@aybabtu.com>
6587
6588 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
6589 * util/update-grub.in: Likewise.
6590
520ae21b 65912008-05-30 Pavel Roskin <proski@gnu.org>
6592
6593 * util/biosdisk.c (linux_find_partition): Simplify logic and
6594 make the code more universal. Keep special processing for
6595 devfs, but use a simple rule for all other devices. If the
6596 device ends with a number, append 'p' and the partition number.
6597 Otherwise, append only the partition number.
6598
5786569b 65992008-05-30 Robert Millan <rmh@aybabtu.com>
6600
6601 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
6602 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
6603 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
6604 the `root' parameter to Linux.
6605
51500452 66062008-05-30 Robert Millan <rmh@aybabtu.com>
6607
6608 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
6609 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
6610 --fs_uuid with --fs-uuid.
6611 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
6612 all filesystems support them).
6613
811d3878 66142008-05-30 Robert Millan <rmh@aybabtu.com>
6615
6616 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 6617 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 6618
cab63c95 66192008-05-30 Robert Millan <rmh@aybabtu.com>
6620
6621 * util/grub.d/00_header.in: Remove obsolete comment referencing
6622 convert_system_path_to_grub_path().
6623 * util/update-grub.in: Likewise.
6624 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
6625 (convert_system_path_to_grub_path): Add a warning message explaining
6626 that this function is deprecated. Rely on is_path_readable_by_grub()
6627 for the readability checks.
6628 (font_path): Use is_path_readable_by_grub() for the readability
6629 check rather than convert_system_path_to_grub_path().
6630
972e2f7a 66312008-05-30 Robert Millan <rmh@aybabtu.com>
6632
6633 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
6634 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
6635 converting it first.
6636 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
6637 grub.cfg for access to font file, and afterwards call it again to set
6638 the root device.
6639
62191274 66402008-05-30 Robert Millan <rmh@aybabtu.com>
6641
6642 * commands/search.c (options): Add --fs_uuid option.
6643 (search_fs_uuid): New function.
6644 (grub_cmd_search): Fix --set argument passing.
6645 Use search_fs_uuid() when requested via --fs_uuid.
6646 (grub_search_init): Update help message.
6647 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
6648 and redeclare it as an array of 16-bit words.
6649 (grub_ext2_uuid): New function.
6650 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
6651 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
6652 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
6653 (GRUB_DEVICE_BOOT_UUID): New variables.
6654 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
6655 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
6656 whenever possible.
6657 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
6658 just assume `root' variable has the right value.
6659 * util/grub.d/10_linux.in: Likewise.
6660 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
6661 via PRINT_FS_UUID.
6662 (main): Recognise `-t fs_uuid' argument.
6663
01b73ec8 66642008-05-30 Robert Millan <rmh@aybabtu.com>
6665
6666 * util/biosdisk.c (map): Redefine structure to hold information
6667 about GRUB drive name.
fe6b695a 6668 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 6669 drive names.
6670 (call_hook): Remove.
6671 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
6672 member. Assume drive has partitions.
6673 (grub_util_biosdisk_open): Access device names via `.device' struct
6674 member.
6675 (open_device): Likewise.
6676 (find_drive): Likewise.
6677 (read_device_map): Adjust map[] usage to match the new struct
6678 definition. Don't check for duplicates (still possible, but not cheap
6679 anymore).
6680 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
6681 (make_device_name): Remove assumption of BIOS-like drive names.
6682
22f16596 66832008-05-30 Pavel Roskin <proski@gnu.org>
6684
6685 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
6686 compiling execute.c doesn't need grub_script.tab.h anymore.
6687 (normal/command.c_DEPENDENCIES): Likewise.
6688 (normal/function.c_DEPENDENCIES): Likewise.
6689 * conf/i386-ieee1275.rmk: Likewise.
6690 * conf/i386-linuxbios.rmk: Likewise.
6691 * conf/i386-pc.rmk: Likewise.
6692 * conf/powerpc-ieee1275.rmk: Likewise.
6693 * conf/sparc64-ieee1275.rmk: Likewise.
6694
528ad8f2 66952008-05-29 Pavel Roskin <proski@gnu.org>
6696
d1dff95d 6697 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
6698 when scanning metadata for volume group name.
6699
528ad8f2 6700 * include/grub/script.h: Don't include grub_script.tab.h. It's
6701 a generated file, which may only be included from the files with
6702 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
6703 use union YYSTYPE, as the later allows forward declaration.
6704 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
6705
47248e08 67062008-05-29 Robert Millan <rmh@aybabtu.com>
6707
6708 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
6709 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
6710 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
6711 (grub_console_checkkey): Add grub_dprintf() call to report unknown
6712 scan codes.
6713
ee632529 67142008-05-29 Robert Millan <rmh@aybabtu.com>
6715
6716 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
6717 control key combinations.
6718
eee96e08 67192008-05-29 Robert Millan <rmh@aybabtu.com>
6720
6721 * util/powerpc/ieee1275/grub-install.in: Move from here ...
6722 * util/ieee1275/grub-install.in: ... to here.
6723 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
6724 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
6725 (grub_install_SOURCES): Likewise.
6726
da9a6a94 67272008-05-29 Robert Millan <rmh@aybabtu.com>
6728
6729 * fs/affs.c: Update copyright year.
6730 * fs/ext2.c: Likewise.
6731 * fs/fshelp.c: Likewise.
6732 * fs/hfsplus.c: Likewise.
6733 * fs/ntfs.c: Likewise.
6734 * fs/xfs.c: Likewise.
6735 * include/grub/fshelp.h: Likewise.
6736 * util/grub-mkdevicemap.c: Likewise.
6737
12e65f3a 67382008-05-28 Robert Millan <rmh@aybabtu.com>
6739
6740 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
6741 might need to be fatfs to support some firmware implementations
6742 (e.g. OFW or EFI).
6743
23023641 67442008-05-28 Robert Millan <rmh@aybabtu.com>
6745
6746 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
6747 devices.
6748 * util/grub-mkdevicemap.c (get_mmc_disk_name)
6749 (make_device_map): Likewise.
6750
887d2619 67512008-05-20 Bean <bean123ch@gmail.com>
6752
6753 * fs/fshelp.c (grub_fshelp_map_block): New function.
6754 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
6755 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
6756
6757 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
6758 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
6759 (grub_fshelp_journal): New structure.
6760 (grub_fshelp_map_block): New function prototype.
6761 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
6762 (grub_fshelp_map_block): Likewise.
6763
6764 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
6765 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
6766 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
6767 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
6768 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
6769 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
6770 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
6771 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
6772 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
6773 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
6774 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
6775 (grub_ext2_sblock): New members for journal support.
6776 (grub_ext3_journal_header): New structure.
6777 (grub_ext3_journal_revoke_header): Likewise.
6778 (grub_ext3_journal_block_tag): Likewise.
6779 (grub_ext3_journal_sblock): Likewise.
6780 (grub_fshelp_node): New members logfile and journal.
6781 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
6782 grub_fshelp_map_block to get real block number.
6783 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
6784 number.
6785 (grub_ext2_read_inode): Likewise.
6786 (grub_ext3_get_journal): New function.
6787 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
6788 (grub_ext2_close): Release memory used by journal.
6789
6790 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
6791 (REISERFS_MAGIC_DESC_BLOCK): New macro.
6792 (grub_reiserfs_transaction_header): Renamed to
6793 grub_reiserfs_description_block, replace field data with real_blocks.
6794 (grub_reiserfs_commit_block): New structure.
6795 (grub_reiserfs_data): New member journal.
6796 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
6797 number.
6798 (grub_reiserfs_read_symlink): Likewise.
6799 (grub_reiserfs_iterate_dir): Likewise.
6800 (grub_reiserfs_open): Likewise.
6801 (grub_reiserfs_read): Likewise.
6802 (grub_reiserfs_get_journal): New function.
6803 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
6804 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
6805 using grub_reiserfs_get_journal.
6806 (grub_reiserfs_close): Release memory used by journal.
6807
6808 * fs/affs.c (grub_affs_read_block): Change block type to
6809 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
6810
6811 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
6812
6813 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
6814
6815 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
6816
6817 * fs/udf.c (grub_udf_read_block): Change block type to
6818 grub_disk_addr_t. Use type cast to avoid warning.
6819
6820 * fs/xfs.c (grub_xfs_read_block): Likewise.
6821
b7c6bed5 68222008-05-16 Christian Franke <franke@computer.org>
6823
6824 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
6825 to ensure that break with ESC will always work.
6826 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
6827 Remove ESC from keyboard queue.
6828
eedf167f 68292008-05-16 Christian Franke <franke@computer.org>
6830
6831 * util/biosdisk.c: [__CYGWIN__] Add includes.
6832 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
6833 (get_os_disk): Move variable declarations to OS specific
6834 parts to avoid warning.
6835 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
6836 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
6837 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
6838 Cygwin.
6839 * util/getroot.c: [__CYGWIN__] Add includes.
6840 (strip_extra_slashes): Fix "/" case.
6841 [__CYGWIN__] (get_win32_path): New function.
6842 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
6843 [__CYGWIN__] (find_root_device): Disable.
6844 [__CYGWIN__] (get_bootsec_serial): New function.
6845 [__CYGWIN__] (find_cygwin_root_device): Likewise.
6846 [__linux__] (grub_guess_root_device): Add early returns to simplify
6847 structure.
6848 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
6849 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
6850 check for Linux only.
6851
a079699e 68522008-05-15 Bean <bean123ch@gmail.com>
6853
6854 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
6855 keyboard hang problem in apple's intel mac.
6856
1cf4059a 68572008-05-09 Robert Millan <rmh@aybabtu.com>
6858
6859 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
6860 devices.
6861 * util/grub-mkdevicemap.c (get_virtio_disk_name)
6862 (make_device_map): Likewise.
6863 Reported by Aurelien Jarno <aurel32@debian.org>
6864
ed759390 68652008-05-07 Ian Campbell <ijc@hellion.org.uk>
6866
6867 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
6868 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
6869 (make_device_map): Output entries for xvd type disks.
6870
b56c4eaa 68712008-05-07 Robert Millan <rmh@aybabtu.com>
6872
6873 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
6874 devices.
6875 * util/grub-mkdevicemap.c (get_cciss_disk_name)
6876 (make_device_map): Likewise.
6877 Reported by Roland Dreier <rdreier@cisco.com>
6878
7f8866ed 68792008-05-07 Robert Millan <rmh@aybabtu.com>
6880
6881 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
6882 grub_strstr() call. Correct a few mistakes in failure path handling.
6883
b0346e0f 68842008-05-06 Robert Millan <rmh@aybabtu.com>
6885
6886 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
6887 Do not print a trailing slash (therefore, the root directory is an
6888 empty string).
6889 (convert_system_path_to_grub_path): Do not remove trailing slash
6890 from make_system_path_relative_to_its_root() output.
6891
6892 * util/i386/pc/grub-install.in: Add trailing slash to output from
6893 make_system_path_relative_to_its_root().
6894
6cf12cbd 68952008-05-06 Robert Millan <rmh@aybabtu.com>
6896
6897 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
6898 ensures that output lines aren't intermangled with those sent to
6899 stderr (via grub_util_info()).
6900 * util/grub-probe.c (grub_refresh): Likewise.
6901 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
6902
0fbb3117 69032008-05-05 Christian Franke <franke@computer.org>
6904
6905 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
6906 Add Cygwin device names.
6907 (get_ide_disk_name) [__CYGWIN__]: Likewise.
6908 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
6909 (check_device): Return error instead of success on empty name.
6910 (make_device_map): Move label inside linux specific code to
6911 prevent compiler warning.
6912
8124cdb7 69132008-04-30 Robert Millan <rmh@aybabtu.com>
6914
6915 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
6916 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
6917 first boot option.
6918 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
6919
094c01d0 69202008-04-29 Robert Millan <rmh@aybabtu.com>
6921
6922 * docs/grub.cfg: New file (example GRUB configuration).
6923
f4b1fc02 69242008-04-26 Robert Millan <rmh@aybabtu.com>
6925
329ce2a5 6926 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
6927 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
6928 and `disk/ieee1275/nand.c'.
f4b1fc02 6929
25f16ec1 69302008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 6931
25f16ec1 6932 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
6933 i386-linuxbios.
6934
6935 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
6936 change the buffer size to 4096 for cdrom device.
6937
6938 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
6939 and nand.mod.
6940 (_linux_mod_SOURCES): New variable.
6941 (_linux_mod_CFLAGS): Likewise.
6942 (_linux_mod_LDFLAGS): Likewise.
6943 (linux_mod_SOURCES): Likewise.
6944 (linux_mod_CFLAGS): Likewise.
6945 (linux_mod_LDFLAGS): Likewise.
6946 (nand_mod_SOURCES): Likewise.
6947 (nand_mod_CFLAGS): Likewise.
6948 (nand_mod_LDFLAGS): Likewise.
6949
6950 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
6951 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
6952 type property. (nand device in olpc don't have this property)
6953
6954 * include/grub/disk.h (grub_disk_dev_id): New macro
6955 GRUB_DISK_DEVICE_NAND_ID.
6956
6957 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
6958 function prototype.
6959 (grub_rescue_cmd_initrd): Likewise.
6960
6961 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
6962 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
6963 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 6964
25f16ec1 6965 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
6966 GRUB_MACHINE_IEEE1275 is defined.
6967
6968 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
6969 Use NESTED_FUNC_ATTR attribute on the hook parameter.
6970
6971 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
6972 on nested function heap_init.
6973 (grub_upper_mem): New variable for i386-ieee1275.
6974 (grub_get_extended_memory): New function for i386-ieee1275.
6975 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
6976
6977 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
6978 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
6979 property.
f19dbdb7 6980
25f16ec1 6981 * loader/i386/ieee1275/linux.c: New file.
6982
6983 * loader/i386/ieee1275/linux_normal.c: New file.
6984
6985 * disk/ieee1275/nand.c: New file.
6986
e89d61e9 69872008-04-18 Thomas Schwinge <tschwinge@gnu.org>
6988
6989 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
6990 value.
6991 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
6992
602566f6 69932008-04-18 Robert Millan <rmh@aybabtu.com>
6994
6995 Restructures early code path on ieee1275 to unify grub_main() as
6996 the first C function that is executed in every platform.
6997
6998 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
6999 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
7000 cmain().
7001 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
7002 * kern/ieee1275/cmain.c (cmain): Rename to ...
7003 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
7004 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
7005 at the beginning.
7006
57490c2b 70072008-04-18 Robert Millan <rmh@aybabtu.com>
7008
7009 * util/update-grub.in: Fix syntax error when setting
7010 `GRUB_PRELOAD_MODULES'.
7011 Reported by Stephane Chazelas <stephane@artesyncp.com>
7012
1977517d 70132008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
7014
7015 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
7016 section into account, newer toolchains generate unique build ids
7017 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 7018 we want build ids to be preserved
1977517d 7019 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
7020 far from other sections don't cause the raw binary images grow
7021 size
7022
bfb1f1a2 70232008-04-15 Robert Millan <rmh@aybabtu.com>
7024
7025 * disk/lvm.c: Update copyright year.
7026 * kern/misc.c: Likewise.
7027
01979850 70282008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
7029
7030 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 7031 there is no memory left for physical volume name.
01979850 7032
0a1150e2 70332008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
7034
7035 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
7036 volume name mapping to support bigger than 9 character names properly.
7037
82ead3fe 70382008-04-13 Robert Millan <rmh@aybabtu.com>
7039
7040 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
7041 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
7042
e54a72f5 70432008-04-13 Christian Franke <franke@computer.org>
7044
7045 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
7046 to create a floppy emulation boot CD when non emulation mode
7047 does not work.
7048 Enable Joliet CD filesystem extension.
7049
9fe86034 70502008-04-13 Robert Millan <rmh@aybabtu.com>
7051
7052 * kern/misc.c (grub_strncat): Fix off-by-one error.
7053 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
7054
7055 * kern/env.c (grub_env_context_close): Clear current context, not
7056 previous one.
7057 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
7058
7059 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
7060
7ceeee39 70612008-04-13 Robert Millan <rmh@aybabtu.com>
7062
7063 Improve robustness when handling LVM.
7064
7065 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 7066 (and leave `*p' unmodified).
7ceeee39 7067 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
7068 through it.
7069 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
7070 iterating through it.
7071 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
7072 through it.
fe6b695a 7073 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 7074 when due) on each grub_lvm_getvalue() or grub_strstr() call.
7075 Don't assume `vg->pvs != NULL' when iterating through it.
7076
58cd3d85 70772008-04-13 Robert Millan <rmh@aybabtu.com>
7078
7079 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
7080 * genmk.rb (partmap): New variable.
7081 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
7082 (#{partmap}): New target rule.
7083 * genpartmaplist.sh: New file.
7084 * Makefile.in (pkglib_DATA): Add partmap.lst.
7085 (partmap.lst): New target rule.
7086 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
7087 modules (including all partition maps), instead of preloading them.
7088
78b51059 70892007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
7090
7091 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
7092 `linux-boot-prober' (if installed) to detect other operating
7093 systems which are installed on the computer and add them to
7094 the boot menu.
7095 * conf/common.rmk: Build and install 30_os-prober.
7096
a91627b4 70972008-04-12 Robert Millan <rmh@aybabtu.com>
7098
7099 * kern/powerpc/ieee1275/init.c: Move from here ...
7100 * kern/ieee1275/init.c: ... to here. Update all users.
7101
7102 * kern/powerpc/ieee1275/cmain.c: Move from here ...
7103 * kern/ieee1275/cmain.c: ... to here. Update all users.
7104
7105 * kern/powerpc/ieee1275/openfw.c: Move from here ...
7106 * kern/ieee1275/openfw.c: ... to here. Update all users.
7107
7108 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
7109 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
7110
322562ea 71112008-04-10 Pavel Roskin <proski@gnu.org>
7112
7113 * configure.ac: Always use "_cv_" in cache variables for
7114 compatibility with Autoconf 2.62.
7115
a02a73c5 71162008-04-07 Robert Millan <rmh@aybabtu.com>
7117
7118 Revert grub/machine/init.h addition by Pavel (since it breaks on
7119 i386-ieee1275 and others):
7120 * util/i386/pc/misc.c: Remove grub/machine/init.h.
7121 * util/powerpc/ieee1275/misc.c: Likewise.
7122
25c024b1 71232008-04-07 Robert Millan <rmh@aybabtu.com>
7124
7125 * util/grub-probe.c (probe): Improve error message.
7126
3cbd2f98 71272008-04-07 Robert Millan <rmh@aybabtu.com>
7128
7129 * util/biosdisk.c (read_device_map): Skip devices that don't exist
7130 (this prevents the presence of a bogus entry from ruining the whole
7131 thing).
7132
87a297bf 71332008-04-06 Pavel Roskin <proski@gnu.org>
7134
36747a62 7135 * util/biosdisk.c: Include grub/util/biosdisk.h.
7136 * util/grub-fstest.c (execute_command): Make static.
7137 * util/grub-mkdevicemap.c (check_device): Likewise.
7138 * util/i386/pc/misc.c: Include grub/machine/init.h.
7139 * util/powerpc/ieee1275/misc.c: Likewise.
7140 * util/lvm.c: Include grub/util/lvm.h.
7141 * util/misc.c: Include grub/kernel.h, grub/misc.h and
7142 grub/cache.h.
7143 * util/raid.c: Include grub/util/raid.h.
7144 (grub_util_getdiskname): Make static.
7145
87a297bf 7146 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
7147 grub_hostfs_fini(), as they are called from grub_init_all() and
7148 grub_fini_all() respectively. This fixes an infinite loop in
7149 grub-fstest due to double registration of hostfs.
7150 Reported by Christian Franke <Christian.Franke@t-online.de>
7151
f6ce7629 71522008-04-05 Pavel Roskin <proski@gnu.org>
7153
7154 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
7155 all 8 functions. Otherwise, probe function 0 only.
7156
070e49e4 71572008-04-04 Pavel Roskin <proski@gnu.org>
7158
8b088a4c 7159 * commands/lspci.c (grub_lspci_iter): Print the bus number
7160 correctly.
7161
4f657021 7162 * commands/lspci.c (grub_pci_classes): Fix typos.
7163 (grub_lspci_iter): Don't print func twice. Print vendor ID
7164 before device ID, as it's normally done.
7165
070e49e4 7166 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
7167 Fix signedness warnings.
7168 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
7169 Likewise.
7170 * util/ieee1275/get_disk_name.c: Include config.h so that
7171 _GNU_SOURCE is defined and getline() is declared. Mark an
7172 unused argument as such. Fix a signedness warning.
7173
ba7328dc 71742008-04-02 Pavel Roskin <proski@gnu.org>
7175
26887f22 7176 * genkernsyms.sh.in: Use more robust assignments for CC and
7177 srcdir. Quote srcdir.
7178 * gensymlist.sh.in: Likewise. Assert at the compile time that
7179 the symbol table is not empty.
7180
ba7328dc 7181 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
7182 * fs/cpio.c (grub_cpio_read): Likewise.
7183
0f582c6b 71842008-04-01 Pavel Roskin <proski@gnu.org>
7185
4b6e1995 7186 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
7187 * disk/host.c (grub_host_open): Likewise.
7188 * disk/loopback.c (grub_loopback_open): Likewise.
7189 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
7190 disk->id as in disk/host.c, not a multi-character constant.
7191
828a2768 7192 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
7193 later is obsolete, potentially dangerous and sets a bad example.
7194 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
7195 * util/misc.c (grub_util_get_image_size): Likewise.
7196
2bb4fb47 7197 * disk/loopback.c (options): Improve help for "--partitions".
7198
0f582c6b 7199 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
7200 options to align them with the short options, e.g. "echo -e".
7201
a33224e0 72022008-03-31 Bean <bean123ch@gmail.com>
7203
7204 * video/reader/png.c (grub_png_data): New member is_16bit and
7205 image_data.
7206 (grub_png_decode_image_header): Detect 16 bit png image.
7207 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
7208 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
7209 (grub_video_reader_png): Release memory occupied by image_data.
7210
7211 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
7212 4096 bytes.
7213 (grub_nfs_mount): Skip the test for sector per cluster.
7214
7215 * include/grub/ntfs.h (MAX_SPC): Removed.
7216
86cb4f54 72172008-03-31 Bean <bean123ch@gmail.com>
7218
7219 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
7220 (grub_probe_SOURCES): Add fs/afs.c.
7221 (grub_fstest_SOURCES): Likewise.
7222 (afs_mod_SOURCES): New variable.
7223 (afs_mod_CFLAGS): Likewise.
7224 (afs_mod_LDFLAGS): Likewise.
7225
7226 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
7227 (grub_emu_SOURCES): Likewise.
7228
7229 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7230
7231 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7232
7233 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7234
7235 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7236
7237 * fs/afs.c: New file.
7238
17c74c21 72392008-03-30 Pavel Roskin <proski@gnu.org>
7240
4cb68e89 7241 * disk/host.c: Include grub/misc.h to fix a warning.
7242 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
7243 warnings about implicit declarations.
7244
8790bb04 7245 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
7246 variable.
7247 * include/grub/i386/loader.h: Change declaration of
7248 grub_linux_boot() to match what grub_loader_set() expects.
7249 * util/getroot.c (grub_guess_root_device): Return const char* to
7250 fix a warning.
7251 * util/grub-probe.c (probe): Fix a warning about uninitialized
7252 abstraction_name variable.
7253 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
7254 second argument as unused to fix a warning.
7255
9a3f3296 7256 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
7257 missing grub_error() call.
7258
0ecef90d 7259 * util/update-grub_lib.in: Define datarootdir, since Autoconf
7260 2.60 and newer uses it to define datadir.
7261
0bf6d401 7262 * commands/sleep.c: Fix warning about implicit declaration.
7263 * disk/memdisk.c: Likewise.
7264 * loader/aout.c: Likewise.
7265 * loader/i386/bsd_normal.c: Likewise.
7266 * util/grub-probe.c: Likewise.
7267
7cdacf97 7268 * commands/i386/cpuid.c (has_longmode): Make static.
7269 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
7270 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
7271
17c74c21 7272 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
7273 GDT. This is more robust, as %ds can change.
7274 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
7275 calling real_to_prot().
7276 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
7277
80a3e68b 72782008-03-28 Pavel Roskin <proski@gnu.org>
7279
7280 * kern/i386/pc/startup.S: Assert that uncompressed functions
7281 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
7282 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
7283 code, as they push parts of the code (error handlers) beyond
7284 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
7285 code as correctness and size.
7286
77bcd272 72872008-03-28 Pavel Roskin <proski@gnu.org>
7288
7289 * kern/i386/pc/startup.S
7290 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
7291 data block address to the real mode, keep offset minimal. This
7292 works around a bug in AWARD BIOS on old Athlon systems, which
7293 makes CD detection hang.
7294
c5dfd43b 72952008-03-26 Pavel Roskin <proski@gnu.org>
7296
7297 * normal/color.c (grub_parse_color_name_pair): Make `name' a
7298 const.
7299 * include/grub/normal.h: Add grub_parse_color_name_pair()
7300 declaration.
7301
bf962df2 73022008-03-24 Bean <bean123ch@gmail.com>
7303
7304 * disk/i386/pc/biosdisk.c (cd_start): Removed.
7305 (cd_count): Removed.
7306 (cd_drive): New variable.
7307 (grub_biosdisk_get_drive): Don't check for (cdN) device.
7308 (grub_biosdisk_call_hook): Likewise.
7309 (grub_biosdisk_iterate): Change cdrom detection method.
7310 (grub_biosdisk_open): Replace cd_start with cd_drive.
7311 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
7312 detect cdrom device.
7313
7314 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
7315 Removed.
7316 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
7317 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
7318 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
7319 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
7320 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
7321 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
7322 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
7323 (grub_biosdisk_cdrp): New structure.
7324 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
7325
7326 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
7327
7328 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
7329 device.
7330
7331 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
7332 New function.
7333
68e7fc7a 73342008-03-20 Robert Millan <rmh@aybabtu.com>
7335
7336 Remove 2 TiB limit in ata.mod.
7337 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
7338 (grub_ata_dumpinfo): Print sector count with 0x%llx.
7339 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
7340 grub_uint64_t instead of grub_uint32_t.
7341
38ad2cf5 73422008-03-05 Bean <bean123ch@gmail.com>
7343
7344 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
7345 (grub_multiboot): Set boot device.
7346
7347 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
7348
2b89344e 73492008-03-02 Bean <bean123ch@gmail.com>
7350
7351 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
7352 symlink_buffer.
7353
87a95d1f 73542008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
7355
7356 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
7357 texinfo.tex.
7358
7359 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
7360 modified.
7361
7362 * docs/fdl.texi: New file.
f19dbdb7 7363
87a95d1f 7364 * docs/mdate-sh: New file. Copied from gnulib.
7365 * docs/texinfo.tex: Likewise.
7366
7367 * config.guess: Updated from gnulib.
7368 * install-sh: Likewise.
7369
7dc15d8e 73702008-02-28 Robert Millan <rmh@aybabtu.com>
7371
7372 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
7373 (aout_mod_SOURCES): New variable.
7374 (aout_mod_CFLAGS): Likewise.
7375 (aout_mod_LDFLAGS): Likewise.
7376
7377 * conf/i386-ieee1275.rmk: Likewise.
7378
b00ab696 73792008-02-28 Robert Millan <rmh@aybabtu.com>
7380
7381 * util/update-grub.in: Reorganise terminal validity check. Accept
7382 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
7383 Based on suggestion by Franklin PIAT.
7384
79ca2d78 73852008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
7386
7387 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
7388 function.
7389 * util/getroot.c (grub_util_check_block_device): New function that
7390 returns the given argument if it is a block device and returns NULL else.
7391 * util/grub-probe.c (argument_is_device): New variable.
7392 (probe): Promote device_name from a variable to an argument. Receive
7393 device_name from grub_util_check_block_device() if path is NULL and from
7394 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 7395 (options): Introduce new parameter '-d, --device'.
79ca2d78 7396 (main): Add description of the new parameter to the help screen.
7397 Rename path variable to argument. Set argument_is_device if the '-d'
7398 option is given. Pass argument to probe() depending on
7399 argument_is_device.
7400
0d16e571 74012008-02-24 Bean <bean123ch@gmail.com>
7402
7403 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
7404 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
7405 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
7406 (GRUB_ISO9660_VOLDESC_PART): Likewise.
7407 (GRUB_ISO9660_VOLDESC_END): Likewise.
7408 (grub_iso9660_primary_voldesc): New member escape.
7409 (grub_iso9660_data): New member joliet.
7410 (grub_iso9660_convert_string): New function.
7411 (grub_iso9660_mount): Detect joliet extension.
7412 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
7413 (grub_iso9660_iso9660_label): Likewise.
7414
7415 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
7416 (grub_setup_SOURCES): Add fs/udf.c.
7417 (grub_fstest_SOURCES): Likewise.
7418 (udf_mod_SOURCES): New variable.
7419 (udf_mod_CFLAGS): Likewise.
7420 (udf_mod_LDFLAGS): Likewise.
7421
7422 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
7423 (grub_emu_SOURCES): Likewise.
7424
7425 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7426
7427 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7428
7429 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7430
7431 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7432
7433 * fs/udf.c: New file.
7434
8a594a17 74352008-02-24 Robert Millan <rmh@aybabtu.com>
7436
7437 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
7438 (normal/lexer.c_DEPENDENCIES): New variables.
7439 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7440 (normal/lexer.c_DEPENDENCIES): Likewise.
7441 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
7442 (normal/lexer.c_DEPENDENCIES): Likewise.
7443 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
7444 (normal/lexer.c_DEPENDENCIES): Likewise.
7445 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7446 (normal/lexer.c_DEPENDENCIES): Likewise.
7447 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7448 (normal/lexer.c_DEPENDENCIES): Likewise.
7449
2dc33c03 74502008-02-23 Robert Millan <rmh@aybabtu.com>
7451
7452 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
7453 since they were intended to be in hex. This didn't break previously
7454 because of a bug in gpt_partition_map_iterate() (see below).
7455
7456 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
7457 when checking the validity of GPT header.
7458 Remove `partno', since it always provides the same information as `i'.
7459
f6f4cfb0 74602008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
7461
7462 * include/grub/efi/time.h: Fix a wrong comment.
7463
79ff665f 74642008-02-19 Pavel Roskin <proski@gnu.org>
7465
7466 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
7467 message.
7468
d38e24c2 74692008-02-19 Bean <bean123ch@gmail.com>
7470
7471 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
7472 (aout_mod_SOURCES): New variable.
7473 (aout_mod_CFLAGS): Likewise.
7474 (aout_mod_LDFLAGS): Likewise.
7475 (_bsd_mod_SOURCES): New variable.
7476 (_bsd_mod_CFLAGS): Likewise.
7477 (_bsd_mod_LDFLAGS): Likewise.
7478 (bsd_mod_SOURCES): New variable.
7479 (bsd_mod_CFLAGS): Likewise.
7480 (bsd_mod_LDFLAGS): Likewise.
7481
7482 * include/grub/aout.h: New file.
7483
7484 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
7485
7486 * include/grub/i386/bsd.h: New file.
7487
7488 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
7489 to make it public.
7490
7491 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
7492 function is called, so that it's possible to change it inside the hook.
7493 (grub_elf64_load): Likewise.
7494 (grub_elf_file): Don't close the file if elf header is not found.
7495 (grub_elf_close): Close the file if grub_elf_file fails (The new
7496 grub_elf_file won't close it).
7497 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
7498 (grub_elf64_size): Likewise.
7499
7500 * kern/i386/loader.S (grub_unix_real_boot): New function.
7501
7502 * loader/aout.c: New file.
7503
7504 * loader/i386/bsd.c: New file.
7505
7506 * loader/i386/bsd_normal.c: New file.
7507
7508 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
7509
7510 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 7511 can test other formats.
d38e24c2 7512
b93bdb0f 75132008-02-19 Robert Millan <rmh@aybabtu.com>
7514
7515 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
7516 (grub_gpt_partition_type_empty): Redefine with macro from
7517 `<grub/gpt_partition.h>'.
7518 (gpt_partition_map_iterate): Adjust partition type comparison.
7519
7520 Export `entry' as partmap-specific `part.data' struct.
7521 (grub_gpt_header, grub_gpt_partentry): Move from here ...
7522
7523 * include/grub/gpt_partition.h (grub_gpt_header)
7524 (grub_gpt_partentry): ... to here (new file).
7525
7526 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
7527
7528 (grub_gpt_partition_type_bios_boot): New const variable, defined
7529 with macro from `<grub/gpt_partition.h>'.
7530
7531 (setup): Replace `first_start' with `embed_region', which keeps
7532 track of the embed region (and is partmap-agnostic).
7533
7534 Replace find_first_partition_start() with find_usable_region(),
7535 which finds a usable region for embedding using partmap-specific
7536 knowledge (supports PC/MSDOS and GPT).
7537
7538 Fix all assumptions that the embed region start at sector 1, using
7539 `embed_region.start' from now on. Similarly, use `embed_region.end'
7540 rather than `first_start' to calculate available size.
7541
7542 In grub_util_info() message, replace "into after the MBR" with an
7543 indication of the specific sector our embed region starts at.
7544
66cb40f6 75452008-02-19 Robert Millan <rmh@aybabtu.com>
7546
7547 * DISTLIST: Replace `commands/ieee1275/halt.c' and
7548 `commands/ieee1275/reboot.c' with `commands/halt.c' and
7549 `commands/reboot.c'.
7550 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
7551 (halt_mod_SOURCES): Likewise.
7552 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
7553 (halt_mod_SOURCES): Likewise.
7554
b7202015 75552008-02-17 Christian Franke <franke@computer.org>
7556
7557 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
7558
32b0fc49 75592008-02-17 Robert Millan <rmh@aybabtu.com>
7560
7561 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
7562 set `first_start' to 0 for non-PC/MSDOS partition maps.
7563
aca63502 75642008-02-16 Robert Millan <rmh@aybabtu.com>
7565
7566 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
7567 do not assume partition map is PC/MSDOS before performing checks that
7568 are specific to that layout.
7569
0de8be86 75702008-02-13 Robert Millan <rmh@aybabtu.com>
7571
7572 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
7573 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
7574 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
7575
c3db8364 75762008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
7577
7578 * configure.ac: Only a cosmetic change on the handling of
7579 -fno-stack-protector.
7580
f714229e 75812008-02-12 Alexandre Boeglin <alex@boeglin.org>
7582
c3db8364 7583 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
7584 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
7585 reboot.c.
f714229e 7586 (grub_install_SOURCES): Add halt.mod and reboot.mod.
7587 (halt_mod_SOURCES): New variable.
7588 (halt_mod_CFLAGS): Likewise.
7589 (halt_mod_LDFLAGS): Likewise.
7590 (reboot_mod_SOURCES): Likewise.
7591 (reboot_mod_CFLAGS): Likewise.
7592 (reboot_mod_LDFLAGS): Likewise.
7593
c3db8364 7594 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
7595 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
7596 reboot.c.
f714229e 7597 (halt_mod_SOURCES): Likewise.
7598 (reboot_mod_SOURCES): Likewise.
7599
c3db8364 7600 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
7601 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 7602 (reboot_mod_SOURCES): Likewise.
7603
7604 * commands/i386/pc/reboot.c: merge this file ...
7605
7606 * commands/ieee1275/reboot.c: ... and this file ...
7607
7608 * commands/reboot.c: ... to this file.
c3db8364 7609 Add some precompiler directive to include the correct header for
7610 each machine.
f714229e 7611
7612 * commands/ieee1275/halt.c: move this file ...
7613
7614 * commands/halt.c: ... to here.
c3db8364 7615 Add some precompiler directive to include the correct header for
7616 each machine.
f714229e 7617
7618 * include/grub/efi/efi.h (grub_reboot): New function declaration.
7619 (grub_halt): Likewise.
7620
7621 * kern/efi/efi.c (grub_reboot): New function.
7622 (grub_halt): Likewise.
7623
c74493e0 76242008-02-12 Robert Millan <rmh@aybabtu.com>
7625
7626 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
7627 /dev (like it is done for /dev/mapper). This doesn't provide support
7628 for EVMS, but at least it is now easy to identify the problem when it
7629 arises.
7630
d0db4b04 76312008-02-11 Robert Millan <rmh@aybabtu.com>
7632
7633 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
7634 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
7635 comparing it with -1, not 0.
7636
bf748642 76372008-02-10 Robert Millan <rmh@aybabtu.com>
7638
7639 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
7640 `disk/lvm.c'.
7641 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7642 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
7643
7644 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
7645 `disk/lvm.c' to the end of the list.
7646 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7647 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
7648
b5db202a 76492008-02-10 Robert Millan <rmh@aybabtu.com>
7650
7651 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
7652 grub_print_error() instead. This will let user know why we're entering
7653 rescue mode.
7654 Based on suggestions from Sam Morris.
7655
83abee31 76562008-02-10 Alexandre Boeglin <alex@boeglin.org>
7657
7658 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
7659 on remaining N args, instead of "--" arg N times.
7660
78d5a08b 76612008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
7662
7663 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
7664 (fill_with_default_glyph): Changed to use unknown_glyph for fill
7665 pattern for unknown glyphs.
7666
68807e5f 76672008-02-09 Robert Millan <rmh@aybabtu.com>
7668
7669 * configure.ac: Probe for `help2man'.
7670 * Makefile.in (builddir): New variable.
7671 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
7672 or otherwise add a few flags/options to it.
7673 (install-local): For every executable utility or script that is
7674 installed, invoke $(HELP2MAN) to install a manpage based on --help
7675 output.
7676
7677 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
7678 that it doesn't prevent --help from working in build tree.
7679
7680 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
7681 with `bug-grub@gnu.org'.
7682 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
7683 * util/update-grub.in (usage): New function.
7684 Implement proper argument check, with support for --help and --version
7685 (as well as existing -y).
7686
76872008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 7688
7689 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
7690 avoid overwriting previous output.
7691 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
7692
c1962162 76932008-02-09 Robert Millan <rmh@aybabtu.com>
7694
7695 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
7696 drawing the menu.
7697
3dac2e3f 76982008-02-09 Robert Millan <rmh@aybabtu.com>
7699
7700 * commands/sleep.c: New file.
7701 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
7702 (sleep_mod_SOURCES): New variable.
7703 (sleep_mod_CFLAGS): Likewise.
7704 (sleep_mod_LDFLAGS): Likewise.
7705
7a634e08 77062008-02-09 Robert Millan <rmh@aybabtu.com>
7707
7708 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
7709 situations in which we can deduce the RAID size and the superblock
7710 doesn't match it.
7711
b92f0c18 77122008-02-09 Robert Millan <rmh@aybabtu.com>
7713
7714 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
7715 and return a grub_diskmemberlist_t composed of LVM physical volumes.
7716 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
7717
7718 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
7719 and return a grub_diskmemberlist_t composed of physical array members.
7720 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
7721
7722 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
7723 prototype.
7724 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
7725 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
7726 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
7727
7728 * util/grub-probe.c (probe): Move partmap probing code from here ...
7729 (probe_partmap): ... to here.
7730 (probe): Use probe_partmap() once for the disk we're probing, and
7731 additionally, when such disk contains a memberlist() struct member,
7732 once for each disk that is contained in the structure returned by
7733 memberlist().
7734
91a4bf68 77352008-02-09 Robert Millan <rmh@aybabtu.com>
7736
7737 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
7738 environment variable to 'all' in order to obtain debug output from
7739 non-util/ code.
7740 * util/i386/pc/grub-setup.c (main): Likewise.
7741
a96f9caa 77422008-02-08 Robert Millan <rmh@aybabtu.com>
7743
7744 * disk/raid.c (grub_raid_scan_device): Check for
7745 `array->device[sb.this_disk.number]' rather than for
7746 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 7747 guaranteed to be accessible.
a96f9caa 7748
b37a9222 77492008-02-08 Robert Millan <rmh@aybabtu.com>
7750
7751 * disk/raid.c: Update copyright.
7752 * fs/cpio.c: Likewise.
7753 * include/grub/raid.h: Likewise.
7754 * loader/i386/pc/multiboot.c: Likewise.
7755 * util/hostfs.c: Likewise.
7756
5626aee1 77572008-02-08 Robert Millan <rmh@aybabtu.com>
7758
7759 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
7760 to a grub_disk_t array.
7761 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
7762 `device[x]'.
7763 (grub_raid_scan_device): Replace `device[x].name' accesses with
7764 `device[x]->name'. Simplify initialization of `array->device[x]'.
7765
554f0187 77662008-02-08 Robert Millan <rmh@aybabtu.com>
7767
7768 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
7769 grub_dprintf() calls.
7770 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
7771 error message.
7772
1ec8425d 77732008-02-07 Christian Franke <franke@computer.org>
7774
7775 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
7776 instead of fseek and ftell to support large files.
7777 (grub_hostfs_read): Likewise.
7778
f2156fda 77792008-02-07 Robert Millan <rmh@aybabtu.com>
7780
7781 Patch from Jeroen Dekkers.
7782 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 7783 failure, since successfully reading all array members might not be
f2156fda 7784 required.
7785
9216e0e7 77862008-02-06 Robert Millan <rmh@aybabtu.com>
7787
7788 * util/grub-probe.c (probe): Simplify partmap probing (with the
7789 assumption that the first word up to the underscore equals to
7790 the module name).
7791
b0dfd29a 77922008-02-06 Christian Franke <franke@computer.org>
7793
7794 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
7795 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
7796 last block of a cpio or tar stream.
7797 Check for "TRAILER!!!" instead of any empty data
7798 block to detect last block of a cpio stream.
7799 (grub_cpio_dir): Fix constness of variable np.
7800 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
7801 cpio or tar trailer is detected. This fixes a crash
7802 on open of a non existing file.
7803
c32865bf 78042008-02-05 Bean <bean123ch@gmail.com>
7805
7806 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
7807 address of entry.
7808 (grub_multiboot_load_elf64): Likewise.
7809 (grub_multiboot): Initialize mbi structure.
7810
7811 * util/grub-fstest.c: Don't include unused header file script.h.
7812
fe6b695a 7813 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 7814 of file.
7815 (grub_fstest_SOURCES): Likewise.
7816
409480b7 78172008-02-05 Robert Millan <rmh@aybabtu.com>
7818
7819 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
7820 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
7821 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
7822 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
7823
7824 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
7825 (translation_table): Replace hardcoded values with macros
7826 provided by `<grub/term.h>'.
7827
7828 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
7829 (keyboard_map): Correct/add a few values, with macros provided
7830 by `<grub/term.h>'.
7831 (keyboard_map_shift): Zero values that don't differ from their
7832 `keyboard_map' equivalents.
7833 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
7834 Discard the second scan code that is always sent by Caps lock.
7835 Only use `keyboard_map_shift' when it provides a non-zero value,
7836 otherwise fallback to `keyboard_map'.
7837
99fadbaa 78382008-02-04 Bean <bean123ch@gmail.com>
7839
7840 * Makefile.in (enable_grub_fstest): New variable.
7841
7842 * conf/common.rmk (grub_fstest_init.lst): New rule.
7843 (grub_fstest_init.h): Likewise.
7844 (grub_fstest_init.c): Likewise.
7845 (util/grub-fstest.c_DEPENDENCIES): New variable.
7846 (grub_fstest_SOURCES): Likewise.
7847
7848 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
7849
7850 * util/grub-fstest.c: New file.
7851
bf567c50 78522008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
7853
7854 Make grub-setup handle a separate root device.
f19dbdb7 7855
bf567c50 7856 * util/i386/pc/grub-setup.c (setup): Always open the root device,
7857 so that the root device can be compared with the destination
7858 device.
7859 When embedding the core image, if the root and destination devices
7860 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
7861 0xFF.
7862 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 7863
9be6b98b 78642008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
7865
7866 Add support for having a grub directory in a different drive. This
7867 is still only the data handling part.
f19dbdb7 7868
9be6b98b 7869 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
7870 (codestart): Save %dh in GRUB_ROOT_DRIVE.
7871 (grub_root_drive): New variable.
7872
7873 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
7874 instead of GRUB_BOOT_DRIVE to construct a device name. Set
7875 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
7876 as it was.
7877
7878 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
7879
7880 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
7881 macro.
7882 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
7883
7884 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
7885 is bogus, because PXE booting does not specify any drive
7886 correctly.
7887
7888 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
7889 am not sure if this is really correct.
7890
7891 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
7892 is always identical to the boot drive when booting from a CD.
7893
7894 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
7895 longer.
7896 (root_drive): New variable.
7897 (real_start): Unconditionally set %dh to ROOT_DRIVE.
7898 (setup_sectors): Push %dx right after popping it, because %dh will
7899 be modified later.
7900 (copy_buffer): Restore %dx.
7901
e0ca0677 79022008-02-03 Robert Millan <rmh@aybabtu.com>
7903
7904 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
7905 use `cdboot.img' for cdrom images.
7906
3b3f6629 79072008-02-03 Robert Millan <rmh@aybabtu.com>
7908
7909 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
7910 only setup gfxterm when `font' command has succeeded.
7911
d42b3672 79122008-02-03 Robert Millan <rmh@aybabtu.com>
7913
7914 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
7915 (grub_rescue_cmd_multiboot_loader)
7916 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
7917
fa370ea6 79182008-02-03 Pavel Roskin <proski@gnu.org>
7919
e0c5dacb 7920 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 7921 %edx and %esi from stack only after grub_gate_a20() is called.
7922 grub_gate_a20() clobbers %edx.
7923
f2a76e1d 79242008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
7925
7926 * configure.ac (AC_INIT): Bumped to 1.96.
7927
7928 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
7929 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
7930 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
7931 video/readers/png.c.
7932
90fd32d1 79332008-02-03 Bean <bean123ch@gmail.com>
9be665dd 7934
7935 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
7936 (cdboot_img_SOURCES): New variable.
7937 (cdboot_img_ASFLAGS): New variable.
7938 (cdboot_img_LDFLAGS): New variable.
7939
7940 * boot/i386/pc/cdboot.S: New file.
7941
7942 * disk/i386/pc/biosdisk.c (cd_start): New variable.
7943 (cd_count): Likewise.
7944 (grub_biosdisk_get_drive): Add support for cd device.
7945 (grub_biosdisk_call_hook): Likewise.
7946 (grub_biosdisk_iterate): Likewise.
7947 (grub_biosdisk_open): Likewise.
7948 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
7949 (grub_biosdisk_rw): Support reading from cd device.
7950 (GRUB_MOD_INIT): Iterate cd devices.
7951
7952 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
7953 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
7954 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
7955
7956 * kern/i386/pc/init.c (make_install_device): Check for cd device.
7957
4020aa53 79582008-02-02 Robert Millan <rmh@aybabtu.com>
7959
7960 * commands/read.c: New file.
7961 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
7962 (read_mod_SOURCES): New variable.
7963 (read_mod_CFLAGS): Likewise.
7964 (read_mod_LDFLAGS): Likewise.
7965
e03a1132 79662008-02-02 Robert Millan <rmh@aybabtu.com>
7967
7968 * normal/main.c (grub_normal_execute): Check for `menu->size' when
7969 determining whether menu has to be displayed.
7970
58c69220 79712008-02-02 Marco Gerards <marco@gnu.org>
7972
7973 * bus/pci.c: New file.
7974
7975 * include/grub/pci.h: Likewise.
7976
7977 * include/grub/i386/pc/pci.h: Likewise.
7978
7979 * commands/lspci.c: Likewise.
7980
7981 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
7982 `lspci.mod'.
7983 (pci_mod_SOURCES): New variable.
7984 (pci_mod_CFLAGS): Likewise.
7985 (pci_mod_LDFLAGS): Likewise.
7986 (lspci_mod_SOURCES): Likewise.
7987 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 7988 (lspci_mod_LDFLAGS): Likewise.
58c69220 7989
c004e1b4 79902008-02-02 Bean <bean123ch@gmail.com>
7991
7992 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
7993 (grub_ufs_get_file_block): Fix indirect block calculation problem.
7994
7995 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
7996 (grub_xfs_btree_node): New structure.
7997 (grub_xfs_btree_root): New structure.
7998 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
7999 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
8000 (GRUB_XFS_EXTENT_BLOCK): Likewise.
8001 (GRUB_XFS_EXTENT_SIZE): Likewise.
8002 (grub_xfs_read_block): Support btree format type.
8003 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
8004 Use directory block as basic unit.
8005
8006 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
8007
8008 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
8009 __attribute__ ((__regparm__ (1))).
8010
f95562bf 80112008-02-01 Robert Millan <rmh@aybabtu.com>
8012
8013 Correct a mistake in previous commit.
8014
8015 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
8016 top.
8017 (normal/command.c_DEPENDENCIES): New variable.
8018
7d31f41f 80192008-02-01 Robert Millan <rmh@aybabtu.com>
8020
8021 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
8022 top.
8023 (normal/command.c_DEPENDENCIES): New variable.
8024 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
8025 * conf/i386-ieee1275.rmk: Likewise.
8026 * conf/i386-linuxbios.rmk: Likewise.
8027 * conf/i386-pc.rmk: Likewise.
8028 * conf/sparc64-ieee1275.rmk: Likewise.
8029 * conf/powerpc-ieee1275.rmk: Likewise.
8030 (grub_emu_SOURCES): Add `fs/fshelp.c'.
8031
8032 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
8033
60b6be74 80342008-02-01 Robert Millan <rmh@aybabtu.com>
8035
8036 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
8037 call at beginning of function.
8038
078522ab 80392008-01-31 Pavel Roskin <proski@gnu.org>
8040
8041 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 8042 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
8043 (grub_mkrescue_SOURCES): Likewise.
078522ab 8044 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
8045
ccaa8a5f 80462008-01-30 Robert Millan <rmh@aybabtu.com>
8047
8048 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
8049 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
8050 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
8051 (grub_probe_SOURCES): ... to here.
8052
8053 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
8054 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
8055 * conf/i386-ieee1275.rmk: Likewise.
8056 * conf/i386-linuxbios.rmk: Likewise.
8057 * conf/powerpc-ieee1275.rmk: Likewise.
8058
ae5a9cd7 80592008-01-30 Tristan Gingold <gingold@free.fr>
8060
8061 * kern/rescue.c: Silently accept empty lines.
8062
70bc2ef2 80632008-01-29 Bean <bean123ch@gmail.com>
8064
8065 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
8066 (real_code_2): Code cleanup and change comment style.
8067 (move_memory): Avoid using 32-bit address mode.
8068
6a4d50ea 80692008-01-29 Bean <bean123ch@gmail.com>
8070
8071 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
8072 (png_mod_SOURCES): New variable.
8073 (png_mod_CFLAGS): Likewise.
8074 (png_mod_LDFLAGS): Likewise.
8075
8076 * video/readers/png.c: New file.
8077
11cc30ac 80782008-01-28 Robert Millan <rmh@aybabtu.com>
8079
8080 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
8081 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
8082 `ifndef GRUB_MOD_GAP' hack.
8083 * util/elf/grub-mkimage.c (add_segments): Likewise.
8084
3abc589f 80852008-01-27 Robert Millan <rmh@aybabtu.com>
8086
8087 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
8088 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 8089 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 8090
e1907778 80912008-01-27 Robert Millan <rmh@aybabtu.com>
8092
8093 Get grub-emu to build again (including parallel builds).
8094
8095 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
8096 Split into ...
8097 (util/grub-emu.c_DEPENDENCIES): ... this, ...
8098 (normal/execute.c_DEPENDENCIES): ... this, ...
8099 (grub-emu_DEPENDENCIES): ... and this.
8100
8101 * conf/i386-efi.rmk: Likewise.
8102 * conf/i386-linuxbios.rmk: Likewise.
8103 * conf/i386-ieee1275.rmk: Likewise.
8104 * conf/powerpc-ieee1275.rmk: Likewise.
8105 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
8106
2216b101 81072008-01-27 Robert Millan <rmh@aybabtu.com>
8108
8109 * NEWS: Add a few items.
8110
f75172d9 81112008-01-27 Robert Millan <rmh@aybabtu.com>
8112
8113 Fix parallel builds with grub-emu. Based on earlier commit for
8114 grub-probe and grub-setup.
8115
8116 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8117 (util/grub-emu.c_DEPENDENCIES): ... this.
8118 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8119 (util/grub-emu.c_DEPENDENCIES): ... this.
8120 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8121 (util/grub-emu.c_DEPENDENCIES): ... this.
8122 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8123 (util/grub-emu.c_DEPENDENCIES): ... this.
8124 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8125 (util/grub-emu.c_DEPENDENCIES): ... this.
8126
3f51de77 81272008-01-27 Pavel Roskin <proski@gnu.org>
8128
8129 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
8130 to create a gap between _end and the modules added to the image
8131 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
8132 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
8133 * util/elf/grub-mkimage.c (add_segments): Likewise.
8134
2033f53e 81352008-01-26 Pavel Roskin <proski@gnu.org>
8136
8137 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
8138 just return an error.
8139
22da1f6f 81402008-01-26 Bean <bean123ch@gmail.com>
8141
8142 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
8143 (grub_reiserfs_get_item): Save offset of the next item.
8144 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
8145
2a9525e6 81462008-01-25 Robert Millan <rmh@aybabtu.com>
8147
8148 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
8149 make all filesystem sources appear together (possibly fixing omissions
8150 while at it).
8151 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8152 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8153 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8154 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8155
8156 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
8157 add `kern/file.c'.
8158 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
8159 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
8160 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
8161 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
8162
8163 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
8164 (probe): Add a sanity check to make sure of our ability to read
8165 requested files when probing for filesystem type.
8166
8167 * genmk.rb: Update copyright year (2007).
8168
8169 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
8170 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
8171 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
8172 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
8173 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
8174 : Remove function prototypes.
8175
b95f71b5 81762008-01-25 Robert Millan <rmh@aybabtu.com>
8177
8178 Revert my previous commits (based on wrong assumption of how grub_errno
8179 works).
8180
fe6b695a 8181 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 8182 * kern/file.c (grub_file_open): Likewise.
8183
d08bbb49 81842008-01-24 Pavel Roskin <proski@gnu.org>
8185
8186 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
8187 that hang if GRUB tries to setup colors.
8188 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
8189 colors for firmwares that don't support it.
8190 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
8191 Recognize Open Hack'Ware, set flags to work around its
8192 limitations.
8193
605e36ed 81942008-01-24 Robert Millan <rmh@aybabtu.com>
8195
8196 * kern/file.c (grub_file_open): Do not account previous failures of
8197 unrelated functions when grub_errno is checked for.
8198 Reported by Oleg Strikov.
8199
bac332a1 82002008-01-24 Bean <bean123ch@gmail.com>
8201
8202 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
8203 (grub_ufs_sblock): New member volume name.
8204 (grub_ufs_find_file): Fix string copy bug.
8205 (grub_ufs_label): Implement this function properly.
8206
8207 * fs/hfs.c (grub_hfs_cnid_type): New enum.
8208 (grub_hfs_iterate_records): Use the correct file number for extents
8209 and catalog file. Fix problem in next index calculation.
8210 (grub_hfs_find_node): Replace recursive function call with loop.
8211 (grub_hfs_iterate_dir): Replace recursive function call with loop.
8212
15c80c09 82132008-01-23 Robert Millan <rmh@aybabtu.com>
8214
8215 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
8216 `<grub/symbol.h>' and `<grub/multiboot.h>'.
8217 (grub_multiboot2_real_boot): New function prototype.
8218
8219 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
8220 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
8221
8222 * kern/i386/ieee1275/init.c (grub_os_area_addr)
8223 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
8224
305338fd 82252008-01-23 Robert Millan <rmh@aybabtu.com>
8226
8227 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
8228 #ifdef'ed out grub_printf().
8229
3ea52685 82302008-01-23 Robert Millan <rmh@aybabtu.com>
8231
8232 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
8233 grub_dprintf calls, since they make "debug=all" mode unusable.
8234 (grub_console_checkkey): Likewise.
8235
5882ae4b 82362008-01-23 Robert Millan <rmh@aybabtu.com>
8237
8238 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
8239 `term/i386/pc/at_keyboard.c'.
8240 (pkglib_MODULES): Add `serial.mod'.
8241 (serial_mod_SOURCES): New variable.
8242 (serial_mod_CFLAGS): Likewise.
8243 (serial_mod_LDFLAGS): Likewise.
8244
8245 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
8246 `<grub/powerpc/ieee1275/console.h>'.
8247 (grub_keyboard_controller_init): New function prototype.
8248 (grub_console_checkkey): Likewise.
8249 (grub_console_getkey): Likewise.
8250
8251 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
8252 keyboard on i386.
8253
8254 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
8255 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
8256
06ab5303 82572008-01-23 Robert Millan <rmh@aybabtu.com>
8258
8259 * kern/i386/pc/init.c (make_install_device): When memdisk image is
8260 present, "(memdisk)/boot/grub" becomes the default prefix.
8261
8262 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
8263 a memdisk tarball with all the modules. Add --overlay=DIR option that
8264 allows users to overlay additional files into the image.
8265
dbb475a4 82662008-01-23 Robert Millan <rmh@aybabtu.com>
8267
8268 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
8269 and `machine/memory.h'.
8270 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
8271 (_multiboot_mod_SOURCES): New variable.
8272 (_multiboot_mod_CFLAGS): Likewise.
8273 (_multiboot_mod_LDFLAGS): Likewise.
8274 (multiboot_mod_SOURCES): Likewise.
8275 (multiboot_mod_CFLAGS): Likewise.
8276 (multiboot_mod_LDFLAGS): Likewise.
8277
8278 * include/grub/i386/ieee1275/loader.h: New file.
8279
8280 * include/grub/i386/ieee1275/machine.h: Likewise.
8281
8282 * include/grub/i386/ieee1275/memory.h: Likewise.
8283
8284 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
8285 variable declaration.
8286 (grub_os_area_size): Likewise.
8287
8288 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
8289 (grub_lower_mem, grub_upper_mem): New variables.
8290 (grub_stop_floppy): New function (just to make
8291 grub_multiboot2_real_boot() happy).
8292
8293 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
8294 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
8295 (grub_stop): New function.
8296 Include `"../realmode.S"' and `"../loader.S"'.
8297
8298 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
8299 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
8300
8301 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
8302 rely on grub_multiboot2_real_boot() for final boot.
8303
25638629 83042008-01-22 Robert Millan <rmh@aybabtu.com>
8305
8306 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
8307 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
8308 device that doesn't look like an SD card.
8309 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
8310 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
8311 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
8312 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
8313 found.
8314
9dad816d 83152008-01-22 Robert Millan <rmh@aybabtu.com>
8316
8317 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
8318 avoid claiming over our own code.
8319
34842f2d 83202008-01-22 Bean <bean123ch@gmail.com>
8321
8322 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
8323 (jpeg_mod_SOURCES): New variable.
8324 (jpeg_mod_CFLAGS): Likewise.
8325 (jpeg_mod_LDFLAGS): Likewise.
8326
8327 * video/readers/jpeg.c : New file.
8328
44023a28 83292008-01-22 Bean <bean123ch@gmail.com>
8330
8331 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
8332 there are no more items.
8333
bc2d8ac6 83342008-01-21 Robert Millan <rmh@aybabtu.com>
8335
8336 * kern/mm.c (grub_mm_init_region): Improve debug message.
8337
261bd4bc 83382008-01-21 Robert Millan <rmh@aybabtu.com>
8339
8340 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
8341 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
8342 address.
8343 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
8344 a C macro.
8345 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
8346 Indicates start of upper memory.
8347 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
8348 (generate_image): Abort when image size is big enough to corrupt
8349 upper memory.
8350
8351 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
8352 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
8353 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
8354 instead of hardcoding 0xA0000.
8355 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
8356 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
8357 instead of hardcoding 0xA0000.
8358
f970b55e 83592008-01-21 Robert Millan <rmh@aybabtu.com>
8360
8361 * disk/memdisk.c (memdisk_size): New variable.
8362 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
8363 `memdisk_size'.
8364 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
8365 image to dynamic memory.
8366 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
8367 `memdisk_size'. Free memdisk block.
8368
1a8b0526 83692008-01-21 Robert Millan <rmh@aybabtu.com>
8370
8371 Fix detection of very small filesystems (like tar).
8372
8373 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
8374 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
8375 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
8376 a problem with this disk).
8377
6e9b4aab 83782008-01-21 Robert Millan <rmh@aybabtu.com>
8379
8380 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
8381 on grub_biosdisk_rw_standard() error.
8382
0d8837b2 83832008-01-21 Robert Millan <rmh@aybabtu.com>
8384
8385 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
8386 recent changes.
8387 * kern/elf.c: Likewise.
8388 * kern/ieee1275/ieee1275.c: Likewise.
8389 * kern/powerpc/ieee1275/openfw.c: Likewise.
8390 * term/ieee1275/ofconsole.c: Likewise.
8391
ffd36e34 83922008-01-21 Robert Millan <rmh@aybabtu.com>
8393
8394 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
8395
3f0093d0 8396 * include/grub/kernel.h (grub_arch_memdisk_addr)
8397 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 8398
3f0093d0 8399 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
8400 (grub_arch_memdisk_size): ... to here.
ffd36e34 8401
6c391b21 84022008-01-21 Robert Millan <rmh@aybabtu.com>
8403
8404 Mostly based on bugfix from Bean.
8405
8406 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
8407 attribute with hook() parameter.
8408 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
8409 declaration.
8410 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
8411 attribute with hook() parameter.
8412 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
8413 declaration.
8414
55a581dc 84152008-01-21 Robert Millan <rmh@aybabtu.com>
8416
8417 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
8418 (pkglib_MODULES): Add `memdisk.mod'.
8419 (memdisk_mod_SOURCES): New variable.
8420 (memdisk_mod_CFLAGS): Likewise.
8421 (memdisk_mod_LDFLAGS): Likewise.
8422
8423 * disk/memdisk.c: New file.
8424
8425 * include/grub/disk.h (grub_disk_dev_id): Add
8426 `GRUB_DISK_DEVICE_MEMDISK_ID'.
8427
8428 * include/grub/i386/pc/kernel.h
8429 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
8430 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
8431 (grub_kernel_image_size): New variable declaration.
8432 (grub_total_module_size): Likewise.
8433 (grub_memdisk_image_size): Likewise.
8434
8435 * include/grub/i386/pc/memory.h
8436 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
8437
8438 * include/grub/kernel.h: Include `<grub/symbol.h>'.
8439 (grub_arch_memdisk_addr): New variable declaration.
8440 (grub_arch_memdisk_size): Likewise.
8441
8442 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
8443 (grub_arch_memdisk_size): Likewise.
8444
8445 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
8446 (codestart): Replace hardcoded `0x100000' with
8447 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
8448
8449 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
8450 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
8451 not NULL, append the contents of the file it refers to, at the end of
8452 the compressed kernel image. Initialize `grub_memdisk_image_size'
8453 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
8454 (options): Add "memdisk"|'m' option.
8455 (main): Parse --memdisk|-m option, and pass user-provided path as
8456 parameter to generate_image().
8457
3d7f54c9 84582008-01-20 Robert Millan <rmh@aybabtu.com>
8459
8460 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
8461 grub_dprintf() calls from here ...
8462 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
8463
0bf74728 84642008-01-20 Robert Millan <rmh@aybabtu.com>
8465
8466 Fix detection of "real mode" when /options/real-mode? doesn't exist.
8467
8468 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
8469 declaration.
8470 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
8471 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
8472 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 8473 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 8474 property).
8475 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
8476 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
8477
33bf70a7 84782008-01-19 Robert Millan <rmh@aybabtu.com>
8479
fe6b695a 8480 Get rid of confusing function (superseded by
33bf70a7 8481 `grub_ieee1275_get_integer_property')
8482 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
8483 prototype.
8484 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
8485 function.
8486 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
8487 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 8488 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 8489
e2da7d26 84902008-01-19 Robert Millan <rmh@aybabtu.com>
8491
8492 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
8493 command after "shut-down", since implementations differ on which
8494 the command for halt is.
8495
59f1fd8d 84962008-01-19 Robert Millan <rmh@aybabtu.com>
8497
8498 * include/grub/i386/linuxbios/console.h: Add header protection.
8499 (grub_keyboard_controller_init): New function prototype.
8500 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
8501 (KEYBOARD_COMMAND_READ): Likewise.
8502 (KEYBOARD_COMMAND_WRITE): Likewise.
8503 (KEYBOARD_SCANCODE_SET1): Likewise.
8504 (grub_keyboard_controller_write): New function.
8505 (grub_keyboard_controller_read): Likewise.
8506 (grub_keyboard_controller_init): Likewise.
8507
8508 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
8509 (grub_console_init): On coreboot/LinuxBIOS, call
8510 grub_keyboard_controller_init().
8511
5f5a7c15 85122008-01-19 Robert Millan <rmh@aybabtu.com>
8513
8514 PowerPC changes provided by Pavel Roskin.
8515
8516 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
8517 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
8518 don't rely on cmain() doing it.
8519 * kern/i386/ieee1275/startup.S (_start): Store %eax in
8520 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
8521
1210e168 85222008-01-16 Robert Millan <rmh@aybabtu.com>
8523
8524 * include/grub/i386/linuxbios/memory.h
8525 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
8526 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
8527 receive `table_header' as argument. Instead, probe for it in the
8528 known memory ranges where it can be present.
8529 (grub_available_iterate): Do not pass a fixed `table_header' address
8530 to grub_linuxbios_table_iterate().
8531
3d04eab8 85322008-01-15 Robert Millan <rmh@aybabtu.com>
8533
8534 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
8535 * conf/i386-ieee1275.rmk: New file.
8536 * include/grub/i386/ieee1275/console.h: Likewise.
8537 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
8538 * include/grub/i386/ieee1275/kernel.h: Likewise.
8539 * include/grub/i386/ieee1275/time.h: Likewise.
8540 * kern/i386/ieee1275/init.c: Likewise.
8541 * kern/i386/ieee1275/startup.S: Likewise.
8542
d1bc1b73 85432008-01-15 Robert Millan <rmh@aybabtu.com>
8544
8545 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
8546 when pointers are 32-bit (but still do set it to one when they are
8547 64-bit).
8548
66a65807 85492008-01-15 Robert Millan <rmh@aybabtu.com>
8550
8551 * include/grub/ieee1275/ieee1275.h
8552 (grub_ieee1275_get_integer_property): New function prototype.
8553
8554 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
8555 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 8556 grub_ieee1275_get_property() to handle endianness.
66a65807 8557
8558 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
8559 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 8560 where appropriate.
66a65807 8561 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
8562 (grub_map): Likewise.
8563 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
8564
a83ccafd 85652008-01-15 Bean <bean123ch@gmail.com>
8566
8567 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
8568 (grub_script_execute_cmdline): Reset grub_errno.
8569
8570 * normal/main.c (read_config_file): Reset grub_errno.
8571
8572 * normal/parse.y (script_init): New.
8573 (script): Move function and menuentry here.
8574 (delimiter): New.
8575 (command): Add delimiter at the end of command.
8576 (commands): Adjust to match the new command.
8577 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 8578 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 8579 (if): Use the new commands.
8580
8581 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
8582
df6ecfc6 85832008-01-15 Robert Millan <rmh@aybabtu.com>
8584
8585 * normal/menu.c (run_menu): Move timeout message from here ...
8586 (print_timeout): ... to here.
8587 (run_menu): Use print_timeout() once during initial draw to print
8588 the whole message, and again in every clock tick to update only
8589 the number of seconds.
8590
87ae25eb 85912008-01-15 Robert Millan <rmh@aybabtu.com>
8592
8593 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
8594 actual size of `available' from grub_ieee1275_get_property(), and
8595 restrict parsing to that bound.
8596
47bf09a4 85972008-01-15 Christian Franke <franke@computer.org>
8598
8599 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
8600 (argp_program_version): Remove variable.
8601 (argp_program_bug_address): Likewise.
8602 (options): Convert from struct argp_option to struct option.
8603 (struct arguments): Remove.
8604 (parse_opt): Remove.
8605 (usage): New function.
8606 (main): Replace struct args members by simple variables.
8607 Replace argp_parse() by getopt_long().
8608 Add switch to evaluate options.
8609 Add missing "(...)" around root_dev in prefix string.
8610
c86f1469 86112008-01-14 Robert Millan <rmh@aybabtu.com>
8612
8613 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
8614 for grub_ieee1275_exit(), in order to improve portability.
8615
e622c559 86162008-01-14 Robert Millan <rmh@aybabtu.com>
8617
8618 * util/grub.d/10_linux.in (prefix): Define.
8619 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
8620
44cb1ec8 86212008-01-13 Pavel Roskin <proski@gnu.org>
8622
8623 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
8624 grub_errno if no errors have been detected.
8625
1eb8c802 86262008-01-12 Robert Millan <rmh@aybabtu.com>
8627
8628 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
8629 (grub_util_get_dev_abstraction): New function prototype.
8630
8631 * util/getroot.c: Include `<grub/util/getroot.h>'
8632 (grub_util_get_grub_dev): Move detection of abstraction type to ...
8633 (grub_util_get_dev_abstraction): ... here (new function).
8634
8635 * util/grub-probe.c: Convert PRINT_* to an enum. Add
8636 `PRINT_ABSTRACTION'.
8637 (probe): Probe for abstraction type when requested.
8638 (main): Understand `--target=abstraction'.
8639
8640 * util/i386/efi/grub-install.in: Add abstraction module to core
8641 image when it is found to be necessary.
8642 * util/i386/pc/grub-install.in: Likewise.
8643 * util/powerpc/ieee1275/grub-install.in: Likewise.
8644
8645 * util/update-grub_lib.in (font_path): Return system path without
8646 converting to GRUB path.
8647 * util/update-grub.in: Convert system path returned by font_path()
8648 to a GRUB path. Use `grub-probe -t abstraction' to determine what
8649 abstraction module is needed for loading fonts (if any). Export
8650 that as `GRUB_PRELOAD_MODULES'.
8651 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
8652 insmod commands).
8653
52bd3de9 86542008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
8655
8656 Remove some unused code from reiserfs.
f19dbdb7 8657
52bd3de9 8658 * fs/reiserfs.c (struct grub_reiserfs_key)
8659 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
8660 (struct grub_reiserfs_node_body): Removed.
8661 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
8662 Likewise.
8663 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
8664 Likewise.
8665 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
8666 Likewise.
8667 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
8668 Likewise.
8669 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
8670 Likewise.
8671 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
8672 Likewise.
8673 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
8674 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
8675 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
8676
2f80039d 86772008-01-10 Robert Millan <rmh@aybabtu.com>
8678
8679 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
8680 Determines if a file is garbage left by packaging systems, etc.
8681 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
8682 for processing /etc/grub.d scripts.
8683 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
8684 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
8685 as a condition for processing Linux images.
8686
87888032 86872008-01-10 Pavel Roskin <proski@gnu.org>
8688
8689 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
8690 to compile reiserfs.c on PowerPC.
8691
7e54fced 86922008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 8693
8694 * kern/device.c (grub_device_iterate): Do not abort device iteration
8695 when one of the devices cannot be opened.
8696 * kern/disk.c (grub_disk_open): Do not account previous failures of
8697 unrelated functions when grub_errno is checked for.
8698
5aa541e6 86992008-01-08 Robert Millan <rmh@aybabtu.com>
8700
8701 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
8702 `! grub_linux_is_bzimage', change order of address comparison to make
8703 it more intuitive, and improve "too big zImage" error message.
8704
7076340d 87052008-01-08 Robert Millan <rmh@aybabtu.com>
8706
8707 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
8708 `$(update-grub_DATA)'.
8709 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
8710 targets.
8711
9ca70333 87122008-01-07 Robert Millan <rmh@aybabtu.com>
8713
8714 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
8715 which instruction is modified by grub-setup during installation
8716 (since it wasn't obvious by only looking at this file).
8717
38ccf575 87182008-01-07 Robert Millan <rmh@aybabtu.com>
8719
8720 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
8721 listing actual TODO items.
8722
f5db4291 87232008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
8724
868967cf 8725 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
8726 correctly.
8727 (grub_reiserfs_get_key_offset): Likewise.
8728 (grub_reiserfs_set_key_offset): Likewise.
8729 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 8730 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 8731
8732 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
8733 better to remove the bitfield version completely.
f19dbdb7 8734
868967cf 87352008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 8736
f5db4291 8737 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
8738 allocated from the heap, due to the fshelp implementation.
8739 (grub_reiserfs_dir): Free NODE, due to the same reason.
8740
492e6d9d 87412008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
8742
8743 Mostly from Vincent Pelletier:
f19dbdb7 8744
492e6d9d 8745 * fs/reiserfs.c: New file.
f19dbdb7 8746
492e6d9d 8747 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
8748 (reiserfs_mod_SOURCES): New variable.
8749 (reiserfs_mod_CFLAGS): Likewise.
8750 (reiserfs_mod_LDFLAGS): Likewise.
8751
8752 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
8753 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
8754 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
8755 normal/color.c.
8756
9ce3e7c1 87572008-01-06 Robert Millan <rmh@aybabtu.com>
8758
8759 * normal/color.c: Remove `<grub/env.h>'.
8760
f3b58148 87612008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
8762
8763 * include/grub/normal.h: Include <grub/env.h>.
8764
7ac3bcfa 87652008-01-05 Robert Millan <rmh@aybabtu.com>
8766
8767 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
8768 usage example with `(hd0,1)'.
fb358190 8769 Reported by Samuel Thibault.
7ac3bcfa 8770
c8ee99d7 87712008-01-05 Robert Millan <rmh@aybabtu.com>
8772
8773 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
8774 (grub_linux_boot_zimage): Rename to ...
8775 (grub_linux_boot): ... this.
8776 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
8777 (grub_linux_boot_zimage): Conditionalize zImage copy.
8778
8779 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
8780 (grub_linux_boot_bzimage): Remove prototype.
8781 (grub_linux_boot_zimage): Rename to ...
8782 (grub_linux_boot): ... this.
8783
8784 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
8785 (grub_linux_boot): Remove function.
8786
0ece25b1 87872008-01-05 Robert Millan <rmh@aybabtu.com>
8788
8789 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
8790 (grub_env_write_color_highlight): Likewise.
8791 (grub_wait_after_message): Likewise.
8792
8793 * normal/color.c: New file.
8794
8795 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
8796 (normal_mod_DEPENDENCIES): Likewise.
8797
8798 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
8799 (normal_mod_DEPENDENCIES): Likewise.
8800
8801 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
8802 (normal_mod_DEPENDENCIES): Likewise.
8803
8804 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
8805 (normal_mod_DEPENDENCIES): Likewise.
8806
8807 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
8808 for waiting after a message is printed.
8809 * normal/main.c (read_config_file): Likewise.
8810 (grub_normal_init): Register grub_env_write_color_normal() and
8811 grub_env_write_color_highlight() hooks. Mark `color_normal' and
8812 `color_highlight' variables as global.
8813
8814 * normal/menu.c (grub_wait_after_message): New function.
8815 (grub_color_menu_normal): New variable. Replaces ...
8816 (GRUB_COLOR_MENU_NORMAL): ... this macro.
8817 (grub_color_menu_highlight): New variable. Replaces ...
8818 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
8819 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
8820 `GRUB_TERM_COLOR_STANDARD'.
8821 (print_message): Use `grub_setcolorstate' to reload colors. Rename
8822 `normal_code' and `highlight_code' to `old_color_normal' and
8823 `old_color_highlight', respectively.
8824 (grub_menu_init_page): Update colors when drawing the menu, based on
8825 `menu_color_normal' and `menu_color_highlight' variables.
8826 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
8827 a message is printed.
8828
182dd4e5 88292008-01-05 Robert Millan <rmh@aybabtu.com>
8830
8831 * kern/env.c (grub_env_context_open): Propagate hooks for global
8832 variables to new context.
8833
8834 * kern/main.c (grub_set_root_dev): Export `root' variable.
8835
ddf8f6ad 88362008-01-05 Robert Millan <rmh@aybabtu.com>
8837
8838 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 8839 discs unconditionally, since udev and others have options to provide
ddf8f6ad 8840 them.
8841
d8b43d9b 88422008-01-05 Robert Millan <rmh@aybabtu.com>
8843
8844 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
8845
2bff2de3 88462008-01-04 Christian Franke <franke@computer.org>
8847
8848 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
8849 of eisa_mmap.
8850
97eab917 88512008-01-03 Pavel Roskin <proski@gnu.org>
8852
8853 * kern/i386/linuxbios/init.c: Put "void" to all function
8854 declarations with no arguments.
8855 * kern/powerpc/ieee1275/init.c: Likewise.
8856 * term/i386/pc/at_keyboard.c: Likewise.
8857 * term/i386/pc/vga_text.c: Likewise.
8858 * util/grub-mkdevicemap.c: Likewise.
8859
b9416d00 88602008-01-02 Robert Millan <rmh@aybabtu.com>
8861
8862 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
8863 message when loaded image is out of bounds.
8864 (grub_multiboot_load_elf64): Likewise.
8865
92695df9 88662008-01-02 Pavel Roskin <proski@gnu.org>
8867
8868 * util/grub.d/10_linux.in: Try version without ".old" when
8869 looking for initrd. It's better to use initrd from the newer
8870 kernel of the same version than no initrd at all.
8871
d98d9cad 88722008-01-01 Robert Millan <rmh@aybabtu.com>
8873
8874 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
8875
dbfdce36 88762008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
8877
f19dbdb7 8878 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 8879 grub_video_get_active_render_target.
8880 (grub_video_adapter): Added unmap_color and get_active_render_target.
8881
f19dbdb7 8882 * video/video.c: Added grub_video_unmap_color and
dbfdce36 8883 grub_video_get_active_render_target.
8884 (grub_video_get_info): Changed method to accept NULL pointer as an
8885 argument to allow detection of active video adapter.
8886
8887 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
8888 grub_video_vbe_unmap_color_int.
8889 Added grub_video_vbe_unmap_color and
8890 grub_video_vbe_get_active_render_target.
8891 (grub_video_vbe_adapter): Added unmap_color and
8892 get_active_render_target.
8893
f19dbdb7 8894 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 8895 with grub_video_vbe_unmap_color_int.
8896
8897 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
8898 (DEFAULT_NORMAL_COLOR): Likewise.
8899 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
8900 (DEFAULT_FG_COLOR): Removed.
8901 (DEFAULT_BG_COLOR): Likewise.
8902 (DEFAULT_CURSOR_COLOR): Changed value.
8903 (grub_virtual_screen): Added standard_color_setting,
8904 normal_color_setting, highlight_color_setting and term_color.
8905 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
8906 (bitmap_width): Added.
8907 (bitmap_height): Likewise.
8908 (bitmap): Likewise.
8909 (set_term_color): Likewise.
8910 (grub_virtual_screen_setup): Changed to use new terminal coloring
8911 settings.
8912 (grub_gfxterm_init): Added init for bitmap.
8913 (grub_gfxterm_fini): Added destroy for bitmap.
8914 (redraw_screen_rect): Updated to use background bitmap and new
8915 terminal coloring.
8916 (scroll_up): Added optimization for case when there is no bitmap.
8917 (grub_gfxterm_cls): Fixed to use correct background color.
8918 (grub_virtual_screen_setcolorstate): Changed to use new terminal
8919 coloring.
8920 (grub_virtual_screen_setcolor): Likewise.
8921 (grub_virtual_screen_getcolor): Added.
8922 (grub_gfxterm_background_image_cmd): Likewise.
8923 (grub_video_term): Added setcolor and getcolor.
8924 (MOD_INIT): Added registration of background_image command.
8925 (MOD_TERM): Added unregistration for background_image command.
8926
c3c20931 89272007-12-30 Pavel Roskin <proski@gnu.org>
8928
8929 * loader/multiboot_loader.c: Fix multiboot command
8930 unregistration. Fix all typos in the word "multiboot".
8931
df266716 89322007-12-29 Pavel Roskin <proski@gnu.org>
94239199 8933
8934 * util/grub.d/10_linux.in: Refactor search for initrd. Add
8935 support for initrd names used in Fedora.
8936
fc6e896c 89372007-12-26 Bean <bean123ch@gmail.com>
8938
8939 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
8940 (cpio_mod_SOURCES): New variable.
8941 (cpio_mod_CFLAGS): Likewise.
8942 (cpio_mod_LDFLAGS): Likewise.
8943
8944 * fs/cpio.c: New file.
8945
8946 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
8947
8948 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8949
8950 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8951
8952 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8953
533110ad 89542007-12-25 Robert Millan <rmh@aybabtu.com>
8955
8956 * include/grub/term.h (struct grub_term): Add `getcolor' function.
8957 (grub_getcolor): New function.
8958
8959 * kern/term.c (grub_getcolor): New function.
8960 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
8961 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
8962 (print_entry): Set normal and highlight colors to
8963 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
8964 respectively, before printing and restore them to old
8965 values afterwards.
8966 (grub_menu_init_page): Likewise. Fill an additional colored space
8967 that would otherwise be left blank.
8968
8969 * term/efi/console.c (grub_console_getcolor): New function.
8970 (struct grub_console_term.getcolor): New variable.
8971 * term/i386/pc/console.c (grub_console_getcolor): New function.
8972 (struct grub_console_term.getcolor): New variable.
8973 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
8974 (struct grub_console_term.getcolor): New variable.
8975
8976 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
8977 (struct grub_console_term.setcolor): Remove variable.
8978 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
8979 (struct grub_console_term.setcolor): Remove variable.
8980 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
8981 (struct grub_console_term.setcolor): Remove variable.
8982 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
8983 (struct grub_console_term.setcolor): Remove variable.
8984
4931827f 89852007-12-25 Robert Millan <rmh@aybabtu.com>
8986
8987 * configure.ac: Search for possible unifont.hex locations, and
8988 define UNIFONT_HEX if found.
8989
8990 * Makefile.in (UNIFONT_HEX): Define variable.
8991 (DATA): Rename to ...
8992 (PKGLIB): ... this. Update all users.
8993 (PKGDATA): New variable.
8994 (pkgdata_IMAGES): Rename to ...
8995 (pkglib_IMAGES): ... this. Update all users.
8996 (pkgdata_MODULES): Rename to ...
8997 (pkglib_MODULES): ... this. Update all users.
8998 (pkgdata_PROGRAMS): Rename to ...
8999 (pkglib_PROGRAMS): ... this. Update all users.
9000 (pkgdata_DATA): Rename to ...
9001 (pkglib_DATA): ... this. Update all users.
9002 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
9003 (unicode.pff, ascii.pff): New rules.
9004 (all-local): Add `$(PKGDATA)' dependency.
9005 (install-local): Process `$(PKGDATA)'.
9006
9007 * util/update-grub_lib.in (font_path): Search for *.pff files in
9008 a few more locations, including `${pkgdata}'.
9009
57e57e31 90102007-12-23 Robert Millan <rmh@aybabtu.com>
9011
9012 Patch from Bean <bean123ch@gmail.com>:
9013 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
9014 `size'.
9015
4bc72aa9 90162007-12-21 Bean <bean123ch@gmail.com>
9017
9018 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
9019 (ntfscomp_mod_SOURCES): New variable.
9020 (ntfscomp_mod_CFLAGS): Likewise.
9021 (ntfscomp_mod_LDFLAGS): Likewise.
9022
9023 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
9024 (grub_probe_SOURCES): Likewise.
9025 (grub_emu_SOURCES): Likewise.
9026
9027 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9028 (grub_emu_SOURCES): Likewise.
9029
9030 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9031 (grub_emu_SOURCES): Likewise.
9032
9033 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9034 (grub_emu_SOURCES): Likewise.
9035
9036 * fs/ntfs.c (grub_ntfscomp_func): New variable.
9037 (read_run_list): Renamed to grub_ntfs_read_run_list.
9038 (decomp_nextvcn): Moved to ntfscomp.c.
9039 (decomp_getch): Likewise.
9040 (decomp_get16): Likewise.
9041 (decomp_block): Likewise.
9042 (read_block): Likewise.
9043 (read_data): Partially moved to ntfscomp.c.
9044 (fixup): Change unsigned to grub_uint16_t.
9045 (read_mft): Change unsigned long to grub_uint32_t.
9046 (read_attr): Likewise.
9047 (read_data): Likewise.
9048 (read_run_data): Likewise.
9049 (read_run_list): Likewise.
9050 (read_mft): Likewise.
9051
9052 * fs/ntfscomp.c: New file.
9053
9054 * include/grub/ntfs.h: New file.
9055
af680a87 90562007-12-16 Robert Millan <rmh@aybabtu.com>
9057
9058 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
9059 IDE disk check, since Linux is known to support 20 IDE disks.
9060 Reported by Colin Watson.
9061
84be7599 90622007-12-15 Bean <bean123ch@gmail.com>
9063
9064 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
9065 (lnxboot_img_SOURCES): New variable.
9066 (lnxboot_img_ASFLAGS): Likewise.
9067 (lnxboot_img_LDFLAGS): Likewise.
9068
9069 * boot/i386/pc/lnxboot.S: New file.
9070
6af9db01 90712007-11-24 Pavel Roskin <proski@gnu.org>
9072
9073 * configure.ac: Test if '--build-id=none' is supported by the
9074 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
9075 objcopy to generate incorrect binary files (binutils
9076 2.17.50.0.18-1 as shipped by Fedora 8).
9077 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
9078 linking, so that build ID doesn't break the test.
9079
7361cfe6 90802007-11-24 Pavel Roskin <proski@gnu.org>
9081
9082 * include/grub/i386/time.h: use "void" in the argument list
9083 of grub_cpu_idle().
9084 * include/grub/powerpc/time.h: Likewise.
9085 * include/grub/sparc64/time.h: Likewise.
9086
1593e10c 90872007-11-18 Christian Franke <franke@computer.org>
9088
9089 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
9090 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
9091 This fixes the problem that function keys did not work in grub-emu.
9092
3b8db1a8 90932007-11-18 Christian Franke <franke@computer.org>
9094
9095 * disk/host.c (grub_host_open): Remove attribute unused from
9096 name parameter. Add check for "host". This fixes the problem
9097 that grub-emu does not find partitions.
9098
2e29408d 90992007-11-18 Christian Franke <franke@computer.org>
9100
9101 * util/hostfs.c (is_dir): New function.
9102 (grub_hostfs_dir): Handle missing dirent.d_type case.
9103 (grub_hostfs_read): Add missing fseek().
9104 (grub_hostfs_label): Clear label pointer. This fixes a crash
9105 of grub-emu on "ls (host)".
9106
398cd047 91072007-11-18 Christian Franke <franke@computer.org>
9108
9109 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
9110 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
9111 to 64 bit boundary by default.
9112
c405c391 91132007-11-18 Bean <bean123ch@gmail.com>
9114
9115 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
9116 (hexdump_mod_SOURCES): New variable.
9117 (hexdump_mod_CFLAGS): Likewise.
9118 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 9119
c405c391 9120 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9121
9122 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9123
9124 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9125
9126 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9127
9128 * include/grub/hexdump.h: New file.
9129
9130 * commands/hexdump.c: New file.
9131
5cced7fd 91322007-11-10 Robert Millan <rmh@aybabtu.com>
9133
9134 * commands/i386/pc/play.c (beep_off): Switch order of arguments
9135 in grub_outb() calls.
9136 (beep_on): Likewise.
9137
8b714eb0 91382007-11-10 Christian Franke <franke@computer.org>
9139
9140 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
9141 (grub_menu_run): Likewise.
9142
ce0f1839 91432007-11-10 Robert Millan <rmh@aybabtu.com>
9144
9145 * include/grub/i386/efi/machine.h: New file.
9146 * include/grub/i386/linuxbios/machine.h: Likewise.
9147 * include/grub/i386/pc/machine.h: Likewise.
9148 * include/grub/powerpc/ieee1275/machine.h: Likewise.
9149 * include/grub/sparc64/ieee1275/machine.h: Likewise.
9150
9151 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
9152 (serial_hw_io_addr): New variable.
9153 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
9154 instead of `(unsigned short *) 0x400'.
9155
270c237d 91562007-11-10 Bean <bean123ch@gmail.com>
9157
9158 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
9159
a87783bf 91602007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
9161
9162 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
9163 (vga_mod_SOURCES): Added.
9164 (vga_mod_CFLAGS): Likewise.
9165 (vga_mod_LDFLAGS): Likewise.
9166
9167 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
9168 grub_outb() calls.
9169 (set_map_mask): Likewise.
9170 (set_read_map): Likewise.
9171 (set_read_address): Likewise.
9172 (vga_font): Removed variable.
9173 (get_vga_glyph): Removed function.
9174 (invalidate_char): Likewise.
9175 (write_char): Changed to use grub_font_get_glyph() for font
9176 information.
9177 (grub_vga_putchar): Likewise.
9178 (grub_vga_getcharwidth): Likewise.
9179
6433b448 91802007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
9181
9182 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
9183 flags.
9184 (pxeboot_img_LDFLAGS): Likewise.
9185 (diskboot_img_LDFLAGS): Likewise.
9186 (kernel_img_LDFLAGS): Likewise.
9187
49178511 91882007-11-06 Robert Millan <rmh@aybabtu.com>
9189
9190 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
9191 in grub_outb() calls.
9192 (serial_hw_init): Likewise.
9193
53b052de 91942007-11-05 Robert Millan <rmh@aybabtu.com>
9195
9196 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
9197 spaces. Skip non-regular files.
9198
5ab33bba 91992007-11-05 Robert Millan <rmh@aybabtu.com>
9200
9201 * kern/disk.c (grub_disk_firmware_fini)
9202 (grub_disk_firmware_is_tainted): New variables.
9203
9204 * include/grub/disk.h (grub_disk_firmware_fini)
9205 (grub_disk_firmware_is_tainted): Likewise.
9206
9207 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
9208 (grub_disk_biosdisk_fini): ... to here.
9209 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
9210 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
9211 is set. Register grub_disk_biosdisk_fini() in
9212 `grub_disk_firmware_fini'.
9213
9214 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
9215 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
9216 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
9217 to finish existing firmware disk interface.
9218
9219 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
9220 (ata_mod_SOURCES): New variable.
9221 (ata_mod_CFLAGS): Likewise.
9222 (ata_mod_LDFLAGS): Likewise.
9223
0149ab7c 92242007-11-05 Robert Millan <rmh@aybabtu.com>
9225
9226 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
9227 (grub_ata_wait): Reimplement using grub_millisleep().
9228
9229 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
9230 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
9231
be7ac41e 92322007-11-03 Marco Gerards <marco@gnu.org>
9233
9234 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
9235 (CRTC_ADDR_PORT): New macro.
9236 (CRTC_DATA_PORT): Likewise.
9237 (CRTC_CURSOR): Likewise.
9238 (CRTC_CURSOR_ADDR_HIGH): Likewise.
9239 (CRTC_CURSOR_ADDR_LOW): Likewise.
9240 (update_cursor): New function.
9241 (grub_console_real_putchar): Call `update_cursor'.
9242 (grub_console_gotoxy): Likewise.
9243 (grub_console_cls): Set the default color when clearing the
9244 screen.
9245 (grub_console_setcursor): Implemented.
9246
bb06ab2e 92472007-11-03 Marco Gerards <marco@gnu.org>
9248
9249 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
9250 become activate.
9251 (grub_ata_pio_write): Likewise.
9252
9253 (grub_atapi_identify): Wait after issuing an ATA command.
9254 (grub_atapi_packet): Likewise.
9255 (grub_ata_identify): Likewise.
9256 (grub_ata_readwrite): Likewise.
9257
cf8f780b 92582007-11-03 Marco Gerards <marco@gnu.org>
9259
9260 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
9261 (grub_ata_pio_write): Likewise.
9262 (grub_ata_readwrite): Use `grub_error', instead of
9263 returning `grub_errno'.
9264
ed649e54 92652007-11-03 Marco Gerards <marco@gnu.org>
9266
9267 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
9268 grub_ata_pio_write once for every single sector, instead of for
9269 multiple sectors.
9270
ca25d8f0 92712007-10-31 Robert Millan <rmh@aybabtu.com>
9272
9273 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
9274
9275 * conf/i386-linuxbios.rmk: New file.
9276
9277 * kern/i386/pc/hardware.c: Likewise.
9278 * term/i386/pc/at_keyboard.c: Likewise.
9279 * term/i386/pc/vga_text.c: Likewise.
9280
9281 * include/grub/i386/linuxbios/boot.h: Likewise.
9282 * include/grub/i386/linuxbios/console.h: Likewise.
9283 * include/grub/i386/linuxbios/init.h: Likewise.
9284 * include/grub/i386/linuxbios/kernel.h: Likewise.
9285 * include/grub/i386/linuxbios/loader.h: Likewise.
9286 * include/grub/i386/linuxbios/memory.h: Likewise.
9287 * include/grub/i386/linuxbios/serial.h: Likewise.
9288 * include/grub/i386/linuxbios/time.h: Likewise.
9289
9290 * kern/i386/linuxbios/init.c: Likewise.
9291 * kern/i386/linuxbios/startup.S: Likewise.
9292 * kern/i386/linuxbios/table.c: Likewise.
9293
e911ecc1 92942007-10-31 Marco Gerards <marco@gnu.org>
9295
9296 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
9297 (ata_mod_SOURCES): New variable.
9298 (ata_mod_CFLAGS): Likewise.
9299 (ata_mod_LDFLAGS): Likewise.
9300
9301 * disk/ata.c: New file.
9302
9303 * include/grub/disk.h (grub_disk_dev_id): Add
9304 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 9305
7f66d0e0 93062007-10-31 Robert Millan <rmh@aybabtu.com>
9307
9308 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
9309 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
9310
9311 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
9312 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
9313
9314 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
9315 `<grub/types.h>'.
9316
9317 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
9318
5cd7dd46 93192007-10-27 Robert Millan <rmh@aybabtu.com>
9320
3236ca65 9321 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 9322
2ebfc90f 93232007-10-22 Robert Millan <rmh@aybabtu.com>
9324
9325 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
9326 `"../realmode.S"'.
9327 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
9328
73fcb0f3 93292007-10-22 Robert Millan <rmh@aybabtu.com>
9330
9331 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
9332 (pkgdata_MODULES): Add `biosdisk.mod'.
9333 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
9334 variables.
9335
9336 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
9337 (grub_biosdisk_init): Replace with ...
9338 (GRUB_MOD_INIT(biosdisk)): ... this.
9339 (grub_biosdisk_fini): Replace with ...
9340 (GRUB_MOD_FINI(biosdisk)): ... this.
9341
9342 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
9343 (grub_machine_init): Remove call to grub_biosdisk_init().
9344 (grub_machine_fini): Remove call to grub_machine_fini().
9345
9346 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
9347
3381d274 93482007-10-22 Robert Millan <rmh@aybabtu.com>
9349
9350 * include/grub/time.h: New file.
9351 * include/grub/i386/time.h: Likewise.
9352 * include/grub/powerpc/time.h: Likewise.
9353 * include/grub/sparc64/time.h: Likewise.
9354
9355 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
9356 instances to ...
9357 (KERNEL_MACHINE_TIME_HEADER): ... this.
9358 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
9359 instances to ...
9360 (KERNEL_MACHINE_TIME_HEADER): ... this.
9361 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
9362 instances to ...
9363 (KERNEL_MACHINE_TIME_HEADER): ... this.
9364
9365 * kern/i386/efi/init.c: Include `<grub/time.h>'.
9366 (grub_millisleep): New function.
9367 * kern/i386/pc/init.c: Include `<grub/time.h>'.
9368 (grub_millisleep): New function.
9369 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
9370 Remove `grub/machine/time.h' include.
9371 (grub_millisleep): New function.
9372 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
9373 Remove `grub/machine/time.h' include.
9374 (grub_millisleep): New function.
9375
9376 * include/grub/misc.h (grub_div_roundup): New function.
9377
9378 * kern/misc.c: Include `<grub/time.h>'.
9379 (grub_millisleep_generic): New function.
9380
9381 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
9382 Add `time.h'.
9383 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
9384 Add `time.h'.
9385 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
9386 `machine/time.h'. Add `time.h'.
9387 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9388
a39a0312 93892007-10-21 Robert Millan <rmh@aybabtu.com>
9390
9391 * include/grub/misc.h (grub_max): New function.
9392
2aad70e2 93932007-10-21 Robert Millan <rmh@aybabtu.com>
9394
9395 * util/misc.c (grub_util_info): Call fflush() before returning.
9396
54b71c4b 93972007-10-20 Robert Millan <rmh@aybabtu.com>
9398
9399 * genmk.rb (Image): Copy `extra_flags' from here ...
9400 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
9401
9402 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
9403 to `argc' and `args' arguments.
9404
a979f513 94052007-10-17 Robert Millan <rmh@aybabtu.com>
9406
9407 * kern/i386/loader.S: New file.
9408
9409 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
9410 * kern/i386/loader.S (grub_linux_prot_size)... to here.
9411 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
9412 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
9413 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
9414 * kern/i386/loader.S (grub_linux_real_addr)... to here.
9415 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
9416 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
9417 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
9418 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
9419 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
9420 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
9421 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
9422 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
9423
9424 * kern/i386/realmode.S: New file.
9425
9426 * kern/i386/pc/startup.S (protstack): Moved from here ...
9427 * kern/i386/realmode.S (protstack)... to here.
9428 * kern/i386/pc/startup.S (gdt): Moved from here ...
9429 * kern/i386/realmode.S (gdt)... to here.
9430 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
9431 * kern/i386/realmode.S (prot_to_real)... to here.
9432
9433 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
9434 `kern/i386/realmode.S'.
9435
825fc8fd 94362007-10-17 Robert Millan <rmh@aybabtu.com>
9437
9438 * include/grub/i386/loader.h: New file.
9439
9440 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
9441 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
9442 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
9443 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
9444 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
9445 * include/grub/i386/loader.h (grub_linux_prot_size)
9446 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
9447 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
9448 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
9449 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
9450
9451 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
9452
e179b2f4 94532007-10-15 Robert Millan <rmh@aybabtu.com>
9454
9455 * normal/misc.c (grub_normal_print_device_info): Do not probe for
9456 filesystem when dev->disk is unset.
9457 Do probe for filesystem even when dev->disk->has_partitions is set.
9458 In case a filesystem is found, always report it.
9459 In case it isn't, if dev->disk->has_partitions is set, report that
9460 a partition table was found instead of reporting that no filesystem
9461 could be identified.
9462
5db82af6 94632007-10-12 Robert Millan <rmh@aybabtu.com>
9464
9465 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
9466 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
9467
68f6ac74 9468 * include/grub/types.h (grub_host_to_target16): New macro.
9469 (grub_host_to_target32): Likewise.
9470 (grub_host_to_target64): Likewise.
9471 (grub_target_to_host16): Likewise.
9472 (grub_target_to_host32): Likewise.
9473 (grub_target_to_host64): Likewise.
5db82af6 9474
9475 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
9476 Renamed from to ...
9477 (GRUB_MOD_ALIGN): ...this. Update all users.
9478
68f6ac74 9479 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
9480 grub_host_to_target32.
9481 Replace grub_be_to_cpu32 with grub_target_to_host32.
9482 (load_modules): Likewise.
9483 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
9484 Replace grub_be_to_cpu32 with grub_target_to_host32.
9485 Replace grub_cpu_to_be16 with grub_host_to_target16.
9486 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 9487
3cf497cc 94882007-10-12 Robert Millan <rmh@aybabtu.com>
9489
9490 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
9491 * util/elf/grub-mkimage.c: ... here.
9492
9493 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
9494 `util/powerpc/ieee1275/grub-mkimage.c'.
9495
c8cc3692 94962007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 9497
c8cc3692 9498 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
9499 and make it easier to figure out.
9500 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
9501 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
9502 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
9503 leave us with less than HEAP_MIN_SIZE total heap.
9504 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 9505
5c58b791 95062007-10-03 Robert Millan <rmh@aybabtu.com>
9507
9508 * include/grub/i386/io.h: New file.
9509 * commands/i386/pc/play.c (inb): Removed.
9510 (outb): Removed.
9511 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9512 with grub_outb().
afcd2ef8 9513 * term/i386/pc/serial.c (inb): Removed.
9514 (outb): Removed.
9515 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9516 with grub_outb().
9517 * term/i386/pc/vga.c (inb): Removed.
9518 (outb): Removed.
9519 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9520 with grub_outb().
5c58b791 9521
1a477ed6 95222007-10-02 Robert Millan <rmh@aybabtu.com>
9523
9524 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
9525 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9526 Reported by Marcin Kurek.
9527
6b5d80fa 95282007-09-07 Robert Millan <rmh@aybabtu.com>
9529
9530 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
9531 SmartFirmware version updates (as released by Sven Luther), and avoid
9532 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
9533 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
9534 known broken.
9535
5618afbf 95362007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
9537
9538 From Hitoshi Ozeki:
9539 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
9540 when merging two regions.
9541
6139dcd9 95422007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
9543
508e39ee 9544 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
9545 * normal/completion.c (grub_normal_do_completion): Likewise.
9546 Reported by Hitoshi Ozeki.
9547
95482007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 9549
6139dcd9 9550 Do not use devices at boot in chainloading.
f19dbdb7 9551
6139dcd9 9552 * loader/i386/pc/chainloader.c (boot_drive): New variable.
9553 (boot_part_addr): Likewise.
9554 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
9555 with BOOT_DRIVE and BOOT_PART_ADDR.
9556 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
9557 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
9558
38da6516 95592007-08-29 Robert Millan <rmh@aybabtu.com>
9560
9561 Patch from Simon Peter <dn.tlp@gmx.net>:
9562 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
9563 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
9564 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
9565 util/i386/pc/grub-setup.c_DEPENDENCIES.
9566 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
9567 util/grub-probe.c_DEPENDENCIES.
9568 * conf/powerpc-ieee1275.rmk: Likewise.
9569
29d0928c 95702007-08-28 Robert Millan <rmh@aybabtu.com>
9571
9572 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
9573 to tell grub-mkdevicemap how to name devices.
9574 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
9575 feature).
9576
9577 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
9578 util/i386/get_disk_name.c.
9579 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
9580 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
9581 util/ieee1275/get_disk_name.c.
9582
9583 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
9584
9585 * DISTLIST: Add util/i386/get_disk_name.c and
9586 util/ieee1275/get_disk_name.c.
9587
9588 * util/grub-mkdevicemap.c: Replace device naming logic with
9589 grub_util_get_disk_name() calls.
9590
5a0d3cca 95912007-08-20 Robert Millan <rmh@aybabtu.com>
9592
9593 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
9594 (so that it works for both plural and singular quantities).
9595
8b72db2f 95962007-08-05 Robert Millan <rmh@aybabtu.com>
9597
9598 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
9599 so that [xz] isn't taken into account when determining order.
9600
352466bf 96012007-08-02 Marco Gerards <marco@gnu.org>
9602
9603 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
9604 `include/multiboot2.h', `include/grub/elfload.h',
9605 `include/multiboot.h', `include/grub/multiboot.h',
9606 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
9607 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
9608 `kern/elf.c', `loader/multiboot_loader.c',
9609 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
9610 `loader/i386/pc/multiboot2.c',
9611 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
9612 `util/i386/pc/grub-mkrescue.in'. Remove
9613 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
9614 `include/grub/i386/pc/util/biosdisk.h' and
9615 `include/grub/powerpc/ieee1275/multiboot.h'.
9616
8f096014 96172007-08-02 Bean <bean123ch@gmail.com>
9618
9619 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
9620 (ntfs_mod_SOURCES): New variable.
9621 (ntfs_mod_CFLAGS): Likewise.
9622 (ntfs_mod_LDFLAGS): Likewise.
9623
9624 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
9625 (grub_probe_SOURCES): Likewise.
9626 (grub_emu_SOURCES): Likewise.
9627
9628 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
9629 (grub_emu_SOURCES): Likewise.
9630
9631 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
9632 (grub_emu_SOURCES): Likewise.
f19dbdb7 9633
8f096014 9634 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
9635
9636 * fs/ntfs.c: New file.
9637
9959f7db 96382007-08-02 Bean <bean123ch@gmail.com>
9639
9640 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
9641
9642 * file.h (grub_file): Likewise.
9643
9644 * fshelp.h (grub_fshelp_read_file): Likewise.
9645
9646 * util/i386/pc/grub-setup.c (setup): Likewise.
9647 (save_first_sector): Likewise.
9648 (save_blocklists): Likewise.
f19dbdb7 9649
9959f7db 9650 * fs/affs.c (grub_affs_read_file): Likewise.
9651
9652 * fs/ext2.c (grub_ext2_read_file): Likewise.
9653
9654 * fs/fat.c (grub_fat_read_data): Likewise.
9655
9656 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
9657
9658 * fs/hfs.c (grub_hfs_read_file): Likewise.
9659
9660 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
9661
9662 * fs/jfs.c (grub_jfs_read_file): Likewise.
9663
9664 * fs/minix.c (grub_minix_read_file): Likewise.
9665
9666 * fs/sfs.c (grub_sfs_read_file): Likewise.
9667
9668 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 9669
9959f7db 9670 * fs/xfs.c (grub_xfs_read_file): Likewise.
9671
9672 * command/blocklist.c (read_blocklist): Likewise.
9673 (print_blocklist): Likewise.
9674
0a203f83 96752007-08-02 Marco Gerards <marco@gnu.org>
9676
9677 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
9678 `util/hostfs.c'.
9679
9680 * disk/host.c: New file.
9681
9682 * util/hostfs.c: Likewise.
9683
9684 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
9685 return `GRUB_ERR_BAD_FS'.
9686 * fs/sfs.c (grub_sfs_mount): Likewise.
9687 * fs/xfs.c (grub_xfs_mount): Likewise.
9688
9689 * include/grub/disk.h (enum grub_disk_dev_id): Add
9690 `GRUB_DISK_DEVICE_HOST_ID'.
9691
9692 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
9693
e5dfe777 96942007-07-24 Jerone Young <jerone@gmail.com>
9695
f19dbdb7 9696 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 9697 modules for compilation.
9698 * conf/powerpc-ieee1275.rmk: Likewise.
9699
9700 * include/multiboot.h: Move multiboot definitions to one file. Rename
9701 many definitions to not get grub specific.
9702 * include/multiboot2.h: Create header with multiboot 2 definitions.
9703 * include/grub/multiboot.h: Header for grub specific function
9704 prototypes and definitions.
9705 * include/grub/multiboot2.h: Likewise.
9706 * include/grub/multiboot_loader.h: Likewise.
9707 * include/grub/i386/pc/multiboot.h: Removed.
9708 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
9709
9710 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
9711 and 2 to allow for one multiboot and module commands.
9712 * loader/multiboot2.c: Add multiboot2 functionality.
9713 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
9714 and definition names.
9715 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
9716 2 functions.
9717 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
9718 ieee1275 specific multiboot2 code.
9719
9720 * kern/i386/pc/startup.S: Change headers and definition names for
9721 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
9722
daf0f0ba 97232007-07-22 Robert Millan <rmh@aybabtu.com>
9724
9725 * geninitheader.sh: Process file specified in first parameter rather
9726 than hardcoding grub_modules_init.lst.
fe6b695a 9727 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 9728 than hardcoding grub_modules_init.h.
9729
9730 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
9731 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
9732 grub_probe_init.[ch] and grub_setup_init.[ch].
9733
9734 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
9735 grub_modules_init.h with grub_emu_init.h.
9736 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
9737 grub_probe_init.[ch] files.
9738 * conf/i386-efi.rmk: Likewise.
9739 * conf/i386-pc.rmk: Likewise.
9740 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
9741 grub_setup_init.[ch] files.
9742
9743 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
9744 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
9745 to initialize modules rather than a list of hardcoded functions.
9746 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
9747 grub_init_all() to initialize modules rather than a list of hardcoded
9748 functions.
9749
54cdc1cc 97502007-07-22 Robert Millan <rmh@aybabtu.com>
9751
9752 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
9753 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
9754
ad0686cc 97552007-07-22 Robert Millan <rmh@aybabtu.com>
9756
9757 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
9758 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
9759 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
9760 flag when running on SmartFirmware.
9761 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
9762 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
9763 was set.
9764
9765 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
9766 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
9767 rather than decreasing it.
9768
9769 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
9770 there's not enough space to do it, fail in the same way as when it
9771 can't be done because there are no partitions.
9772
9773 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
9774 when nvsetenv failed.
9775
969c02ec 97762007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
9777
9778 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
9779 because this rule is automatically generated.
9780 (grub-mkrescue): Removed for the same reason as above.
9781
5a79f472 97822007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
9783
9784 Migrate to GNU General Public License Version 3.
f19dbdb7 9785
5a79f472 9786 * COPYING: Replaced with the plain text version of GPLv3.
9787
9788 * config.guess: Updated from gnulib.
9789 * config.sub: Likewise.
9790
9791 * geninit.sh: Output a GPLv3 copyright notice.
9792 * geninitheader.sh: Likewise.
9793 * genmodsrc.sh: Likewise.
9794 * gensymlist.sh.in: Likewise.
9795
9796 * boot/i386/pc/boot.S: Upgraded to GPLv3.
9797 * boot/i386/pc/diskboot.S: Likewise.
9798 * boot/i386/pc/pxeboot.S: Likewise.
9799 * commands/blocklist.c: Likewise.
9800 * commands/boot.c: Likewise.
9801 * commands/cat.c: Likewise.
9802 * commands/cmp.c: Likewise.
9803 * commands/configfile.c: Likewise.
9804 * commands/echo.c: Likewise.
9805 * commands/help.c: Likewise.
9806 * commands/ls.c: Likewise.
9807 * commands/search.c: Likewise.
9808 * commands/terminal.c: Likewise.
9809 * commands/test.c: Likewise.
9810 * commands/videotest.c: Likewise.
9811 * commands/i386/cpuid.c: Likewise.
9812 * commands/i386/pc/halt.c: Likewise.
9813 * commands/i386/pc/play.c: Likewise.
9814 * commands/i386/pc/reboot.c: Likewise.
9815 * commands/i386/pc/vbeinfo.c: Likewise.
9816 * commands/i386/pc/vbetest.c: Likewise.
9817 * commands/ieee1275/halt.c: Likewise.
9818 * commands/ieee1275/reboot.c: Likewise.
9819 * commands/ieee1275/suspend.c: Likewise.
9820 * disk/loopback.c: Likewise.
9821 * disk/lvm.c: Likewise.
9822 * disk/raid.c: Likewise.
9823 * disk/efi/efidisk.c: Likewise.
9824 * disk/i386/pc/biosdisk.c: Likewise.
9825 * disk/ieee1275/ofdisk.c: Likewise.
9826 * font/manager.c: Likewise.
9827 * fs/affs.c: Likewise.
9828 * fs/ext2.c: Likewise.
9829 * fs/fat.c: Likewise.
9830 * fs/fshelp.c: Likewise.
9831 * fs/hfs.c: Likewise.
9832 * fs/hfsplus.c: Likewise.
9833 * fs/iso9660.c: Likewise.
9834 * fs/jfs.c: Likewise.
9835 * fs/minix.c: Likewise.
9836 * fs/sfs.c: Likewise.
9837 * fs/ufs.c: Likewise.
9838 * fs/xfs.c: Likewise.
9839 * hello/hello.c: Likewise.
9840 * include/grub/acorn_filecore.h: Likewise.
9841 * include/grub/arg.h: Likewise.
9842 * include/grub/bitmap.h: Likewise.
9843 * include/grub/boot.h: Likewise.
9844 * include/grub/cache.h: Likewise.
9845 * include/grub/device.h: Likewise.
9846 * include/grub/disk.h: Likewise.
9847 * include/grub/dl.h: Likewise.
9848 * include/grub/elfload.h: Likewise.
9849 * include/grub/env.h: Likewise.
9850 * include/grub/err.h: Likewise.
9851 * include/grub/file.h: Likewise.
9852 * include/grub/font.h: Likewise.
9853 * include/grub/fs.h: Likewise.
9854 * include/grub/fshelp.h: Likewise.
9855 * include/grub/gzio.h: Likewise.
9856 * include/grub/hfs.h: Likewise.
9857 * include/grub/kernel.h: Likewise.
9858 * include/grub/loader.h: Likewise.
9859 * include/grub/lvm.h: Likewise.
9860 * include/grub/misc.h: Likewise.
9861 * include/grub/mm.h: Likewise.
9862 * include/grub/net.h: Likewise.
9863 * include/grub/normal.h: Likewise.
9864 * include/grub/parser.h: Likewise.
9865 * include/grub/partition.h: Likewise.
9866 * include/grub/pc_partition.h: Likewise.
9867 * include/grub/raid.h: Likewise.
9868 * include/grub/rescue.h: Likewise.
9869 * include/grub/script.h: Likewise.
9870 * include/grub/setjmp.h: Likewise.
9871 * include/grub/symbol.h: Likewise.
9872 * include/grub/term.h: Likewise.
9873 * include/grub/terminfo.h: Likewise.
9874 * include/grub/tparm.h: Likewise.
9875 * include/grub/types.h: Likewise.
9876 * include/grub/video.h: Likewise.
9877 * include/grub/efi/api.h: Likewise.
9878 * include/grub/efi/chainloader.h: Likewise.
9879 * include/grub/efi/console.h: Likewise.
9880 * include/grub/efi/console_control.h: Likewise.
9881 * include/grub/efi/disk.h: Likewise.
9882 * include/grub/efi/efi.h: Likewise.
9883 * include/grub/efi/pe32.h: Likewise.
9884 * include/grub/efi/time.h: Likewise.
9885 * include/grub/i386/linux.h: Likewise.
9886 * include/grub/i386/setjmp.h: Likewise.
9887 * include/grub/i386/types.h: Likewise.
9888 * include/grub/i386/efi/kernel.h: Likewise.
9889 * include/grub/i386/efi/loader.h: Likewise.
9890 * include/grub/i386/efi/time.h: Likewise.
9891 * include/grub/i386/pc/biosdisk.h: Likewise.
9892 * include/grub/i386/pc/boot.h: Likewise.
9893 * include/grub/i386/pc/chainloader.h: Likewise.
9894 * include/grub/i386/pc/console.h: Likewise.
9895 * include/grub/i386/pc/init.h: Likewise.
9896 * include/grub/i386/pc/kernel.h: Likewise.
9897 * include/grub/i386/pc/loader.h: Likewise.
9898 * include/grub/i386/pc/memory.h: Likewise.
9899 * include/grub/i386/pc/multiboot.h: Likewise.
9900 * include/grub/i386/pc/serial.h: Likewise.
9901 * include/grub/i386/pc/time.h: Likewise.
9902 * include/grub/i386/pc/vbe.h: Likewise.
9903 * include/grub/i386/pc/vbeblit.h: Likewise.
9904 * include/grub/i386/pc/vbefill.h: Likewise.
9905 * include/grub/i386/pc/vbeutil.h: Likewise.
9906 * include/grub/i386/pc/vga.h: Likewise.
9907 * include/grub/ieee1275/ieee1275.h: Likewise.
9908 * include/grub/ieee1275/ofdisk.h: Likewise.
9909 * include/grub/powerpc/libgcc.h: Likewise.
9910 * include/grub/powerpc/setjmp.h: Likewise.
9911 * include/grub/powerpc/types.h: Likewise.
9912 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
9913 * include/grub/powerpc/ieee1275/console.h: Likewise.
9914 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
9915 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
9916 * include/grub/powerpc/ieee1275/loader.h: Likewise.
9917 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
9918 * include/grub/powerpc/ieee1275/time.h: Likewise.
9919 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
9920 * include/grub/sparc64/libgcc.h: Likewise.
9921 * include/grub/sparc64/setjmp.h: Likewise.
9922 * include/grub/sparc64/types.h: Likewise.
9923 * include/grub/sparc64/ieee1275/console.h: Likewise.
9924 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
9925 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
9926 * include/grub/sparc64/ieee1275/time.h: Likewise.
9927 * include/grub/util/biosdisk.h: Likewise.
9928 * include/grub/util/getroot.h: Likewise.
9929 * include/grub/util/lvm.h: Likewise.
9930 * include/grub/util/misc.h: Likewise.
9931 * include/grub/util/raid.h: Likewise.
9932 * include/grub/util/resolve.h: Likewise.
9933 * io/gzio.c: Likewise.
9934 * kern/device.c: Likewise.
9935 * kern/disk.c: Likewise.
9936 * kern/dl.c: Likewise.
9937 * kern/elf.c: Likewise.
9938 * kern/env.c: Likewise.
9939 * kern/err.c: Likewise.
9940 * kern/file.c: Likewise.
9941 * kern/fs.c: Likewise.
9942 * kern/loader.c: Likewise.
9943 * kern/main.c: Likewise.
9944 * kern/misc.c: Likewise.
9945 * kern/mm.c: Likewise.
9946 * kern/parser.c: Likewise.
9947 * kern/partition.c: Likewise.
9948 * kern/rescue.c: Likewise.
9949 * kern/term.c: Likewise.
9950 * kern/efi/efi.c: Likewise.
9951 * kern/efi/init.c: Likewise.
9952 * kern/efi/mm.c: Likewise.
9953 * kern/i386/dl.c: Likewise.
9954 * kern/i386/efi/init.c: Likewise.
9955 * kern/i386/efi/startup.S: Likewise.
9956 * kern/i386/pc/init.c: Likewise.
9957 * kern/i386/pc/lzo1x.S: Likewise.
9958 * kern/i386/pc/startup.S: Likewise.
9959 * kern/ieee1275/ieee1275.c: Likewise.
9960 * kern/powerpc/cache.S: Likewise.
9961 * kern/powerpc/dl.c: Likewise.
9962 * kern/powerpc/ieee1275/cmain.c: Likewise.
9963 * kern/powerpc/ieee1275/crt0.S: Likewise.
9964 * kern/powerpc/ieee1275/init.c: Likewise.
9965 * kern/powerpc/ieee1275/openfw.c: Likewise.
9966 * kern/sparc64/cache.S: Likewise.
9967 * kern/sparc64/dl.c: Likewise.
9968 * kern/sparc64/ieee1275/init.c: Likewise.
9969 * kern/sparc64/ieee1275/openfw.c: Likewise.
9970 * loader/efi/chainloader.c: Likewise.
9971 * loader/efi/chainloader_normal.c: Likewise.
9972 * loader/i386/efi/linux.c: Likewise.
9973 * loader/i386/efi/linux_normal.c: Likewise.
9974 * loader/i386/pc/chainloader.c: Likewise.
9975 * loader/i386/pc/chainloader_normal.c: Likewise.
9976 * loader/i386/pc/linux.c: Likewise.
9977 * loader/i386/pc/linux_normal.c: Likewise.
9978 * loader/i386/pc/multiboot.c: Likewise.
9979 * loader/i386/pc/multiboot_normal.c: Likewise.
9980 * loader/powerpc/ieee1275/linux.c: Likewise.
9981 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
9982 * normal/arg.c: Likewise.
9983 * normal/cmdline.c: Likewise.
9984 * normal/command.c: Likewise.
9985 * normal/completion.c: Likewise.
9986 * normal/execute.c: Likewise.
9987 * normal/function.c: Likewise.
9988 * normal/lexer.c: Likewise.
9989 * normal/main.c: Likewise.
9990 * normal/menu.c: Likewise.
9991 * normal/menu_entry.c: Likewise.
9992 * normal/misc.c: Likewise.
9993 * normal/parser.y: Likewise.
9994 * normal/script.c: Likewise.
9995 * normal/i386/setjmp.S: Likewise.
9996 * normal/powerpc/setjmp.S: Likewise.
9997 * normal/sparc64/setjmp.S: Likewise.
9998 * partmap/acorn.c: Likewise.
9999 * partmap/amiga.c: Likewise.
10000 * partmap/apple.c: Likewise.
10001 * partmap/gpt.c: Likewise.
10002 * partmap/pc.c: Likewise.
10003 * partmap/sun.c: Likewise.
10004 * term/gfxterm.c: Likewise.
10005 * term/terminfo.c: Likewise.
10006 * term/efi/console.c: Likewise.
10007 * term/i386/pc/console.c: Likewise.
10008 * term/i386/pc/serial.c: Likewise.
10009 * term/i386/pc/vesafb.c: Likewise.
10010 * term/i386/pc/vga.c: Likewise.
10011 * term/ieee1275/ofconsole.c: Likewise.
10012 * util/biosdisk.c: Likewise.
10013 * util/console.c: Likewise.
10014 * util/genmoddep.c: Likewise.
10015 * util/getroot.c: Likewise.
10016 * util/grub-emu.c: Likewise.
10017 * util/grub-mkdevicemap.c: Likewise.
10018 * util/grub-probe.c: Likewise.
10019 * util/lvm.c: Likewise.
10020 * util/misc.c: Likewise.
10021 * util/raid.c: Likewise.
10022 * util/resolve.c: Likewise.
10023 * util/update-grub.in: Likewise.
10024 * util/update-grub_lib.in: Likewise.
10025 * util/grub.d/00_header.in: Likewise.
10026 * util/grub.d/10_hurd.in: Likewise.
10027 * util/grub.d/10_linux.in: Likewise.
10028 * util/i386/efi/grub-install.in: Likewise.
10029 * util/i386/efi/grub-mkimage.c: Likewise.
10030 * util/i386/pc/grub-install.in: Likewise.
10031 * util/i386/pc/grub-mkimage.c: Likewise.
10032 * util/i386/pc/grub-mkrescue.in: Likewise.
10033 * util/i386/pc/grub-setup.c: Likewise.
10034 * util/i386/pc/misc.c: Likewise.
10035 * util/powerpc/ieee1275/grub-install.in: Likewise.
10036 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
10037 * util/powerpc/ieee1275/misc.c: Likewise.
10038 * video/bitmap.c: Likewise.
10039 * video/video.c: Likewise.
10040 * video/i386/pc/vbe.c: Likewise.
10041 * video/i386/pc/vbeblit.c: Likewise.
10042 * video/i386/pc/vbefill.c: Likewise.
10043 * video/i386/pc/vbeutil.c: Likewise.
10044 * video/readers/tga.c: Likewise.
10045
3572d015 100462007-07-02 Robert Millan <rmh@aybabtu.com>
10047
10048 * conf/i386-efi.rmk: Replace obsolete reference to
10049 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
10050 with util/getroot.c.
10051 * conf/powerpc-ieee1275.rmk: Likewise.
10052 * conf/sparc64-ieee1275.rmk: Likewise.
10053
10054 * util/grub-emu.c (main): Fix unchecked pointer handling.
10055
2c2a681b 100562007-07-02 Robert Millan <rmh@aybabtu.com>
10057
10058 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
10059 invocation to fail, in order to support partition-less media.
10060
10061 * util/i386/pc/grub-install.in: Likewise.
10062
10063 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
10064 which fs or partmap modules are needed (akin to its sister scripts).
10065
10066 Also use grub-probe to get rid of unportable /proc/mounts check.
10067
10068 Print the same informational message that the other scripts do, before
fe6b695a 10069 exiting.
2c2a681b 10070
6193defe 100712007-06-23 Robert Millan <rmh@aybabtu.com>
10072
fe6b695a 10073 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 10074 a font file can be found and, if so, echo the GRUB path to it.
10075
10076 * util/update-grub.in: Handle multiple terminals depending on user
10077 input, platform availability and font file presence. Propagate
10078 variables of our findings to /etc/grub.d/ children.
10079
10080 * util/grub.d/00_header.in: Handle multiple terminals, based on
10081 environment setup by update-grub.
10082
eface1dc 100832007-06-23 Robert Millan <rmh@aybabtu.com>
10084
ba50d28f 10085 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 10086
bf697e28 100872007-06-21 Robert Millan <rmh@aybabtu.com>
10088
10089 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
10090 indicate end of data section in kernel image.
10091 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
10092 GRUB_KERNEL_MACHINE_DATA_END.
10093
10094 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
10095 space for it.
10096 * kern/i386/efi/startup.S: Likewise.
10097
10098 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
10099 during image generation. Implement --prefix option to override this
10100 patch.
10101 * util/i386/efi/grub-mkimage.c: Likewise.
10102
10103 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
10104 code to make path relative to its root into a separate function.
10105
10106 * util/i386/pc/grub-install.in: Use newly provided
10107 make_system_path_relative_to_its_root() to convert ${grubdir}, then
10108 pass the result to grub-install --prefix.
10109
baa574b4 101102007-06-13 Robert Millan <rmh@aybabtu.com>
10111
10112 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
10113 DEFAULT_DEVICE_MAP.
10114 * util/grub-emu.c: Use above definitions from misc.h instead of
10115 defining them.
10116 * util/grub-mkdevicemap.c: Likewise.
10117 * util/i386/pc/grub-setup.c: Likewise.
10118 * util/grub-probe.c: Likewise.
10119 (probe): Abort with grub_util_error() when either
10120 grub_guess_root_device or grub_util_get_grub_dev fails.
10121
0215dcbf 101222007-06-12 Robert Millan <rmh@aybabtu.com>
10123
10124 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
10125 "pager" assignment.
10126 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
10127 "pcdata".
10128 * util/grub-probe.c (probe): Likewise for "drive_name".
10129
8af2ab7b 101302007-06-11 Robert Millan <rmh@aybabtu.com>
10131
10132 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
10133 not just the cdrom one.
10134
59d31694 101352007-06-11 Robert Millan <rmh@aybabtu.com>
10136
10137 * util/i386/pc/grub-mkrescue.in: Add "set -e".
10138 Add --pkglibdir=DIR option to override pkglibdir.
10139 Mention --image-type=TYPE in help output.
10140 Fix --grub-mkimage (it was a no-op).
fe6b695a 10141 Abort gracefully when no parameter is given.
59d31694 10142
7ee367e4 101432007-06-11 Robert Millan <rmh@aybabtu.com>
10144
10145 * util/i386/pc/grub-mkrescue.in: New file.
10146 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
10147 * Makefile.in: Handle bin_SCRIPTS.
10148
29b0ed46 101492007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
10150
10151 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
10152 list of video modes.
10153
c0f90770 101542007-06-06 Robert Millan <rmh@aybabtu.com>
10155
10156 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
10157 file doesn't exist, or if it is in a filesystem grub can't read.
10158
10159 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
10160 not abort if GRUB_DRIVE could not be defined. Rearrange generated
10161 header comment to fit in 80 columns when the variables are resolved.
10162
10163 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
10164 could be identified by update-grub. Remove redundant check for
fe6b695a 10165 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 10166 handles that).
10167
fb36dc26 101682007-06-04 Robert Millan <rmh@aybabtu.com>
10169
10170 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
10171
10172 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
10173
10174 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
10175
0c68c93e 101762007-06-04 Robert Millan <rmh@aybabtu.com>
10177
10178 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
10179
10180 * include/grub/partition.h: Declare grub_apple_partition_map_init and
10181 grub_apple_partition_map_fini.
10182
10183 * util/biosdisk.c
10184 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
10185 to access >2 TiB disks).
10186
10187 Print disk->total_sectors with %llu instead of %lu, since this
10188 variable is always 64-bit (prevents wrong disk size from being displayed
10189 on either >2 TiB disk or big-endian CPU).
10190
10191 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
10192 into a generic case that supports all (sane) partition maps.
10193
10194 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
10195 breaks big-endian.
10196
10197 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
10198 and grub_apple_partition_map_fini() after that.
10199
0f23eb74 102002007-06-01 Robert Millan <rmh@aybabtu.com>
10201
10202 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
10203
10204 * util/grub.d/00_header.in: Only enable gfxterm when
10205 convert_system_path_to_grub_path() succeeds.
10206
42c71976 102072007-05-20 Robert Millan <rmh@aybabtu.com>
10208
10209 * util/update-grub_lib.in: New file.
10210 * DISTLIST: Add update-grub_lib.in.
10211 * conf/common.rmk: Generate update-grub_lib and install it in
10212 $(lib_DATA).
10213 * Makefile.in: Add install routine for $(lib_DATA).
10214
10215 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
10216 function provided by update-grub_lib to support arbitrary paths of
10217 unifont.pff.
10218 * util/update-grub.in: Use convert_system_path_to_grub_path() to
10219 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
10220
5beb2291 102212007-05-19 Robert Millan <rmh@aybabtu.com>
10222
10223 * commands/i386/cpuid.c: New module.
10224 * DISTLIST: Add it.
10225 * conf/i386-efi.rmk: Enable cpuid.mod.
10226 * conf/i386-pc.rmk: Likewise.
10227
7262eca1 102282007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
10229
10230 * kern/disk.c (grub_disk_read): Check return value of
10231 grub_realloc().
10232
260ba823 102332007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
10234
10235 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
10236 arrays.
10237 * disk/raid.c (grub_raid_open): Likewise.
10238
1ecb6cf2 102392007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
10240
10241 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
10242 stack instead of on the heap.
10243
10244 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
10245 before doing a read on it.
10246
10247 * configure.ac: Only use -fno-stack-protector for the target
10248 environment.
f19dbdb7 10249
21c8cbb1 102502007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
10251
10252 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
10253 __attribute_ ((unused)) to mode_type argument.
10254
10255 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 10256
21c8cbb1 10257 * kern/misc.c (memcmp): Fix prototype.
10258
10259 * include/grub/partition.h [GRUB_UTIL]
10260 (grub_gpt_partition_map_init): Add prototype.
10261 (grub_gpt_partition_map_fini): Likewise.
10262
10263 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
10264 at the right place.
10265
10266 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
10267 (grub_fat_read_data): Likewise.
10268 (grub_fat_find_dir): Likewise.
10269
10270 * font/manager.c (find_glyph): Make table a const.
10271 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 10272
849d55d3 102732007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
10274
10275 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
10276 code, first search for device in /dev/mapper, then in /dev.
10277 (grub_util_get_grub_dev): New function.
10278 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
10279 prototype.
10280 * util/grub-probe.c (probe): Remove check for RAID, call
10281 grub_util_get_grub_dev() instead of
10282 grub_util_biosdisk_get_grub_dev().
10283 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
10284 grub_util_biosdisk_get_grub_dev().
10285 * util/i386/pc/grub-setup.c (main): Likewise.
10286
8fff7c2f 102872007-05-16 Robert Millan <rmh@aybabtu.com>
10288
10289 * DISTLIST: Update for the latest changes.
10290 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
10291 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
10292 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
10293 grub/util/biosdisk.h.
10294 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
10295 grub/util/biosdisk.h.
10296
48e12b52 102972007-05-16 Robert Millan <rmh@aybabtu.com>
10298
10299 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
10300
46b9d128 103012007-05-16 Robert Millan <rmh@aybabtu.com>
10302
10303 * util/i386/efi/grub-install.in: New.
10304 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
10305 newly added grub-install.
10306 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
10307 include.
10308 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
10309 grub/util/biosdisk.h.
10310 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
10311 grub/util/biosdisk.h.
10312
2d1a40a9 103132007-05-16 Robert Millan <rmh@aybabtu.com>
10314
10315 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
10316 * include/grub/util/biosdisk.h: ... here.
10317 * util/i386/pc/biosdisk.c: Moved to ...
10318 * util/biosdisk.c: ... here.
10319 * util/i386/pc/getroot.c: Moved to ...
10320 * util/getroot.c: ... here.
10321 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
10322 * util/grub-mkdevicemap.c: ... here.
10323 * util/i386/pc/grub-probe.c: Moved to ...
10324 * util/grub-probe.c: ... here.
10325
9e26e3bc 103262007-05-15 Robert Millan <rmh@aybabtu.com>
10327
10328 * util/update-grub.in: Remove duplicated line in grub.cfg header
10329 message.
10330
57f96397 103312007-05-13 Robert Millan <rmh@aybabtu.com>
10332
10333 * util/update-grub.in: Fix a few assumptions about the devices holding
10334 /, /boot and /boot/grub being the same.
10335 * util/grub.d/00_header.in: Likewise.
10336 * util/grub.d/10_hurd.in: Likewise.
10337 * util/grub.d/10_linux.in: Likewise.
10338
10339 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
10340 patterns. Use that to define the `.old' suffix as older than `'.
10341
10342 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
10343
10344 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
10345 the grub.cfg header message.
10346
2e610d62 103472007-05-11 Robert Millan <rmh@aybabtu.com>
10348
10349 * util/update-grub.in: Create device.map if it doesn't already exist,
10350 before attempting to run grub-probe.
10351 Check for grub-probe and grub-mkdevicemap with the same code
10352 grub-install is using.
10353 Remove test mode.
10354
3f6a10ef 103552007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
10356
10357 * Makefile.in: Add the datarootdir autoconf variable.
10358
02e7b75e 103592007-05-09 Robert Millan <rmh@aybabtu.com>
10360
10361 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 10362 fail gracefully if dev->disk->partition == NULL.
02e7b75e 10363
75f396cc 103642007-05-07 Robert Millan <rmh@aybabtu.com>
10365
10366 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
10367 determine partition map module.
10368 * util/i386/pc/grub-install.in: Use this feature to decide which
10369 partition module to load, instead of hardcoding pc and gpt.
10370
da65cb36 103712007-05-07 Robert Millan <rmh@aybabtu.com>
10372
10373 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
10374 source directory differs from build directory.
10375
b57d6a91 103762007-05-05 Robert Millan <rmh@aybabtu.com>
10377
10378 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
10379 initialisation.
10380
509d00f1 103812007-05-05 Robert Millan <rmh@aybabtu.com>
10382
10383 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
10384
c48f23ef 103852007-05-05 Robert Millan <rmh@aybabtu.com>
10386
10387 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
10388 command-line arguments via ${GRUB_CMDLINE_LINUX}.
10389
20b97658 103902007-05-05 Robert Millan <rmh@aybabtu.com>
10391
10392 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
10393 (grub_probe_SOURCES): Likewise.
10394 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
10395 GPT and initialize dos_part and bsd_part accordingly.
10396 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
10397 install_bsd_part.
10398 (main): Activate gpt module for use during partition identification,
10399 and deactivate it afterwards.
10400 * util/i386/pc/grub-install.in: Add gpt module to core.img.
10401 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
10402 partition identification, and deactivate it afterwards.
10403
99123174 104042007-05-05 Robert Millan <rmh@aybabtu.com>
10405
10406 * term/i386/pc/console.c (grub_console_fini): Call
10407 grub_term_set_current() before grub_term_unregister().
10408
ebd97f6e 104092007-05-04 Robert Millan <rmh@aybabtu.com>
10410
10411 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
10412 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
10413 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
10414 and update-grub_DATA.
10415 * conf/common.rmk: Build and install update-grub components.
10416 * conf/common.mk: Regenerate.
10417 * util/update-grub.in: New. Core of update-grub.
10418 * util/grub.d/00_header.in: New. Generates grub.cfg header.
10419 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
10420 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
10421 * util/grub.d/README: New. Document grub.d directory layout.
10422
b06a264d 104232007-05-01 Robert Millan <rmh@aybabtu.com>
10424
10425 * util/grub-emu.c: Move initialization functions
10426 grub_util_biosdisk_init() and grub_init_all() before
10427 grub_util_biosdisk_get_grub_dev(), which relies on them.
10428
41f0050e 104292007-04-19 Robert Millan <rmh@aybabtu.com>
10430
10431 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
10432 it is used later.
10433
04582bb3 104342007-04-18 Jerone Young <jerone@gmail.com>
10435
f19dbdb7 10436 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 10437 stanza.
10438
08db4632 104392007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 10440
08db4632 10441 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
10442 continue on and look for device node with real device name.
10443
801b76be 104442007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 10445
fe6b695a 10446 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 10447 ability.
10448 * Makefile.in: Add autoconf package transformation code.
10449 * util/i386/pc/grub-install.in: Likewise.
10450 * util/powerpc/ieee1275/grub-install.in: Likewise.
10451
6795c4e1 104522007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
10453
10454 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
10455 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
10456 (EXT2_REVISION): Likewise.
10457 (EXT2_INODE_SIZE): Likewise.
10458 (struct grub_ext2_block_group): Added a missing member
10459 "used_dirs".
10460 (grub_ext2_read_inode): Divide by the inode size in a superblock
10461 instead of 128 to obtain INODES_PER_BLOCK.
10462 Use the macro EXT2_INODE_SIZE instead of directly using
10463 SBLOCK->INODE_SIZE.
10464
d70af616 104652007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
10466
10467 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
10468 superblock instead of the structure size to compute an
10469 offset. This fixes the problem that GRUB could not read a
10470 filesystem when inode size is different from 128-byte.
10471
3b801603 104722007-03-05 Marco Gerards <marco@gnu.org>
10473
10474 * normal/main.c (read_config_file): When "menu" is not set, create
10475 an initial context.
10476
4785bfe4 104772007-02-21 Hollis Blanchard <hollis@penguinppc.org>
10478
10479 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
10480 (HEAP_LIMIT): New macro.
10481 (grub_claim_heap): Claim memory up to `heaplimit'.
10482
a0cbb023 104832007-02-21 Hollis Blanchard <hollis@penguinppc.org>
10484
10485 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
10486 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
10487 (_start): Likewise.
10488 (grub_arch_modules_addr): Return address after `_end'.
10489 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
10490 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
10491 (add_segments): Calculate `_end' from phdr size and location.
10492 (ALIGN_UP): Moved to ...
10493 * include/grub/misc.h: here.
10494 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
10495 New macro.
10496 (GRUB_IEEE1275_MODULE_BASE): Removed.
10497
fd7d8eba 104982007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10499
10500 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
10501 loop boundary.
10502
9b09e6fc 105032007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10504
10505 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
10506 All users updated.
10507 (grub_elf64_load_hook_t): Likewise.
10508 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
10509 debug output.
10510
3ce27299 105112007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10512
10513 * kern/mm.c: Update copyright.
10514 (grub_mm_debug): Correct syntax error.
10515 (grub_mm_dump_free): New function.
10516 (grub_debug_free): Call `grub_free'.
10517 * include/grub/mm.h: Update copyright.
10518 (grub_mm_dump_free): Add declaration.
10519
077d5fee 105202007-02-12 Hollis Blanchard <hollis@penguinppc.org>
10521
10522 * include/grub/ieee1275/ieee1275.h: Update copyright.
10523 * kern/powerpc/ieee1275/init.c: Likewise.
10524 * kern/powerpc/ieee1275/openfw.c: Likewise.
10525
10526 * loader/powerpc/ieee1275/linux.c: Likewise.
10527 * include/grub/elfload.h: Likewise.
10528 * kern/elf.c: Likewise.
10529 (grub_elf32_load): Pass `base' and `size' parameters. Update all
10530 callers.
10531 (grub_elf64_load): Likewise.
10532 (grub_elf32_load_segment): Move to a nested function.
10533 (grub_elf64_load_segment): Likewise.
10534
dc946850 105352007-02-12 Hollis Blanchard <hollis@penguinppc.org>
10536
10537 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
10538 prototype.
10539 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
10540 (grub_heap_len): Likewise.
10541 (HEAP_SIZE): New macro.
10542 (grub_claim_heap): New function.
10543 (grub_machine_init): Don't claim heap directly. Call
10544 `grub_claim_heap'.
10545 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
10546 (grub_available_iterate): New function.
10547
baa2a121 105482007-02-03 Thomas Schwinge <tschwinge@gnu.org>
10549
10550 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
10551 * configure.ac: Use it for testing the HOST and TARGET compilers.
10552
4fe9862e 105532006-12-13 Thomas Schwinge <tschwinge@gnu.org>
10554
10555 * Makefile.in (enable_grub_emu): New variable.
10556 * configure.ac (--enable-grub-emu): New option.
10557 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
10558 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
10559 * conf/i386-pc.rmk: Likewise.
10560 * conf/powerpc-ieee1275.rmk: Likewise.
10561 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
10562
a8aa5762 105632006-12-12 Marco Gerards <marco@gnu.org>
10564
10565 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
10566
10567 * kern/env.c (grub_env_unset): Don't free the member `value' when
10568 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
10569 pointer.
10570
10571 * normal/main.c (current_menu): Removed.
10572 (free_menu): Unset the `menu' environment variable.
10573 (grub_normal_menu_addentry): Make use of the environment variable
10574 `menu', instead of using the global `current_menu'. Allocate
10575 memory for the sourcecode of this entry.
10576 (read_config_file): New argument `nested', changed all callers.
10577 Only in the case of a new context, initialize a new menu. Set the
10578 `menu' environment variable.
10579 (grub_normal_execute): Don't set and unset the environment
10580 variable `menu' here anymore. Only free the menu when leaving the
10581 context.
10582
10583 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
10584 leak.
10585
957b3a3e 105862006-12-11 Marco Gerards <marco@gnu.org>
10587
10588 * normal/menu_entry.c (run): Fix off by one bug so the last line
10589 is executed. Move the loader check to outside the loop.
10590
ef875714 105912006-12-08 Hollis Blanchard <hollis@penguinppc.org>
10592
10593 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
10594
4e739985 105952006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
10596
10597 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
10598 the number of sectors. Reported by Andrey Shuvikov
10599 <mr_hyro@yahoo.com>.
f19dbdb7 10600
790707f2 106012006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
10602
10603 * kern/disk.c (grub_disk_read): When there is a read error, always
10604 try to read only the necessary data.
f19dbdb7 10605
790707f2 10606 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
10607 disk/raid.c.
10608 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
10609 prototype.
10610 [GRUB_UTIL] (grub_raid_fini): Likewise.
10611 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 10612 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 10613 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
10614 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
10615 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
10616 and grub_raid_fini().
f19dbdb7 10617
03e58196 106182006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
10619
10620 * include/grub/types.h (__unused): Rename to UNUSED.
10621 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
10622 (grub_elf64_size): Likewise.
f19dbdb7 10623
ae4f23bf 106242006-11-03 Hollis Blanchard <hollis@penguinppc.org>
10625
10626 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
10627 grub_error_push and grub_error_pop in the error-handling path.
10628 (grub_elf32_load_segment): Only call grub_file_read with non-zero
10629 length.
10630
2166cc83 106312006-11-03 Hollis Blanchard <hollis@penguinppc.org>
10632
10633 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
10634 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
10635 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10636 (kernel_elf_SOURCES): Likewise.
10637 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
10638 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
10639 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
10640 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
10641 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
10642 (elf_mod_SOURCES): New variable.
10643 (elf_mod_CFLAGS): Likewise.
10644 (elf_mod_LDFLAGS): Likewise.
10645 * include/grub/types.h (__unused): New macro.
10646 * include/grub/elfload.h: New file.
10647 * kern/elf.c: Likewise.
10648 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
10649 (ELF32_LOADMASK): New macro.
10650 (ELF64_LOADMASK): Likewise.
10651 (vmlinux): Removed.
10652 (grub_linux_load32): New function.
10653 (grub_linux_load64): Likewise.
10654 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
10655 Use grub_elf_t instead of grub_file_t.
10656
a09d5aa5 106572006-11-02 Hollis Blanchard <hollis@penguinppc.org>
10658
10659 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
10660 `catch_result' to struct set_color_args.
10661
d976fc51 106622006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
10663
10664 * normal/menu.c: Include grub/script.h.
10665 * normal/menu_entry.c: Likewise.
10666 * include/grub/normal.h: Do not include grub/script.h.
10667
67507549 106682006-10-27 Hollis Blanchard <hollis@penguinppc.org>
10669
10670 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
10671
69203a99 106722006-10-27 Hollis Blanchard <hollis@penguinppc.org>
10673
10674 * kern/disk.c (grub_disk_open): Print debug messages when opening a
10675 disk.
10676 (grub_disk_close): Print debug messages when closing a disk.
10677 (grub_disk_read): Print debug messages when disk read fails.
10678 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
10679 filesystem type.
10680 * kern/partition.c: Include misc.h.
10681 (grub_partition_iterate): Print debug messages when detecting
10682 partition type.
10683
e2b8278c 106842006-10-27 Hollis Blanchard <hollis@penguinppc.org>
10685
10686 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
10687 is negative.
10688 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
10689
97b2f2ff 106902006-10-26 Hollis Blanchard <hollis@penguinppc.org>
10691
10692 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
10693 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
10694
6555d655 106952006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
10696
10697 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
10698 instead of sizeof(lv). Patch by Michael Guntsche.
10699
4d42b77f 107002006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
10701
10702 * disk/lvm.c: Rename VGS to VG_LIST.
10703 (grub_lvm_iterate): Change VGS->LV to VG-LV.
10704 (grub_lvm_open): Likewise.
10705 Thanks to Michael Guntsche for finding this bug.
10706
5d74d927 107072006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
10708
10709 * configure.ac (AC_INIT): Bumped to 1.95.
10710
a1bb27e4 107112006-10-14 Robert Millan <rmh@aybabtu.com>
10712
10713 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
10714 with "/dev/.static/dev/md".
10715
e0994b8b 107162006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
10717
10718 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
10719 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
10720 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
10721 DRIVE_NAME are always freed.
10722
10723 * util/i386/pc/biosdisk.c (make_device_name): Add one into
10724 DOS_PART, as a DOS partition is counted from one instead of zero
10725 now. Reported by Robert Millan.
10726
ddd5cee9 107272006-10-14 Robert Millan <rmh@aybabtu.com>
10728
10729 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
10730 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
10731 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
10732 string returned by grub_guess_root_device.
10733 * util/i386/pc/grub-setup.c: Likewise.
10734 * util/i386/pc/grub-probefs.c: Likewise.
10735
10736 * util/i386/pc/grub-probefs.c: Rename to ...
10737 * util/i386/pc/grub-probe.c: ... this.
10738 * DISTLIST: Remove grub-probefs, add grub-probe.
10739 * conf/i386-efi.rmk: Likewise.
10740 * conf/i386-pc.rmk: Likewise.
10741 * util/i386/pc/grub-install.in: Likewise.
10742
10743 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
10744 choose which information we want to print.
10745
2b002173 107462006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
10747
10748 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
10749 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
10750 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
10751 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
10752 video/readers/tga.c and video/i386/pc/vbeutil.c.
10753
107542006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
10755
10756 Added support for RAID and LVM.
f19dbdb7 10757
2b002173 10758 * disk/lvm.c: New file.
10759 * disk/raid.c: Likewise.
10760 * include/grub/lvm.h: Likewise.
f19dbdb7 10761 * include/grub/raid.h: Likewise.
2b002173 10762 * include/grub/util/lvm.h: Likewise.
10763 * include/grub/util/raid.h: Likewise.
10764 * util/lvm.c: Likewise.
10765 * util/raid.c: Likewise.
10766
10767 * include/grub/disk.h (grub_disk_dev_id): Add
10768 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
10769 (grub_disk_get_size): New prototype.
10770 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
10771 returns a partition.
10772 (grub_disk_get_size): New function.
f19dbdb7 10773
2b002173 10774 * kern/i386/pc/init.c (make_install_device): Copy the prefix
10775 verbatim if grub_install_dos_part is -2.
10776
10777 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
10778 and LVM devices.
10779
10780 * util/i386/pc/grub-setup.c (setup): New argument
10781 MUST_EMBED. Force embedding of GRUB when the argument is
10782 true. Close FILE before returning.
10783 (main): Add support for RAID and LVM.
f19dbdb7 10784
2b002173 10785 * conf/common.rmk: Add RAID and LVM modules.
10786 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
10787 util/lvm.c.
10788 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
10789
10790 * kern/misc.c (grub_strstr): New function.
10791 * include/grub/misc.h (grub_strstr): New prototype.
10792
050548d0 107932006-10-10 Tristan Gingold <tristan.gingold@bull.net>
10794
10795 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
10796
da849d2d 107972006-10-05 Tristan Gingold <tristan.gingold@bull.net>
10798
10799 * kern/misc.c (grub_strtoull): Guess the base only if not
10800 specified.
10801
97b2f2ff 108022006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 10803
10804 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
10805 PowerMac support.
10806
97b2f2ff 108072006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 10808
10809 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
10810
10811 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
10812 Remove `flags' argument. All callers changed.
10813 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
10814 (IEEE1275_IHANDLE_INVALID): New variable.
10815 (IEEE1275_CELL_INVALID): New variable.
10816 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
10817 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
10818 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
10819 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
10820 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
10821 codes from Open Firmware. All callers updated.
10822 (grub_ieee1275_next_property): Directly return Open Firmware return
10823 code.
10824 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
10825 Standardize error checking from `grub_ieee1275_get_property'.
10826 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
10827 `devalias' to `aliases'. Correct comments. Consolidate error paths.
10828
97b2f2ff 108292006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 10830
10831 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
10832 `instance_to_package_args' to `instance_to_path_args'.
10833
10834 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
10835 `grub_ieee1275_chosen'.
10836
10837 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
10838 `grub_ieee1275_interpret'.
10839
97b2f2ff 108402006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 10841
10842 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
10843
97b2f2ff 108442006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 10845
10846 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
10847 (__cmpdi): Likewise.
10848
10849 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
10850 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
10851 `grub_ssize_t'.
10852
02bb8acc 10853 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 10854
10855 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
10856 to type `grub_ssize_t'.
10857 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
10858
7f9a8531 108592006-09-22 Marco Gerards <marco@gnu.org>
10860
10861 * normal/script.c (grub_script_create_cmdmenu): Skip leading
10862 newlines.
10863
b5ef1102 108642006-09-22 Marco Gerards <marco@gnu.org>
10865
10866 * commands/echo.c: New file.
10867
10868 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
10869
10870 * conf/common.rmk (echo_mod_SOURCES): New variable.
10871 (echo_mod_CFLAGS): Likewise.
10872 (echo_mod_LDFLAGS): Likewise.
10873
2cff3677 108742006-09-22 Marco Gerards <marco@gnu.org>
10875
10876 * normal/main.c (get_line): Malloc memory instead of using
10877 preallocated memory. Removed the arguments `cmdline' and
10878 `max_len'. Updated all callers.
10879
6ba4688b 108802006-09-22 Marco Gerards <marco@gnu.org>
10881
10882 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
10883 (normal_mod_DEPENDENCIES): Likewise.
10884
10885 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
10886 (normal_mod_DEPENDENCIES): Likewise.
10887
10888 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
10889
e02ac02c 108902006-09-22 Johan Rydberg <jrydberg@gnu.org>
10891
10892 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
10893 programs.
10894 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
10895 (normal_mod_DEPENDENCIES): Likewise.
10896 * conf/i386-pc.mk: Regenerate.
10897 * conf/i386-efi.mk: Likewise
10898 * conf/common.mk: Likewise.
10899 * conf/powerpc-ieee1275.mk: Likewise.
10900 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 10901
8d252e44 109022006-09-22 Robert Millan <rmh@aybabtu.com>
10903
10904 Sync with i386 version.
10905 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
10906 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
10907
209bf7ac 109082006-09-21 Robert Millan <rmh@aybabtu.com>
10909
10910 Import from GRUB Legacy (lib/device.c):
10911 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
10912 (init_device_map) [__linux__]: Add support for I2O devices.
10913
6b146090 109142006-09-14 Marco Gerards <marco@gnu.org>
10915
10916 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
10917 `-melf_i386'.
10918
e38600a8 109192006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 10920
10921 * util/i386/pc/grub-install.in: Skip menu.lst when removing
10922 /boot/grub/*.lst.
78fa1790 10923
2952da5d 10924 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 10925
2952da5d 10926 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
10927 before adding it to device.map.
10928
01b82a64 109292006-08-15 Johan Rydberg <jrydberg@gnu.org>
10930
fe6b695a 10931 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 10932 compiles a file; using the -MD option.
10933 * conf/common.mk: Regenerate.
10934 * conf/i386-pc.mk: Likewise.
10935 * conf/i386-efi.mk: Likewise.
10936 * conf/powerpc-ieee1275.mk: Likewise.
10937 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 10938
1064790d 109392006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
10940
10941 Move the prototypes of grub_setjmp and grub_longjmp to
10942 cpu/setjmp.h, so that each architecture may specify different
10943 attributes.
f19dbdb7 10944
1064790d 10945 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
10946 (grub_longjmp): Likewise.
10947 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
10948 (grub_longjmp): Likewise.
10949 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
10950 (grub_longjmp): Likewise.
10951
10952 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
10953 [!GRUB_UTIL] (grub_longjmp): Removed.
10954
29dda3ed 109552006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
10956
10957 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
10958 "color!" method does not return any value.
10959
ad2a06ed 109602006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
10961
10962 * include/grub/bitmap.h: New file.
10963
10964 * include/grub/i386/pc/vbeutil.h: Likewise.
10965
10966 * video/bitmap.c: Likewise.
10967
10968 * video/readers/tga.c: Likewise.
10969
10970 * video/i386/pc/vbeutil.c: Likewise.
10971
10972 * commands/videotest.c: Code cleanup and updated to reflect to new
10973 video API.
10974
10975 * term/gfxterm.c: Likewise.
10976
10977 * video/video.c: Likewise.
10978
10979 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
10980 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
10981 (bitmap_mod_SOURCES): New entry.
10982 (bitmap_mod_CFLAGS): Likewise.
10983 (bitmap_mod_LDFLAGS): Likewise.
10984 (tga_mod_SOURCES): Likewise.
10985 (tga_mod_CFLAGS): Likewise.
10986 (tga_mod_LDFLAGS): Likewise.
10987
10988 * include/grub/video.h (grub_video_blit_operators): New enum type.
10989 (grub_video_render_target): Changed as forward declaration and moved
10990 actual definition to be video driver specific.
10991 (grub_video_adapter.blit_bitmap): Added blitting operator.
10992 (grub_video_adapter.blit_render_target): Likewise.
10993 (grub_video_blit_bitmap): Likewise.
10994 (grub_video_blit_render_target): Likewise.
10995
10996 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
10997 driver specific render target definition.
10998 (grub_video_vbe_map_rgba): Added driver internal helper.
10999 (grub_video_vbe_unmap_color): Updated to use
11000 grub_video_i386_vbeblit_info.
11001 (grub_video_vbe_get_video_ptr): Likewise.
11002
11003 * include/grub/i386/pc/vbeblit.h
11004 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
11005 grub_video_i386_vbeblit_info.
11006 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
11007 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
11008 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
11009 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
11010 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
11011 (grub_video_i386_vbeblit_index_index): Likewise.
11012 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
11013 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
11014 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
11015 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
11016 operator.
11017 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
11018 operator.
11019
11020 * video/i386/pc/vbeblit.c: Updated to reflect changes on
11021 include/grub/i386/pc/vbeblit.h.
11022
11023 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
11024 Updated to use grub_video_i386_vbeblit_info.
11025 (grub_video_i386_vbefill_R8G8B8): Likewise.
11026 (grub_video_i386_vbefill_index): Likewise.
11027 (grub_video_i386_vbefill): Added generic filler.
11028
11029 * video/i386/pc/vbefill.c: Updated to reflect changes on
11030 include/grub/i386/pc/vbefill.h.
11031
11032 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
11033 grub_video_i386_vbeblit_info.
11034 (grub_video_vbe_unmap_color): Likewise.
11035 (grub_video_vbe_blit_glyph): Likewise.
11036 (grub_video_vbe_scroll): Likewise.
11037 (grub_video_vbe_draw_pixel): Removed function.
11038 (grub_video_vbe_get_pixel): Likewise.
11039 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
11040 updated code to use it.
11041 (common_blitter): Added common blitter for render target and bitmap.
11042 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
11043 (grub_video_vbe_blit_render_target): Likewise.
11044
bc8c036d 110452006-07-30 Johan Rydberg <jrydberg@gnu.org>
11046
11047 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
11048 is in text mode if there is no console control protocol instance
11049 available.
11050
684a8eff 110512006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11052
11053 * include/grub/video.h: Code cleanup.
11054
11055 * include/grub/i386/pc/vbe.h: Likewise.
11056
11057 * video/i386/pc/vbe.c: Likewise.
11058
11059 * video/i386/pc/vbeblit.c: Likewise.
11060
11061 * video/i386/pc/vbefill.c: Likewise.
11062
11063 * video/video.c: Likewise. Also added more comments.
11064
5915059b 110652006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11066
11067 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
11068 (struct grub_biosdisk_dap): Likewise.
11069
11070 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
11071 linkage settings for all functions.
11072
90ce5d56 110732006-07-12 Marco Gerards <marco@gnu.org>
11074
11075 * configure.ac (--enable-mm-debug): Fix typo.
11076
11077 * genkernsyms.sh.in: Use proper quoting for `CC'.
11078
43e7f879 110792006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
11080
11081 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
11082 (normal_mod_ASFLAGS): Remove "-m32".
11083
4889bdec 110842006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
11085
11086 * util/misc.c: Include config.h.
11087 [!HAVE_MEMALIGN]: Do not include malloc.h.
11088 (grub_memalign): Use posix_memalign, if present. Then, use
11089 memalign, if present. Otherwise, emit an error.
11090
11091 * util/grub-emu.c: Do not include malloc.h.
11092
11093 * include/grub/util/misc.h: Include unistd.h. This is required for
11094 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
11095 D. Eades III <hde@foobar-qux.org>.
11096
11097 * configure.ac (AC_GNU_SOURCE): Added.
11098 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
11099 type.
11100
fd39d4da 111012006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
11102
11103 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
11104 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
11105
b786f3b5 111062006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
11107
11108 * include/grub/types.h (grub_host_addr_t): Rename to
11109 grub_target_addr_t.
11110 (grub_host_off_t): Rename to grub_target_off_t.
11111 (grub_host_size_t): Rename to grub_target_size_t.
11112 (grub_host_ssize_t): Rename to grub_target_ssize_t.
11113 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
11114
11115 * include/grub/kernel.h (struct grub_module_header): Change type
11116 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
11117 (grub_module_info): Likewise.
f19dbdb7 11118
051988bb 111192006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
11120
11121 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
11122 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
11123 Velazquez <jesus.velazquez@gmail.com>.
11124
deae281b 111252006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
11126
11127 Count partitions from 1 instead of 0 in the string representation
11128 of partitions. Still use 0-based internally.
f19dbdb7 11129
deae281b 11130 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
11131 (sun_partition_map_iterate): Use grub_partition_t instead of
11132 struct grub_partition *. Cast DESC->START_CYLINDER to
11133 grub_uint64_t after converting the endian.
11134 (sun_partition_map_probe): Subtract 1 for PARTNUM.
11135 (sun_partition_map_get_name): Add 1 to P->INDEX.
11136
11137 * partmap/pc.c (grub_partition_parse): Subtract 1 for
11138 PCDATA->DOS_PART.
11139 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
11140
11141 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
11142 zero instead of one.
11143 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
11144 (gpt_partition_map_get_name): Add 1 into P->INDEX.
11145
11146 * partmap/apple.c (apple_partition_map_iterate): Change the type
11147 of POS to unsigned.
11148 (apple_partition_map_probe): Subtract 1 for PARTNUM.
11149 (apple_partition_map_get_name): Add 1 into P->INDEX.
11150
11151 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
11152 of POS to unsigned.
11153 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
11154 calculate the offset of a partition.
11155 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
11156 (amiga_partition_map_get_name): Add 1 into P->INDEX.
11157
11158 * partmap/acorn.c (acorn_partition_map_find): Change the type of
11159 SECTOR to grub_disk_addr_t.
11160 (acorn_partition_map_iterate): Likewise.
11161 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
11162 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
11163 top.
11164 (acorn_partition_map_get_name): Add 1 into P->INDEX.
11165
11166 * kern/i386/pc/init.c (make_install_device): Add 1 into
11167 GRUB_INSTALL_DOS_PART.
11168
11169 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
11170 conditional.
11171
524a1e6a 111722006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
11173
11174 Clean up the code to support 64-bit addressing in disks and
11175 files. This change is not enough for filesystems yet.
f19dbdb7 11176
524a1e6a 11177 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
11178 type of "start" to grub_uint64_t.
11179 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
11180 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
11181 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
11182 convert addresses.
11183
11184 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
11185 to grub_disk_addr_t.
11186
11187 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
11188 string.
11189
11190 * partmap/pc.c (pc_partition_map_iterate): Likewise.
11191
11192 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
11193 to char *.
11194
11195 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
11196
11197 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
11198
11199 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
11200
11201 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
11202 to grub_off_t, to detect an error from grub_file_seek.
11203 (grub_multiboot_load_elf32): Likewise.
11204
11205 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
11206 maximum unsigned long value when an overflow is detected.
11207 (grub_strtoull): New function.
11208 (grub_divmod64): Likewise.
11209 (grub_lltoa): use grub_divmod64.
11210
11211 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
11212 grub_disk_addr_t.
11213 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
11214 the pointer to next character. Use grub_strtoull instead of
11215 grub_strtoul.
11216 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
11217 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
11218 respectively.
11219
fe6b695a 11220 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 11221 return value is signed.
11222 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
11223 test if OFFSET is less than zero, as OFFSET is unsigned now.
11224
11225 * kern/disk.c (struct grub_disk_cache): Change the type of
11226 "sector" to grub_disk_addr_t.
11227 (grub_disk_cache_get_index): Change the type of SECTOR to
11228 grub_disk_addr_t. Calculate the hash with SECTOR casted to
11229 unsigned after shifting.
11230 (grub_disk_cache_invalidate): Change the type of SECTOR to
11231 grub_disk_addr_t.
11232 (grub_disk_cache_unlock): Likewise.
11233 (grub_disk_cache_store): Likewise.
11234 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
11235 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
11236 grub_disk_addr_t and grub_uint64_t, respectively.
11237 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
11238 body, as the value of OFFSET is tweaked by
11239 grub_disk_check_range. Change the types of START_SECTOR, LEN and
11240 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
11241 respectively.
11242 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
11243 body, as the value of OFFSET is tweaked by
11244 grub_disk_check_range. Change the types of LEN and N to
11245 grub_size_t.
11246
11247 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
11248 and "saved_offset" to grub_off_t.
11249 (test_header): Cast BUF to char *.
11250 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
11251 to char *.
11252 (grub_gzio_read): Change the types of OFFSET and SIZE to
11253 grub_off_t and grub_size_t, respectively.
11254
11255 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
11256 Removed.
11257 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
11258 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
11259 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
11260 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
11261 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
11262
11263 * include/grub/types.h (grub_off_t): Unconditionally set to
11264 grub_uint64_t.
11265 (grub_disk_addr_t): Changed to grub_uint64_t.
11266
11267 * include/grub/partition.h (struct grub_partition): Change the
11268 types of "start", "len" and "offset" to grub_disk_addr_t,
11269 grub_uint64_t and grub_disk_addr_t, respectively.
11270 (grub_partition_get_start): Return grub_disk_addr_t.
11271 (grub_partition_get_len): Return grub_uint64_t.
11272
11273 * include/grub/misc.h (grub_strtoull): New prototype.
11274 (grub_divmod64): Likewise.
11275
11276 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
11277 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
11278 grub_off_t, respectively.
11279 All callers and references changed.
11280
11281 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
11282 grub_size_t in "read".
11283 All callers and references changed.
11284
11285 * include/grub/file.h (struct grub_file): Change the types of
11286 "offset" and "size" to grub_off_t and grub_off_t,
11287 respectively. Change the type of SECTOR to grub_disk_addr_t in
11288 "read_hook".
11289 (grub_file_read): Change the type of LEN to grub_size_t.
11290 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
11291 grub_off_t.
11292 (grub_file_size): Return grub_off_t.
11293 (grub_file_tell): Likewise.
11294 All callers and references changed.
11295
11296 * include/grub/disk.h (struct grub_disk_dev): Change the types of
11297 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
11298 "write".
11299 (struct grub_disk): Change the type of "total_sectors" to
11300 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 11301 "read_hook".
524a1e6a 11302 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
11303 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
11304 (grub_disk_write): Likewise.
11305 All callers and references changed.
11306
11307 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
11308 char * for grub_strncmp to silence gcc.
11309 (grub_iso9660_mount): Likewise.
11310 (grub_iso9660_mount): Likewise.
11311 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
11312 return statement.
11313 (grub_iso9660_iterate_dir): Likewise.
11314 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
11315
11316 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
11317 LEN to grub_disk_addr_t and grub_size_t, respectively.
11318
11319 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
11320
11321 * fs/jfs.c (grub_jfs_read_file): Likewise.
11322
11323 * fs/minix.c (grub_jfs_read_file): Likewise.
11324
11325 * fs/sfs.c (grub_jfs_read_file): Likewise.
11326
11327 * fs/ufs.c (grub_jfs_read_file): Likewise.
11328
11329 * fs/xfs.c (grub_jfs_read_file): Likewise.
11330
11331 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
11332 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
11333 respectively.
11334
11335 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
11336 BLKNR to -1 instead of returning GRUB_ERRNO.
11337 (grub_ext2_read_file): Change the types of SECTOR and
11338 LEN to grub_disk_addr_t and grub_size_t, respectively.
11339
11340 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
11341 LEN to grub_disk_addr_t and grub_size_t, respectively.
11342
11343 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
11344 grub_file_read.
11345
11346 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
11347 string. Do not cast SECTOR explicitly.
11348
11349 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
11350 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
11351 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
11352 grub_disk_addr_t and grub_size_t, respectively. If the sector is
11353 over 2TB and LBA mode is not supported, raise an error.
11354 (get_safe_sectors): New function.
11355 (grub_biosdisk_read): Use get_safe_sectors.
11356 (grub_biosdisk_write): Likewise.
11357
11358 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
11359 (grub_efidisk_write): Likewise.
11360
11361 * disk/loopback.c (delete_loopback): Cosmetic changes.
11362 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
11363 correctly.
11364 (grub_loopback_open): Likewise.
11365 (grub_loopback_read): Likewise. Also, change the type of POS to
11366 grub_off_t, and fix the usage of grub_memset.
11367
11368 * commands/i386/pc/play.c: Include grub/machine/time.h.
11369
11370 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
11371 print FILE->SIZE.
11372
11373 * commands/configfile.c: Include grub/env.h.
11374
11375 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
11376 GRUB_ERRNO directly instead. Change the type of POS to
11377 grub_off_t. Follow the coding standard.
11378
11379 * commands/blocklist.c: Include grub/partition.h.
11380 (grub_cmd_blocklist): Return an error if the underlying device is
11381 not a disk. Take the starting sector of a partition into account,
11382 if a partition is used.
11383
11384 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
11385 a length field.
11386 (lba_mode): Support 64-bit addresses.
11387 (chs_mode): Likewise.
11388 (copy_buffer): Adapted to the new offsets of a length field and a
11389 segment field.
11390 (blocklist_default_start): Allocate 64-bit space.
11391
11392 * boot/i386/pc/boot.S (force_lba): Removed.
11393 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 11394 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 11395 space.
11396 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
11397 is useless.
11398 (lba_mode): Refactored to support a 64-bit address. More size
11399 optimization.
11400 (setup_sectors): Likewise.
11401
53af98ad 114022006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
11403
11404 * DISTLIST: Added include/grub/i386/linux.h. Removed
11405 include/grub/i386/pc/linux.h
11406
11407 * configure.ac (AC_INIT): Bumped to 1.94.
11408
11409 * config.guess: Updated from gnulib.
11410 * config.sub: Likewise.
11411 * install-sh: Likewise.
11412 * mkinstalldirs: Likewise.
11413
b4c1940a 114142006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
11415
11416 * conf/common.rmk (grub_modules_init.lst): Depended on
11417 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
11418 MODSRCFILES.
11419
11420 * genmk.rb (PModule::rule): Reverted the previous change.
11421
cfca1cfd 114222006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
11423
11424 * conf/common.rmk (grub_modules_init.lst): Depends on
11425 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
11426 that the target does not exist before producing.
11427 (grub_modules_init.h): Remove the target before generating.
11428 (grub_emu_init.c): Likewise.
11429
11430 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
11431
aa6d7826 114322006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
11433
11434 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
11435 for the target-specific tests. Make sure that we also have the
11436 up-to-date target variables for those tests.
11437
26c607b9 114382006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
11439
11440 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
11441 (PModule::rule): Likewise.
11442
0162321a 114432006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
11444
11445 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
11446 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
11447 target-specific flags should be prefixed.
11448 (PModule::rule): Likewise.
11449
6c826348 114502006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
11451
11452 * configure.ac (CMP): Check if cmp is available explicitly.
11453
b977bf01 114542006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
11455
11456 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
11457 (target_cpu): New variable.
11458 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 11459
b977bf01 11460 * util/i386/pc/grub-install.in (host_cpu): Removed.
11461 (target_cpu): New variable.
11462 (pkglibdir): Use target_cpu instead of host_cpu.
11463
11464 * util/genmoddep.c: Removed.
f19dbdb7 11465
b977bf01 11466 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
11467 instead of GRUB_HOST_SIZEOF_VOID_P.
11468 * kern/dl.c: Likewise.
11469
11470 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
11471 ...
11472 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11473 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11474 (GRUB_TARGET_SIZEOF_LONG): ... this.
11475 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11476 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11477 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
11478 to ...
11479 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11480 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11481 (GRUB_TARGET_SIZEOF_LONG): ... this.
11482 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11483 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11484 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
11485 to ...
11486 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11487 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11488 (GRUB_TARGET_SIZEOF_LONG): ... this.
11489 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11490 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11491
11492 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
11493 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
11494 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
11495 instead of GRUB_HOST_SIZEOF_LONG.
11496 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
11497 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
11498 GRUB_CPU_WORDS_BIGENDIAN.
11499 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
11500 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
11501 grub_host_ssize_t.
11502
11503 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
11504 (genmoddep_SOURCES): Likewise.
11505 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
11506 (genmoddep_SOURCES): Likewise.
11507 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
11508 (genmoddep_SOURCES): Likewise.
11509 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
11510 Likewise.
11511 (genmoddep_SOURCES): Likewise.
11512
11513 * genmoddep.awk: New file.
11514
11515 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
11516 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
11517 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
11518 (PModule::rule): Likewise.
11519 (Program::rule): Likewise.
11520 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
11521 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
11522 respectively.
11523
11524 * configure.ac: Rewritten intensively to use host and target
11525 instead of build and host, respectively.
11526
11527 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
11528 (host_cpu): Removed.
11529 (target_cpu): New variable.
11530 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
11531 (BUILD_CC): Removed.
11532 (BUILD_CFLAGS): Likewise.
11533 (BUILD_CPPFLAGS): Likewise.
11534 (TARGET_CC): New variable.
11535 (TARGET_CFLAGS): Likewise.
11536 (TARGET_CPPFLAGS): Likewise.
11537 (TARGET_LDFLAGS): Likewise.
11538 (AWK): Likewise.
11539 (include): Use target_cpu instead of host_cpu.
11540 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 11541
b977bf01 11542 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
11543
f09771a1 115442006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
11545
11546 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
11547 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
11548 field 'false' to 'exec_on_false'.
11549 (grub_script_create_cmdif): Renamed argument names to reflect above
11550 changes.
11551
11552 * normal/execute.c (grub_script_execute_cmdif): Likewise.
11553
11554 * normal/script.c (grub_script_create_cmdif): Likewise.
11555
118f4fb3 115562006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
11557
11558 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
11559 top.
11560 (grub_hfsplus_btree_recptr): Likewise.
11561 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
11562 FILEBLOCK both to pass a block number and store next block
11563 number.
11564 (grub_hfsplus_read_block): Rewritten heavily to support an extent
11565 overflow file correctly. Specify errors appropriately, because
11566 fshelp expects that GRUB_ERRNO is set when fails. Reuse
11567 grub_hfsplus_btree_recptr to get the pointer to a found key.
11568 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
11569 is found.
11570
11571 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
11572 linux.mod.
11573 (_linux_mod_SOURCES): New variable.
11574 (_linux_mod_CFLAGS): Likewise.
11575 (_linux_mod_LDFLAGS): Likewise.
11576 (linux_mod_SOURCES): Likewise.
11577 (linux_mod_CFLAGS): Likewise.
11578 (linux_mod_LDFLAGS): Likewise.
11579
11580 * DISTLIST: Added loader/i386/efi/linux.c,
11581 loader/i386/efi/linux_normal.c and
11582 include/grub/i386/efi/loader.h.
11583
11584 * loader/i386/efi/linux.c: New file.
11585 * loader/i386/efi/linux_normal.c: Likewise.
11586 * include/grub/i386/efi/loader.h: Likewise.
11587
89a7d726 115882006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
11589
11590 * commands/blocklist.c: New file.
11591
11592 * DISTLIST: Added commands/blocklist.c.
11593
11594 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 11595 color for the background, and a darker color for the foreground.
89a7d726 11596 (grub_console_checkkey): Return READ_KEY.
11597 (grub_console_cls): Set the background to
11598 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
11599
11600 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
11601
11602 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
11603 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
11604
11605 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
11606 prototype.
11607
11608 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
11609 BG. The spec is wrong again.
11610
11611 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
11612 prototype.
11613 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
11614
11615 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11616 commands/blocklist.c.
11617 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 11618
89a7d726 11619 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
11620 (blocklist_mod_SOURCES): New variable.
11621 (blocklist_mod_CFLAGS): Likewise.
11622 (blocklist_mod_LDFLAGS): Likewise.
11623
75c8f258 116242006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
11625
11626 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
11627 duplication.
11628 (lba_mode): Use %eax more intensively to reduce the code size.
11629
da2eb181 116302006-05-20 Marco Gerards <marco@gnu.org>
11631
11632 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
11633
11634 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
11635 for `menuentry'.
11636 (script): Accept leading newlines.
11637 (newlines): New rule to describe 0 or more newlines.
11638 (commands): Accept `command' with trailing newline. Fixed the
11639 order in which arguments were passed to `grub_script_add_cmd'.
11640 Accept commands separated by newlines.
11641 (function): Changed to accept newlines.
11642 (menuentry) Rewritten.
11643
11644 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
11645 front of the list, instead of to the end.
11646
577b4050 116472006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
11648
11649 * util/i386/pc/grub-install.in (bindir): New variable.
11650 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
11651 Shaver <lbgwjl@gmail.com>.
11652
0d6e1189 116532006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
11654
11655 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
11656 grub/machine/linux.h
11657 * loader/i386/pc/linux.c: Likewise.
11658
11659 * include/grub/i386/pc/linux.h: Moved to ...
11660 * include/grub/i386/linux.h: ... here.
11661
11662 * include/grub/i386/linux.h (struct linux_kernel_params): New
11663 struct.
f19dbdb7 11664
31b86e9f 116652006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
11666
11667 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
11668 checking.
11669 (grub_video_vbe_blit_glyph): Likewise.
11670 (grub_video_vbe_blit_bitmap): Likewise.
11671 (grub_video_vbe_blit_render_target): Likewise.
11672
83b984de 116732006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
11674
11675 * configure.ac (--with-platform): Properly quote the square
11676 brackets.
11677
5f0413bd 116782006-05-08 Marco Gerards <marco@gnu.org>
11679
11680 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
11681 this...
11682 (kernel_elf_HEADERS): ...to this. Updated all users.
11683 (grubof_symlist.c): Renamed from this...
11684 (kernel_elf_symlist.c): ...to this. Updated all users.
11685 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
11686 (grubof_SOURCES): Renamed from this...
11687 (kernel_elf_SOURCES): ...to this.
11688 (grubof_HEADERS): Renamed from this...
11689 (kernel_elf_HEADERS): ...to this.
11690 (grubof_CFLAGS): Renamed from this...
11691 (kernel_elf_CFLAGS): ...to this.
11692 (grubof_ASFLAGS): Renamed from this...
11693 (kernel_elf_ASFLAGS): ...to this.
11694 (grubof_LDFLAGS): Renamed from this...
11695 (kernel_elf_LDFLAGS): ...to this.
11696
11697 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
11698 this...
11699 (kernel_elf_HEADERS): ...to this. Updated all users.
11700 (grubof_symlist.c): Renamed from this...
11701 (kernel_elf_symlist.c): ...to this. Updated all users.
11702 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
11703 (grubof_SOURCES): Renamed from this...
11704 (kernel_elf_SOURCES): ...to this.
11705 (grubof_HEADERS): Renamed from this...
11706 (kernel_elf_HEADERS): ...to this.
11707 (grubof_CFLAGS): Renamed from this...
11708 (kernel_elf_CFLAGS): ...to this.
11709 (grubof_ASFLAGS): Renamed from this...
11710 (kernel_elf_ASFLAGS): ...to this.
11711 (grubof_LDFLAGS): Renamed from this...
11712 (kernel_elf_LDFLAGS): ...to this.
11713
11714 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
11715 `kernel.elf' instead of `grubof'.
11716
05568c2e 117172006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
11718
11719 Add --with-platform to configure. Use pkglibdir instead of
11720 pkgdatadir. This is reported by Roger Leigh.
11721
11722 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
11723 (host_vendor): Likewise.
11724 (host_os): Likewise.
11725 (pkgdatadir): Likewise.
11726 (platform): New variable.
11727 (pkglibdir): Likewise.
11728 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 11729
05568c2e 11730 * util/i386/pc/grub-install.in (datadir): Removed.
11731 (host_vendor): Likewise.
11732 (host_os): Likewise.
11733 (pkgdatadir): Likewise.
11734 (platform): New variable.
11735 (pkglibdir): Likewise.
11736 Use PKGLIBDIR instead of PKGDATADIR.
11737
11738 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
11739 instead of GRUB_DATADIR.
11740 (main): Likewise.
11741 * util/i386/pc/grub-mkimage.c (usage): Likewise.
11742 (main): Likewise.
11743 * util/i386/efi/grub-mkimage.c (usage): Likewise.
11744 (main): Likewise.
11745
11746 * configure.ac (--with-platform): New option.
11747 Use PLATFORM instead of HOST_VENDOR to specify a platform.
11748
11749 * Makefile.in: Include a makefile based on PLATFORM instead of
11750 HOST_VENDOR.
11751 (pkgdatadir): Not appended by the machine type.
11752 (pkglibdir): Appended by the machine type.
11753 (host_vendor): Removed.
11754 (platform): New variable.
11755 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
11756 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
11757 (uninstall): Likewise.
11758
4e93851c 117592006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
11760
11761 Use the environment context in the menu. Remove the commands
11762 "default" and "timeout", and use variables instead.
f19dbdb7 11763
4e93851c 11764 * normal/menu.c: Include grub/env.h.
11765 (print_entry): Cast TITLE to silence gcc.
11766 (get_timeout): New function.
11767 (set_timeout): Likewise.
11768 (get_entry_number): Likewise.
11769 (run_menu): Use a default entry, a fallback entry and a timeout
11770 in the environment variables "default", "fallback" and
11771 "timeout". Also, tweak the default entry if it is not within the
11772 current menu entries.
11773 (grub_menu_run): Use a fallback entry in the environment variable
11774 "fallback".
11775
11776 * normal/main.c (read_config_file): Do not initialize
11777 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
11778 NEWMENU->TIMEOUT.
11779 (grub_normal_execute): Use a data slot to store the menu.
11780
11781 * include/grub/normal.h (struct grub_menu): Removed default_entry,
11782 fallback_entry and timeout.
11783 (struct grub_menu_list): Removed.
11784 (grub_menu_list_t): Likewise.
11785 (struct grub_context): Likewise.
11786 (grub_context_t): Likewise.
11787 (grub_context_get): Likewise.
11788 (grub_context_get_current_menu): Likewise.
11789 (grub_context_push_menu): Likewise.
11790 (grub_context_pop_menu): Likewise.
11791 (grub_default_init): Likewise.
11792 (grub_default_fini): Likewise.
11793 (grub_timeout_init): Likewise.
11794 (grub_timeout_fini): Likewise.
11795
11796 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
11797 and timeout.mod.
11798 (normal_mod_SOURCES): Removed normal/context.c.
11799
11800 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
11801 commands/default.c, commands/timeout.c and normal/context.c.
11802 (normal_mod_SOURCES): Removed normal/context.c.
11803
11804 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
11805 commands/timeout.c and normal/context.c.
11806 (normal_mod_SOURCES): Removed normal/context.c.
11807
11808 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
11809 commands/default.c, commands/timeout.c and normal/context.c.
11810 (normal_mod_SOURCES): Removed normal/context.c.
11811
11812 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
11813 timeout.mod.
11814 (default_mod_SOURCES): Removed.
11815 (default_mod_CFLAGS): Likewise.
11816 (default_mod_LDFLAGS): Likewise.
11817 (timeout_mod_SOURCES): Removed.
11818 (timeout_mod_CFLAGS): Likewise.
11819 (timeout_mod_LDFLAGS): Likewise.
11820
11821 * DISTLIST: Removed commands/default.c, commands/timeout.c and
11822 normal/context.c.
11823
11824 * commands/default.c: Removed.
11825 * commands/timeout.c: Likewise.
11826 * normal/context.c: Likewise.
11827
1eb9cc1d 118282006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
11829
11830 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
11831
385bd9c1 118322006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
11833
11834 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
11835 "next" to "prev" for readability.
11836 (struct grub_env_sorted_var): New struct.
11837 (grub_env_context): Renamed to ...
11838 (initial_context): ... this.
11839 (grub_env_var_context): Renamed to ...
11840 (current_context): ... this.
11841 (grub_env_find): Look only at CURRENT_CONTEXT.
11842 (grub_env_context_open): Rewritten to copy exported variables from
11843 previous context.
11844 (grub_env_context_close): Rewritten according to the new
11845 scheme. Also, add an assertion to prevent the initial context from
11846 removed.
11847 (grub_env_insert): Removed the code for the sorted list.
11848 (grub_env_remove): Likewise.
11849 (grub_env_export): Simply mark the variable with
11850 GRUB_ENV_VAR_GLOBAL.
11851 (grub_env_set): A cosmetic change for naming consistency.
11852 (grub_env_get): Likewise.
11853 (grub_env_unset): Likewise.
11854 (grub_env_iterate): Rewritten to sort variables within this
11855 function.
11856 (grub_register_variable_hook): Fixed for naming consistency. Call
11857 grub_env_find again, only if NAME is not found at the first time.
11858 (mangle_data_slot_name): New function.
11859 (grub_env_set_data_slot): Likewise.
11860 (grub_env_get_data_slot): Likewise.
11861 (grub_env_unset_data_slot): Likewise.
11862
11863 * include/grub/env.h (grub_env_var_type): New enum.
11864 (GRUB_ENV_VAR_LOCAL): New constant.
11865 (GRUB_ENV_VAR_GLOBAL): Likewise.
11866 (GRUB_ENV_VAR_DATA): Likewise.
11867 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
11868 "type".
11869 (grub_env_set): Replace VAR with NAME for consistency.
11870 (grub_register_variable_hook): Likewise.
11871 (grub_env_export): Specify the name of the argument.
11872 (grub_env_set_data_slot): New prototype.
11873 (grub_env_get_data_slot): Likewise.
11874 (grub_env_unset_data_slot): Likewise.
11875
7f362539 118762006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
11877
11878 Extend the loader so that GRUB can accept a loader which comes
11879 back to GRUB when a loaded image exits. Also, this change adds
11880 support for a chainloader on EFI.
f19dbdb7 11881
7f362539 11882 * term/efi/console.c: Include grub/misc.h.
11883 (grub_console_checkkey): Display a scan code on the top for
11884 debugging. This will be removed once the EFI port gets stable.
11885 Correct the scan code mapping.
11886
11887 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
11888 allocate memory from larger regions, in order to reduce the number
11889 of allocated regions. Otherwise, the MacOSX loader panics.
11890 (filter_memory_map): Avoid less than 1MB for compatibility with
11891 other loaders.
11892 (add_memory_regions): Allocate from the tail of a region, if
11893 possible, to avoid allocating a region near to 1MB, for the MacOSX
11894 loader.
11895
11896 * kern/efi/init.c (grub_efi_set_prefix): Specify
11897 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
11898
11899 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
11900 argument IMAGE_HANDLE and specify it to get a loaded image.
11901 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
11902 grub_efi_get_loaded_image.
fe6b695a 11903 (grub_efi_get_filename): Divide the length by the size of
7f362539 11904 grub_efi_char16_t.
11905 (grub_efi_get_device_path): New function.
11906 (grub_efi_print_device_path): Print End Device Path nodes. Divide
11907 the length by the size of grub_efi_char16_t for a file path device
11908 path node.
11909
11910 * kern/loader.c (grub_loader_noreturn): New variable.
11911 (grub_loader_set): Accept a new argument NORETURN. Set
11912 GRUB_LOADER_NORETURN to NORETURN.
11913 All callers changed.
11914 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
11915 grub_machine_fini.
11916
11917 * include/grub/efi/efi.h (grub_efi_get_device_path): New
11918 prototype.
11919 (grub_efi_get_loaded_image): Take an argument to specify an image
11920 handle.
11921
11922 * include/grub/loader.h (grub_loader_set): Added one more argument
11923 NORETURN.
11924
11925 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
11926 instead of grub_efi_open_protocol.
11927 (grub_efidisk_get_device_name): Likewise.
11928 (grub_efidisk_close): Print a newline.
11929 (grub_efidisk_get_device_handle): Fixed to use
11930 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
11931 GRUB_EFI_DEVICE_PATH_TYPE.
11932
11933 * disk/efi/efidisk.c (device_path_guid): Moved to ...
11934 * kern/efi/efi.c (device_path_guid): ... here.
11935
11936 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
11937 chain.mod.
11938 (kernel_mod_HEADERS): Added efi/disk.h.
11939 (_chain_mod_SOURCES): New variable.
11940 (_chain_mod_CFLAGS): Likewise.
11941 (_chain_mod_LDFLAGS): Likewise.
11942 (chain_mod_SOURCES): Likewise.
11943 (chain_mod_CFLAGS): Likewise.
11944 (chain_mod_LDFLAGS): Likewise.
11945
11946 * DISTLIST: Added include/grub/efi/chainloader.h,
11947 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
11948
11949 * include/grub/efi/chainloader.h: New file.
11950 * loader/efi/chainloader.c: Likewise.
11951 * loader/efi/chainloader_normal.c: Likewise.
11952
c0111d6e 119532006-04-30 Marco Gerards <marco@gnu.org>
11954
11955 * commands/configfile.c (grub_cmd_source): New function.
11956 (GRUB_MOD_INIT): Register the commands `source' and `.'.
11957 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
11958
df5341da 119592006-04-30 Marco Gerards <marco@gnu.org>
11960
11961 * normal/execute.c (grub_script_execute_cmd): Change the return
11962 type to `grub_err_t'. Correctly return the error.
11963 (grub_script_execute_cmdline): In case a command line is not a
11964 command or a function, try to interpret it as an assignment.
11965
f85934bd 119662006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
11967
11968 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
11969 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
11970 skip a node whose name is obviously invalid as UTF-16,
11971 i.e. contains a NUL character. Stop the iteration when the last
11972 directory entry is found. Instead of using the return value of
11973 grub_hfsplus_btree_iterate_node, store the value in RET and use
11974 it, because the iterator can be stopped by the last directory
11975 entry.
11976
8f8a2cf8 119772006-04-30 Marco Gerards <marco@gnu.org>
11978
11979 * include/grub/env.h (grub_env_export): New prototype. Reported
11980 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
11981
a27e84ce 119822006-04-30 Marco Gerards <marco@gnu.org>
11983
11984 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
11985 size of the extents in a catalog file record.
11986
eaef0553 119872006-04-29 Marco Gerards <marco@gnu.org>
11988
11989 * commands/configfile.c (grub_cmd_configfile): Execute the
11990 configfile within its own context.
11991
11992 * include/grub/env.h (grub_env_context_open): New prototype.
11993 (grub_env_context_close): Likewise.
11994
11995 * kern/env.c (grub_env): Removed.
11996 (grub_env_sorted): Likewise.
11997 (grub_env_context): New variable.
11998 (grub_env_var_context): Likewise.
11999 (grub_env_find): Search both the active context and the global
12000 context.
12001 (grub_env_context_open): New function.
12002 (grub_env_context_close): Likewise.
12003 (grub_env_insert): Likewise.
12004 (grub_env_remove): Likewise.
12005 (grub_env_export): Likewise.
12006 (grub_env_set): Changed to use helper functions to avoid code
12007 duplication.
12008 (grub_env_iterate): Rewritten so both the current context and the
12009 global context are being used.
12010
12011 * normal/command.c (export_command): New function.
12012 (grub_command_init): Register the `export' function.
12013
7b455f4d 120142006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
12015
12016 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
12017 explicitly to suppress gcc's warnings.
12018 * fs/fat.c (grub_fat_find_dir): Likewise.
12019 (grub_fat_label): Likewise.
12020 * fs/xfs.c (grub_xfs_read_inode): Likewise.
12021 (grub_xfs_mount): Likewise.
12022 (grub_xfs_label): Likewise.
12023 * fs/affs.c (grub_affs_mount): Likewise.
12024 (grub_affs_label): Likewise.
12025 (grub_affs_iterate_dir): Likewise.
12026 * fs/sfs.c (grub_sfs_mount): Likewise.
12027 (grub_sfs_iterate_dir): Likewise.
12028 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
12029 * fs/hfs.c (grub_hfs_mount): Likewise.
12030 (grub_hfs_cmp_catkeys): Likewise.
12031 (grub_hfs_find_dir): Likewise.
12032 (grub_hfs_dir): Likewise.
12033 (grub_hfs_label): Likewise.
12034 * fs/jfs.c (grub_jfs_mount): Likewise.
12035 (grub_jfs_opendir): Likewise.
12036 (grub_jfs_getent): Likewise.
12037 (grub_jfs_lookup_symlink): Likewise.
12038 (grub_jfs_label): Likewise.
12039 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
12040 (grub_hfsplus_iterate_dir): Likewise.
12041 (grub_hfsplus_btree_iterate_node): Made static.
12042
12043 * util/grub-emu.c (prefix): New variable.
12044 (grub_machine_set_prefix): New function.
12045 (main): Do not set the environment variable "prefix" here. Only
12046 set PREFIX, which is used later by grub_machine_set_prefix.
12047
12048 * include/grub/video.h: Do not include grub/symbol.h.
12049 (grub_video_register): Not exported. This symbol is not defined in
12050 the kernel.
12051 (grub_video_unregister): Likewise.
12052 (grub_video_iterate): Likewise.
12053 (grub_video_setup): Likewise.
12054 (grub_video_restore): Likewise.
12055 (grub_video_get_info): Likewise.
12056 (grub_video_get_blit_format): Likewise.
12057 (grub_video_set_palette): Likewise.
12058 (grub_video_get_palette): Likewise.
12059 (grub_video_set_viewport): Likewise.
12060 (grub_video_get_viewport): Likewise.
12061 (grub_video_map_color): Likewise.
12062 (grub_video_map_rgb): Likewise.
12063 (grub_video_map_rgba): Likewise.
12064 (grub_video_fill_rect): Likewise.
12065 (grub_video_blit_glyph): Likewise.
12066 (grub_video_blit_bitmap): Likewise.
12067 (grub_video_blit_render_target): Likewise.
12068 (grub_video_scroll): Likewise.
12069 (grub_video_swap_buffers): Likewise.
12070 (grub_video_create_render_target): Likewise.
12071 (grub_video_delete_render_target): Likewise.
12072 (grub_video_set_active_render_target): Likewise.
12073
12074 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
12075 Undefined.
12076 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
12077
12078 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
12079 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12080 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12081 instead of $(srcdir)/genkernsyms.sh.
12082
12083 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
12084 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12085 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12086 instead of $(srcdir)/genkernsyms.sh.
12087
12088 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
12089 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12090 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12091 instead of $(srcdir)/genkernsyms.sh.
12092
12093 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
12094 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12095 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12096 instead of $(srcdir)/genkernsyms.sh.
12097
12098 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
12099 genkernsyms.sh.
12100
12101 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
12102 genkernsyms.sh.
12103 (gensymlist.sh): New target.
12104 (genkernsyms.sh): Likewise.
12105
12106 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
12107 genkernsyms.sh.in and gensymlist.sh.in.
12108
12109 * genkernsyms.sh: Removed.
12110 * gensymlist.sh: Likewise.
f19dbdb7 12111
7b455f4d 12112 * genkernsyms.sh.in: New file.
12113 * gensymlist.sh.in: Likewise.
12114
1885bb27 121152006-04-25 Hollis Blanchard <hollis@penguinppc.org>
12116
12117 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
12118 clobber "prefix", since we may have already set it manually.
12119
71538dff 121202006-04-25 Hollis Blanchard <hollis@penguinppc.org>
12121
12122 * kern/misc.c (abort): New alias for grub_abort.
12123
2965c7cc 121242006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
12125
12126 A new machine-specific function "grub_machine_set_prefix" is
12127 defined. This is called after loading modules, so that a prefix
12128 initialization can use modules. Also, this change adds an
12129 intensive debugging feature for the memory manager via the
12130 configure option "--enable-mm-debug".
f19dbdb7 12131
2965c7cc 12132 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
12133 PART.LEN.
12134
12135 * kern/sparc64/ieee1275/init.c (abort): Removed.
12136 (grub_stop): Likewise.
12137 (grub_exit): New function.
12138 (grub_set_prefix): Renamed to ...
12139 (grub_machine_set_prefix): ... this.
12140 (grub_machine_init): Do not call grub_set_prefix.
12141
12142 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
12143 (grub_machine_set_prefix): ... this.
12144 (grub_machine_init): Do not call grub_set_prefix.
12145
12146 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
12147 (grub_machine_init): Do not set the prefix here.
12148
12149 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
12150
12151 * kern/efi/init.c: Include grub/mm.h.
12152 (grub_efi_set_prefix): New function.
12153
12154 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
12155 (grub_efi_get_filename): New function.
12156 (grub_print_device_path): Renamed to ...
12157 (grub_efi_print_device_path): ... this.
12158
12159 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
12160 [MM_DEBUG] (grub_realloc): Likewise.
12161 [MM_DEBUG] (grub_free): Likewise.
12162 [MM_DEBUG] (grub_memalign): Likewise.
12163 [MM_DEBUG] (grub_mm_debug): New variable.
12164 [MM_DEBUG] (grub_debug_malloc): New function.
12165 [MM_DEBUG] (grub_debug_free): New function.
12166 [MM_DEBUG] (grub_debug_realloc): New function.
12167 [MM_DEBUG] (grub_debug_memalign): New function.
12168
12169 * kern/misc.c (grub_abort): Print a newline to distinguish
12170 the message.
12171
12172 * kern/main.c (grub_main): Call grub_machine_set_prefix and
12173 grub_set_root_dev after loading modules. This is necessary when
12174 setting a prefix depends on modules.
12175
12176 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
12177 (grub_efi_print_device_path): ... this.
12178 (grub_efi_get_filename): New prototype.
12179 (grub_efi_set_prefix): Likewise.
12180
12181 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
12182 and grub/disk.h.
12183 (grub_efidisk_get_device_handle): New prototype.
12184 (grub_efidisk_get_device_name): Likewise.
12185
12186 * include/grub/mm.h: Include config.h.
12187 (MM_DEBUG): Removed.
12188 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
12189 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
12190 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
12191 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
12192 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
12193 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
12194 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
12195 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
12196 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
12197
12198 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
12199
12200 * disk/efi/efidisk.c: Include grub/partition.h.
12201 (iterate_child_devices): New function.
12202 (add_device): First, compare only last device path nodes, so that
12203 devices are sorted by the types.
12204 (grub_efidisk_get_device_handle): New function.
12205 (grub_efidisk_get_device_name): Likewise.
12206
12207 * configure.ac (--enable-mm-debug): New option to enable the
12208 memory manager debugging feature. This makes the binary much
12209 bigger, so is disabled by default.
12210
9cacaa17 122112006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
12212
12213 Use grub_abort instead of grub_stop, and grub_exit must be
12214 define in each architecture now. Also, this change adds support
12215 for EFI disks.
f19dbdb7 12216
9cacaa17 12217 * util/i386/pc/grub-probefs.c: Include grub/term.h.
12218 (grub_getkey): New function.
12219 (grub_term_get_current): Likewise.
12220
12221 * util/i386/pc/grub-setup.c: Include grub/term.h.
12222 (grub_getkey): New function.
12223 (grub_term_get_current): Likewise.
12224
12225 * util/misc.c (grub_stop): Renamed to ...
12226 (grub_exit): ... this.
12227
12228 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
12229 (grub_exit): ... this.
12230 (grub_machine_init): Use grub_abort instead of abort.
12231 (grub_stop): Removed.
12232
12233 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
12234 abort.
12235
12236 * kern/i386/pc/startup.S (grub_exit): New function.
12237 (cold_reboot): New label.
12238
12239 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
12240 (grub_efi_init): Call grub_efidisk_init.
12241 (grub_efi_fini): Call grub_efidisk_fini.
12242
12243 * kern/efi/efi.c: Include grub/mm.h.
12244 (grub_efi_console_control_guid): Renamed to ...
12245 (console_control_guid): ... this.
12246 (grub_efi_loaded_image_guid): Renamed to ...
12247 (loaded_image_guid): ... this.
12248 (grub_efi_locate_handle): New function.
12249 (grub_efi_open_protocol): Likewise.
12250 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
12251 GRUB_EFI_CONSOLE_CONTROL_GUID.
12252 (grub_efi_exit): Removed.
12253 (grub_stop): Likewise.
12254 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
12255 (grub_exit): New function.
12256 (grub_print_device_path): Likewise.
12257
12258 * kern/rescue.c (grub_rescue_cmd_exit): New function.
12259 (grub_enter_rescue_mode): Register "exit".
12260
12261 * kern/misc.c (grub_real_dprintf): A cosmetic change.
12262 (grub_abort): New function.
12263
12264 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
12265
12266 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
12267
12268 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
12269
12270 * include/grub/efi/efi.h (grub_efi_exit): Removed.
12271 (grub_print_device_path): New prototype.
12272 (grub_efi_locate_handle): Likewise.
12273 (grub_efi_open_protocol): Likewise.
12274
12275 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
12276 * disk/efi/efidisk.c: Likewise.
12277
12278 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
12279
12280 * include/grub/efi/console_control.h
12281 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
12282
12283 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
12284 last 8 bytes as an array.
12285 (GRUB_EFI_DISK_IO_GUID): New macro.
12286 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
12287 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
12288 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
12289 grub_uint8_t.
12290 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
12291 (struct grub_efi_device_path): Rename the member "sub_type" to
12292 "subtype".
12293 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
12294 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
12295 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
12296 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
12297 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
12298 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
12299 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
12300 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
12301 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
12302 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
12303 (struct grub_efi_pci_device_path): New structure.
12304 (grub_efi_pci_device_path_t): New type.
12305 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
12306 (struct grub_efi_pccard_device_path): New structure.
12307 (grub_efi_pccard_device_path_t): New type.
12308 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
12309 (struct grub_efi_memory_mapped_device_path): New structure.
12310 (grub_efi_memory_mapped_device_path_t): New type.
12311 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
12312 (struct grub_efi_vendor_device_path): New structure.
12313 (grub_efi_vendor_device_path_t): New type.
12314 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
12315 (struct grub_efi_controller_device_path): New structure.
12316 (grub_efi_controller_device_path_t): New type.
12317 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
12318 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
12319 (struct grub_efi_acpi_device_path): New structure.
12320 (grub_efi_acpi_device_path_t): New type.
12321 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
12322 (struct grub_efi_expanded_acpi_device_path): New structure.
12323 (grub_efi_expanded_acpi_device_path_t): New type.
12324 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
12325 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
12326 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
12327 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
12328 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
12329 (struct grub_efi_atapi_device_path): New structure.
12330 (grub_efi_atapi_device_path_t): New type.
12331 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
12332 (struct grub_efi_fibre_channel_device_path): New structure.
12333 (grub_efi_fibre_channel_device_path_t): New type.
12334 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
12335 (struct grub_efi_1394_device_path): New structure.
12336 (grub_efi_1394_device_path_t): New type.
12337 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
12338 (struct grub_efi_usb_device_path): New structure.
12339 (grub_efi_usb_device_path_t): New type.
12340 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
12341 (struct grub_efi_usb_class_device_path): New structure.
12342 (grub_efi_usb_class_device_path_t): New type.
12343 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
12344 (struct grub_efi_i2o_device_path): New structure.
12345 (grub_efi_i2o_device_path_t): New type.
12346 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
12347 (struct grub_efi_mac_address_device_path): New structure.
12348 (grub_efi_mac_address_device_path_t): New type.
12349 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
12350 (struct grub_efi_ipv4_device_path): New structure.
12351 (grub_efi_ipv4_device_path_t): New type.
12352 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
12353 (struct grub_efi_ipv6_device_path): New structure.
12354 (grub_efi_ipv6_device_path_t): New type.
12355 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
12356 (struct grub_efi_infiniband_device_path): New structure.
12357 (grub_efi_infiniband_device_path_t): New type.
12358 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
12359 (struct grub_efi_uart_device_path): New structure.
12360 (grub_efi_uart_device_path_t): New type.
12361 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
12362 (struct grub_efi_vendor_messaging_device_path): New structure.
12363 (grub_efi_vendor_messaging_device_path_t): New type.
12364 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
12365 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
12366 (struct grub_efi_hard_drive_device_path): New structure.
12367 (grub_efi_hard_drive_device_path_t): New type.
12368 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
12369 (struct grub_efi_cdrom_device_path): New structure.
12370 (grub_efi_cdrom_device_path_t): New type.
12371 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
12372 (struct grub_efi_vendor_media_device_path): New structure.
12373 (grub_efi_vendor_media_device_path_t): New type.
12374 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
12375 (struct grub_efi_file_path_device_path): New structure.
12376 (grub_efi_file_path_device_path_t): New type.
12377 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
12378 (struct grub_efi_protocol_device_path): New structure.
12379 (grub_efi_protocol_device_path_t): New type.
12380 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
12381 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
12382 (struct grub_efi_bios_device_path): New structure.
12383 (grub_efi_bios_device_path_t): New type.
12384 (struct grub_efi_disk_io): New structure.
12385 (grub_efi_disk_io_t): New type.
12386 (struct grub_efi_block_io_media): New structure.
12387 (grub_efi_block_io_media_t): New type.
12388 (struct grub_efi_block_io): New structure.
12389 (grub_efi_block_io_t): New type.
12390
12391 * include/grub/misc.h (grub_stop): Removed.
12392 (grub_exit): New prototype.
12393 (grub_abort): Likewise.
12394
12395 * include/grub/disk.h (enum grub_disk_dev_id): Added
12396 GRUB_DISK_DEVICE_EFIDISK_ID.
12397
12398 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
12399 disk/efi/efidisk.c.
12400 (kernel_syms.lst): Remove the target if an error occurs.
12401
49986a9f 124022006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
12403
12404 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
12405 as it was simply too buggy.
12406
970d3b8a 124072006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
12408
12409 * kern/misc.c (grub_lltoa): New function.
12410 (grub_vsprintf): Added support for the long long suffix,
12411 i.e. "ll".
12412
ff04ec24 124132006-04-20 Hollis Blanchard <hollis@penguinppc.org>
12414
12415 * Makefile.in (LDFLAGS): Add variable.
12416 (LD): Remove variable.
12417 * configure.ac: Add -m32 to LDFLAGS.
12418 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
12419 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
12420 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
12421 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
12422 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
12423 variables.
12424 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
12425 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
12426 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
12427
37e5e1a4 124282006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
12429
12430 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
12431 length for unknown glyph.
12432
c352d8dd 124332006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
12434
2eab1c0d 12435 Add support for pre-loaded modules into the EFI port.
f19dbdb7 12436
2eab1c0d 12437 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
12438 completely. Accept one more argument DIR. The caller has changed.
12439
12440 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
12441
12442 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
12443 (grub_efi_loaded_image_guid): New variable.
12444 (grub_efi_get_loaded_image): New function.
12445 (grub_arch_modules_addr): Likewise.
12446
12447 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
12448 prototype.
12449
12450 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
12451 (struct grub_efi_loaded_image): New structure.
12452 (grub_efi_loaded_image_t): New type.
12453
124542006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 12455
c352d8dd 12456 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
12457 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
12458 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
12459
6d01d6b4 124602006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
12461
12462 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
12463
976a4ea0 124642006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
12465
12466 * DISTLIST: Added include/grub/efi/console.h,
12467 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
12468 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
12469
12470 * include/grub/efi/console.h: New file.
12471 * include/grub/efi/time.h: Likewise.
12472 * include/grub/i386/efi/kernel.h: Likewise.
12473 * kern/efi/init.c: Likewise.
12474 * kern/efi/mm.c: Likewise.
12475 * term/efi/console.c: Likewise.
f19dbdb7 12476
976a4ea0 12477 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
12478 (grub_stop): Removed.
12479 (grub_get_rtc): Likewise.
12480 (grub_machine_init): Simply call grub_efi_init.
12481 (grub_machine_fini): Call grub_efi_fini.
12482
12483 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
12484 (grub_efi_output_string): Removed.
12485 (grub_efi_stall): New function.
12486 (grub_stop): Likewise.
12487 (grub_get_rtc): Likewise.
12488
12489 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
12490 (grub_efi_stall): New prototype.
12491 (grub_efi_allocate_pages): Likewise.
12492 (grub_efi_free_pages): Likewise.
12493 (grub_efi_get_memory_map): Likewise.
12494 (grub_efi_mm_init): Likewise.
12495 (grub_efi_mm_fini): Likewise.
12496 (grub_efi_init): Likewise.
12497 (grub_efi_fini): Likewise.
12498
12499 * include/grub/i386/efi/time.h: Do not include
12500 grub/symbol.h. Include grub/efi/time.h.
12501 (GRUB_TICKS_PER_SECOND): Removed.
12502 (grub_get_rtc): Likewise.
12503
12504 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
12505 Added padding. The EFI spec is buggy.
12506 (GRUB_EFI_BLACK): New macro.
12507 (GRUB_EFI_BLUE): Likewise.
12508 (GRUB_EFI_GREEN): Likewise.
12509 (GRUB_EFI_CYAN): Likewise.
12510 (GRUB_EFI_RED): Likewise.
12511 (GRUB_EFI_MAGENTA): Likewise.
12512 (GRUB_EFI_BROWN): Likewise.
12513 (GRUB_EFI_LIGHTGRAY): Likewise.
12514 (GRUB_EFI_BRIGHT): Likewise.
12515 (GRUB_EFI_DARKGRAY): Likewise.
12516 (GRUB_EFI_LIGHTBLUE): Likewise.
12517 (GRUB_EFI_LIGHTGREEN): Likewise.
12518 (GRUB_EFI_LIGHTCYAN): Likewise.
12519 (GRUB_EFI_LIGHTRED): Likewise.
12520 (GRUB_EFI_LIGHTMAGENTA): Likewise.
12521 (GRUB_EFI_YELLOW): Likewise.
12522 (GRUB_EFI_WHITE): Likewise.
12523 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
12524 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
12525 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
12526 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
12527 (GRUB_EFI_BACKGROUND_RED): Likewise.
12528 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
12529 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
12530 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
12531 (GRUB_EFI_TEXT_ATTR): Likewise.
12532
12533 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
12534 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
12535 (kernel_mod_HEADERS): Added efi/time.h.
12536
83709125 125372006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
12538
12539 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
12540 include/grub/efi/api.h, include/grub/efi/console_control.h,
12541 include/grub/efi/efi.h, include/grub/efi/pe32.h,
12542 include/grub/i386/efi/time.h, kern/efi/efi.c,
12543 kern/i386/efi/init.c, kern/i386/efi/startup.S,
12544 and util/i386/efi/grub-mkimage.c.
12545
12546 * Makefile.in (RMKFILES): Added i386-efi.rmk.
12547
12548 * genmk.rb (PModule#rule): Do not export symbols if
12549 #{prefix}_EXPORTS is set to "no".
12550
12551 * conf/i386-efi.mk: New file.
12552 * conf/i386-efi.rmk: Likewise.
12553 * include/grub/efi/api.h: Likewise.
12554 * include/grub/efi/console_control.h: Likewise.
12555 * include/grub/efi/efi.h: Likewise.
12556 * include/grub/efi/pe32.h: Likewise.
12557 * include/grub/i386/efi/time.h: Likewise.
12558 * kern/efi/efi.c: Likewise.
12559 * kern/i386/efi/init.c: Likewise.
12560 * kern/i386/efi/startup.S: Likewise.
12561 * util/i386/efi/grub-mkimage.c: Likewise.
12562
125632006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 12564
12565 * include/grub/script.h: Include <grub/parser.h> and
12566 "grub_script.tab.h".
12567 (struct grub_lexer_param): New struct.
12568 (struct grub_parser_param): Likewise.
12569 (grub_script_create_arglist): Pass the state in an argument.
12570 (grub_script_add_arglist): Likewise.
12571 (grub_script_create_cmdline): Likewise.
12572 (grub_script_create_cmdblock): Likewise.
12573 (grub_script_create_cmdif): Likewise.
12574 (grub_script_create_cmdmenu): Likewise.
12575 (grub_script_add_cmd): Likewise.
12576 (grub_script_arg_add): Likewise.
12577 (grub_script_lexer_ref): Likewise.
12578 (grub_script_lexer_deref): Likewise.
12579 (grub_script_lexer_record_start): Likewise.
12580 (grub_script_lexer_record_stop): Likewise.
12581 (grub_script_mem_record): Likewise.
12582 (grub_script_mem_record_stop): Likewise.
12583 (grub_script_malloc): Likewise.
12584 (grub_script_yylex): Likewise.
12585 (grub_script_yyparse): Likewise.
12586 (grub_script_yyerror): Likewise.
12587 (grub_script_yylex): Likewise.
12588 (grub_script_lexer_init): Return the state.
12589
12590 * normal/lexer.c (grub_script_lexer_state): Removed variable.
12591 (grub_script_lexer_done): Likewise.
12592 (grub_script_lexer_getline): Likewise.
12593 (grub_script_lexer_refs): Likewise.
12594 (script): Likewise.
12595 (newscript): Likewise.
12596 (record): Likewise.
12597 (recording): Likewise.
12598 (recordpos): Likewise.
12599 (recordlen): Likewise.
12600 (grub_script_lexer_init): Return the state instead of setting
12601 global variables.
12602 (grub_script_lexer_ref): Use the newly added argument for state
12603 instead of globals.
12604 (grub_script_lexer_deref): Likewise.
12605 (grub_script_lexer_record_start): Likewise.
12606 (grub_script_lexer_record_stop): Likewise.
12607 (recordchar): Likewise.
12608 (nextchar): Likewise.
12609 (grub_script_yylex2): Likewise.
12610 (grub_script_yylex): Likewise.
12611 (grub_script_yyerror): Likewise.
12612
12613 * normal/parser.y (func_mem): Removed variable.
12614 (menu_entry): Likewise.
12615 (err): Likewise.
12616 (%lex-param): New parser option.
12617 (%parse-param): Likewise.
12618 (script): Always return the AST.
12619 (argument): Pass the state around.
12620 (arguments): Likewise.
12621 (grubcmd): Likewise.
12622 (commands): Likewise.
12623 (function): Likewise.
12624 (menuentry): Likewise.
12625 (if_statement): Likewise.
12626 (if): Likewise.
12627
12628 * normal/script.c (grub_script_memused): Removed variable.
12629 (grub_script_parsed): Likewise.
12630 (grub_script_malloc): Added a state argument. Use that instead of
12631 global variables.
12632 (grub_script_mem_record): Likewise.
12633 (grub_script_mem_record_stop): Likewise.
12634 (grub_script_arg_add): Likewise.
12635 (grub_script_add_arglist): Likewise.
12636 (grub_script_create_cmdline): Likewise.
12637 (grub_script_create_cmdif): Likewise.
12638 (grub_script_create_cmdmenu): Likewise.
12639 (grub_script_add_cmd): Likewise.
12640 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 12641
e2a8c904 126422006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 12643
12644 * normal/command.c (grub_command_init): Remove the title command.
12645
12646 * normal/lexer.c (grub_script_yylex): Renamed from this...
12647 (grub_script_yylex2): ... to this.
12648 (grub_script_yylex): New function. Temporary
12649 introduced to filter some tokens.
12650 (grub_script_yyerror): Print a newline.
12651
12652 * normal/main.c (read_config_file): Output information about the
12653 lines that contain errors. Wait for a key after all lines have
12654 been processed. Don't return an empty menu.
12655
12656 * normal/parser.y (func_mem): Don't initialize.
12657 (menu_entry): Likewise.
12658 (err): New variable.
12659 (script): Don't return anything when an error was encountered.
12660 (ws, returns): Removed rules.
12661 (argument): Disabled concatenated variable support.
12662 (arguments): Remove explicit separators.
12663 (grubcmd): Likewise.
12664 (function): Likewise.
12665 (menuentry): Likewise.
12666 (if): Likewise.
12667 (commands): Likewise. Add error handling.
12668
12669 * normal/script.c (grub_script_create_cmdline): If
12670 `grub_script_parsed' is 0, assume the parser encountered an error.
12671
c9a86192 126722006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
12673
12674 * configure.ac: Add support for EFI. Fix the typo
12675 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
12676
70f3b243 126772006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
12678
12679 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
12680 foreign multibyte characters should be shown correctly.
12681
65f201ad 126822006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
12683
12684 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
12685 calculation.
12686 (read_config_file): Made it to close file before returning.
12687
b4b93674 126882006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
12689
12690 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
12691 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
12692 video/i386/pc/vbefill.c.
12693
12694 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
12695 video/i386/pc/vbefill.c.
12696
12697 * include/grub/video.h (grub_video_blit_format): New enum.
12698 (grub_video_mode_info): Added new member blit_format.
12699 (grub_video_get_blit_format): New function prototype.
12700
12701 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
12702 function prototype.
12703 (grub_video_vbe_map_rgb): Likewise.
12704 (grub_video_vbe_unmap_color): Likewise.
12705
12706 * include/grub/i386/pc/vbeblit.h: New file.
12707
12708 * include/grub/i386/pc/vbefill.h: New file.
12709
12710 * video/video.c (grub_video_get_blit_format): New function.
12711 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
12712 (grub_video_vbe_map_rgb): Likewise.
12713 (grub_video_vbe_unmap_color): Likewise.
12714
12715 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
12716 optimized fills.
12717 (grub_video_vbe_blit_render_target): Changed to use more optimized
12718 blits.
12719 (grub_video_vbe_setup): Added detection for optimized settings.
12720 (grub_video_vbe_create_render_target): Likewise.
12721
12722 * video/i386/pc/vbeblit.c: New file.
12723
12724 * video/i386/pc/vbefill.c: New file.
12725
c2379b9c 127262006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
12727
12728 * font/manager.c (grub_font_get_glyph): Removed font fixup from
12729 here...
12730
12731 * util/unifont2pff.rb: ... and moved it to here. Improved argument
12732 parsing to support both hex and dec ranges. If filename was missing
12733 show usage information.
12734
bd0d7896 127352006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
12736
12737 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
12738 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
12739
12740 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
12741 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
12742 (video_mod_SOURCES): Added.
12743 (video_mod_CFLAGS): Likewise.
12744 (video_mod_LDFLAGS): Likewise.
12745 (gfxterm_mod_SOURCES): Likewise.
12746 (gfxterm_mod_CFLAGS): Likewise.
12747 (gfxterm_mod_LDFLAGS): Likewise.
12748 (videotest_mod_SOURCES): Likewise.
12749 (videotest_mod_CFLAGS): Likewise.
12750 (videotest_mod_LDFLAGS): Likewise.
12751 (vesafb_mod_SOURCES): Removed.
12752 (vesafb_mod_CFLAGS): Likewise.
12753 (vesafb_mod_LDFLAGS): Likewise.
12754 (vga_mod_SOURCES): Likewise.
12755 (vga_mod_CFLAGS): Likewise.
12756 (vga_mod_LDFLAGS): Likewise.
12757
12758 * commands/videotest.c: New file.
12759
12760 * font/manager.c (fill_with_default_glyph): Modified to use
12761 grub_font_glyph.
12762 (grub_font_get_glyph): Likewise.
12763 (fontmanager): Renamed from this...
12764 (font_manager): ... to this.
12765
12766 * include/grub/font.h (grub_font_glyph): Added new structure.
12767 (grub_font_get_glyph): Modified to use grub_font_glyph.
12768
12769 * include/grub/misc.h (grub_abs): Added as inline function.
12770
12771 * include/grub/video.h: New file.
12772
12773 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
12774 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
12775 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
12776 (grub_vbe_get_controller_info): Renamed from this...
12777 (grub_vbe_bios_get_controller_info): ... to this.
12778 (grub_vbe_get_mode_info): Renamed from this...
12779 (grub_vbe_bios_get_mode_info): ... to this.
12780 (grub_vbe_set_mode): Renamed from this...
12781 (grub_vbe_bios_set_mode): ... to this.
12782 (grub_vbe_get_mode): Renamed from this...
12783 (grub_vbe_bios_get_mode): ... to this.
12784 (grub_vbe_set_memory_window): Renamed from this...
12785 (grub_vbe_bios_set_memory_window): ... to this.
12786 (grub_vbe_get_memory_window): Renamed from this...
12787 (grub_vbe_bios_get_memory_window): ... to this.
12788 (grub_vbe_set_scanline_length): Renamed from this...
12789 (grub_vbe_set_scanline_length): ... to this.
12790 (grub_vbe_get_scanline_length): Renamed from this...
12791 (grub_vbe_bios_get_scanline_length): ... to this.
12792 (grub_vbe_set_display_start): Renamed from this...
12793 (grub_vbe_bios_set_display_start): ... to this.
12794 (grub_vbe_get_display_start): Renamed from this...
12795 (grub_vbe_bios_get_display_start): ... to this.
12796 (grub_vbe_set_palette_data): Renamed from this...
12797 (grub_vbe_bios_set_palette_data): ... to this.
12798 (grub_vbe_set_pixel_rgb): Removed.
12799 (grub_vbe_set_pixel_index): Likewise.
12800
12801 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
12802 from this...
12803 (grub_vbe_bios_get_controller_info): ... to this.
12804 (grub_vbe_get_mode_info): Renamed from this...
12805 (grub_vbe_bios_get_mode_info): ... to this.
12806 (grub_vbe_set_mode): Renamed from this...
12807 (grub_vbe_bios_set_mode): ... to this.
12808 (grub_vbe_get_mode): Renamed from this...
12809 (grub_vbe_bios_get_mode): ... to this.
12810 (grub_vbe_set_memory_window): Renamed from this...
12811 (grub_vbe_bios_set_memory_window): ... to this.
12812 (grub_vbe_get_memory_window): Renamed from this...
12813 (grub_vbe_bios_get_memory_window): ... to this.
12814 (grub_vbe_set_scanline_length): Renamed from this...
12815 (grub_vbe_set_scanline_length): ... to this.
12816 (grub_vbe_get_scanline_length): Renamed from this...
12817 (grub_vbe_bios_get_scanline_length): ... to this.
12818 (grub_vbe_set_display_start): Renamed from this...
12819 (grub_vbe_bios_set_display_start): ... to this.
12820 (grub_vbe_get_display_start): Renamed from this...
12821 (grub_vbe_bios_get_display_start): ... to this.
12822 (grub_vbe_set_palette_data): Renamed from this...
12823 (grub_vbe_bios_set_palette_data): ... to this.
12824 (grub_vbe_bios_get_controller_info): Fixed problem with registers
12825 getting corrupted after calling it. Added more pushes and pops.
12826 (grub_vbe_bios_set_mode): Likewise.
12827 (grub_vbe_bios_get_mode): Likewise.
12828 (grub_vbe_bios_get_memory_window): Likewise.
12829 (grub_vbe_bios_set_scanline_length): Likewise.
12830 (grub_vbe_bios_get_scanline_length): Likewise.
12831 (grub_vbe_bios_get_display_start): Likewise.
12832 (grub_vbe_bios_set_palette_data): Likewise.
12833
12834 * normal/cmdline.c (cl_set_pos): Refresh the screen.
12835 (cl_insert): Likewise.
12836 (cl_delete): Likewise.
12837
12838 * term/gfxterm.c: New file.
12839
12840 * term/i386/pc/vesafb.c: Removed file.
12841
12842 * video/video.c: New file.
12843
12844 * video/i386/pc/vbe.c (real2pm): Added new function.
12845 (grub_video_vbe_draw_pixel): Likewise.
12846 (grub_video_vbe_get_video_ptr): Likewise.
12847 (grub_video_vbe_get_pixel): Likewise
12848 (grub_video_vbe_init): Likewise.
12849 (grub_video_vbe_fini): Likewise.
12850 (grub_video_vbe_setup): Likewise.
12851 (grub_video_vbe_get_info): Likewise.
12852 (grub_video_vbe_set_palette): Likewise.
12853 (grub_video_vbe_get_palette): Likewise.
12854 (grub_video_vbe_set_viewport): Likewise.
12855 (grub_video_vbe_get_viewport): Likewise.
12856 (grub_video_vbe_map_color): Likewise.
12857 (grub_video_vbe_map_rgb): Likewise.
12858 (grub_video_vbe_map_rgba): Likewise.
12859 (grub_video_vbe_unmap_color): Likewise.
12860 (grub_video_vbe_fill_rect): Likewise.
12861 (grub_video_vbe_blit_glyph): Likewise.
12862 (grub_video_vbe_blit_bitmap): Likewise.
12863 (grub_video_vbe_blit_render_target): Likewise.
12864 (grub_video_vbe_scroll): Likewise.
12865 (grub_video_vbe_swap_buffers): Likewise.
12866 (grub_video_vbe_create_render_target): Likewise.
12867 (grub_video_vbe_delete_render_target): Likewise.
12868 (grub_video_vbe_set_active_render_target): Likewise.
12869 (grub_vbe_set_pixel_rgb): Remove function.
12870 (grub_vbe_set_pixel_index): Likewise.
12871 (index_color_mode): Remove static variable.
12872 (active_mode): Likewise.
12873 (framebuffer): Likewise.
12874 (bytes_per_scan_line): Likewise.
12875 (grub_video_vbe_adapter): Added new static variable.
12876 (framebuffer): Likewise.
12877 (render_target): Likewise.
12878 (initial_mode): Likewise.
12879 (mode_in_use): Likewise.
12880 (mode_list): Likewise.
12881
5f97350b 128822006-03-10 Marco Gerards <marco@gnu.org>
12883
12884 * configure.ac (AC_INIT): Bumped to 1.93.
12885
12886 * DISTLIST: Added `include/grub/hfs.h'.
12887
a3c5c6f8 128882006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
12889
12890 * boot/i386/pc/boot.S (general_error): Before looping, try INT
12891 18H, which might help the BIOS falling back to next boot media.
12892
6de53d26 128932006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
12894
12895 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
12896 Poe Chen <poe.poechen@gmail.com>.
12897
77c4a393 128982006-01-17 Marco Gerards <marco@gnu.org>
12899
12900 * include/grub/normal.h: Include <grub/script.h>.
12901 (grub_command_list): Removed struct.
12902 (grub_command_list_t): Removed type.
12903 (grub_menu_entry): Remove members `num' and `command_list'. Add
12904 members `commands' and `sourcecode'.
12905 * include/grub/script.h: Add inclusion guards.
12906 (grub_script_cmd_menuentry): New struct.
12907 (grub_script_execute_menuentry): New prototype.
12908 (grub_script_lexer_record_start): Likewise.
12909 (grub_script_lexer_record_stop): Likewise.
12910 * normal/execute.c (grub_script_execute_menuentry): New function.
12911 * normal/lexer.c (record, recording, recordpos, recordlen): New
12912 variables.
12913 (grub_script_lexer_record_start): New function.
12914 (grub_script_lexer_record_stop): Likewise.
12915 (recordchar): Likewise.
12916 (nextchar): Likewise.
12917 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
12918 2048 as the buffer size. Add the tokens `menuentry' and `@'.
12919 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
12920 (current_menu): New variable.
12921 (free_menu): Mainly rewritten.
12922 (grub_normal_menu_addentry): New function.
12923 (read_config_file): Rewritten.
12924 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 12925 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 12926 the menu entry.
12927 (run): Mainly rewritten.
12928 * normal/parser.y (menu_entry): New variable.
12929 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
12930 (menuentry): New rule.
12931 (command): Add `menuentry'.
12932 (if_statement): Allow additional returns before `fi'.
12933 * normal/script.c (grub_script_create_cmdmenu): New function.
12934
144f1f98 129352006-01-03 Marco Gerards <marco@gnu.org>
12936
12937 * INSTALL: GNU Bison is required.
12938 * configure.ac: Rewritten the test to detect Bison.
12939 * Makefile.in (YACC): New variable. Reported by Xun Sun
12940 <xun.sun.cn@gmail.com>.
12941
af4b2d89 129422006-01-03 Marco Gerards <marco@gnu.org>
12943
12944 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
12945 the HFS+ filesystem to filesystem blocks.
12946 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
12947 GCC warning is silenced.
12948
15643b71 129492006-01-03 Marco Gerards <marco@gnu.org>
12950
12951 * partmap/apple.c (apple_partition_map_iterate): Convert the data
12952 read from disk from big endian to host byte order.
12953
00905879 129542006-01-03 Hollis Blanchard <hollis@penguinppc.org>
12955
12956 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
12957 documentation.
12958 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
12959 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
12960 embedded HFS+ filesystem.
12961 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
12962 (grub_hfs_sblock): Move from here...
12963 * include/grub/hfs.h: To here... New file.
12964 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
12965 documentation.
12966 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
12967 New macros.
12968 (grub_hfsplus_volheader): Change type of member `magic' to
12969 `grub_uint16_t'.
12970 (grub_hfsplus_data): Add new member `embedded_offset'.
12971 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
12972 returned block.
12973 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
12974 Calculate the offset.
12975
8899bc3e 129762005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
12977
12978 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
12979 Removed.
12980 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
12981
ae8c0277 129822005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
12983
12984 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
12985 ENV->NAME is NULL after allocating ENV->VALUE.
12986
07084456 129872005-12-25 Marco Gerards <marco@gnu.org>
12988
12989 * kern/env.c (grub_env_set): Rewritten the error handling code.
12990
4750f5f1 129912005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
12992
12993 * geninit.sh: Made more robust, and more portable.
12994
50214199 129952005-12-25 Marco Gerards <marco@gnu.org>
12996
12997 Add support for Apple HFS+ filesystems.
f19dbdb7 12998
50214199 12999 * fs/hfsplus.c: New file.
13000
13001 * DISTLIST: Added `fs/hfsplus.c'.
13002
13003 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
13004 (hfsplus_mod_SOURCES): New variable.
13005 (hfsplus_mod_CFLAGS): Likewise.
13006 (hfsplus_mod_LDFLAGS): Likewise.
13007 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
13008 (grub_setup_SOURCES): Likewise.
13009 (grub_mkdevicemap_SOURCES): Likewise.
13010 (grub_emu_SOURCES): Likewise.
13011 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13012
13013 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
13014
13015 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
13016
befaed6c 130172005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13018
13019 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
13020 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
13021 include/grub/parser.h, include/grub/script.h, kern/parser.c,
13022 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
13023 normal/lexer.c, normal/parser.y, normal/script.c, and
13024 partmap/gpt.c.
13025 Removed kern/sparc64/cache.c.
13026
13027 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
13028 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
13029 grub_emu_init.c.
13030
13031 * configure.ac (AC_INIT): Bumped to 1.92.
13032
6a124103 130332005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
13034
13035 * kern/err.c (grub_error_push): Added new function to support error
13036 stacks.
13037 (grub_error_pop): Likewise.
13038 (grub_error_stack_items): New local variable to support error stacks.
13039 (grub_error_stack_pos): Likewise.
13040 (grub_error_stack_assert): Likewise.
13041 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
13042 stack depth.
13043 (grub_print_error): Added support to print errors from error stack.
13044
13045 * include/grub/err.h (grub_error_push): Added function prototype.
13046 (grub_error_pop): Likewise.
13047
be973c1b 130482005-12-09 Hollis Blanchard <hollis@penguinppc.org>
13049
13050 * configure.ac: Accept `powerpc64' as host_cpu.
13051 (amd64): Rename to `biarch32'.
13052
13053 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
13054 non-cacheline-aligned addresses.
13055
13056 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
13057 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
13058 if `size' is non-zero.
13059
b04216ab 130602005-12-03 Marco Gerards <mgerards@xs4all.nl>
13061
13062 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
13063 and `cd' to make sure the filename is not prefixed with a
13064 directory name.
13065 (pkgdata_MODULES): Add `gpt.mod'.
13066 (gpt_mod_SOURCES): New variable.
13067 (gpt_mod_CFLAGS): Likewise.
13068 (gpt_mod_LDFLAGS): Likewise.
13069
13070 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
13071
13072 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
13073 New macro.
13074
13075 * partmap/gpt.c: New file.
13076
13077 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
13078 GPT partition map is detected.
13079
41730ed9 130802005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
13081
13082 * commands/i386/pc/play.c: New file.
13083 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
13084 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
13085 macros.
f19dbdb7 13086
95dc3643 130872005-11-27 Marco Gerards <mgerards@xs4all.nl>
13088
13089 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
13090 ((unused))' to silence gcc warning.
13091
1569ec51 130922005-11-26 Hollis Blanchard <hollis@penguinppc.org>
13093
13094 * configure.ac: Correct `AC_PROG_YACC' test.
13095
9abde152 130962005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13097
13098 * util/powerpc/ieee1275/grub-install.in: Run the mount point
13099 check before installing files.
13100
44b83271 131012005-11-22 Mike Small <smallm@panix.com>
13102
13103 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
13104 number regex so multidigit numbers are recognized correctly.
13105
131062005-11-22 Mike Small <smallm@panix.com>
13107
13108 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
13109 debugging message before attempting to claim memory.
13110 (grub_rescue_cmd_initrd): Add a claim debugging message and try
13111 multiple addresses in case of failure.
13112
9c12956b 131132005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13114
13115 * term/tparm.c (get_space): Remove empty `if' statement.
13116
13117 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
13118
13119 * kern/parser.c (check_varstate): Rename `state' to 's'.
13120
aeaf81d9 131212005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13122
13123 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
13124 variable definitions to the beginning of each function. Sort stack
13125 variables by size.
13126 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
13127 `buf' argument to `char *'.
13128
79bbb63f 131292005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13130
13131 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
13132 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 13133 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 13134 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
13135 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
13136 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
13137 configfile.mod, search.mod, gzio.mod and test.mod.
13138 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
13139 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
13140 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
13141 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
13142 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
13143 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
13144 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
13145 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
13146 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
13147 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
13148 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13149 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13150 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
13151 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
13152 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
13153 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
13154 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13155 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
13156 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
13157 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
13158 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
13159 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
13160 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
13161
13162 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
13163 `grep --include'.
13164 (pkgdata_MODULES): Add test.mod.
13165
233b1628 131662005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13167
13168 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
13169 appending to variables with "+=".
13170 (PModule): Use full pathname to generate *.lst filenames.
13171
13172 * Makefile.in: Fixed list rules moved from genmk.rb.
13173 (.DELETE_ON_ERROR): New special target.
13174 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
13175
13176 * conf/i386-pc.rmk: Include conf/common.mk.
13177 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 13178 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 13179 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
13180 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
13181 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
13182 configfile.mod, search.mod, gzio.mod and test.mod.
13183 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
13184 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
13185 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
13186 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
13187 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
13188 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
13189 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
13190 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
13191 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
13192 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
13193 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13194 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13195 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
13196 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
13197 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
13198 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
13199 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13200 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
13201 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
13202 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
13203 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
13204 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
13205 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
13206 here...
13207 * conf/common.rmk: ... to here. New file.
13208
13209 * conf/common.mk: New file.
13210
16f820c8 132112005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
13212
13213 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
13214 (grub_script.tab.c): ... here.
13215
13216 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
13217 (grub_script.tab.c): ... here.
13218
13219 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
13220 (grub_script.tab.c): ... here.
13221
13222 * normal/command.c (grub_command_find): Fixed a memory leak of
13223 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
13224
63ba1554 132252005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13226
13227 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
13228 "@" which marks the start of a comment on ARM.
13229 (VARIABLE): Likewise.
13230
7f67dc13 132312005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13232
79bbb63f 13233 Add support for Linux/ADFS partition tables.
7f67dc13 13234
13235 * partmap/acorn.c: New file.
13236
13237 * include/grub/acorn_filecore.h: Likewise.
13238
13239 * DISTLIST: Added `partmap/acorn.c' and
13240 `include/grub/acorn_filecore.h'.
f19dbdb7 13241
7f67dc13 13242 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13243 `partmap/acorn.c'.
13244 (pkgdata_MODULES): Add `acorn.mod'.
13245 (acorn_mod_SOURCES): New variable.
13246 (acorn_mod_CFLAGS): Likewise.
13247
13248 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
13249 `partmap/acorn.c'.
13250 (pkgdata_MODULES): Add `acorn.mod'.
13251 (acorn_mod_SOURCES): New variable.
13252 (acorn_mod_CFLAGS): Likewise.
13253
13254 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
13255 (pkgdata_MODULES): Add `acorn.mod'.
13256 (acorn_mod_SOURCES): New variable.
13257 (acorn_mod_CFLAGS): Likewise.
13258 (acorn_mod_LDFLAGS): Likewise.
13259
13260 * include/types.h (grub_disk_addr_t): New typedef.
13261
6d099807 132622005-11-13 Marco Gerards <mgerards@xs4all.nl>
13263
13264 * geninit.sh: New file.
13265
13266 * geninitheader.sh: Likewise.
13267
13268 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
13269 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
13270 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
13271 * commands/configfile.c (grub_configfile_init)
13272 (grub_configfile_fini): Likewise.
13273 * commands/default.c (grub_default_init, grub_default_fini):
13274 Likewise.
13275 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
13276 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
13277 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
13278 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
13279 Likewise.
13280 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
13281 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
13282 Likewise.
13283 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 13284 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 13285 Likewise.
13286 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
13287 Likewise.
fe6b695a 13288 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 13289 Likewise.
13290 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
13291 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
13292 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
13293 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
13294 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
13295 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
13296 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
13297 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
13298 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
13299 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
13300 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
13301 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
13302 * partmap/amiga.c (grub_amiga_partition_map_init)
13303 (grub_amiga_partition_map_fini): Likewise.
13304 * partmap/apple.c (grub_apple_partition_map_init)
13305 (grub_apple_partition_map_fini): Likewise.
13306 * partmap/pc.c (grub_pc_partition_map_init)
13307 (grub_pc_partition_map_fini): Likewise.
13308 * partmap/sun.c (grub_sun_partition_map_init,
13309 grub_sun_partition_map_fini): Likewise.
13310 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
13311 Likewise.
13312
13313 * util/grub-emu.c: Include <grub_modules_init.h>.
13314 (main): Don't initialize and de-initialize any modules directly,
13315 use `grub_init_all' and `grub_fini_all' instead.
13316
13317 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
13318 `grub_vesafb_mod_init'.
13319 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
13320 all users.
13321 * term/i386/pc/vga.c (grub_vga_init): Renamed to
13322 `grub_vga_mod_init'. Updated all users.
13323 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 13324
6d099807 13325 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
13326 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
13327 rules.
13328
13329 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
13330 Generate a function to initialize the module in utilities.
13331 Updated all callers.
13332 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
13333 initialize the module in utilities. Updated all callers.
13334
9046bcf0 133352005-11-09 Hollis Blanchard <hollis@penguinppc.org>
13336
13337 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
13338 escape sequence and a literal ^L to clear the screen.
13339
13340 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
13341 when returning from Open Firmware.
13342
d13ea639 133432005-11-09 Hollis Blanchard <hollis@penguinppc.org>
13344
13345 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
13346 (grub_ofconsole_height): Likewise.
13347 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
13348 manually insert a '\n'.
13349 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
13350 `grub_ofconsole_height'. Return early if these are already set.
13351
a8fcf206 133522005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
13353
13354 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
13355 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
13356 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
13357 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
13358 and `normal/script.c'.
13359 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13360 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13361 (test_mod_SOURCES): New variable.
13362 (test_mod_CFLAGS): Likewise.
13363 (test_mod_LDFLAGS): Likewise.
13364 (pkgdata_MODULES): Add `test.mod'.
13365 (grub_script.tab.c): New rule.
13366 (grub_script.tab.h): Likewise.
13367
b6b32745 133682005-11-07 Marco Gerards <mgerards@xs4all.nl>
13369
13370 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13371 `commands/test.c', `normal/execute.c', `normal/lexer.c',
13372 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13373 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13374 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13375 (test_mod_SOURCES): New variable.
13376 (test_mod_CFLAGS): Likewise.
13377 (pkgdata_MODULES): Add `test.mod'.
13378 (grub_script.tab.c): New rule.
13379 (grub_script.tab.h): Likewise.
13380
daac212a 133812005-11-06 Marco Gerards <mgerards@xs4all.nl>
13382
13383 Add initial scripting support.
13384
13385 * commands/test.c: New file.
13386 * include/grub/script.h: Likewise.
13387 * normal/execute.c: Likewise.
13388 * normal/function.c: Likewise.
13389 * normal/lexer.c: Likewise.
13390 * normal/parser.y: Likewise.
13391 * normal/script.c: Likewise.
13392
13393 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 13394
daac212a 13395 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
13396 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
13397 `normal/function.c' and `normal/script.c'.
13398 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13399 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 13400 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
13401 variables.
daac212a 13402 (pkgdata_MODULES): Add `test.mod'.
13403 (grub_script.tab.c): New rule.
13404 (grub_script.tab.h): Likewise.
13405
13406 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
13407
13408 * include/grub/normal.h (grub_test_init): New prototype.
13409 (grub_test_fini): Likewise.
f19dbdb7 13410
daac212a 13411 * normal/command.c: Include <grub/script.h>.
13412 (grub_command_execute): Rewritten.
f19dbdb7 13413
daac212a 13414 * util/grub-emu.c (main): Call `grub_test_init' and
13415 `grub_test_fini'.
13416
77500b2b 134172005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13418
13419 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
13420 to 0.
13421 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
13422 there are no pending characters.
13423
e45deb9e 134242005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13425
13426 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
13427 `grub_strndup' to drop device arguments. Replace unnecessary
13428 `grub_strndup' with `grub_strdup'.
13429
4ce32619 134302005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13431
13432 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
13433 `debug' environment variable has been set.
13434
134352005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 13436
4ce32619 13437 * Makefile.in (install-local): Use $(DATA).
13438 (uninstall): Likewise.
13439 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
13440 (sbin_UTILITIES): ... to here.
13441 (sbin_SCRIPTS): New variable.
13442 (grub_install_SOURCES): New variable.
13443 * util/powerpc/ieee1275/grub-install.in: New file.
13444 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
13445 variable.
13446 (add_segments): Call `grub_util_get_path'.
13447
25fe6f03 134482005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
13449
13450 From Timothy Baldwin:
13451 * commands/ls.c (grub_ls_list_files): Close FILE with
13452 grub_file_close.
13453 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
13454
04ccf3ec 134552005-10-24 Marco Gerards <mgerards@xs4all.nl>
13456
13457 * include/grub/parser.h: New file.
13458
13459 * kern/parser.c: Likewise.
13460
13461 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
13462 (grub_setup_SOURCES): Likewise.
13463 (grub_probefs_SOURCES): Likewise.
13464 (grub_emu_SOURCES): Likewise.
13465 (kernel_img_HEADERS): Add `parser.h'.
13466
13467 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
13468 (grub_emu_SOURCES): Add `kern/parser.c'.
13469 (grubof_SOURCES): Likewise.
13470
13471 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
13472 (grubof_SOURCES): Add `kern/parser.c'.
13473
13474 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
13475
13476 * kern/misc.c (grub_split_cmdline): Removed function.
13477
13478 * kern/rescue.c: Include <grub/parser.h>.
13479 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
13480 of `grub_split_cmdline'.
13481
13482 * normal/command.c: Include <grub/parser.h>.
13483 (grub_command_execute): Use `grub_parser_split_cmdline' instead
13484 of `grub_split_cmdline'.
13485
13486 * normal/completion.c: Include <grub/parser.h>.
13487 (cmdline_state): New variable.
13488 (iterate_dir): End the filename with a quote depending on the
13489 command line state.
13490 (get_state): new function.
13491 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
13492 split the arguments and determine the current argument. When the
13493 argument string is not quoted, escape all spaces.
13494
6d8f4b0e 134952005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13496
13497 * normal/sparc64/setjmp.S: New file.
13498
15cf03ed 134992005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13500
13501 * include/grub/sparc64/libgcc.h: New file.
13502 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
13503 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
13504 normal/sparc64/setjmp.c.
13505
03e8661a 135062005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13507
13508 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
13509 * kern/sparc64/cache.S: New file.
13510 * kern/sparc64/cache.c: Removed.
13511 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
13512 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
13513 -mtune=ultrasparc.
13514 (COMMON_LDFLAGS): Add -melf64_sparc.
13515 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
13516 (grubof_SOURCES): Use cache.S instead of cache.c.
13517 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
13518 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
13519 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
13520 commented though.
13521 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
13522 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
13523 (linux_mod_CFLAGS): Commented out.
13524 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
13525 out because module isn't built.
13526 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
13527 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
13528 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
13529 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
13530 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
13531 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
13532 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
13533 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
13534 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
13535 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
13536 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13537 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13538 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
13539 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
13540
34eeec8a 135412005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
13542
13543 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
13544 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
13545 longer, because HFS should not be used on PC.
13546
708367a3 135472005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13548
13549 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
13550 consistently within the loop.
13551
6fa1251a 135522005-10-15 Marco Gerards <mgerards@xs4all.nl>
13553
13554 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
13555 directory can not be read.
13556
4801580b 135572005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13558
13559 * configure.ac (AC_INIT): Increase the version number to 1.91.
13560
13561 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
13562 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
13563 term/i386/pc/serial.c.
13564
219ad426 135652005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13566
13567 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
13568 file size must be permitted.
13569
13570 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
13571 between %ah and %al.
13572
688e5699 135732005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13574
13575 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
13576 grub_uint64_t.
13577 Call the hook with a NUL-terminated filename.
13578 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
13579 grub_cpu_to_be32.
13580
13581 * kern/term.c (cursor_state): New variable.
13582 (grub_term_set_current): Reset the cursor state on a new
13583 terminal.
13584 (grub_setcursor): Rewritten to use CURSOR_STATE.
13585 (grub_getcursor): New function.
13586
13587 * include/grub/term.h (grub_getcursor): New prototype.
13588
13589 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
13590 integers on ARM. Reported by Timothy Baldwin
13591 <T.E.Baldwin99@members.leeds.ac.uk>.
13592
bb34586c 135932005-10-11 Marco Gerards <mgerards@xs4all.nl>
13594
13595 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
13596 allocated.
13597 (grub_sfs_dir): Likewise.
13598
9a909877 135992005-10-09 Marco Gerards <mgerards@xs4all.nl>
13600
13601 Add support for the SFS filesystem.
13602
13603 * fs/sfs.c: New file.
13604
13605 * DISTLIST: Added `fs/sfs.c'.
13606
13607 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
13608 (grub_probefs_SOURCES): Likewise.
13609 (grub_emu_SOURCES): Likewise.
13610 (pkgdata_MODULES): Add `sfs.mod'.
13611 (sfs_mod_SOURCES): New variable.
13612 (sfs_mod_CFLAGS): Likewise.
13613 (sfs_mod_LDFLAGS): Likewise.
13614
13615 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
13616 (pkgdata_MODULES): Add `sfs.mod'.
13617 (sfs_mod_SOURCES): New variable.
13618 (sfs_mod_CFLAGS): Likewise.
13619
13620 * util/grub-emu.c (main): Call `grub_sfs_init' and
13621 `grub_sfs_fini'.
13622
13623 * include/grub/fs.h (grub_sfs_init): New prototype.
13624 (grub_sfs_fini): Likewise.
13625
57bdbde3 136262005-10-07 Marco Gerards <mgerards@xs4all.nl>
13627
13628 Add support for the AFFS filesystem.
13629
13630 * fs/affs.c: New file.
13631
13632 * DISTLIST: Added `fs/affs.c'.
13633
13634 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
13635 (grub_probefs_SOURCES): Likewise.
13636 (grub_emu_SOURCES): Likewise.
13637 (pkgdata_MODULES): Add `affs.mod'.
13638 (affs_mod_SOURCES): New variable.
13639 (affs_mod_CFLAGS): Likewise.
13640 (affs_mod_LDFLAGS): Likewise.
13641
13642 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
13643 (pkgdata_MODULES): Add `affs.mod'.
13644 (affs_mod_SOURCES): New variable.
13645 (affs_mod_CFLAGS): Likewise.
13646
13647 * util/grub-emu.c (main): Call `grub_affs_init' and
13648 `grub_affs_fini'.
13649
13650 * include/grub/fs.h (grub_affs_init): New prototype.
13651 (grub_affs_fini): Likewise.
13652
047b67e0 136532005-10-01 Marco Gerards <mgerards@xs4all.nl>
13654
13655 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
13656
59b8208a 136572005-10-01 Marco Gerards <mgerards@xs4all.nl>
13658
13659 * configure.ac: Accept `x86_64' as host_cpu. In that case add
13660 `-m32' to CFLAGS.
13661
13662 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
13663 linking.
f19dbdb7 13664
59b8208a 13665 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
13666 (COMMON_LDFLAGS): New variable.
13667 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
13668 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
13669 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
13670 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
13671 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
13672 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
13673 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
13674 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
13675 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
13676 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
13677 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
13678 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
13679 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
13680 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
13681 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
13682 variables.
13683 (normal_mod_ASFLAGS): Add `-m32'.
13684
13685 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
13686 (grub_host_size_t, grub_host_ssize_t): New types.
13687 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 13688 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 13689 `GRUB_HOST_SIZEOF_VOID_P'.
13690
13691 * include/grub/kernel.h (struct grub_module_header): Type of
13692 member offset changed to `grub_host_off_t'. Type of member size
13693 changed to `grub_host_size_t'.
13694 (struct grub_module_info): Type of member offset changed to
13695 `grub_host_off_t'. Type of member size changed to
13696 `grub_host_size_t'.
13697
b4093103 136982005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
13699
13700 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 13701
b4093103 13702 * kern/i386/pc/startup.S (multiboot_header): New label.
13703 (multiboot_entry): Likewise.
13704 (multiboot_trampoline): Likewise.
13705
13706 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
13707 Increased to 0x4A0.
13708
13709 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
13710 put parentheses after a question mark.
13711 [!GRUB_UTIL] (my_mod): New variable.
13712
13713 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
13714
b2499b29 137152005-09-28 Marco Gerards <mgerards@xs4all.nl>
13716
13717 Adds support for the XFS filesystem. Btrees are not supported
13718 yet.
13719
13720 * fs/xfs.c: New file.
13721
13722 * DISTLIST: Added `fs/xfs.c'.
13723
13724 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
13725 (grub_probefs_SOURCES): Likewise.
13726 (grub_emu_SOURCES): Likewise.
13727 (pkgdata_MODULES): Add `xfs.mod'.
13728 (xfs_mod_SOURCES): New variable.
13729 (xfs_mod_CFLAGS): Likewise.
13730
13731 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
13732 (pkgdata_MODULES): Add `xfs.mod'.
13733 (xfs_mod_SOURCES): New variable.
13734 (xfs_mod_CFLAGS): Likewise.
13735
13736 * util/grub-emu.c (main): Call `grub_xfs_init' and
13737 `grub_xfs_fini'.
13738
13739 * include/grub/fs.h (grub_xfs_init): New prototype.
13740 (grub_xfs_fini): Likewise.
13741
f19dbdb7 13742
83d37a62 137432005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
13744
13745 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
13746 color modes, allow greater than 16 colors to be configured as
13747 a default palette.
13748
47d2d65e 137492005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
13750
13751 * normal/completion.c (complete_arguments): Add the qualifier
13752 const into OPTIONS.
13753
13754 From Omniflux <omniflux+lists@omniflux.com>:
13755 * include/grub/terminfo.h: New file.
13756 * include/grub/tparm.h: Likewise.
13757 * include/grub/i386/pc/serial.h: Likewise.
13758 * term/terminfo.c: Likewise.
13759 * term/tparm.c: Likewise.
13760 * term/i386/pc/serial.c: Likewise.
13761 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
13762 serial.mod.
13763 (terminfo_mod_SOURCES): New variable.
13764 (terminfo_mod_CFLAGS): Likewise.
13765 (serial_mod_SOURCES): Likewise.
13766 (serial_mod_CFLAGS): Likewise.
13767
48b671ff 137682005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
13769
13770 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
13771 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
13772 and kern/powerpc/ieee1275/cmain.c, respectively.
13773
13774 * boot/powerpc/ieee1275/crt0.S: Moved to ...
13775 * kern/powerpc/ieee1275/crt0.S: ... here.
13776
13777 * boot/powerpc/ieee1275/cmain.c: Moved to ...
13778 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 13779
48b671ff 13780 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
13781 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
13782 instead of boot/powerpc/ieee1275/crt0.S and
13783 boot/powerpc/ieee1275/cmain.c, respectively.
13784
13785 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
13786 sectors. It was not used anyway.
13787
09fc77a7 137882005-08-30 Hollis Blanchard <hollis@penguinppc.org>
13789
13790 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
13791 `unused parameter' warning.
13792
003789c7 137932005-08-30 Hollis Blanchard <hollis@penguinppc.org>
13794
13795 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
13796 function.
13797 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
13798 getcharwidth.
13799
67f44c86 138002005-08-28 Marco Gerards <metgerards@student.han.nl>
13801
13802 * include/grub/normal.h (enum grub_completion_type): Added
13803 `GRUB_COMPLETION_TYPE_ARGUMENT'.
13804
13805 * normal/cmdline.c (print_completion): Handle
13806 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
13807 * normal/menu_entry.c (store_completion): Likewise.
13808
13809 * normal/completion.c (complete_arguments): New function.
13810 (grub_normal_do_completion): Call `complete_arguments' when the
13811 current words start with a dash.
13812
0b5abe02 138132005-08-27 Marco Gerards <metgerards@student.han.nl>
13814
13815 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
13816 `gzio.mod' instead of `io.mod').
13817
d9864ee1 138182005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
13819
13820 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
13821 (DISTDIRS): Added io and video.
13822 Rewrite the search routine to make an output consistently.
13823
13824 * DISTLIST: Added conf/sparc64-ieee1275.mk,
13825 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
13826 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
13827 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
13828 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
13829 util/powerpc/ieee1275/misc.c.
f19dbdb7 13830
d9864ee1 13831 * include/grub/gzio.h: New file.
13832 * io/gzio.c: Likewise.
f19dbdb7 13833
d9864ee1 13834 * kern/file.c (grub_file_close): Call grub_device_close only if
13835 FILE->DEVICE is not NULL.
13836
13837 * include/grub/mm.h [!NULL] (NULL): New macro.
13838
13839 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
13840
13841 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
13842 (pkgdata_MODULES): Added gzio.mod.
13843 (gzio_mod_SOURCES): New variable.
13844 (gzio_mod_CFLAGS): Likewise.
13845
13846 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
13847 (pkgdata_MODULES): Added gzio.mod.
13848 (gzio_mod_SOURCES): New variable.
13849 (gzio_mod_CFLAGS): Likewise.
13850
13851 * commands/cat.c: Include grub/gzio.h.
13852 (grub_cmd_cat): Use grub_gzfile_open instead of
13853 grub_file_open.
f19dbdb7 13854
d9864ee1 13855 * commands/cmp.c: Include grub/gzio.h.
13856 (grub_cmd_cmp): Use grub_gzfile_open instead of
13857 grub_file_open.
13858
13859 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
13860 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
13861 grub_file_open.
13862 (grub_rescue_cmd_module): Likewise.
13863
fa46f4b5 138642005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
13865
13866 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
13867 kern/sparc64/ieee1275/init.c because it contains _start.
13868 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
13869
e9211b5d 138702005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
13871
13872 * configure.ac: Add support for sparc64 host with ieee1275
13873 firmware.
13874 * configure: Generated from configure.ac.
13875 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
13876 instead of int.
13877 (grub_ofdisk_read): Likewise.
13878 (grub_ofdisk_open): Use %p to print pointer values, and cast the
13879 pointers as (void *) to remove a warning.
13880 (grub_ofdisk_close): Likewise.
13881 (grub_ofdisk_read): Likewise.
13882 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
13883 returns, so make it return void to remove a warning.
13884 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
13885 Corresponding prototype change.
13886 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
13887 values, and cast the pointers as (void *) to remove a warning.
13888 (grub_mm_dump): Likewise.
13889 * conf/sparc64-ieee1275.mk: New file.
13890 * conf/sparc64-ieee1275.rmk: Likewise.
13891 * include/grub/sparc64/setjmp.h: Likewise.
13892 * include/grub/sparc64/types.h: Likewise.
13893 * include/grub/sparc64/ieee1275/console.h: Likewise.
13894 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
13895 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
13896 * include/grub/sparc64/ieee1275/time.h: Likewise.
13897 * kern/sparc64/cache.c: Likewise.
13898 * kern/sparc64/dl.c: Likewise.
13899 * kern/sparc64/ieee1275/init.c: Likewise.
13900 * kern/sparc64/ieee1275/openfw.c: Likewise.
13901
385c6a92 139022005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
13903
13904 * util/console.c (grub_ncurses_putchar): If C is greater than
13905 0x7f, set C to a question mark.
13906 (grub_ncurses_getcharwidth): New function.
13907 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
13908 getcharwidth.
13909
13910 * normal/menu.c (print_entry): Made aware of Unicode. First,
13911 convert TITLE to UCS-4, and predict the cursor position by
13912 grub_getcharwidth.
13913
13914 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
13915 const to SRC.
13916 * kern/misc.c (grub_utf16_to_utf8): Likewise.
13917
16ccb8b1 139182005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
13919
13920 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
13921 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
13922 grub_strcat.
13923
13924 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
13925 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
13926 grub_strcpy and grub_strlen. Take it into account that a space
13927 character is inserted as a delimiter.
13928
6a85ce79 139292005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
13930
13931 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 13932 invalid magic in the error.
6a85ce79 13933
13934 * commands/search.c: New file.
f19dbdb7 13935
6a85ce79 13936 * util/grub-emu.c (main): Call grub_search_init and
13937 grub_search_fini.
13938
13939 * kern/rescue.c (grub_rescue_print_disks): Removed.
13940 (grub_rescue_print_devices): New function.
13941 (grub_rescue_cmd_ls): Use grub_device_iterate with
13942 grub_rescue_print_devices instead of grub_disk_dev_iterate with
13943 grub_rescue_print_disks.
13944
13945 * kern/partition.c (grub_partition_iterate): Return the result of
13946 PARTMAP->ITERATE instead of GRUB_ERRNO.
13947
13948 * kern/device.c: Include grub/partition.h.
13949 (grub_device_iterate): New function.
13950
13951 * include/grub/partition.h (grub_partition_iterate): Return int
13952 instead of grub_err_t.
13953
13954 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
13955 prototype.
13956 [GRUB_UTIL] (grub_search_fini): Likewise.
13957
13958 * include/grub/device.h (grub_device_iterate): New prototype.
13959
13960 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
13961 commands/search.c.
13962 (pkgdata_MODULES): Added search.mod.
13963 (search_mod_SOURCES): New variable.
13964 (search_mod_CFLAGS): Likewise.
13965
13966 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
13967 (pkgdata_MODULES): Added search.mod.
13968 (search_mod_SOURCES): New variable.
13969 (search_mod_CFLAGS): Likewise.
13970
13971 * commands/ls.c (grub_ls_list_disks): Renamed to ...
13972 (grub_ls_list_devices): ... this, and use grub_device_iterate.
13973 All callers changed.
13974
13975 * DISTLIST: Added commands/search.c.
13976
ef095434 139772005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
13978
13979 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
13980 conversion.
13981 (grub_getcharwidth): New function.
13982
13983 * kern/misc.c (grub_utf8_to_ucs4): New function.
13984
13985 * include/grub/term.h (struct grub_term): Added a new member
13986 "getcharwidth".
13987 (grub_getcharwidth): New prototype.
13988
13989 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
13990
13991 * term/i386/pc/console.c (map_char): New function. Segregated from
13992 grub_console_putchar.
13993 (grub_console_putchar): Use map_char.
13994 (grub_console_getcharwidth): New function.
13995 (grub_console_term): Specified grub_console_getcharwidth as
13996 getcharwidth.
13997
13998 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
13999 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
14000
14001 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
14002 GRUB_ERRNO.
14003 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
14004 on grub_strtoul completely.
14005 (write_char): Declare local variables in the beginning of the
14006 function.
14007 (grub_vesafb_getcharwidth): New function.
14008 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
14009 getcharwidth.
14010
1f0a95e4 140112005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
14012
14013 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
14014 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
14015 commands/i386/pc/vbetest.c.
14016
14017 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
14018 call grub_vbe_get_controller_info again, because the returned
14019 information is volatile.
14020 (grub_vbe_set_video_mode): Mostly rewritten.
14021 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
14022 grub_vbe_status_t correctly.
14023 (grub_vbe_get_video_mode_info): Likewise.
14024 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
14025 several if statements.
14026
14027 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
14028 * commands/i386/pc/vbeinfo.c: ... this.
14029
14030 * commands/i386/pc/vbe_test.c: Renamed to ...
14031 * commands/i386/pc/vbetest.c: ... this.
14032
14033 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
14034 ...
14035 (grub_cmd_vbeinfo): ... this. Save video modes before
14036 iterating. Skip a video mode, if it is not available, not enough
14037 information is given or it is monochrome. Show the memory
14038 model. Leave the interpretation of MODEVAR to grub_strtoul
14039 completely.
14040 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
14041 (GRUB_MOD_FINI): Likewise.
14042
14043 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
14044 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
14045 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
14046 duplicated grub_env_get. Leave the interpretation of MODEVAR to
14047 grub_strtoul completely.
14048 (real2pm): Removed.
14049 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
14050 (GRUB_MOD_FINI): Likewise.
14051
14052 * normal/misc.c: Include grub/mm.h.
14053
14054 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
14055 vbe_list_modes with vbetest.mod and vbeinfo.mod.
14056 (vbe_list_modes_mod_SOURCES): Removed.
14057 (vbe_list_modes_mod_CFLAGS): Likewise.
14058 (vbe_test_mod_SOURCES): Likewise.
14059 (vbe_test_mod_CFLAGS): Likewise.
14060 (vbeinfo_mod_SOURCES): New variable.
14061 (vbeinfo_mod_CFLAGS): Likewise.
14062 (vbetest_mod_SOURCES): Likewise.
14063 (vbetest_mod_CFLAGS): Likewise.
14064
992ffbbe 140652005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
14066
14067 * normal/misc.c: New file.
14068
14069 * DISTLIST: Added normal/misc.c.
f19dbdb7 14070
992ffbbe 14071 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
14072 DISK to HOOK. Call HOOK with DISK.
14073 * partmap/apple.c (apple_partition_map_iterate): Likewise.
14074 * partmap/pc.c (pc_partition_map_iterate): Likewise.
14075 * partmap/sun.c (sun_partition_map_iterate): Likewise.
14076
14077 * normal/menu_entry.c (struct screen): Added a new member
14078 "completion_shown".
14079 (completion_buffer): New global variable.
14080 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
14081 (store_completion): New function.
14082 (complete): Likewise.
14083 (clear_completions): Likewise.
14084 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
14085 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
14086 a tab, call complete.
14087
14088 * normal/completion.c (disk_dev): Removed.
14089 (print_simple_completion): Likewise.
14090 (print_partition_completion): Likewise.
14091 (print_func): New global variable.
14092 (add_completion): Do not take the arguments WHAT or PRINT any
14093 longer. Added a new argument TYPE. Instead of printing directly,
14094 call PRINT_FUNC if not NULL.
14095 All callers changed.
14096 (complete_device): Use a local variable DEV instead of
14097 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
14098 (grub_normal_do_completion): Take a new argument HOOK. Do not
14099 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
14100 empty string, return NULL instead.
14101 All callers changed.
14102
14103 * normal/cmdline.c (print_completion): New function.
14104
14105 * kern/partition.c (grub_partition_iterate): Add an argument DISK
14106 to HOOK.
14107 All callers changed.
14108
14109 * kern/disk.c (grub_print_partinfo): Removed.
14110
14111 * include/grub/partition.h (struct grub_partition_map): Add a new
14112 argument DISK into HOOK of ITERATE.
14113 (grub_partition_iterate): Add a new argument DISK to HOOK.
14114
14115 * include/grub/normal.h (enum grub_completion_type): New enum.
14116 (grub_completion_type_t): New type.
14117 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
14118 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
14119 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
14120 (GRUB_COMPLETION_TYPE_FILE): Likewise.
14121 (grub_normal_do_completion): Added a new argument HOOK.
14122 (grub_normal_print_device_info): New prototype.
14123
14124 * include/grub/disk.h (grub_print_partinfo): Removed.
14125
14126 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
14127 (normal_mod_SOURCES): Likewise.
14128 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14129 (normal_mod_SOURCES): Likewise.
14130
14131 * commands/ls.c (grub_ls_list_disks): Use
14132 grub_normal_print_device_info instead of grub_print_partinfo. Free
14133 PNAME.
14134 (grub_ls_list_files): Use grub_normal_print_device_info instead of
14135 duplicating the code.
14136
0bd41162 141372005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
14138
14139 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 14140 follow GCS more precisely.
14141 * commands/i386/pc/vbe_test.c: Likewise.
14142 * include/grub/i386/pc/vbe.h: Likewise.
14143 * term/i386/pc/vesafb.c: Likewise.
14144 * video/i386/pc/vbe.c: Likewise.
0bd41162 14145
6323696a 141462005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
14147
14148 * DISTLIST: Added term/i386/pc/vesafb.c
14149 DISTLIST: Added video/i386/pc/vbe.c
14150 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
14151 DISTLIST: Added commands/i386/pc/vbe_test.c.
14152 * commands/i386/pc/vbe_list_modes.c: New file.
14153 * commands/i386/pc/vbe_test.c: Likewise.
14154 * term/i386/pc/vesafb.c: Likewise.
14155 * video/i386/pc/vbe.c: Likewise.
14156 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
14157 (grub_vbe_probe) Added prototype.
14158 (grub_vbe_set_video_mode) Likewise.
14159 (grub_vbe_get_video_mode) Likewise.
14160 (grub_vbe_get_video_mode_info) Likewise.
14161 (grub_vbe_set_pixel_rgb) Likewise.
14162 (grub_vbe_set_pixel_index) Likewise.
14163 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
14164 (pkgdata_MODULES): Added vesafb.mod.
14165 (pkgdata_MODULES): Added vbe_list_modes.mod.
14166 (pkgdata_MODULES): Added vbe_test.mod.
14167 (vbe_mod_SOURCES): Added.
14168 (vbe_mod_CFLAGS): Likewise.
14169 (vesafb_mod_SOURCES): Likewise.
14170 (vesafb_mod_CFLAGS): Likewise.
14171 (vbe_list_modes_mod_SOURCES): Likewise.
14172 (vbe_list_modes_mod_CFLAGS): Likewise.
14173 (vbe_test_mod_SOURCES): Likewise.
14174 (vbe_test_mod_CFLAGS): Likewise.
14175
0a74e62f 141762005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
14177
0a74e62f 14178 * normal/command.c (grub_command_execute): If INTERACTIVE is
14179 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
14180 CMDLINE. Disable the pager if INTERACTIVE is true.
14181 All callers are changed.
14182
14183 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
14184 before reading a config file.
14185 * normal/main.c (read_config_file): Even if a command is not
14186 found, register it if it is within an entry.
14187
14188 * util/grub-emu.c: Include sys/types.h and unistd.h.
14189 (options): Added --hold.
14190 (struct arguments): Added a new member "hold".
14191 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
14192 missing.
14193 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
14194 cleared by a debugger, if it is not zero.
14195
14196 * include/grub/normal.h (grub_command_execute): Add an argument
14197 INTERACTIVE.
14198
e51f85ae 141992005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
14200
14201 * DISTLIST: Added include/grub/i386/pc/vbe.h.
14202
e9c6f39b 142032005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
14204
14205 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
14206 program with another one, because the old one didn't detect a bug
14207 in gcc-3.4. Always use regparm 2, because the new test is still
14208 not enough for gcc-4.0. Someone must investigate a simple test
14209 case which detects a bug in gcc-4.0.
14210
8de3495c 142112005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
14212
14213 * DISTLIST: Added normal/completion.c.
14214
14215 * normal/completion.c: New file.
f19dbdb7 14216
8de3495c 14217 * term/i386/pc/console.c (grub_console_getwh): New function.
14218 (grub_console_term): Assign grub_console_getwh to getwh.
14219
14220 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
14221 function is defined in normal/completion.c as
14222 grub_normal_do_completion.
14223 (grub_cmdline_get): Use grub_normal_do_completion instead of
14224 grub_tab_complete.
14225
14226 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
14227 returns non-zero, otherwise return 0.
14228 (grub_partition_iterate): First, probe the partition map. Then,
14229 call ITERATE only for this partition map.
14230
14231 * kern/misc.c (grub_strncmp): Rewritten.
14232
14233 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
14234 returns non-zero. Otherwise return 0.
14235
14236 * include/grub/partition.h (grub_partition_map_iterate): Return
14237 int instead of void.
14238
14239 * include/grub/normal.h (grub_normal_do_completion): New prototype.
14240
14241 * include/grub/misc.h (grub_strncmp): Change the type of N to
14242 grub_size_t.
14243
14244 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
14245 of void.
14246
14247 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 14248 unsigned explicitly before comparing it with I.
8de3495c 14249
14250 * kern/main.c (grub_env_write_root): Add the attribute unused into
14251 VAR.
14252
14253 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
14254 normal/completion.c.
14255 (normal_mod_SOURCES): Likewise.
14256 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
14257 (normal_mod_SOURCES): Likewise.
14258
14259 * normal/command.c (grub_iterate_commands): If ITERATE returns
14260 non-zero, return one immediately.
14261
e85e144b 142622005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
14263
14264 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
14265 * kern/i386/pc/startup.S: Updated Global Descriptor table's
14266 descriptions.
14267 (grub_vbe_get_controller_info): New function.
14268 (grub_vbe_get_mode_info): Likewise.
14269 (grub_vbe_set_mode): Likewise.
14270 (grub_vbe_get_mode): Likewise.
14271 (grub_vbe_set_memory_window): Likewise.
14272 (grub_vbe_get_memory_window): Likewise.
14273 (grub_vbe_set_scanline_length): Likewise.
14274 (grub_vbe_get_scanline_length): Likewise.
14275 (grub_vbe_set_display_start): Likewise.
14276 (grub_vbe_get_display_start): Likewise.
14277 (grub_vbe_set_palette_data): Likewise.
14278 * include/grub/i386/pc/vbe.h: New file.
14279
c46153d2 142802005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14281
14282 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
14283 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
14284 * DISTLIST: Likewise.
14285 * kern/ieee1275/of.c: Moved to ...
14286 * kern/ieee1275/ieee1275.c: ... here.
14287
0cb90c45 142882005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14289
14290 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
14291 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
14292 Pass 0 as `end' parameter to grub_strtoul().
14293
a19fb360 142942005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14295
14296 * include/grub/powerpc/ieee1275/console.h: Do not include
14297 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
14298 ifdef.
14299 (grub_console_cur_color): Remove i386-specific prototype.
14300 (grub_console_real_putchar): Likewise.
14301 (grub_console_checkkey): Likewise.
14302 (grub_console_getkey): Likewise.
14303 (grub_console_getxy): Likewise.
14304 (grub_console_gotoxy): Likewise.
14305 (grub_console_cls): Likewise.
14306 (grub_console_setcursor): Likewise.
14307 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
14308 Include <grub/machine/console.h>.
14309 * term/ieee1275/ofconsole.c: Likewise.
14310
4ac9bd04 143112005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
14312
14313 * Makefile.in (LIBLZO): New variable.
14314
14315 * configure.ac: Check for LZO version 2.
14316
14317 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
14318 lzo/lzo1x.h instead of lzo1x.h.
14319
14320 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
14321 of -llzo.
14322
14323 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
14324 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
14325
14326 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
14327 copying the data from PARTITION to P.
14328
f4917dfd 143292005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14330
14331 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
14332 negative, unload the module.
14333
14334 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
14335 map is "pc_partition_map" but not "pc".
14336 (usage): Fix the description. The options are --boot-image and
14337 --core-image but not --boot-file or --core-file.
14338 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
14339 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
14340 DEFAULT_DIRECTORY.
14341
14342 * util/i386/pc/grub-install.in: Do not specify --boot-file or
14343 --core-file. Specify INSTALL_DEVICE as an argument.
14344
14345 * util/console.c: Include config.h.
14346 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
14347 [HAVE_NCURSES_H]: Include ncurses.h.
14348 [HAVE_CURSES_H]: Include curses.h.
14349 [!A_NORMAL] (A_NORMAL): Defined as zero.
14350 [!A_STANDOUT] (A_STANDOUT): Likewise.
14351
14352 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
14353 -lncurses.
14354 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
14355
14356 * configure.ac: Check for curses libraries and headers.
14357
14358 * Makefile.in (LIBCURSES): New variable.
14359
14360 * genmk.rb (Script::rule): Set the executable bits.
14361
14362 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
14363 name of the PC partition map is "pc_partition_map" but not "pc".
14364
0e143073 143652005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14366
14367 * util/i386/pc/grub-install.in (grub_probefs): New variable.
14368 (modules): Likewise.
14369 (usage): Added descriptions for --modules and --grub-probefs.
14370 Handle --modules and --grub-probefs. Save the arguments in MODULES
14371 and GRUB_PROBEFS, respectively.
14372 Auto-detect a filesystem module against GRUBDIR. If the result is
14373 empty and modules are not specified explicitly, abort the
14374 installation. Add the result to MODULES.
14375
14376 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
14377 disk/powerpc/ieee1275/ofdisk.c,
14378 include/grub/powerpc/ieee1275/init.h and
14379 term/powerpc/ieee1275/ofconsole.c.
14380 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
14381 term/ieee1275/ofconsole.c.
14382
14383 * include/grub/powerpc/ieee1275/console.h: Resurrected.
14384
14385 * COPYING: Upgraded to the latest version. Only the address of the
14386 FSF office has changed.
f19dbdb7 14387
efd6e6d5 143882005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14389
14390 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
14391 kern/ieee1275.c with kern/ieee1275/of.c.
14392
14393 * kern/ieee1275.c: Moved to ...
14394 * kern/ieee1275/of.c: ... here.
14395
8ceafda2 143962005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
14397
14398 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 14399 readability.
8ceafda2 14400
14401 * config.guess: Updated to the latest version from gnulib.
14402 * config.sub: Likewise.
14403 * install.sh: Likewise.
14404 * mkinstalldirs: Likewise.
14405
14406 * include/grub/console.h: Removed. This file is arch-specific. Do
14407 not put this in include/grub.
14408
14409 * include/grub/i386/pc/console.h: Resurrected.
14410
14411 * util/console.c: Include grub/machine/console.h instead of
14412 grub/console.h.
14413 * util/grub-emu.c: Likewise.
14414
267f6cd9 144152005-08-04 Marco Gerards <metgerards@student.han.nl>
14416
14417 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
14418 hardcoded value.
f19dbdb7 14419
267f6cd9 14420 From Vincent Pelletier <subdino2004@yahoo.fr>
14421 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
14422 Redefined to use grub_getwh.
14423 (grub_term): New member named getwh.
14424 (grub_getwh): New prototype.
14425 * kern/term.c (grub_getwh): New function.
14426 * term/i386/pc/console.c (grub_console_getwh): New function.
14427 (grub_console_term): New member `getwh'.
14428 * term/i386/pc/vga.c (grub_vga_getwh): New function.
14429 (grub_vga_term): New member `getwh'.
0b5abe02 14430 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 14431 grub_ssize_t.
14432 (grub_ofconsole_getw): New function.
14433 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
14434 (grub_ofconsole_term): New field named getwh and new initial
14435 value.
14436
3be7266d 144372005-08-03 Hollis Blanchard <hollis@penguinppc.org>
14438
14439 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
14440 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
14441 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
14442 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
14443 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
14444 of <grub/machine/ieee1275.h>.
14445 * commands/ieee1275/reboot.c: Likewise.
14446 * boot/powerpc/ieee1275/ieee1275.c: Move ...
14447 * kern/ieee1275.c: ... to here. All users updated. Change all
14448 parameter structs to use new type `grub_ieee1275_cell_t'.
14449 * term/powerpc/ieee1275/ofconsole.c: Move ...
14450 * term/ieee1275/ofconsole.c: ... to here. All users updated.
14451 * disk/powerpc/ieee1275/ofdisk.c: Move ...
14452 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
14453 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
14454 to return int.
14455 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
14456 Remove unused prototypes. All users updated.
14457 * include/grub/powerpc/ieee1275/console.h: Removed.
14458 * include/grub/powerpc/ieee1275/ieee1275.h: Define
14459 `grub_ieee1275_cell_t'.
14460 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
14461 Cast comparisons with -1 to the correct type.
14462 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
14463 type to match `grub_ieee1275_entry_fn'.
14464
8b5f3938 144652005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
14466
14467 * DISTLIST: Added util/i386/pc/grub-probefs.c.
14468
14469 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
14470 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
14471 partmap/sun.c.
14472 (grub_probefs_SOURCES): New variable.
14473
14474 * util/i386/pc/grub-probefs.c: New file.
14475
14476 * util/i386/pc/grub-setup.c (main): Call
14477 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
14478 grub_hfs_init and grub_jfs_init to initialize the system. Call
14479 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
14480 grub_pc_partition_map_fini to finish the system.
14481
ea409713 144822005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
14483
14484 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
14485 function.
14486 (grub_multiboot_load_elf32): Likewise.
14487 (grub_multiboot_is_elf64): Likewise.
14488 (grub_multiboot_load_elf64): Likewise.
14489 (grub_multiboot_load_elf): Likewise.
14490 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
14491 an ELF32 or ELF64 file.
14492 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
14493
14494 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
14495 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
14496 NULL before calling FS->LABEL.
14497 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
14498 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
14499 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
14500 before calling FS->LABEL.
14501
141a288b 145022005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
14503
14504 * util/i386/pc/grub-install.in (datadir): New variable.
14505 (libdir): Removed.
14506 (pkgdatadir): New variable.
14507 (pkglibdir): Removed.
14508
0d5f8a54 145092005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
14510
14511 * DISTLIST: Added util/i386/pc/grub-install.in.
14512
14513 * util/i386/pc/grub-install.in: New file.
14514
14515 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
14516 (grub_install_SOURCES): Likewise.
14517
14518 * genmk.rb: Added support for scripts.
14519 (Script): New class.
14520 (scripts): New variable.
14521
14522 * Makefile.in (install-local): Install sbin_SCRIPTS by
14523 INSTALL_SCRIPT.
14524 (uninstall): Remove sbin_SCRIPTS.
14525
14526 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
14527 device, try to get a GRUB device by
14528 grub_util_biosdisk_get_grub_dev.
14529 Free DEST_DEV.
14530
14531 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
14532 description for --device-map.
14533
5f968e1e 145342005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
14535
14536 Change the semantics of variable hooks. They now return strings
14537 instead of error values.
f19dbdb7 14538
5f968e1e 14539 * util/i386/pc/grub-setup.c: Include grub/env.h.
14540 (setup): Use grub_device_set_root instead of grub_env_set.
14541
14542 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
14543 grub_env_get instead of grub_device_set_root and
14544 grub_device_get_root, respectively.
14545
14546 * kern/main.c (grub_env_write_root): New function.
14547 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
14548 grub_env_set instead of grub_device_set_root.
14549
14550 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
14551 many variables.
14552 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
14553 rather than calling ENV->WRITE_HOOK afterwards.
14554 (grub_env_get): Return the result of ENV->READ_HOOK rather than
14555 passing a pointer of a pointer.
14556 (grub_register_variable_hook): Change the types of "read_hook" and
14557 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
14558 respectively.
14559 Allocate the default empty string on the heap, because this string
14560 may be freed later.
14561
14562 * kern/device.c: Include grub/env.h.
14563 (grub_device_set_root): Removed.
14564 (grub_device_get_root): Likewise.
14565 (grub_device_open): Use grub_env_get instead of
14566 grub_device_get_root.
14567
14568 * include/grub/env.h (grub_env_read_hook_t): New type.
14569 (grub_env_write_hook_t): Likewise.
14570 (grub_env_var): Change the types of "read_hook" and "write_hook"
14571 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
14572 (grub_register_variable_hook): Likewise.
14573
14574 * include/grub/device.h (grub_device_set_root): Removed.
14575 (grub_device_set_root): Likewise.
14576
14577 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
14578 make sure that DIRNAME terminates with '/', so that
14579 grub_fat_find_dir will fail if PATH is not a directory.
14580
14581 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
14582 from DIRNAME.
14583 Use the qualifier auto for print_files and print_files_long.
14584 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
14585 as a regular file.
14586 Put a newline only if there is no error.
14587 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
14588 used.
14589
896f0afd 145902005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
14591
14592 * kern/partition.c (grub_partition_probe): Initialize PART to
14593 NULL. Otherwise, when no partition map is registered, this returns
14594 a garbage.
14595
b28b81b2 145962005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
14597
14598 * partmap/apple.c (apple_partition_map_iterate): Check if POS
14599 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
14600 valid.
14601
5f3607e0 146022005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
14603
14604 * commands/ls.c (grub_ls_list_disks): Print the filesystem
14605 information on each device, if it does not have partitions. Print
14606 "Device" instead of "Disk", because this function is not specific
14607 to disk devices.
14608
14609 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
14610 static to ensure that it is put on the memory rather than a
14611 register.
14612
502c87e8 146132005-07-17 Yoshinori Okuji <okuji@enbug.org>
14614
14615 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
14616 (grub_cat_init): Likewise.
14617 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
14618 (options): Likewise.
14619 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
14620 (grub_configfile_init): Likewise.
14621 * font/manager.c (GRUB_MOD_INIT): Likewise.
14622 * commands/help.c (GRUB_MOD_INIT): Likewise.
14623 (grub_help_init): Likewise.
14624 * normal/command.c (grub_command_init): Likewise.
14625 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
14626 * disk/loopback.c (grub_loop_init): Likewise.
14627 (GRUB_MOD_INIT): Likewise.
14628 * commands/ls.c (grub_ls_init): Likewise.
14629 (GRUB_MOD_INIT): Likewise.
14630 (options): Likewise.
14631 * commands/boot.c (grub_boot_init): Likewise.
14632 (GRUB_MOD_INIT): Likewise.
14633 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
14634 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
14635 (GRUB_MOD_INIT): Likewise.
14636 * commands/cmp.c (grub_cmp_init): Likewise.
14637 (GRUB_MOD_INIT): Likewise.
14638
14639 * normal/arg.c: Use <> instead of "" to include header files.
14640 (SHORT_ARG_HELP): New macro.
14641 (SHORT_ARG_USAGE): Likewise.
14642 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
14643 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
14644 descriptions.
14645 (find_short): Check if C is 'h' or 'u' explicitly.
14646 (grub_arg_show_help): Use space characters instead of tabs. Treat
14647 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
14648 are shown with --help and --usage only if they are not used for
14649 the command itself.
14650 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
14651 'h' and 'u'.
14652
14653 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
14654 const into "longarg". Change the type of "shortarg" to int.
14655
f806d18e 146562005-07-17 Yoshinori Okuji <okuji@enbug.org>
14657
14658 * boot/i386/pc/boot.S (boot_drive_check): New label.
14659
14660 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
14661 macro.
14662
14663 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
14664 which do not pass a boot drive correctly. Copied from GRUB Legacy.
14665
e293232b 146662005-07-17 Yoshinori Okuji <okuji@enbug.org>
14667
14668 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
14669 When turning off Gate A20, skip the check and return immediately,
14670 because this is not fatal usually.
14671
ebedfd00 146722005-07-17 Yoshinori Okuji <okuji@enbug.org>
14673
14674 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
14675 be 0x7C00 instead of 0x8000.
14676
14677 * boot/i386/pc/pxeboot.S: Rewritten.
14678
14679 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
14680 EXT_C.
14681 (gate_a20_check_state): Read a byte from 0x108000. Invert the
14682 result.
14683
654fc59f 146842005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
14685
14686 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
14687 robustness. This routine now supports a BIOS call and System
14688 Control Port A to modify the gate A20.
14689
14690 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
14691 Increased to 0x440.
14692
09f9923f 146932005-07-12 Hollis Blanchard <hollis@penguinppc.org>
14694
14695 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
14696 device path and resulting ihandle.
14697 (grub_ofdisk_close): dprintf the ihandle being closed.
14698 (grub_ofdisk_read): dprintf function parameters.
14699 * kern/mm.c (grub_mm_init_region): Likewise.
14700 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
14701 (grub_linux_boot): dprintf the Linux entry point, initrd address and
14702 size, and boot arguments.
14703 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
14704 before loading into memory.
14705 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
14706 before loading into memory.
14707
7ef504d8 147082005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
14709
14710 * kern/mm.c: Added much documentation.
14711 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
14712 8, set to 5 instead of 8.
14713
e0f050c2 147142005-07-10 Yoshinori Okuji <okuji@enbug.org>
14715
14716 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
14717
14718 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
14719 (grub_mkdevicemap_SOURCES): New variable.
14720
14721 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
14722 lib/device.c of GRUB Legacy.
14723
7224189a 147242005-07-10 Yoshinori Okuji <okuji@enbug.org>
14725
14726 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
14727 instead of PATH is NULL.
14728
68c864eb 147292005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
14730
14731 * commands/cmp.c (BUFFER_SIZE): New macro.
14732 (grub_cmd_cmp): Close the right file at the right time. Compare
14733 only data just read. Don't report files of different size as
14734 identical. Dynamically allocate buffers. Move variable
14735 declarations at the beginning of function.
14736
e6f3e614 147372005-07-09 Yoshinori Okuji <okuji@enbug.org>
14738
14739 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
14740 reverse.
14741
f8f1559a 147422004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
14743
14744 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
14745 when backspace is pressed at beginning of line.
14746
39c9d41d 147472005-07-03 Yoshinori Okuji <okuji@enbug.org>
14748
14749 * DISTLIST: Added genfslist.sh.
14750
14751 * normal/main.c (fs_module_list): New variable.
14752 (autoload_fs_module): New function.
14753 (read_fs_list): Likewise.
14754 (grub_normal_execute): Call read_fs_list.
14755
14756 * kern/fs.c (grub_fs_autoload_hook): New variable.
14757 (grub_fs_probe): Added support for auto-loading.
14758
14759 * include/grub/normal.h (struct grub_fs_module_list): New struct.
14760 (grub_fs_module_list_t): New type.
14761
14762 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
14763 (grub_fs_autoload_hook): New prototype.
14764
14765 * genfslist.sh: New file.
f19dbdb7 14766
39c9d41d 14767 * genmk.rb: Added a rule to generate a filesystem list.
14768
121c1d83 147692005-06-30 Marco Gerards <metgerards@student.han.nl>
14770
14771 * configure.ac: Fix the test for cross-compiling.
14772
14773 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
14774 define GRUB_UTIL anymore.
14775
14776 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
14777 so this function works on other systems than just big endian.
14778 (load_modules): Likewise.
14779 (add_segments): Likewise.
14780
e75d76e1 147812005-06-23 Hollis Blanchard <hollis@penguinppc.org>
14782
14783 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
14784 contains `l' modifier, get a long from va_arg().
14785
50b5a0a7 147862005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
14787
14788 * kern/mm.c (grub_free): If the next free block which is being
14789 merged is the first free block, set the first block to the block
14790 being freed.
14791 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
14792
89371b20 147932005-05-08 Hollis Blanchard <hollis@penguinppc.org>
14794
14795 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
14796 `grub_ieee1275_chosen'.
14797
168d6e58 147982005-05-08 Hollis Blanchard <hollis@penguinppc.org>
14799
14800 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
14801 (grub_ieee1275_chosen): New variable.
14802 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
14803 `chosen'.
14804 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
14805 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
14806 Rename first argument to `phandle' for consistency.
14807 (grub_ieee1275_get_property_length): Likewise.
14808 (grub_ieee1275_next_property): Likewise. Change type of first argument
14809 to grub_ieee1275_phandle_t.
14810 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
14811 Move export next to declaration.
14812 (grub_ieee1275_chosen): New variable.
14813 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
14814 Correct cosmetic typo.
14815 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
14816 `grub_ieee1275_chosen'.
14817 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
14818 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
14819 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
14820 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
14821 `grub_ieee1275_chosen'.
14822
ca5baa3f 148232005-05-10 Hollis Blanchard <hollis@penguinppc.org>
14824
14825 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
14826 /chosen/bootargs.
14827 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
14828 /chosen/bootargs as "variable=value" pairs.
14829
708b345f 148302005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
14831
14832 * include/grub/misc.h (grub_dprintf): New macro.
14833 (grub_real_dprintf): New prototype.
14834 (grub_strword): Likewise.
14835 (grub_iswordseparator): Likewise.
14836 * kern/misc.c (grub_real_dprintf): New function.
14837 (grub_strword): Likewise.
14838 (grub_iswordseparator): Likewise.
14839
f4c5e67c 148402005-04-30 Hollis Blanchard <hollis@penguinppc.org>
14841
14842 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
14843 (roundup): Remove macro.
14844 (grub_ieee1275_flags): Make static.
14845 (grub_ieee1275_realmode): Remove.
14846 (grub_ieee1275_test_flag): New function.
14847 (grub_ieee1275_set_flag): Likewise.
14848 (find_options): Rename to `grub_ieee1275_find_options'; update
14849 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
14850 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
14851 (cmain): New prototype.
14852 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
14853 `grub_ieee1275_flags' directly.
14854 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
14855 machine/biosdisk.h.
14856 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
14857 Don't include grub/machine/init.h.
14858 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
14859 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
14860 Remove prototype.
14861 (grub_ieee1275_realmode): Likewise.
14862 (grub_ieee1275_flag): New enum.
14863 (grub_ieee1275_test_flag): New prototype.
14864 (grub_ieee1275_set_flag): New prototype.
14865 * include/grub/powerpc/ieee1275/init.h: Remove file.
14866 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
14867 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
14868 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
14869 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
14870 comment.
14871 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
14872 `grub_ieee1275_test_flag'.
14873 (grub_ieee1275_encode_devname): Likewise.
14874
ed16607e 148752005-04-21 Hollis Blanchard <hollis@penguinppc.org>
14876
14877 * include/grub/powerpc/ieee1275/ieee1275.h
14878 (grub_ieee1275_encode_devname): New prototype.
14879 (grub_ieee1275_get_filename): Likewise.
14880 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
14881 function.
14882 (grub_set_prefix): Likewise.
14883 (grub_machine_init): Call grub_set_prefix.
14884 * kern/powerpc/ieee1275/openfw.c: Fix typos.
14885 (grub_parse_type): New enum.
14886 (grub_ieee1275_get_devargs): New function.
14887 (grub_ieee1275_get_devname): Likewise.
14888 (grub_ieee1275_parse_args): Likewise.
14889 (grub_ieee1275_get_filename): Likewise.
14890 (grub_ieee1275_encode_devname): Likewise.
14891
be369920 148922005-03-30 Marco Gerards <metgerards@student.han.nl>
14893
14894 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
14895 `grub_loader_unset'.
14896
a5ce3a4a 148972005-03-26 Hollis Blanchard <hollis@penguinppc.org>
14898
14899 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
14900 instead of grub_ieee1275_interpret.
14901 (grub_halt_init): New function.
14902 (grub_halt_fini): Likewise.
14903 (GRUB_MOD_INIT): Correct message grammar.
14904 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
14905 instead of grub_ieee1275_interpret.
14906 (grub_reboot_init): New function.
14907 (grub_reboot_fini): Likewise.
14908 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
14909 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
14910 util/i386/pc/misc.c with commands/ieee1275/halt.c,
14911 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
14912 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
14913 function.
14914 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
14915 Add prototype.
14916 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
14917 prototype.
14918 (grub_halt): Likewise.
14919 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
14920 (cmain): Remove __attribute__((unused)).
14921 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
14922 (grub_heap_len): Likewise.
14923 (grub_machine_fini): New function.
14924 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
14925 (grub_halt): Likewise.
14926 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
14927 function.
14928 * util/powerpc/ieee1275/misc.c: New file.
14929
0058f771 149302005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
14931
14932 * DISTLIST: New file.
14933 * gendistlist.sh: Likewise.
f19dbdb7 14934
0058f771 14935 * Makefile.in (COMMON_DISTFILES): Removed.
14936 (BOOT_DISTFILES): Likewise.
14937 (CONF_DISTFILES): Likewise.
14938 (DISK_DISTFILES): Likewise.
14939 (FS_DISTFILES): Likewise.
14940 (INCLUDE_DISTFILES): Likewise.
14941 (KERN_DISTFILES): Likewise.
14942 (LOADER_DISTFILES): Likewise.
14943 (TERM_DISTFILES): Likewise.
14944 (UTIL_DISTFILES): Likewise.
14945 (DISTFILES): Likewise.
14946 (uninstall): Uninstall files in $(pkgdata_DATA).
14947 (DISTLIST): New target.
14948 (distdir): Use the contents of the file DISTLIST to get a list of
14949 distributed files.
14950
46b3b8a5 149512005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
14952
14953 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
14954 descriptor. This is ported from GRUB Legacy.
14955
14956 * gencmdlist.sh: Added an extra semicolon to make it work with
14957 old sed versions. Reported by Robert Bihlmeyer
14958 <robbe@orcus.priv.at>.
14959
5822ff87 149602005-03-08 Yoshinori Okuji <okuji@enbug.org>
14961
14962 Automatic loading of commands is supported.
f19dbdb7 14963
5822ff87 14964 * normal/main.c (read_command_list): New function.
14965 (grub_normal_execute): Call read_command_list.
14966
14967 * normal/command.c (grub_register_command): Return zero or CMD.
14968 Allocate CMD->NAME from the heap.
14969 Initialize CMD->MODULE_NAME to zero.
14970 Find the same name as well. If the same command is found and it is
14971 a dummy command, overwrite members. If it is not a dummy command,
14972 return zero.
14973 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
14974 (grub_command_find): If a dummy command is found, load a module
14975 and retry to find a command only once.
14976
14977 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
14978 make sure that each command is loaded.
14979
14980 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
14981 macro.
14982 (struct grub_command): Remove const from the member `name'.
14983 Add a new member `module_name'.
14984 (grub_register_command): Return grub_command_t.
14985
14986 * commands/help.c (grub_cmd_help): Call grub_command_find to make
14987 sure that each command is loaded.
14988
14989 * genmk.rb (PModule::rule): Specify a module name without the
14990 suffix ".mod" to gencmdlist.sh.
14991
7b1f4b57 149922005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
14993
14994 * gencmdlist.sh: New file.
f19dbdb7 14995
7b1f4b57 14996 * genmk.rb (PModule::rule): Generate a rule for a command list.
14997 Clean command.lst.
14998 Generate command.lst from $(COMMANDFILES).
14999
15000 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
15001 (DATA): Added $(pkgdata_DATA).
15002 (install-local): Install files in $(pkgdata_DATA).
15003
062aaf39 150042005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
15005
15006 * term/i386/pc/vga.c (debug_command): Removed.
15007 (GRUB_MOD_INIT): Do not register the command "debug".
15008
15009 From Hollis Blanchard:
15010 * commands/configfile.c: New file.
15011 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15012 commands/configfile.c.
15013 (pkgdata_MODULES): Added configfile.mod.
15014 (configfile_mod_SOURCES): New variable.
15015 (configfile_mod_CFLAGS): Likewise.
15016 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
15017 commands/configfile.c.
15018 (pkgdata_MODULES): Added configfile.mod.
15019 (configfile_mod_SOURCES): New variable.
15020 (configfile_mod_CFLAGS): Likewise.
15021 * util/grub-emu.c (main): Call grub_configfile_init and
15022 grub_configfile_fini.
15023 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
15024 prototype.
15025 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 15026
cee01aa6 150272005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
15028
15029 * normal/arg.c (grub_arg_show_help): Do not show the bug report
15030 address.
15031
15032 * commands/help.c (grub_cmd_help): Do not print newlines after
15033 the last command in print_command_help.
15034
93f3a1d8 150352005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
15036
15037 * commands/default.h: New file.
15038 * commands/timeout.h: Likewise.
15039 * normal/context.c: Likewise.
f19dbdb7 15040
93f3a1d8 15041 * util/misc.c: Do not include sys/times.h.
15042 Include sys/time.h and grub/machine/time.h.
15043 (grub_get_rtc): Rewritten with gettimeofday.
15044
15045 * util/grub-emu.c (main): Call grub_default_init and
15046 grub_timeout_init before grub_normal_init, and call
15047 grub_timeout_fini and grub_default_fini after grub_main.
15048
15049 * util/console.c (grub_ncurses_checkkey): Return the read
15050 character or -1.
15051
15052 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
15053 timeouts.
15054
15055 * normal/main.c (read_config_file): Push MENU. If this fails,
15056 print an error and wait for a user input.
15057 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
15058 If a menu is empty or an error occurs, pop MENU.
15059 (grub_normal_execute): Pop and free MENU after grub_menu_run
15060 returns.
15061
15062 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
15063
15064 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
15065 include time.h.
15066 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
15067 without GRUB_UTIL.
15068 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
15069 time.h.
15070 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
15071 without GRUB_UTIL.
15072
15073 * include/grub/normal.h (struct grub_menu_list): New struct.
15074 (grub_menu_list_t): New type.
15075 (struct grub_context): New struct.
15076 (grub_context_t): New type.
15077 (grub_register_command): Got rid of EXPORT_FUNC.
15078 (grub_unregister_command): Likewise.
15079 (grub_context_get): New prototype.
15080 (grub_context_get_current_menu): Likewise.
15081 (grub_context_push_menu): Likewise.
15082 (grub_context_pop_menu): Likewise.
15083 [GRUB_UTIL] (grub_default_init): Likewise.
15084 [GRUB_UTIL] (grub_default_fini): Likewise.
15085 [GRUB_UTIL] (grub_timeout_init): Likewise.
15086 [GRUB_UTIL] (grub_timeout_fini): Likewise.
15087
15088 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
15089 commands/timeout.c and normal/context.c.
15090 (pkgdata_MODULES): Added default.mod and timeout.mod.
15091 (normal_mod_SOURCES): Added normal/context.c.
15092 (default_mod_SOURCES): New variable.
15093 (default_mod_CFLAGS): Likewise.
15094 (timeout_mod_SOURCES): Likewise.
15095 (timeout_mod_CFLAGS): Likewise.
15096 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
15097 conf/i386-pc.rmk.
15098 (pkgdata_MODULES): Added default.mod and timeout.mod.
15099 (normal_mod_SOURCES): Added normal/context.c.
15100 (default_mod_SOURCES): New variable.
15101 (default_mod_CFLAGS): Likewise.
15102 (timeout_mod_SOURCES): Likewise.
15103 (timeout_mod_CFLAGS): Likewise.
15104
15105 * Makefile.in (all-local): Added $(MKFILES).
15106
4ed2e1dd 151072005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
15108
15109 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
15110 (grub_emu_SOURCES): Likewise.
15111 (pkgdata_MODULES): Add `sun.mod'.
15112 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
15113 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15114 `partmap/sun.c'.
15115 (pkgdata_MODULES): Add `sun.mod'.
15116 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
15117 * include/grub/partition.h (grub_sun_partition_map_init): New
15118 prototype.
15119 (grub_sun_partition_map_fini): Likewise.
15120 * partmap/sun.c: New file.
15121 * util/grub-emu.c (main): Initialize and de-initialize the sun
15122 partitionmap support.
15123
4d4e372e 151242005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
15125
15126 This implements an Emacs-like menu entry editor.
f19dbdb7 15127
4d4e372e 15128 * normal/menu_entry.c: New file.
f19dbdb7 15129
4d4e372e 15130 * util/console.c (grub_ncurses_putchar): Translate some Unicode
15131 characters to ASCII.
15132 (saved_char): New variable.
15133 (grub_ncurses_checkkey): Rewritten completely.
15134 (grub_ncurses_getkey): Likewise.
15135 (grub_ncurses_init): Call raw instead of cbreak.
15136
15137 * normal/menu.c (print_entry): Do not put a space.
15138 (init_page): Renamed to ...
15139 (grub_menu_init_page): ... this. All callers changed.
15140 (edit_menu_entry): Removed.
15141 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
15142
15143 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
15144
15145 * kern/misc.c (grub_vprintf): Call grub_refresh.
15146
15147 * normal/menu.c (DISP_LEFT): Renamed to ...
15148 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
15149 * normal/menu.c (DISP_UP): Renamed to ...
15150 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
15151 * normal/menu.c (DISP_RIGHT): Renamed to ...
15152 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
15153 * normal/menu.c (DISP_DOWN): Renamed to ...
15154 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
15155 * normal/menu.c (DISP_HLINE): Renamed to ...
15156 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
15157 * normal/menu.c (DISP_VLINE): Renamed to ...
15158 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
15159 * normal/menu.c (DISP_UL): Renamed to ...
15160 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
15161 * normal/menu.c (DISP_UR): Renamed to ...
15162 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
15163 * normal/menu.c (DISP_LL): Renamed to ...
15164 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
15165 * normal/menu.c (DISP_LR): Renamed to ...
15166 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
15167 * normal/menu.c (TERM_WIDTH): Renamed to ...
15168 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
15169 * normal/menu.c (TERM_HEIGHT): Renamed to ...
15170 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
15171 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
15172 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
15173 * normal/menu.c (TERM_MARGIN): Renamed to ...
15174 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
15175 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
15176 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
15177 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
15178 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
15179 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
15180 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
15181 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
15182 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
15183 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
15184 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
15185 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
15186 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
15187 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
15188 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
15189 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
15190 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
15191 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
15192 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
15193 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
15194 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
15195 All callers changed.
15196
15197 * include/grub/normal.h: New prototype.
15198
15199 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15200 normal/menu_entry.c.
15201 (normal_mod_SOURCES): Likewise.
15202 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
15203 (normal_mod_SOURCES): Likewise.
15204
e6b92c8a 152052005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
15206
15207 * include/grub/normal.h (grub_halt_init): New prototype.
15208 (grub_halt_fini): Likewise.
15209 (grub_reboot_init): Likewise.
15210 (grub_reboot_fini): Likewise.
15211
15212 * util/grub-emu.c: Include signal.h.
15213 (main_env): New global variable.
15214 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
15215 catch C-c.
15216 (grub_machine_fini): New function.
15217 (main): Call grub_halt_init and grub_reboot_init before
15218 grub_main, and grub_reboot_fini and grub_halt_fini after it.
15219 Call setjmp with MAIN_ENV to go back afterwards.
15220 Call grub_machine_fini right before return.
15221
15222 * include/grub/util/misc.h: Include setjmp.h.
15223 (main_env): New prototype.
15224
15225 * include/grub/kernel.h (grub_machine_fini): New prototype.
15226 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
15227 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
15228
15229 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
15230 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
15231 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 15232
e6b92c8a 15233 * util/i386/pc/misc.c: New file.
f19dbdb7 15234
e6b92c8a 15235 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15236 util/i386/pc/misc.c, commands/i386/pc/halt.c and
15237 commands/i386/pc/reboot.c.
15238
c642636f 152392005-02-14 Guillem Jover <guillem@hadrons.org>
15240
15241 * include/grub/dl.h (grub_dl_check_header): New prototype.
15242 (grub_arch_dl_check_header): Change return type to grub_err_t,
15243 remove size parameter and export function. Update all callers.
15244 * kern/dl.c (grub_dl_check_header): New function.
15245 (grub_dl_load_core): Use `grub_dl_check_header' instead of
15246 `grub_arch_dl_check_header'. Check ELF type. Check if sections
15247 are inside the core.
15248 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
15249 independent ELF header checks.
15250 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
15251 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
15252 `grub_dl_check_header' instead of explicit checks. Check for the
15253 ELF type.
15254 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
15255 `grub_dl_check_header' instead of explicit checks. Remove arch
15256 specific ELF header checks.
15257
e6b92c8a 15258 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
15259 argument SIZE.
15260
5eabe94b 152612005-02-13 Hollis Blanchard <hollis@penguinppc.org>
15262
15263 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
15264 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
15265
1b14a681 152662005-02-12 Hollis Blanchard <hollis@penguinppc.org>
15267
15268 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 15269 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 15270 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 15271 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 15272 * partmap/amiga.c (amiga_partition_map_iterate): Return
15273 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
15274 * partmap/apple.c (apple_partition_map_iterate): Likewise.
15275
aca108aa 152762005-02-01 Guillem Jover <guillem@hadrons.org>
15277
15278 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
15279 help info.
15280
c9f9c556 152812005-01-31 Marco Gerards <metgerards@student.han.nl>
15282
15283 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
15284 Removed prototype.
15285 (grub_rescue_cmd_linux): New prototype.
15286 (grub_rescue_cmd_initrd): Likewise.
15287 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
15288 `bi_rec'.
15289 (grub_linux_release_mem): Release the memory for the initrd.
15290 (grub_load_linux): Renamed from this...
15291 (grub_rescue_cmd_linux): ...To this. Changed all callers.
15292 Changed `entry' not to be static. Loop over memory regions to
15293 find another one when the default fails.
15294 (grub_rescue_cmd_initrd): New function.
15295 (grub_linux_init): Remove function.
15296 (grub_linux_fini): Likewise.
15297 (GRUB_MOD_INIT): Register `initrd'.
15298 (GRUB_MOD_FINI): Unregister `initrd'.
15299 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
15300 Function removed.
15301 (grub_linux_normal_fini): Likewise.
15302 (GRUB_MOD_INIT): Register `initrd'.
15303 (GRUB_MOD_FINI): Unregister `initrd'.
15304
990cf3aa 153052005-01-31 Marco Gerards <metgerards@student.han.nl>
15306
15307 * commands/help.c: New file.
15308 * normal/arg.c (show_help): Renamed to...
15309 (grub_arg_show_help): ... this.
15310 * commands/i386/pc/halt.c: New file.
15311 * commands/i386/pc/reboot.c: Likewise.
15312 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
15313 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
15314 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
15315 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
15316 variables.
15317 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15318 `commands/help.c'.
15319 (pkgdata_MODULES): Add `help.mod'.
15320 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
15321 * grub/i386/pc/init.h (grub_reboot): New prototype.
15322 (grub_halt): Likewise.
15323 * include/grub/normal.h (grub_arg_show_help): New prototype.
15324 (grub_help_init): Likewise.
15325 (grub_help_fini): Likewise.
15326 * util/grub-emu.c (main): Initialize and deinitialize the help
15327 command.
15328
15329 * normal/cmdline.c (grub_cmdline_get): Doc fix.
15330
15331 * normal/command.c (grub_command_init): Fixed the description of
15332 the `set' and `unset' commands.
15333
153342005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 15335
15336 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
15337 function.
15338 * commands/ieee1275/halt.c: New file.
15339 * commands/ieee1275/reboot.c: Likewise.
15340 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
15341 `__attribute__ ((unused))'. Some GCS related fixed.
15342 (grub_suspend_init) [GRUB_UTIL]: Function removed.
15343 (grub_suspend_fini): Likewise.
15344 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
15345 and `halt.mod'.
15346 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
15347 (halt_mod_CFLAGS): New variables.
15348 * include/grub/powerpc/ieee1275/ieee1275.h
15349 (grub_ieee1275_interpret): New prototype.
15350
1ab09cc7 153512005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
15352
15353 * include/grub/misc.h (memmove): New prototype.
15354 (memcpy): Likewise.
15355
8b8cbdb2 153562005-01-22 Hollis Blanchard <hollis@penguinppc.org>
15357
15358 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
15359 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
15360
e3741a27 153612005-01-22 Marco Gerards <metgerards@student.han.nl>
15362
15363 * kern/misc.c (grub_strndup): Function rewritten.
15364
776bd780 153652005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
15366
15367 * normal/menu.c (TERM_WIDTH): Macro redefined.
15368 (TERM_TOP_BORDER_Y): Likewise.
15369 (draw_border): Replaced while-loop by a for-loop. Make the number
15370 of lines consistent with the number of lines displayed in
15371 print_entries. Added a margin below the rectangle.
15372 (print_entry): Make the entry fit in the rectangle.
15373 (print_entries): Display the scroll arrows next to the right
15374 border.
15375
78026bce 153762005-01-21 Marco Gerards <metgerards@student.han.nl>
15377
15378 * fs/minix.c (grub_minix_find_file): Reserve more space for
15379 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
15380 `grub_strncpy' to copy `path' into it.
15381
67bbaf0f 153822005-01-21 Marco Gerards <metgerards@student.han.nl>
15383
15384 Add the loopback device, a device via which files can be accessed
15385 as devices.
f19dbdb7 15386
67bbaf0f 15387 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
15388 (pkgdata_MODULES): Add loopback.mod.
15389 (loopback_mod_SOURCES): New variable.
15390 (loopback_mod_CFLAGS): Likewise.
15391 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15392 `disk/loopback.c'.
15393 (pkgdata_MODULES): Add loopback.mod.
15394 (loopback_mod_SOURCES): New variable.
15395 (loopback_mod_CFLAGS): Likewise.
15396 * disk/loopback.c: new file.
15397 * include/grub/normal.h (grub_loop_init): New prototype.
15398 (grub_loop_fini): New prototype.
15399 * util/grub-emu.c (main): Initialize and de-initialize loopback
15400 support.
15401 * include/grub/disk.h (grub_disk_dev_id): Add
15402 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
15403
6f1c18bd 154042005-01-20 Hollis Blanchard <hollis@penguinppc.org>
15405
15406 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
15407 function.
15408 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
15409 (suspend_mod_SOURCES): New variable.
15410 (suspend_mod_CFLAGS): Likewise.
15411 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
15412 New prototype.
15413 * commands/ieee1275/suspend.c: New file.
15414
b38551da 154152005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
15416
15417 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 15418 ((unused))' to `__attribute__ ((used))'.
b38551da 15419 (GRUB_MOD_FINI): Likewise.
15420 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
15421 * genmk.rb (PModule): Assign space to common symbols when linking
15422 modules.
15423
777aff39 154242005-01-20 Marco Gerards <metgerards@student.han.nl>
15425
15426 * include/grub/mm.h (grub_mm_init_region): Change the type of the
15427 `unsigned' arguments to `grub_size_t'.
15428 (grub_malloc): Likewise.
15429 (grub_realloc): Likewise.
15430 (grub_memalign): Likewise.
15431 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
15432 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
15433 * util/misc.c (grub_malloc): Likewise.
15434 (grub_realloc): Likewise.
15435 * kern/mm.c (get_header_from_pointer): Change the casts to
15436 `unsigned' into a cast to `grub_size_t'.
15437
15438 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
15439 point to `currnode' when `currnode' is changed.
15440
15441 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
15442 Schottelius <nico-linux@schottelius.org>.
15443
d0ff18e1 154442005-01-09 Hollis Blanchard <hollis@penguinppc.org>
15445
15446 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
15447 (note_path): Remove variable.
15448 (GRUB_IEEE1275_NOTE_NAME): New macro.
15449 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
15450 (grub_ieee1275_note_hdr): New structure.
15451 (grub_ieee1275_note_desc): Likewise.
15452 (grub_ieee1275_note): Likewise.
15453 (load_note): Remove `dir' argument. All callers updated. Remove
15454 `note_img' and `path'. Do not load a file from `note_path'.
15455 Initialize a struct grub_ieee1275_note and write that to `out'.
15456 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
15457
4ca7004c 154582005-01-05 Marco Gerards <metgerards@student.han.nl>
15459
15460 * util/misc.c (grub_util_read_image): Revert last change. It
15461 called `grub_util_read_at', which seeks from the beginning of the
15462 file.
15463
0b412211 154642005-01-04 Hollis Blanchard <hollis@penguinppc.org>
15465
15466 * TODO: Add note about endianness in grub-mkimage.
15467 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
15468 section.
15469 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
15470 (grub_mkimage_SOURCES): New target.
15471 * include/grub/kernel.h (grub_start_addr): Remove variable.
15472 (grub_end_addr): Likewise.
15473 (grub_total_module_size): Likewise.
15474 (grub_kernel_image_size): Likewise.
15475 (GRUB_MODULE_MAGIC): New constant.
15476 (grub_module_info): New structure.
15477 (grub_arch_modules_addr): New prototype.
15478 (grub_get_end_addr): Remove prototype.
15479 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
15480 * include/grub/powerpc/ieee1275/kernel.h: New file.
15481 * include/grub/util/misc.h (grub_util_get_fp_size): New
15482 prototype.
15483 (grub_util_read_at): Likewise.
15484 (grub_util_write_image_at): Likewise.
15485 * kern/main.c (grub_get_end_addr): Remove function.
15486 (grub_load_modules): Call grub_arch_modules_addr instead of using
15487 grub_end_addr. Look for a grub_module_info struct in memory. Use
15488 the grub_module_info fields instead of calling grub_get_end_addr
15489 as loop conditions. Move grub_add_unused_region code here.
15490 (grub_add_unused_region): Remove function.
15491 * kern/i386/pc/init.c: Include grub/cache.h.
15492 (grub_machine_init): Remove call to grub_get_end_addr. Remove
15493 one call to add_mem_region.
15494 (grub_arch_modules_addr): New function.
15495 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
15496 (grub_total_module_size): Likewise.
15497 Include grub/machine/kernel.h.
15498 (grub_arch_modules_addr): New function.
15499 * util/grub-emu.c (grub_end_addr): Remove variable.
15500 (grub_total_module_size): Likewise.
15501 (grub_arch_modules_addr): New function.
15502 * util/misc.c: Include unistd.h.
15503 (grub_util_get_fp_size): New function.
15504 (grub_util_read_at): Likewise.
15505 (grub_util_write_image_at): Likewise.
15506 (grub_util_read_image): Call grub_util_read_at.
15507 (grub_util_write_image): Call grub_util_write_image_at.
15508 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
15509 additional memory in kernel_img for a struct grub_module_info.
15510 Fill in that grub_module_info.
15511 * util/powerpc/ieee1275/grub-mkimage.c: New file.
15512
458786f8 155132005-01-03 Hollis Blanchard <hollis@penguinppc.org>
15514
15515 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
15516 New function.
15517 * include/grub/powerpc/ieee1275/ieee1275.h
15518 (grub_ieee1275_milliseconds): New prototype.
15519 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
15520 Change to 1000.
15521 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
15522 grub_ieee1275_milliseconds.
15523
ac507d1b 155242005-01-03 Hollis Blanchard <hollis@penguinppc.org>
15525
15526 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
15527 variable.
15528 (find_options): New function.
15529 (cmain): Call find_options.
15530 * include/grub/powerpc/ieee1275/ieee1275.h
15531 (grub_ieee1275_realmode): New extern variable.
15532 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
15533 grub_map if grub_ieee1275_realmode is false.
15534
6b8fd1c4 155352004-12-29 Marco Gerards <metgerards@student.han.nl>
15536
15537 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
15538 lines are inserted and make it work like readline. Reported by
15539 Vincent Pelletier <subdino2004@yahoo.fr>.
15540
8514a1e0 155412004-12-28 Marco Gerards <metgerards@student.han.nl>
15542
15543 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
15544
15545 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
15546 `kern/powerpc/cache.S'.
15547
924b6140 155482004-12-27 Marco Gerards <metgerards@student.han.nl>
15549
15550 * genmk.rb: Handle the `Program' class in the main loop. Written
15551 by Johan Rydberg <jrydberg@gnu.org>.
15552 (Program): New class.
15553 (programs): New variable.
15554 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
15555 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
15556 instead of "grub/kernel.h". Include <grub/machine/init.h>.
15557 (help_arch): Function removed.
15558 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
15559 `powerpc/libgcc.h' and `loader.h'.
15560 (pkgdata_PROGRAMS): New variable.
15561 (sbin_UTILITIES): Variable removed.
15562 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
15563 (grubof_SOURCES): Variable re-defined so it only includes the
15564 core functionality.
15565 (grubof_CFLAGS): Remove `-DGRUBOF'.
15566 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
15567 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
15568 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
15569 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
15570 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
15571 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
15572 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
15573 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
15574 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
15575 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
15576 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
15577 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
15578 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
15579 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
15580 (pc_mod_CFLAGS): New variables.
15581 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
15582 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
15583 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
15584 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
15585 Moved from here...
15586 * include/grub/i386/pc/init.h (grub_os_area_addr)
15587 (rub_os_area_size): ... to here.
15588 * include/grub/powerpc/ieee1275/ieee1275.h
15589 (grub_ieee1275_entry_fn): Export symbol.
15590 * include/grub/powerpc/ieee1275/init.h: New file.
15591 * include/grub/powerpc/libgcc.h: Likewise.
15592 * include/grub/cache.h: Likewise.
15593 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
15594 <hollis@penguinppc.org>.
15595 * kern/dl.c: Include <grub/cache.h>.
15596 (grub_dl_flush_cache): New function.
15597 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
15598 for this module.
15599 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
15600 (grub_console_init): Removed prototypes.
15601 (grub_machine_init): Don't initialize the modules anymore.
15602 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
15603 static.
15604 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
15605 Macro undef removed.
15606 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
15607 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
15608 relocation `R_PPC_REL32'. Return an error when the relocation is
15609 unknown.
15610 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
15611 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
15612 * util/misc.c (grub_arch_sync_caches): Likewise.
15613
e4b47e0c 156142004-12-19 Marco Gerards <metgerards@student.han.nl>
15615
15616 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
15617 `symlist.c', add `grubof_symlist.c'.
15618 (symlist.c): Variable removed.
15619 (grubof_HEADERS): Variable added.
15620 (grubof_symlist.c): New target.
15621 (kernel_syms.lst): Use `grubof_HEADERS' instead of
15622 `kernel_img_HEADERS'.
15623 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
15624 * kern/powerpc/dl.c: New file.
15625 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
15626 Function removed.
15627 (grub_arch_dl_relocate_symbols): Likewise.
15628 (grub_register_exported_symbols): Likewise.
15629
4ceb3636 156302004-12-13 Marco Gerards <metgerards@student.han.nl>
15631
15632 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
15633 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
15634 to fail instead. Reported by Vincent Pelletier
15635 <subdino2004@yahoo.fr>.
15636
15637 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
15638 it is not allocated. Reported by Vincent Pelletier
15639 <subdino2004@yahoo.fr>.
15640
15641 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
15642 output so the output looks better.
f19dbdb7 15643
3f1578fe 156442004-12-04 Marco Gerards <metgerards@student.han.nl>
15645
15646 Modulize the partition map support and add support for the amiga
15647 partition map.
f19dbdb7 15648
3f1578fe 15649 * commands/ls.c: Include <grub/partition.h> instead of
15650 <grub/machine/partition.h>.
15651 * kern/disk.c: Likewise.
15652 * kern/rescue.c: Likewise.
15653 * loader/i386/pc/chainloader.c: Likewise.
15654 * normal/cmdline.c: Likewise.
15655 * kern/powerpc/ieee1275/init.c: Likewise.
15656 (grub_machine_init): Call `grub_pc_partition_map_init',
15657 `grub_amiga_partition_map_init' and
15658 `grub_apple_partition_map_init'.
15659 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
15660 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
15661 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
15662 `partition.h' and `pc_partition.h'.
15663 (grub_setup_SOURCES): Remove
15664 `disk/i386/pc/partition.c'. Add `kern/partition.c',
15665 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
15666 (grub_emu_SOURCES): Likewise.
15667 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
15668 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
15669 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
15670 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
15671 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
15672 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
15673 (grubof_SOURCES): Likewise.
15674 * disk/i386/pc/partition.c: File removed.
15675 * disk/powerpc/ieee1275/partition.c: Likewise.
15676 * include/grub/powerpc/ieee1275/partition.h: Likewise.
15677 * include/grub/i386/pc/partition.h: Likewise.
15678 * kern/partition.c: New file.
15679 * partmap/amiga.c: Likewise.
15680 * partmap/apple.c: Likewise.
15681 * partmap/pc.c: Likewise.
15682 * include/grub/partition.h: Likewise..
15683 * include/grub/pc_partition.h: Likewise.
15684 * util/grub-emu.c: Include <grub/partition.h> instead of
15685 <grub/machine/partition.h>.
15686 (main): Call `grub_pc_partition_map_init',
15687 `grub_amiga_partition_map_init' and
15688 `grub_apple_partition_map_init' and deinitialize afterwards.
15689 * util/i386/pc/biosdisk.c: Include `#include
15690 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
15691 `<grub/machine/partition.h>'.
15692 * util/i386/pc/grub-setup.c: Likewise.
15693 * util/i386/pc/biosdisk.c: Likewise.
15694 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
15695 partition information in case of a PC partition.
15696 * util/i386/pc/grub-setup.c: Include `#include
15697 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
15698 `<grub/machine/partition.h>'.
15699 (setup): Only access the PC specific partition information in case
15700 of a PC partition.
15701
0ef4ced9 157022004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 15703
0ef4ced9 15704 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
15705 (grub_longjmp): Likewise.
15706 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
15707 20.
15708 * normal/powerpc/setjmp.S: New file.
15709 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
15710 `normal/powerpc/setjmp.S'.
15711 (grubof_CFLAGS): Add `-DGRUBOF'.
15712 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
15713 [GRUB_UTIL && !GRUBOF].
f19dbdb7 15714
19950e29 157152004-11-16 Marco Gerards <metgerards@student.han.nl>
15716
15717 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
15718 property named `name'. Correctly handle the error returned by
15719 `grub_ieee1275_finddevice' if a device can not be opened.
15720
a2fea427 157212004-11-02 Hollis Blanchard <hollis@penguinppc.org>
15722
15723 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
15724 `actual' for negativity.
15725 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
15726 kern/fshelp.c.
15727
41ea0ea3 157282004-11-01 Marco Gerards <metgerards@student.han.nl>
15729
15730 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
15731 (PAGE_OFFSET): New macro.
15732 (CRTC_ADDR_PORT): Likewise.
15733 (CRTC_DATA_PORT): Likewise.
15734 (START_ADDR_HIGH_REGISTER): Likewise.
15735 (START_ADDR_LOW_REGISTER): Likewise.
15736 (GRAPHICS_ADDR_PORT): Likewise.
15737 (GRAPHICS_DATA_PORT): Likewise.
15738 (READ_MAP_REGISTER): Likewise.
15739 (INPUT_STATUS1_REGISTER): Likewise.
15740 (INPUT_STATUS1_VERTR_BIT): Likewise.
15741 (page): New variable.
15742 (wait_vretrace): New function.
15743 (set_read_map): Likewise.
15744 (set_start_address): Likewise.
15745 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
15746 the right page.
15747 (check_vga_mem): Take the page into account.
15748 (write_char): Likewise.
15749 (write_cursor): Likewise.
15750 (scroll_up): Likewise. Copy the page to the page that is not
15751 shown and switch between both pages.
15752 (grub_vga_putchar): Fix off by one error.
15753 (grub_vga_cls): Wait for the vertical retrace. Take the page into
15754 account.
15755
ad0bd20b 157562004-11-01 Marco Gerards <metgerards@student.han.nl>
15757
15758 Add support for iso9660 (including rockridge).
f19dbdb7 15759
ad0bd20b 15760 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
15761 (iso9660_mod_SOURCES): New variable.
15762 (iso9660_mod_CFLAGS): Likewise.
15763 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
15764 * include/grub/fs.h (grub_iso9660_init): New prototype.
15765 * util/grub-emu.c (main): Call `grub_iso9660_init'.
15766 * fs/iso9660.c: New file.
15767
15768 * include/grub/misc.h (grub_strncat): New prototype.
15769 * kern/misc.c (grub_strncat): New function.
f19dbdb7 15770
ad0bd20b 15771 * fs/hfs.c (grub_hfs_mount): Translate the error
15772 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
15773 * fs/jfs.c (grub_jfs_mount): Likewise.
15774 * fs/ufs.c (grub_ufs_mount): Likewise.
15775
a5477a59 157762004-10-28 Hollis Blanchard <hollis@penguinppc.org>
15777
15778 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
15779 which initialized BAT registers.
15780 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
15781 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
15782 Move from here...
15783 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
15784 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
15785 ... to here.
15786 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
15787 (grub_mapclaim): Likewise.
15788 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
15789 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
15790 hand.
15791
9304c1f8 157922004-10-19 Hollis Blanchard <hollis@penguinppc.org>
15793
15794 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
15795 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
15796 -ffreestanding and -msoft-float.
15797
86f4ae25 157982004-10-15 Hollis Blanchard <hollis@penguinppc.org>
15799
15800 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
15801 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
15802 set in grub_ieee1275_flags.
15803
38912228 158042004-10-14 Hollis Blanchard <hollis@penguinppc.org>
15805
15806 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
15807 prototype.
15808 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
15809 grub_console_init first.
15810 Change the memory range used for grub_ieee1275_claim and
15811 grub_mm_init_region.
15812 Print an error message if the claim fails.
15813 Include <grub/misc.h>.
15814
d1923dc8 158152004-10-13 Hollis Blanchard <hollis@penguinppc.org>
15816
15817 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
15818 Call grub_children_iterate for device nodes of type `scsi',
15819 `ide', or `ata'.
15820 (grub_ofdisk_open): Remove manual device alias resolution.
15821 Fix memory leak when device cannot be opened.
f19dbdb7 15822 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 15823 (grub_children_iterate): New prototype.
15824 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
15825 New function.
15826 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
15827 Return -1 if args.size was -1.
15828
4512e4f3 158292004-10-11 Hollis Blanchard <hollis@penguinppc.org>
15830
15831 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
15832 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
15833 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
15834 Open Firmware's memory for it; claim memory from _start to _end.
15835 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
15836 (_end): New extern.
15837 (_start): Zero BSS from __bss_start to _end.
15838 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
15839 New extern.
15840 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
15841
4d61feb0 158422004-10-11 Hollis Blanchard <hollis@penguinppc.org>
15843
ad0bd20b 15844 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
15845 -1 if args.base was -1.
4d61feb0 15846
026fa2f9 158472004-10-08 Hollis Blanchard <hollis@penguinppc.org>
15848
15849 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
15850 escape sequence instead of a literal ^L. Also call
15851 grub_ofconsole_gotoxy.
15852
9f2220ef 158532004-10-03 Hollis Blanchard <hollis@penguinppc.org>
15854
15855 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
15856 void * arguments to grub_addr_t. All callers updated. Also make
15857 the `result' argument optional.
15858 (grub_ieee1275_release): change void * arguments to grub_addr_t.
15859 All callers updated.
15860
8a572cd7 158612004-09-22 Hollis Blanchard <hollis@penguinppc.org>
15862
15863 * commands/ls.c (grub_ls_list_files): Use the string following the
15864 initial ')', if present, as the filesystem path.
15865 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
15866
15867 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
15868
18aa81f2 158692004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
15870
15871 Make the source code of the menu interface more readable.
f19dbdb7 15872
18aa81f2 15873 * normal/menu.c: Include grub/mm.h.
15874 (TERM_WIDTH): New macro.
15875 (TERM_HEIGHT): Likewise.
15876 (TERM_INFO_HEIGHT): Likewise.
15877 (TERM_MARGIN): Likewise.
15878 (TERM_SCROLL_WIDTH): Likewise.
15879 (TERM_TOP_BORDER_Y): Likewise.
15880 (TERM_LEFT_BORDER_X): Likewise.
15881 (TERM_BORDER_WIDTH): Likewise.
15882 (TERM_MESSAGE_HEIGHT): Likewise.
15883 (TERM_BORDER_HEIGHT): Likewise.
15884 (TERM_NUM_ENTRIES): Likewise.
15885 (TERM_FIRST_ENTRY_Y): Likewise.
15886 (TERM_ENTRY_WIDTH): Likewise.
15887 (TERM_CURSOR_X): Likewise.
15888 (draw_border): Use macros instead of magic numbers.
15889 (print_entry): Likewise.
15890 (print_entries): Likewise.
15891 (run_menu): Likewise. Also, handle the key 'e'.
15892 (run_menu_entry): Ignore empty command lines.
15893 (print_message): Added a new argument EDIT. If EDIT is true,
15894 print a different message.
15895 (init_page): Likewise.
15896 (edit_menu_entry): New function. Not implemented yet.
15897
b47efe30 158982004-09-17 Marco Gerards <metgerards@student.han.nl>
15899
15900 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
15901 can be loaded from normal mode.
f19dbdb7 15902
b47efe30 15903 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
15904 `multiboot.mod'.
15905 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
15906 (multiboot_mod_CFLAGS): New variables.
15907 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 15908 * loader/i386/pc/multiboot_normal.c: Likewise.
15909
b47efe30 15910 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
15911 attribute `unused'.
f19dbdb7 15912
b47efe30 15913 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
15914 `fdiro' to read the mode information from instead of `diro'.
15915
15916 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
15917 looking up a symlink.
15918
15919 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
15920 macro.
15921 * normal/command.c (grub_command_execute): Don't parse the
15922 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
15923 flags of the command.
15924
15925 * normal/menu.c (grub_menu_run): Fix typo.
15926
da75ac71 159272004-09-14 Hollis Blanchard <hollis@penguinppc.org>
15928
15929 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
15930
15931 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
15932 `y + 1' instead of `y - 1'.
15933
15934 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 15935
062b24c2 159362004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
15937
15938 From Hollis Blanchard <hollis@penguinppc.org>:
15939 * kern/misc.c (memmove): New alias for grub_memmove.
15940 (memcmp): New alias for grub_memcmp.
15941 (memset): New alias for grub_memset.
f19dbdb7 15942 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 15943 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 15944 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 15945 (grub_ieee1275_get_property): Likewise.
f19dbdb7 15946
8ddad845 159472004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
15948
15949 Added normal mode command `chainloader' as module chain.mod, which
15950 depends on normal.mod and _chain.mod.
f19dbdb7 15951
8ddad845 15952 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
15953 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
15954 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
15955 Deleted prototype.
15956 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
15957 but arguments parsing moved to ...
15958 (grub_chainloader_cmd): ... here. New function.
15959 * include/grub/i386/pc/chainloader.h: New file.
15960 * loader/i386/pc/chainloader_normal.c: Likewise.
15961
2c1f4ce3 159622004-09-11 Marco Gerards <metgerards@student.han.nl>
15963
15964 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
15965 (grub_mkimage_LDFLAGS): Likewise.
15966 (grub_emu_SOURCES): Likewise.
15967 (kernel_img_HEADERS): Added fshelp.h.
15968 * fs/ext2.c: Include <grub/fshelp.h>.
15969 (FILETYPE_REG): New macro.
15970 (FILETYPE_INO_REG): Likewise.
15971 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
15972 Changed all users.
15973 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
15974 all users.
15975 (grub_fshelp_node): New struct.
15976 (grub_ext2_data): Added member `diropen'. Changed member `inode'
15977 to a pointer.
15978 (grub_ext2_get_file_block): Removed function.
15979 (grub_ext2_read_block): New function.
15980 (grub_ext2_read_file): Replaced parameter `data' by `node'.
15981 This function was written.
15982 (grub_ext2_mount): Read the root inode. Create a diropen struct.
15983 (grub_ext2_find_file): Removed function.
15984 (grub_ext2_read_symlink): New function.
15985 (grub_ext2_iterate_dir): Likewise.
15986 (grub_ext2_open): Rewritten.
15987 (grub_ext2_dir): Rewritten.
15988 * include/grub/fshelp.h: New file.
15989 * fs/fshelp.c: Likewise.
15990
3c52136a 159912004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
15992
15993 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
15994 (print_message): Add a missing newline.
15995 (run_menu): Added timeout support.
15996 (run_menu_entry): New local function.
15997 (grub_menu_run): Added support for booting.
15998
15999 * kern/loader.c (grub_loader_is_loaded): New function.
16000
16001 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
16002 (grub_get_rtc): Exported.
16003
16004 * include/grub/i386/pc/time.h: Include grub/symbol.h.
16005 (grub_get_rtc): Exported.
16006
16007 * include/grub/normal.h (struct grub_command_list): Remove
16008 constant from the member `command'.
16009
16010 * include/grub/loader.h (grub_loader_is_loaded): Declared.
16011
16012 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
16013
16014 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
16015
aa033560 160162004-08-28 Marco Gerards <metgerards@student.han.nl>
16017
16018 Add support for the JFS filesystem.
16019
16020 * fs/jfs.c: New file.
16021 * include/grub/fs.h (grub_jfs_init): New prototype.
16022 (grub_jfs_fini): New prototype.
16023 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
16024 (grub_emu_SOURCES): Likewise.
16025 (pkgdata_MODULES): Add jfs.mod.
16026 (jfs_mod_SOURCES): New variable.
16027 (jfs_mod_CFLAGS): Likewise.
16028 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
16029 (grubof_SOURCES): Likewise.
16030 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
16031
16032 * fs/fat.c (grub_fat_find_dir): Convert the filename little
16033 endian to the host endian.
16034 (grub_fat_utf16_to_utf8): Move function from there...
16035 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 16036 the endianness of the source string anymore.
aa033560 16037 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
16038
94bc45af 160392004-08-24 Marco Gerards <metgerards@student.han.nl>
16040
16041 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
16042 (grub_boot_fini) [GRUB_UTIL]: Likewise.
16043 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
16044 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 16045
94bc45af 16046 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
16047 (grub_hfs_iterate_dir): Make the function static. Add prototypes
16048 for `node_found' and `it_dir'.
16049 (grub_hfs_dir): Add prototype for `dir_hook'.
16050
16051 * fs/minix.c (grub_minix_get_file_block): Add prototype for
16052 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
16053 and `indir32' to silence a gcc warning.
16054
16055 * include/grub/fs.h (grub_hfs_init): New prototype.
16056 (grub_hfs_fini): Likewise.
f19dbdb7 16057
16058
97543f08 160592004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
16060
16061 Each disk device has its own id now. This is useful to make use
16062 of multiple disk devices.
f19dbdb7 16063
97543f08 16064 * include/grub/disk.h (grub_disk_dev_id): New enum.
16065 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
16066 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
16067
16068 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
16069 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
16070
16071 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
16072 GRUB_DISK_DEVICE_OFDISK_ID as an id.
16073
16074 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
16075 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
16076
16077 * include/grub/disk.h (struct grub_disk_dev): Added a new member
16078 "id" which is used by the cache manager.
16079
16080 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
16081 of just "GRUB".
16082
64372eb4 160832004-08-18 Marco Gerards <metgerards@student.han.nl>
16084
16085 * fs/hfs.c: New file.
16086 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
16087 (grub_emu_SOURCES): Likewise.
16088 (pkgdata_MODULES): Add hfs.mod.
16089 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
16090 (grubof_SOURCES): Likewise.
16091 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
16092
16093 * include/grub/misc.h (grub_strncasecmp): Add prototype.
16094 * kern/misc.c (grub_strncasecmp): Add function.
16095
cc61b58f 160962004-08-14 Marco Gerards <metgerards@student.han.nl>
16097
16098 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
16099 with parentheses.
16100
16101 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
16102 (grub_ext2_dir): In case the directory entry type is unknown, read
16103 it from the inode.
16104
0ef123f6 161052004-08-02 Peter Bruin <pjbruin@dds.nl>
16106
16107 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
16108 grub_load_linux instead of grub_rescue_cmd_linux as second
16109 argument of grub_rescue_register_command.
16110
16111 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
16112
a447c5df 161132004-07-27 Marco Gerards <metgerards@student.han.nl>
16114
16115 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
16116 function.
16117 * commands/boot.c: Remove the check for `GRUB_UTIL'.
16118 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
16119 `loader/powerpc/ieee1275/linux.c',
16120 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
16121 * include/grub/powerpc/ieee1275/ieee1275.h
16122 (grub_ieee1275_release): New prototype.
16123 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
16124 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
16125 normal, boot, linux and linux_normal.
16126 * loader/powerpc/ieee1275/linux.c: New file.
16127 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
16128
5a9e3546 161292004-07-12 Marco Gerards <metgerards@student.han.nl>
16130
16131 * normal/arg.c (grub_arg_parse): Correct error handling after
16132 reallocating the argumentlist (check if `argl' is not null instead
16133 of checking if `args' is not null).
16134 * kern/mm.c (grub_realloc): Return the same pointer when using the
16135 same region, instead of returning the header address.
16136
e15199cb 161372004-07-11 Marco Gerards <metgerards@student.han.nl>
16138
16139 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
16140 one block instead of two when looking for the initial partition.
16141 (grub_partition_probe): Initialize the local variable `p' with 0.
16142 Use base 10 for the grub_strtoul call.
16143 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
16144 need for one local variable.
16145 (grub_strtoul): Don't add the new value to `num', instead of that
16146 just assign it.
16147
020616c2 161482004-07-11 Marco Gerards <metgerards@student.han.nl>
16149
16150 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
16151 (pxeboot_img_SOURCES): New variable.
16152 (pxeboot_img_ASFLAGS): Likewise.
16153 (pxeboot_img_LDFLAGS): Likewise.
16154 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
16155 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
16156 <lode_leroy@hotmail.com>.
16157
6c51eb64 161582004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16159
16160 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
16161 there was no input.
16162
cfb12aff 161632004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16164
16165 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
16166 the history buffer logic.
16167
6eabba74 161682004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16169
16170 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
16171 (FILETYPE_INO_SYMLINK): New macros.
16172 (grub_ext2_find_file): Check if the node is a directory using the
16173 inode stat information instead of using the filetype in the
16174 dirent. Exclude the first character of an absolute symlink.
16175 (grub_ext2_dir): Mask out the filetype part of the mode member of
16176 the inode.
16177
66e19ef8 161782004-05-24 Marco Gerards <metgerards@student.han.nl>
16179
16180 Add support for UFS version 1 and 2. Add support for the minix
16181 filesystem version 1 and 2, both the variants with 14 and 30 long
16182 filenames.
f19dbdb7 16183
66e19ef8 16184 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
16185 fs/minix.c.
16186 (grub_emu_SOURCES): Likewise.
16187 (pkgdata_MODULES): Add ufs.mod and minix.mod.
16188 (ufs_mod_SOURCES): New variable.
16189 (ufs_mod_CFLAGS): Likewise.
16190 (minix_mod_SOURCES): Likewise.
16191 (minix_mod_CFLAGS): Likewise.
16192 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
16193 fs/minix.c.
16194 (grubof_SOURCES): Likewise.
16195 * fs/ufs.c: New file.
16196 * fs/minix.c: New file.
16197 * include/grub/fs.h (grub_ufs_init): New prototype.
16198 (grub_ufs_fini): Likewise.
16199 (grub_minix_init): Likewise.
16200 (grub_minix_fini): Likewise.
16201 * util/grub-emu.c (main): Initialize and deinitialize UFS and
16202 minix fs.
16203
cc2e748a 162042004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
16205
16206 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
16207 commands/ls.c, commands/terminal.c, commands/boot.c,
16208 commands/cmp.c and commands/cat.c.
16209 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
16210
16211 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
16212 "env.h"
16213
4b13b216 162142004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
16215
16216 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
16217 and grub_, respectively. Because the conversion is trivial and
16218 mechanical, I omit the details here. Please refer to the CVS
16219 if you need more information.
16220
6a142551 162212004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
16222
16223 * include/pupa: Renamed to ...
16224 * include/grub: ... this.
16225 * util/i386/pc/pupa-mkimage.c: Renamed to ...
16226 * util/i386/pc/grub-mkimage.c: ... this.
16227 * util/i386/pc/pupa-setup.c: Renamed to ...
16228 * util/i386/pc/grub-setup.c: ... this.
16229 * util/pupa-emu.c: Renamed to ...
16230 * util/grub-emu.c: ... this.
16231
e56cdf21 162322004-03-29 Marco Gerards <metgerards@student.han.nl>
16233
16234 Add support for the newworld apple macintosh (PPC). This has been
16235 tested on the powerbook 2000 only. It only adds support for
16236 generic ieee1275 functions, console and disk support. This should
16237 be easy to port to other architectures with support for Open
16238 Firmware.
f19dbdb7 16239
e56cdf21 16240 * configure.ac: Accept the powerpc as host_cpu. In the case of
16241 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
16242 specific tests are only executed while building for the i386.
16243 Inverse test for crosscompile.
16244 * genmk.rb (Utility): Allow assembler files.
16245 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
16246 * conf/powerpc-ieee1275.rmk: New file.
16247 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
16248 * disk/powerpc/ieee1275/partition.c: Likewise.
16249 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
16250 * include/pupa/powerpc/ieee1275/console.h: Likewise.
16251 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
16252 * include/pupa/powerpc/ieee1275/time.h: Likewise.
16253 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
16254 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
16255 * include/pupa/powerpc/ieee1275/loader.h
16256 * include/pupa/powerpc/setjmp.h: Likewise.
16257 * include/pupa/powerpc/types.h: Likewise.
16258 * kern/powerpc/ieee1275/init.c: Likewise.
16259 * kern/powerpc/ieee1275/openfw.c: Likewise.
16260 * term/powerpc/ieee1275/ofconsole.c: Likewise.
16261
16262 These files were written by Johan Rydberg
16263 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 16264
e56cdf21 16265 * boot/powerpc/ieee1275/cmain.c: New file.
16266 * boot/powerpc/ieee1275/crt0.S: Likewise.
16267 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
16268 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
16269
8c8cc205 162702004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
16271
16272 * Makefile.in: Update copyright.
16273 * genmodsrc.sh: Likewise.
16274 * gensymlist.sh: Likewise.
16275 * term/i386/pc/vga.c: Indent correctly.
16276
16277 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
16278 bugreporting address.
16279 * util/i386/pc/pupa-setup.c (usage): Likewise,
16280 (main): Call pupa_ext2_init and pupa_ext2_fini.
16281
f19dbdb7 16282 * fs/fat.c (log2): Renamed to ...
8c8cc205 16283 (fat_log2): ... this.
16284 All callers changed.
16285 * kern/misc.c (memcpy): Alias to pupa_memmove.
16286 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
16287 lvalue cast.
16288 * util/console.c (pupa_ncurses_fini): Return 0.
16289
16290 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
16291 Move fail label here.
16292 [__GNU__]: Don't warn when using stat.
16293 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
16294 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
16295 long int. Use strtol instead of strtoul.
f19dbdb7 16296
db1771cf 162972004-03-14 Marco Gerards <metgerards@student.han.nl>
16298
16299 * commands/boot.c: New file.
16300 * commands/cat.c: Likewise.
16301 * commands/cmp.c: Likewise.
16302 * commands/ls.c: Likewise.
16303 * commands/terminal.c: Likewise.
16304 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
16305 (pupa_register_command): Changed interface to match the new
16306 argument parser.
16307 (pupa_command_execute): Changed (almost rewritten) so it uses
16308 pupa_split_command. Added support for setting variables using the
16309 syntax `foo=bar'.
16310 (rescue_command): Changed to work with the new argument parser.
16311 (terminal_command): Moved from here to commands/terminal.c.
16312 (set_command): New function.
16313 (unset_command): New function.
16314 (insmod_command): New function.
16315 (rmmod_command): New function.
16316 (lsmod_command): New function.
16317 (pupa_command_init): Don't initialize the command terminal
16318 anymore. Initialize the commands set, unset, insmod, rmmod and
16319 lsmod.
16320 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
16321 (kernel_img_HEADERS): Add arg.h and env.h.
16322 (pupa_mkimage_LDFLAGS): Add kern/env.c.
16323 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
16324 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
16325 normal/arg.c.
16326 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
16327 terminal.mod.
16328 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
16329 (boot_mod_SOURCES): New variable.
16330 (terminal_mod_SOURCES): Likewise.
16331 (ls_mod_SOURCES): Likewise.
16332 (cmp_mod_SOURCES): Likewise.
16333 (cat_mod_SOURCES): Likewise.
16334
16335 * normal/arg.c: New file.
16336 * kern/env.c: Likewise.
16337 * include/pupa/arg.h: Likewise.
16338 * include/pupa/env.h: Likewise.
16339 * font/manager.c (font_command): Changed to match argument parsing
16340 interface changes.
16341 (PUPA_MOD_INIT): Likewise.
16342 * hello/hello.c (pupa_cmd_hello): Likewise.
16343 (PUPA_MOD_INIT): Likewise.
16344 * include/pupa/disk.h: Include <pupa/device.h>.
16345 (pupa_print_partinfo): New prototype.
16346 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
16347 (pupa_dl_get_prefix): Likewise.
16348 * include/pupa/misc.h: Include <pupa/err.h>.
16349 (pupa_isgraph): New prototype.
16350 (pupa_isdigit): Likewise.
16351 (pupa_split_cmdline): Likewise.
16352 * include/pupa/normal.h: Include <pupa/arg.h>.
16353 (pupa_command): Changed the prototype of the member `func' to
16354 match the argument parsing interface. Added member `options'.
16355 (pupa_register_command): Updated to match function.
16356 (pupa_arg_parse): New prototype.
16357 (pupa_hello_init) [PUPA_UTIL]: New prototype.
16358 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
16359 (pupa_ls_init) [PUPA_UTIL]: Likewise.
16360 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
16361 (pupa_cat_init) [PUPA_UTIL]: Likewise.
16362 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
16363 (pupa_boot_init) [PUPA_UTIL]: Likewise.
16364 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
16365 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
16366 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
16367 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
16368 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
16369 * kern/disk.c: Include <pupa/file.h>.
16370 (pupa_print_partinfo): New function.
16371 * kern/dl.c: Include <pupa/env.h>.
16372 (pupa_dl_dir): Variable removed.
16373 (pupa_dl_load): Use the environment variable `prefix' instead of
16374 the variable pupa_dl_dir.
16375 (pupa_dl_set_prefix): Function removed.
16376 (pupa_dl_get_prefix): Likewise.
16377 * kern/i386/pc/init.c: Include <pupa/env.h>.
16378 (pupa_machine_init): Use the environment variable `prefix' instead of
16379 using pupa_dl_set_prefix to set the prefix.
16380 * kern/main.c: Include <pupa/env.h>.
16381 (pupa_set_root_dev): Use the environment variable `prefix' instead of
16382 using pupa_dl_get_prefix to get the prefix.
16383 * kern/misc.c: Include <pupa/env.h>.
16384 (pupa_isdigit): New function.
16385 (pupa_isgraph): Likewise.
16386 (pupa_ftoa): Likewise.
16387 (pupa_vsprintf): Added support for printing values of the type
16388 `double'. Make it possible to format variable output when using
16389 formatting like `%1.2%f'.
16390 (pupa_split_cmdline): New function.
16391 * kern/rescue.c: Include <pupa/env.h>.
16392 (next_word): Removed function.
16393 (pupa_rescue_cmd_prefix): Likewise.
16394 (pupa_rescue_cmd_set): New function.
16395 (pupa_rescue_cmd_unset): New function.
16396 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
16397 split the command line instead of splitting it here. Added
16398 support for setting variables using the syntax `foo=bar'. Don't
16399 initialize the prefix command anymore. Initialized the set and
16400 unset commands.
16401 * normal/cmdline.c: Include <pupa/env.h>.
16402 (pupa_tab_complete): Added prototypes for print_simple_completion,
16403 print_partition_completion, add_completion, iterate_commands,
16404 iterate_dev, iterate_part and iterate_dir. Moved code to print
16405 partition information from here to kern/disk.c.
fe6b695a 16406 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 16407 * normal/main.c: Include <pupa/env.h>.
16408 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
16409 instead of using pupa_dl_get_prefix to get the prefix.
16410 * term/i386/pc/vga.c: Include <pupa/arg.h>.
16411 (check_vga_mem): Cast pointers to `void *' to silence a gcc
16412 warning.
16413 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
16414 (pupa_vga_setcolor): Declare unused variables with `__attribute__
16415 ((unused))' to silence a gcc warning.
16416 (pupa_vga_setcolor): Likewise.
16417 (debug_command): Changed to match argument parsing
16418 interface changes.
16419 * util/pupa-emu.c: Include <pupa/env.h>.
16420 (options): Added 0's for unused fields to silence a gcc warning.
16421 (argp): Likewise.
16422 (main): Use the environment variable `prefix' instead of using
16423 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
16424 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
16425 and terminal.
16426
16427 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
16428 * util/misc.c: Include <malloc.h>.
16429 (pupa_malloc): Rewritten so errors are correctly reported.
16430 (pupa_realloc): Likewise.
16431 (pupa_memalign): Likewise.
16432 (pupa_mm_init_region): Declare unused variables with
16433 `__attribute__ ((unused))' to silence a gcc warning.
16434 * normal/i386/setjmp.S: Remove tab at the end of the file to
16435 silence a gcc warning.
16436 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
16437 variables with `__attribute__ ((unused))' to silence a gcc
16438 warning.
16439 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
16440 local variable i unsigned to silence a gcc warning.
16441
16442 * kern/term.c: Include <pupa/misc.h>.
16443 (pupa_more_lines): New variable.
16444 (pupa_more): Likewise.
16445 (pupa_putcode): When the pager is active pause at the end of every
16446 screen.
16447 (pupa_set_more): New function.
16448 * include/pupa/term.h (pupa_set_more): New prototype.
16449
16450
3b1139cb 164512004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
16452
16453 Now this project is GRUB 2 rather than PUPA. The location of
16454 the CVS repository was moved to GRUB's.
f19dbdb7 16455
3b1139cb 16456 * configure.ac: Use bug-grub as the reporting address.
16457 Use GRUB instead of PUPA.
16458 Change the version number to 1.90.
16459
8367695c 164602004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
16461
16462 * genkernsyms.sh: Updated copyright information.
16463 * genmk.rb: Likewise.
16464 * genmodsrc.sh: Likewise.
16465 * gensymlist.sh: Likewise.
16466 * boot/i386/pc/boot.S: Likewise.
16467 * boot/i386/pc/diskboot.S: Likewise.
16468 * disk/i386/pc/biosdisk.c: Likewise.
16469 * disk/i386/pc/partition.c: Likewise.
16470 * font/manager.c: Likewise.
16471 * fs/ext2.c: Likewise.
16472 * fs/fat.c: Likewise.
16473 * include/pupa/boot.h: Likewise.
16474 * include/pupa/device.h: Likewise.
16475 * include/pupa/disk.h: Likewise.
16476 * include/pupa/dl.h: Likewise.
16477 * include/pupa/elf.h: Likewise.
16478 * include/pupa/err.h: Likewise.
16479 * include/pupa/file.h: Likewise.
16480 * include/pupa/font.h: Likewise.
16481 * include/pupa/fs.h: Likewise.
16482 * include/pupa/kernel.h: Likewise.
16483 * include/pupa/loader.h: Likewise.
16484 * include/pupa/misc.h: Likewise.
16485 * include/pupa/mm.h: Likewise.
16486 * include/pupa/net.h: Likewise.
16487 * include/pupa/normal.h: Likewise.
16488 * include/pupa/rescue.h: Likewise.
16489 * include/pupa/setjmp.h: Likewise.
16490 * include/pupa/symbol.h: Likewise.
16491 * include/pupa/term.h: Likewise.
16492 * include/pupa/types.h: Likewise.
16493 * include/pupa/i386/setjmp.h: Likewise.
16494 * include/pupa/i386/types.h: Likewise.
16495 * include/pupa/i386/pc/biosdisk.h: Likewise.
16496 * include/pupa/i386/pc/boot.h: Likewise.
16497 * include/pupa/i386/pc/console.h: Likewise.
16498 * include/pupa/i386/pc/init.h: Likewise.
16499 * include/pupa/i386/pc/kernel.h: Likewise.
16500 * include/pupa/i386/pc/linux.h: Likewise.
16501 * include/pupa/i386/pc/loader.h: Likewise.
16502 * include/pupa/i386/pc/memory.h: Likewise.
16503 * include/pupa/i386/pc/multiboot.h: Likewise.
16504 * include/pupa/i386/pc/partition.h: Likewise.
16505 * include/pupa/i386/pc/time.h: Likewise.
16506 * include/pupa/i386/pc/vga.h: Likewise.
16507 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
16508 * include/pupa/util/getroot.h: Likewise.
16509 * include/pupa/util/misc.h: Likewise.
16510 * include/pupa/util/resolve.h: Likewise.
16511 * kern/device.c: Likewise.
16512 * kern/disk.c: Likewise.
16513 * kern/dl.c: Likewise.
16514 * kern/err.c: Likewise.
16515 * kern/file.c: Likewise.
16516 * kern/fs.c: Likewise.
16517 * kern/loader.c: Likewise.
16518 * kern/main.c: Likewise.
16519 * kern/misc.c: Likewise.
16520 * kern/mm.c: Likewise.
16521 * kern/rescue.c: Likewise.
16522 * kern/term.c: Likewise.
16523 * kern/i386/dl.c: Likewise.
16524 * kern/i386/pc/init.c: Likewise.
16525 * kern/i386/pc/lzo1x.S: Likewise.
16526 * kern/i386/pc/startup.S: Likewise.
16527 * loader/i386/pc/chainloader.c: Likewise.
16528 * loader/i386/pc/linux.c: Likewise.
16529 * loader/i386/pc/multiboot.c: Likewise.
16530 * normal/cmdline.c: Likewise.
16531 * normal/command.c: Likewise.
16532 * normal/main.c: Likewise.
16533 * normal/menu.c: Likewise.
16534 * normal/i386/setjmp.S: Likewise.
16535 * term/i386/pc/console.c: Likewise.
16536 * term/i386/pc/vga.c: Likewise.
16537 * util/console.c: Likewise.
16538 * util/genmoddep.c: Likewise.
16539 * util/misc.c: Likewise.
16540 * util/pupa-emu.c: Likewise.
16541 * util/resolve.c: Likewise.
16542 * util/unifont2pff.rb: Likewise.
16543 * util/i386/pc/biosdisk.c: Likewise.
16544 * util/i386/pc/getroot.c: Likewise.
16545 * util/i386/pc/pupa-mkimage.c: Likewise.
16546 * util/i386/pc/pupa-setup.c: Likewise.
16547
e6eced71 165482004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
16549
16550 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
16551 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
16552 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
16553 reading and reset it after reading.
16554 (pupa_ext2_close): Return PUPA_ERR_NONE.
16555
16556 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
16557 Correct value.
16558 (struct linux_kernel_header): Add kernel_version and
16559 initrd_addr_max.
16560 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
16561 pupa_file_read succeeds.
16562 (pupa_rescue_cmd_initrd): Implement.
16563
5aded270 165642003-12-03 Marco Gerards <metgerards@student.han.nl>
16565
16566 * fs/ext2.c (pupa_ext2_label): New function.
16567 (pupa_ext2_fs): Added label.
16568 * fs/fat.c (pupa_fat_label): New function.
16569 (pupa_fat_fs): Added label.
16570 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
16571
16572 * kern/misc.c (pupa_strndup): New function.
16573 * include/pupa/misc.h (pupa_strndup): New prototype.
16574
16575 * include/pupa/normal.h: Include <pupa/err.h>.
16576 (pupa_set_history): New prototype.
16577 (pupa_iterate_commands): New prototype.
16578 * normal/cmdline.c: Include <pupa/machine/partition.h>,
16579 <pupa/disk.h>, <pupa/file.h>.
16580 (hist_size): New variable.
16581 (hist_lines): Likewise.
16582 (hist_end): Likewise.
16583 (hist_used): Likewise.
16584 (pupa_set_history): New function.
16585 (pupa_history_get): Likewise.
16586 (pupa_history_add): Likewise.
16587 (pupa_history_replace): Likewise.
16588 (pupa_tab_complete): Likewise.
16589 (pupa_cmdline_run): Added tab completion and history buffer. Tab
16590 completion shows partitionnames while completing partitions, this
16591 feature was suggested by Jeff Bailey.
16592 * normal/command.c (pupa_iterate_commands): New function.
16593 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
16594 (pupa_normal_init): Initialize history buffer.
16595 (PUPA_MOD_INIT): Likewise.
16596 (pupa_normal_fini): Free the history buffer.
16597 (PUPA_MOD_FINI): Likewise.
16598
16599 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
16600 key.
16601
16602 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
16603 * configure.ac [i386]: Check for regparam bug.
16604 (NESTED_FUNC_ATTR) [! i386]: Defined.
16605
1f7315a3 166062003-11-17 Marco Gerards <metgerards@student.han.nl>
16607
16608 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
16609 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
16610 (pupa_emu_SOURCES): New variable.
16611 (pupa_emu_LDFLAGS): Likewise.
16612 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
16613 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
16614 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
16615 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
16616 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
16617 (pupa_jmp_buf): New typedef.
16618 (pupa_setjmp) [PUPA_UTIL]: New macro.
16619 (pupa_longjmp) [PUPA_UTIL]: Likewise.
16620 * include/pupa/term.h (struct pupa_term): New member `refresh'.
16621 (pupa_refresh): New prototype.
16622 * include/pupa/util/getroot.h: New file.
16623 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
16624 it.
16625 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
16626 (pupa_rescue_cmd_cat): Likewise.
16627 (pupa_rescue_cmd_ls): Likewise.
16628 (pupa_rescue_cmd_testload): Likewise.
16629 (pupa_rescue_cmd_lsmod): Likewise.
16630 * normal/cmdline.c (pupa_cmdline_get): Likewise.
16631 * normal/menu.c (run_menu): Likewise.
16632 * kern/term.c (pupa_cls): Likewise.
16633 (pupa_refresh): New function.
16634 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
16635 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
16636 * util/console.c: New file.
f19dbdb7 16637
1f7315a3 16638 * util/i386/pc/getroot.c: New file.
16639 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
16640 (pupa_putchar): New function.
16641 (pupa_refresh): Likewise.
16642 (xgetcwd): Function moved to ...
16643 (strip_extra_slashes): Likewise.
16644 (get_prefix): Likewise.
f19dbdb7 16645 * util/i386/pc/getroot.c: ... here.
1f7315a3 16646 (find_root_device): Function moved and renamed to...
16647 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
16648 Changed all callers.
16649 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
16650 and renamed to...
16651 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
16652 Changed all callers.
16653 * util/misc.c (pupa_memalign): New function.
16654 (pupa_mm_init_region): Likewise.
16655 (pupa_register_exported_symbols): Likewise.
16656 (pupa_putchar): Function removed.
16657 * util/pupa-emu.c: New file.
16658
9a5c1ade 166592003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
16660
16661 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
16662 (_multiboot_mod_SOURCES): New variable.
16663 (_multiboot_mod_CFLAGS): Likewise.
16664 * loader/i386/pc/multiboot.c: New file.
16665 * include/pupa/i386/pc/multiboot.h: Likewise.
16666 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
16667 (pupa_multiboot_real_boot): New function.
16668 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
16669 (pupa_multiboot_real_boot): New prototype.
16670 (pupa_rescue_cmd_multiboot): Likewise
16671 (pupa_rescue_cmd_module): Likewise.
16672
16673 * kern/loader.c (pupa_loader_set): Continue when
16674 pupa_loader_unload_func() fails.
16675 (pupa_loader_unset): New function.
16676 * include/pupa/loader.h (pupa_loader_unset): New prototype.
16677
16678 * kern/misc.c (pupa_stpcpy): New function.
16679 * include/pupa/misc.h (pupa_stpcpy): New prototype.
16680
8e72a9c0 166812003-11-12 Marco Gerards <metgerards@student.han.nl>
16682
16683 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
16684 for available extensions.
16685
16686 * include/pupa/i386/pc/time.h: New file.
16687 * kern/disk.c: Include <pupa/machine/time.h>.
16688 (PUPA_CACHE_TIMEOUT): New macro.
16689 (pupa_last_time): New variable.
16690 (pupa_disk_open): Flush the cache when there was a timeout.
16691 (pupa_disk_close): Reset the timer.
16692 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
16693 pupa_currticks.
16694 * util/misc.c: Include <sys/times.h>
16695 (pupa_get_rtc): New function.
16696
c4adbd32 166972003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
16698
16699 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
16700 as blocks.
16701 (pupa_ext2_get_file_block): Use blocks member.
16702
16703 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
16704 first block. Return -1 instead of pupa_errno on error.
16705
bfd30f06 167062003-10-27 Marco Gerards <metgerards@student.han.nl>
16707
16708 * README: In the pupa-mkimage example use _chain instead of chain
16709 and ext2 instead of fat.
16710 * TODO: Replace ext2fs with jfs as an example. Add an item for
16711 adding journal playback for ext2fs.
16712 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
16713 (pkgdata_MODULES): Added ext2.mod.
16714 (ext2_mod_SOURCES): New variable.
16715 (ext2_mod_CFLAGS): Likewise.
16716 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
16717 * include/pupa/misc.h (pupa_strncpy): New prototype.
16718 (pupa_strcat): Likewise.
16719 (pupa_strncmp): Likewise.
16720 * kern/misc.c (pupa_strcat): Enable function.
16721 (pupa_strncpy): New function.
16722 (pupa_strncmp): Likewise.
16723 * fs/ext2.c: New file.
f19dbdb7 16724
bfd30f06 16725 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
16726 when the read failed before retrying.
16727 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
16728 (_FILE_OFFSET_BITS): Likewise.
16729 * configure.ac: Added AC_SYS_LARGEFILE.
16730
98d15063 167312003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
16732
16733 * genmk.rb (PModule#rule): Make sure to get only symbol names
16734 from the output of nm.
16735 Reported by Robert Millan <zeratul2@wanadoo.es>.
16736
18d9c7cd 167372003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
16738
16739 I forgot to check in these changes for a long time. This adds
16740 incomplete support for VGA console, and this is still very
16741 buggy. Also, a lot of consideration is required for I18N,
16742 UNICODE, and VGA font issues. Therefore, assume that this is
16743 such that "better than nothing".
f19dbdb7 16744
18d9c7cd 16745 * font/manager.c: New file.
16746 * include/pupa/font.h: Likewise.
16747 * include/pupa/i386/pc/vga.h: Likewise.
16748 * term/i386/pc/vga.c: Likewise.
16749 * util/unifont2pff.rb: Likewise.
16750
16751 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
16752 (pkgdata_MODULES): Added vga.mod and font.mod.
16753 (vga_mod_SOURCES): New variables.
16754 (vga_mod_CFLAGS): Likewise.
16755 (font_mod_SOURCES): Likewise.
16756 (font_mod_CFLAGS): Likewise.
16757
16758 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
16759
16760 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 16761 (struct pupa_term): Added init and fini.
18d9c7cd 16762 Changed the argument of putchar to pupa_uint32_t.
16763
16764 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
16765 (pupa_console_real_putchar): New prototype.
16766 (pupa_console_putchar): Removed.
16767 (pupa_console_checkkey): Exported.
16768 (pupa_console_getkey): Likewise.
16769
16770 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
16771 characters.
16772
16773 * kern/term.c (pupa_term_set_current): Rewritten.
16774 (pupa_putchar): Likewise.
16775 (pupa_putcode): New function.
16776
16777 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
16778 (pupa_console_real_putchar): ... this.
16779 (pupa_vga_set_mode): New function.
16780 (pupa_vga_get_font): Likewise.
16781
16782 * normal/command.c: Include pupa/term.h.
16783 (terminal_command): New function.
16784 (pupa_command_init): Register the command "terminal".
16785
16786 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
16787 (DISP_UP): Likewise.
16788 (DISP_RIGHT): Likewise.
16789 (DISP_DOWN): Likewise.
16790 (DISP_HLINE): Likewise.
16791 (DISP_VLINE): Likewise.
16792 (DISP_UL): Likewise.
16793 (DISP_UR): Likewise.
16794 (DISP_LL): Likewise.
16795 (DISP_LR): Likewise.
16796
16797 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 16798
977329f5 167992003-02-08 NIIBE Yutaka <gniibe@m17n.org>
16800
16801 * util/resolve.c (pupa_util_resolve_dependencies): BUG
16802 FIX. Reverse the path_list.
16803
16804 * include/pupa/normal.h: Export pupa_register_command and
16805 pupa_unregister_command.
16806
16807 * hello/hello.c (pupa_cmd_hello): New module.
16808 * conf/i386-pc.rmk: Added hello.mod.
16809
1f5ab428 168102003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
16811
16812 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 16813
1f5ab428 16814 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
16815 (compress_kernel): New variable.
16816 (generate_image): Heavily modified to support compressing a
16817 large part of the core image.
16818
16819 * util/misc.c (pupa_util_read_image): Fix a file descriptor
16820 leak.
16821 (pupa_util_load_image): New function.
16822
16823 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
16824 (pupa_compressed_size): New variable.
16825 (codestart): Enable Gate A20 here.
16826 Decompress the compressed part of the core image.
16827 Rearrange the code to put functions and variables which are
16828 required for initialization in the non-compressed part.
16829 Include lzo1x.S.
16830
16831 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
16832 here.
16833
16834 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
16835
f19dbdb7 16836 * include/pupa/i386/pc/kernel.h
1f5ab428 16837 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
16838 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
16839 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
16840 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
16841 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
16842
16843 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
16844
16845 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
16846 (Utility#rule): Likewise.
16847
16848 * configure.ac: Check if LZO is available.
16849
ce5bf700 168502003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
16851
16852 * include/pupa/normal.h: New file.
16853 * include/pupa/setjmp.h: Likewise.
16854 * include/pupa/i386/setjmp.h: Likewise.
16855 * normal/cmdline.c: Likewise.
16856 * normal/command.c: Likewise.
16857 * normal/main.c: Likewise.
16858 * normal/menu.c: Likewise.
16859 * normal/i386/setjmp.S: Likewise.
f19dbdb7 16860
ce5bf700 16861 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
16862 (pupa_rescue_cmd_initrd): Likewise.
16863
16864 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
16865 Likewise.
16866
16867 * kern/i386/pc/startup.S (translation_table): New variable.
16868 (translate_keycode): New function.
16869 (pupa_console_getkey): Call translate_keycode.
16870
16871 * kern/rescue.c (attempt_normal_mode): New function.
16872 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
16873 it failed, print a message.
16874
16875 * kern/mm.c (pupa_real_malloc): Print more information when a
16876 free magic is broken.
16877 (pupa_free): If the first free header is not free actually, set
16878 it to P.
16879
16880 * kern/main.c (pupa_load_normal_mode): Just load the module
16881 "normal".
16882 (pupa_main): Don't print the message
16883 "Entering into rescue mode..." here.
16884
16885 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
16886 Declared.
16887 (pupa_rescue_cmd_initrd): Likewise.
16888 (pupa_rescue_cmd_initrd): Likewise.
16889
16890 * include/pupa/symbol.h (FUNCTION): Specify the type.
16891 (VARIABLE): Likewise.
16892
16893 * include/pupa/err.h (pupa_err_t): Added
16894 PUPA_ERR_UNKNOWN_COMMAND.
16895
16896 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
16897 (pupa_dl_get_prefix): Likewise.
16898
16899 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
16900 Added _chain.mod and _linux.mod instead of chain.mod and
16901 linux.mod.
16902 (chain_mod_SOURCES): Renamed to ...
16903 (_chain_mod_SOURCES): ... this.
16904 (chain_mod_CFLAGS): Renamed to ...
16905 (_chain_mod_CFLAGS): ... this.
16906 (linux_mod_SOURCES): Renamed to ...
16907 (_linux_mod_SOURCES): ... this.
16908 (linux_mod_CFLAGS): Renamed to ...
16909 (_linux_mod_CFLAGS): ... this.
16910 (normal_mod_SOURCES): New variable.
16911 (normal_mod_CFLAGS): Likewise.
16912 (normal_mod_ASFLAGS): Likewise.
16913
169142003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
16915
16916 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
16917 possible.
16918
fe6b695a 16919 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 16920 recursively.
16921 (pupa_dl_unref): Unrefer depending modules recursively.
16922 Don't call pupa_dl_unload implicitly, because PUPA can crash if
16923 a module is unloaded before one depending on that module is
16924 unloaded.
16925 (pupa_dl_unload): Unload depending modules explicitly,
16926 if possible.
16927
c04da074 169282003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
16929
16930 * include/pupa/i386/pc/linux.h: New file.
16931 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 16932
c04da074 16933 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
16934 Removed.
16935 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
16936 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
16937 of PUPA_CHAINLOADER_BOOT_SECTOR.
16938
16939 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
16940 (pupa_linux_prot_size): New variable.
16941 (pupa_linux_tmp_addr): Likewise.
16942 (pupa_linux_real_addr): Likewise.
16943 (pupa_linux_boot_zimage): New function.
16944 (pupa_linux_boot_bzimage): Likewise.
16945
16946 * kern/i386/pc/init.c (struct mem_region): New structure.
16947 (MAX_REGIONS): New macro.
16948 (mem_regions): New variable.
16949 (num_regions): Likewise.
16950 (pupa_os_area_addr): Likewise.
16951 (pupa_os_area_size): Likewise.
16952 (pupa_lower_mem): Likewise.
16953 (pupa_upper_mem): Likewise.
16954 (add_mem_region): New function.
16955 (compact_mem_regions): Likewise.
16956 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
16957 the size of the conventional memory and that of so-called upper
16958 memory (before the first memory hole).
16959 Instead of adding each found region to free memory, use
16960 add_mem_region and add them after removing overlaps.
16961 Also, add only 1/4 of the upper memory to free memory. The rest
16962 is used for loading OS images. Maybe this is ad hoc, but this
16963 makes it much easier to relocate OS images when booting.
16964
16965 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
16966 (pupa_enter_rescue_mode): Don't register initrd and module.
16967
16968 * kern/mm.c: Include pupa/dl.h.
16969
16970 * kern/main.c: Include pupa/file.h and pupa/device.h.
16971
16972 * kern/loader.c (pupa_loader_load_module_func): Removed.
16973 (pupa_loader_load_module): Likewise.
16974
16975 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
16976 ``.o''.
16977
16978 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
16979 (pupa_linux_tmp_addr): Likewise.
16980 (pupa_linux_real_addr): Likewise.
16981 (pupa_linux_boot_zimage): Likewise.
16982 (pupa_linux_boot_bzimage): Likewise.
16983
16984 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
16985 (pupa_upper_mem): Likewise.
16986 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
16987 module is too dangerous.
16988
16989 * include/pupa/loader.h (pupa_os_area_addr): Declared.
16990 (pupa_os_area_size): Likewise.
16991 (pupa_loader_set): Remove the first argument. Loader doesn't
16992 manage modules or initrd any longer.
16993 (pupa_loader_load_module): Removed.
16994
16995 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
16996 (linux_mod_SOURCES): New variable.
16997 (linux_mod_CFLAGS): Likewise.
16998
a13f9237 169992003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
17000
17001 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
17002 the length of a blocklist correctly.
17003
17004 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
17005 Use ioctl only if the OS file is a block device.
17006 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
17007 not very useful for normal files.
17008
17009 * kern/main.c (pupa_set_root_dev): New function.
17010 (pupa_load_normal_mode): Likewise.
17011 (pupa_main): Call those above.
17012
17013 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
17014 pupa_uint16_t.
17015
17016 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
17017
a5ffe966 170182003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
17019
17020 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
17021 (setup): Configure the installed partition information and the
17022 dl prefix.
17023
17024 * loader/i386/pc/chainloader.c (my_mod): New variable.
17025 (pupa_chainloader_unload): New function.
17026 (pupa_rescue_cmd_chainloader): Refer itself.
17027 (PUPA_MOD_INIT): Save its own module in MY_MOD.
17028
17029 * kern/i386/pc/startup.S (install_partition): Removed.
17030 (version_string): Likewise.
17031 (config_file): Likewise.
17032 (pupa_install_dos_part): New variable.
17033 (pupa_install_bsd_part): Likewise.
17034 (pupa_prefix): Likewise.
17035 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
17036
17037 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
17038 and pupa/misc.h.
17039 (make_install_device): New function.
17040 (pupa_machine_init): Set the dl prefix.
17041
17042 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
17043 (buf): Renamed to ...
17044 (linebuf): ... this.
17045 (pupa_rescue_cmd_prefix): New function.
17046 (pupa_rescue_cmd_insmod): Likewise.
17047 (pupa_rescue_cmd_rmmod): Likewise.
17048 (pupa_rescue_cmd_lsmod): Likewise.
17049 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
17050 rmmod and lsmod.
17051
17052 * kern/mm.c (pupa_memalign): If failed even after invalidating
17053 disk caches, unload unneeded modules and retry.
17054
17055 * kern/misc.c (pupa_memmove): New function.
17056 (pupa_memcpy): Removed.
17057 (pupa_strcpy): New function.
17058 (pupa_itoa): Made static.
17059
17060 * kern/dl.c (pupa_dl_iterate): New function.
17061 (pupa_dl_ref): Likewise.
17062 (pupa_dl_unref): Likewise.
17063 (pupa_dl_unload): Return if succeeded or not.
17064 (pupa_dl_unload_unneeded): New function.
17065 (pupa_dl_unload_all): Likewise.
17066 (pupa_dl_init): Renamed to ...
17067 (pupa_dl_set_prefix): ... this.
17068 (pupa_dl_get_prefix): New function.
17069
17070 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
17071 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
17072 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
17073 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
17074 (pupa_install_dos_part): Declared.
17075 (pupa_install_bsd_part): Likewise.
17076 (pupa_prefix): Likewise.
17077 (pupa_boot_drive): Likewise.
17078
17079 * include/pupa/types.h: Fix a typo.
17080
17081 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
17082 pupa_memmove.
17083 (pupa_memmove): Declared.
17084 (pupa_strcpy): Likewise.
17085
17086 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
17087 pupa_mod_init takes one argument, its own module.
17088 (pupa_dl_unload_unneeded): Declared.
17089 (pupa_dl_unload_all): Likewise.
17090 (pupa_dl_ref): Likewise.
17091 (pupa_dl_unref): Likewise.
17092 (pupa_dl_iterate): Likewise.
17093 (pupa_dl_init): Renamed to ...
17094 (pupa_dl_set_prefix): ... this.
17095 (pupa_dl_get_prefix): Declared.
17096
17097 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 17098 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 17099 unloaded.
17100 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
17101 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
17102
17103 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
17104 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
17105
012d7999 171062003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
17107
17108 * util/i386/pc/pupa-setup.c (setup): Define the internal
17109 function find_first_partition_start at the top level, because GCC
17110 3.0.x cannot compile internal functions in deeper scopes
17111 correctly.
17112 (find_root_device): Use lstat instead of stat.
17113 Don't follow symbolic links.
17114 Fix the path-constructing code.
17115
17116 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
17117 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
17118 by a BLKGETSIZE ioctl first, because block devices don't fill
17119 the member st_mode of the structure stat on Linux.
17120 [__linux__] (linux_find_partition): Use a temporary buffer
17121 REAL_DEV for the working space. Copy it to DEV before returning.
17122 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
17123 buffer cache consistent.
17124 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
17125 strncmp. The previous value was merely wrong.
17126 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
17127
17128 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
17129 FAT size is 12. The previous value was merely wrong.
17130
17131 * kern/main.c (pupa_main): Don't split the starting message from
17132 newlines.
17133
17134 * kern/term.c (pupa_putchar): Put CR after LF instead of before
17135 LF, because BIOS goes crazy about character attributes in this
17136 case.
17137
1cc73a62 171382003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
17139
17140 * include/i386/pc/util/biosdisk.h: New file.
17141 * util/i386/pc/biosdisk.c: Likewise.
17142 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 17143
1cc73a62 17144 * Makefile.in (INCLUDE_DISTFILES): Added
17145 include/pupa/i386/pc/util/biosdisk.h.
17146 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
17147 directory util/i386/pc.
17148 (install-local): Added a rule for sbin_UTILITIES.
17149 (uninstall): Likewise.
17150
17151 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
17152
17153 * util/misc.c (xrealloc): New function.
17154 (pupa_malloc): Likewise.
17155 (pupa_free): Likewise.
17156 (pupa_realloc): Likewise.
17157 (pupa_stop): Likewise.
17158 (pupa_putchar): Likewise.
17159
17160 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
17161
17162 * include/pupa/util/misc.h (xrealloc): Declared.
17163
17164 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
17165 macro.
17166 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
17167 (PUPA_BOOT_MACHINE_BPB_END): ... this.
17168
17169 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
17170 [PUPA_UTIL] (pupa_fat_fini): Likewise.
17171
17172 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
17173 way should be implemented.
17174 [PUPA_UTIL] (pupa_fat_fini): Likewise.
17175
17176 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
17177 the size of NAME for safety.
17178 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
17179 0x88.
17180
17181 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
17182 (pupa_setup_SOURCES): Likewise.
17183
17184 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
17185
08b70fe8 171862002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
17187
17188 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
17189 bunch of pushl's from pusha, because this destroys the return
17190 value.
17191
62ddcc8f 171922002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
17193
17194 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
17195 This means that any missing prototypes could be fatal. Also, you
17196 must take care when writing assembly code. See the comments at
17197 the beginning of startup.S, for more details.
f19dbdb7 17198
62ddcc8f 17199 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
17200 compilation mechanism.
17201 (pupa_chainloader_real_boot): Likewise.
17202 (pupa_biosdisk_rw_int13_extensions): Likewise.
17203 (pupa_biosdisk_rw_standard): Likewise.
17204 (pupa_biosdisk_check_int13_extensions): Likewise.
17205 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
17206 (pupa_biosdisk_get_diskinfo_standard): Likewise.
17207 (pupa_get_memsize): Likewise.
17208 (pupa_get_mmap_entry): Likewise.
17209 (pupa_console_putchar): Likewise.
17210 (pupa_console_setcursor): Likewise.
17211 (pupa_getrtsecs): Use pushl instead of push.
17212
17213 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
17214 memory instead of the stack for a mmap entry, because some
17215 BIOSes may ignore the maximum size and overflow.
17216
17217 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
17218
17219 * genmk.rb (PModule#rule): Compile automatically generated
17220 sources with module-specific CFLAGS as well as other sources.
17221
9962ed99 172222002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17223
17224 * configure.ac: Check ld.
17225 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
17226 respectively, before checking endianness and sizes.
17227
17228 * Makefile.in (LD): New variable.
f19dbdb7 17229
abdfc3c5 172302002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17231
17232 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
17233
6a161fa9 172342002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17235
17236 * Changelog: New file.
17237