]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2005-11-26 Hollis Blanchard <hollis@penguinppc.org>
[grub2.git] / ChangeLog
CommitLineData
1569ec51 12005-11-26 Hollis Blanchard <hollis@penguinppc.org>
2
3 * configure.ac: Correct `AC_PROG_YACC' test.
4
9abde152 52005-11-22 Hollis Blanchard <hollis@penguinppc.org>
6
7 * util/powerpc/ieee1275/grub-install.in: Run the mount point
8 check before installing files.
9
44b83271 102005-11-22 Mike Small <smallm@panix.com>
11
12 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
13 number regex so multidigit numbers are recognized correctly.
14
152005-11-22 Mike Small <smallm@panix.com>
16
17 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
18 debugging message before attempting to claim memory.
19 (grub_rescue_cmd_initrd): Add a claim debugging message and try
20 multiple addresses in case of failure.
21
9c12956b 222005-11-22 Hollis Blanchard <hollis@penguinppc.org>
23
24 * term/tparm.c (get_space): Remove empty `if' statement.
25
26 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
27
28 * kern/parser.c (check_varstate): Rename `state' to 's'.
29
aeaf81d9 302005-11-22 Hollis Blanchard <hollis@penguinppc.org>
31
32 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
33 variable definitions to the beginning of each function. Sort stack
34 variables by size.
35 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
36 `buf' argument to `char *'.
37
79bbb63f 382005-11-22 Hollis Blanchard <hollis@penguinppc.org>
39
40 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
41 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
42 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
43 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
44 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
45 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
46 configfile.mod, search.mod, gzio.mod and test.mod.
47 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
48 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
49 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
50 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
51 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
52 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
53 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
54 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
55 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
56 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
57 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
58 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
59 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
60 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
61 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
62 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
63 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
64 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
65 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
66 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
67 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
68 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
69 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
70
71 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
72 `grep --include'.
73 (pkgdata_MODULES): Add test.mod.
74
233b1628 752005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
76
77 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
78 appending to variables with "+=".
79 (PModule): Use full pathname to generate *.lst filenames.
80
81 * Makefile.in: Fixed list rules moved from genmk.rb.
82 (.DELETE_ON_ERROR): New special target.
83 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
84
85 * conf/i386-pc.rmk: Include conf/common.mk.
86 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
87 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
88 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
89 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
90 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
91 configfile.mod, search.mod, gzio.mod and test.mod.
92 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
93 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
94 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
95 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
96 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
97 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
98 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
99 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
100 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
101 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
102 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
103 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
104 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
105 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
106 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
107 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
108 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
109 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
110 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
111 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
112 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
113 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
114 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
115 here...
116 * conf/common.rmk: ... to here. New file.
117
118 * conf/common.mk: New file.
119
16f820c8 1202005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
121
122 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
123 (grub_script.tab.c): ... here.
124
125 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
126 (grub_script.tab.c): ... here.
127
128 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
129 (grub_script.tab.c): ... here.
130
131 * normal/command.c (grub_command_find): Fixed a memory leak of
132 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
133
63ba1554 1342005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
135
136 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
137 "@" which marks the start of a comment on ARM.
138 (VARIABLE): Likewise.
139
7f67dc13 1402005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
141
79bbb63f 142 Add support for Linux/ADFS partition tables.
7f67dc13 143
144 * partmap/acorn.c: New file.
145
146 * include/grub/acorn_filecore.h: Likewise.
147
148 * DISTLIST: Added `partmap/acorn.c' and
149 `include/grub/acorn_filecore.h'.
150
151 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
152 `partmap/acorn.c'.
153 (pkgdata_MODULES): Add `acorn.mod'.
154 (acorn_mod_SOURCES): New variable.
155 (acorn_mod_CFLAGS): Likewise.
156
157 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
158 `partmap/acorn.c'.
159 (pkgdata_MODULES): Add `acorn.mod'.
160 (acorn_mod_SOURCES): New variable.
161 (acorn_mod_CFLAGS): Likewise.
162
163 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
164 (pkgdata_MODULES): Add `acorn.mod'.
165 (acorn_mod_SOURCES): New variable.
166 (acorn_mod_CFLAGS): Likewise.
167 (acorn_mod_LDFLAGS): Likewise.
168
169 * include/types.h (grub_disk_addr_t): New typedef.
170
6d099807 1712005-11-13 Marco Gerards <mgerards@xs4all.nl>
172
173 * geninit.sh: New file.
174
175 * geninitheader.sh: Likewise.
176
177 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
178 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
179 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
180 * commands/configfile.c (grub_configfile_init)
181 (grub_configfile_fini): Likewise.
182 * commands/default.c (grub_default_init, grub_default_fini):
183 Likewise.
184 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
185 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
186 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
187 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
188 Likewise.
189 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
190 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
191 Likewise.
192 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
193 * commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
194 Likewise.
195 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
196 Likewise.
197 * commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
198 Likewise.
199 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
200 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
201 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
202 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
203 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
204 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
205 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
206 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
207 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
208 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
209 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
210 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
211 * partmap/amiga.c (grub_amiga_partition_map_init)
212 (grub_amiga_partition_map_fini): Likewise.
213 * partmap/apple.c (grub_apple_partition_map_init)
214 (grub_apple_partition_map_fini): Likewise.
215 * partmap/pc.c (grub_pc_partition_map_init)
216 (grub_pc_partition_map_fini): Likewise.
217 * partmap/sun.c (grub_sun_partition_map_init,
218 grub_sun_partition_map_fini): Likewise.
219 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
220 Likewise.
221
222 * util/grub-emu.c: Include <grub_modules_init.h>.
223 (main): Don't initialize and de-initialize any modules directly,
224 use `grub_init_all' and `grub_fini_all' instead.
225
226 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
227 `grub_vesafb_mod_init'.
228 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
229 all users.
230 * term/i386/pc/vga.c (grub_vga_init): Renamed to
231 `grub_vga_mod_init'. Updated all users.
232 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
233
234 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
235 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
236 rules.
237
238 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
239 Generate a function to initialize the module in utilities.
240 Updated all callers.
241 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
242 initialize the module in utilities. Updated all callers.
243
9046bcf0 2442005-11-09 Hollis Blanchard <hollis@penguinppc.org>
245
246 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
247 escape sequence and a literal ^L to clear the screen.
248
249 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
250 when returning from Open Firmware.
251
d13ea639 2522005-11-09 Hollis Blanchard <hollis@penguinppc.org>
253
254 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
255 (grub_ofconsole_height): Likewise.
256 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
257 manually insert a '\n'.
258 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
259 `grub_ofconsole_height'. Return early if these are already set.
260
a8fcf206 2612005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
262
263 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
264 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
265 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
266 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
267 and `normal/script.c'.
268 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
269 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
270 (test_mod_SOURCES): New variable.
271 (test_mod_CFLAGS): Likewise.
272 (test_mod_LDFLAGS): Likewise.
273 (pkgdata_MODULES): Add `test.mod'.
274 (grub_script.tab.c): New rule.
275 (grub_script.tab.h): Likewise.
276
b6b32745 2772005-11-07 Marco Gerards <mgerards@xs4all.nl>
278
279 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
280 `commands/test.c', `normal/execute.c', `normal/lexer.c',
281 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
282 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
283 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
284 (test_mod_SOURCES): New variable.
285 (test_mod_CFLAGS): Likewise.
286 (pkgdata_MODULES): Add `test.mod'.
287 (grub_script.tab.c): New rule.
288 (grub_script.tab.h): Likewise.
289
daac212a 2902005-11-06 Marco Gerards <mgerards@xs4all.nl>
291
292 Add initial scripting support.
293
294 * commands/test.c: New file.
295 * include/grub/script.h: Likewise.
296 * normal/execute.c: Likewise.
297 * normal/function.c: Likewise.
298 * normal/lexer.c: Likewise.
299 * normal/parser.y: Likewise.
300 * normal/script.c: Likewise.
301
302 * configure.ac: Add `AC_PROG_YACC' test.
303
304 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
305 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
306 `normal/function.c' and `normal/script.c'.
307 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
308 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 309 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
310 variables.
daac212a 311 (pkgdata_MODULES): Add `test.mod'.
312 (grub_script.tab.c): New rule.
313 (grub_script.tab.h): Likewise.
314
315 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
316
317 * include/grub/normal.h (grub_test_init): New prototype.
318 (grub_test_fini): Likewise.
319
320 * normal/command.c: Include <grub/script.h>.
321 (grub_command_execute): Rewritten.
322
323 * util/grub-emu.c (main): Call `grub_test_init' and
324 `grub_test_fini'.
325
77500b2b 3262005-11-03 Hollis Blanchard <hollis@penguinppc.org>
327
328 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
329 to 0.
330 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
331 there are no pending characters.
332
e45deb9e 3332005-11-03 Hollis Blanchard <hollis@penguinppc.org>
334
335 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
336 `grub_strndup' to drop device arguments. Replace unnecessary
337 `grub_strndup' with `grub_strdup'.
338
4ce32619 3392005-11-03 Hollis Blanchard <hollis@penguinppc.org>
340
341 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
342 `debug' environment variable has been set.
343
3442005-11-02 Hollis Blanchard <hollis@penguinppc.org>
345
346 * Makefile.in (install-local): Use $(DATA).
347 (uninstall): Likewise.
348 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
349 (sbin_UTILITIES): ... to here.
350 (sbin_SCRIPTS): New variable.
351 (grub_install_SOURCES): New variable.
352 * util/powerpc/ieee1275/grub-install.in: New file.
353 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
354 variable.
355 (add_segments): Call `grub_util_get_path'.
356
25fe6f03 3572005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
358
359 From Timothy Baldwin:
360 * commands/ls.c (grub_ls_list_files): Close FILE with
361 grub_file_close.
362 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
363
04ccf3ec 3642005-10-24 Marco Gerards <mgerards@xs4all.nl>
365
366 * include/grub/parser.h: New file.
367
368 * kern/parser.c: Likewise.
369
370 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
371 (grub_setup_SOURCES): Likewise.
372 (grub_probefs_SOURCES): Likewise.
373 (grub_emu_SOURCES): Likewise.
374 (kernel_img_HEADERS): Add `parser.h'.
375
376 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
377 (grub_emu_SOURCES): Add `kern/parser.c'.
378 (grubof_SOURCES): Likewise.
379
380 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
381 (grubof_SOURCES): Add `kern/parser.c'.
382
383 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
384
385 * kern/misc.c (grub_split_cmdline): Removed function.
386
387 * kern/rescue.c: Include <grub/parser.h>.
388 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
389 of `grub_split_cmdline'.
390
391 * normal/command.c: Include <grub/parser.h>.
392 (grub_command_execute): Use `grub_parser_split_cmdline' instead
393 of `grub_split_cmdline'.
394
395 * normal/completion.c: Include <grub/parser.h>.
396 (cmdline_state): New variable.
397 (iterate_dir): End the filename with a quote depending on the
398 command line state.
399 (get_state): new function.
400 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
401 split the arguments and determine the current argument. When the
402 argument string is not quoted, escape all spaces.
403
6d8f4b0e 4042005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
405
406 * normal/sparc64/setjmp.S: New file.
407
15cf03ed 4082005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
409
410 * include/grub/sparc64/libgcc.h: New file.
411 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
412 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
413 normal/sparc64/setjmp.c.
414
03e8661a 4152005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
416
417 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
418 * kern/sparc64/cache.S: New file.
419 * kern/sparc64/cache.c: Removed.
420 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
421 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
422 -mtune=ultrasparc.
423 (COMMON_LDFLAGS): Add -melf64_sparc.
424 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
425 (grubof_SOURCES): Use cache.S instead of cache.c.
426 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
427 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
428 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
429 commented though.
430 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
431 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
432 (linux_mod_CFLAGS): Commented out.
433 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
434 out because module isn't built.
435 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
436 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
437 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
438 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
439 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
440 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
441 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
442 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
443 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
444 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
445 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
446 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
447 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
448 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
449
34eeec8a 4502005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
451
452 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
453 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
454 longer, because HFS should not be used on PC.
455
708367a3 4562005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
457
458 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
459 consistently within the loop.
460
6fa1251a 4612005-10-15 Marco Gerards <mgerards@xs4all.nl>
462
463 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
464 directory can not be read.
465
4801580b 4662005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
467
468 * configure.ac (AC_INIT): Increase the version number to 1.91.
469
470 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
471 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
472 term/i386/pc/serial.c.
473
219ad426 4742005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
475
476 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
477 file size must be permitted.
478
479 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
480 between %ah and %al.
481
688e5699 4822005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
483
484 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
485 grub_uint64_t.
486 Call the hook with a NUL-terminated filename.
487 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
488 grub_cpu_to_be32.
489
490 * kern/term.c (cursor_state): New variable.
491 (grub_term_set_current): Reset the cursor state on a new
492 terminal.
493 (grub_setcursor): Rewritten to use CURSOR_STATE.
494 (grub_getcursor): New function.
495
496 * include/grub/term.h (grub_getcursor): New prototype.
497
498 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
499 integers on ARM. Reported by Timothy Baldwin
500 <T.E.Baldwin99@members.leeds.ac.uk>.
501
bb34586c 5022005-10-11 Marco Gerards <mgerards@xs4all.nl>
503
504 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
505 allocated.
506 (grub_sfs_dir): Likewise.
507
9a909877 5082005-10-09 Marco Gerards <mgerards@xs4all.nl>
509
510 Add support for the SFS filesystem.
511
512 * fs/sfs.c: New file.
513
514 * DISTLIST: Added `fs/sfs.c'.
515
516 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
517 (grub_probefs_SOURCES): Likewise.
518 (grub_emu_SOURCES): Likewise.
519 (pkgdata_MODULES): Add `sfs.mod'.
520 (sfs_mod_SOURCES): New variable.
521 (sfs_mod_CFLAGS): Likewise.
522 (sfs_mod_LDFLAGS): Likewise.
523
524 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
525 (pkgdata_MODULES): Add `sfs.mod'.
526 (sfs_mod_SOURCES): New variable.
527 (sfs_mod_CFLAGS): Likewise.
528
529 * util/grub-emu.c (main): Call `grub_sfs_init' and
530 `grub_sfs_fini'.
531
532 * include/grub/fs.h (grub_sfs_init): New prototype.
533 (grub_sfs_fini): Likewise.
534
57bdbde3 5352005-10-07 Marco Gerards <mgerards@xs4all.nl>
536
537 Add support for the AFFS filesystem.
538
539 * fs/affs.c: New file.
540
541 * DISTLIST: Added `fs/affs.c'.
542
543 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
544 (grub_probefs_SOURCES): Likewise.
545 (grub_emu_SOURCES): Likewise.
546 (pkgdata_MODULES): Add `affs.mod'.
547 (affs_mod_SOURCES): New variable.
548 (affs_mod_CFLAGS): Likewise.
549 (affs_mod_LDFLAGS): Likewise.
550
551 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
552 (pkgdata_MODULES): Add `affs.mod'.
553 (affs_mod_SOURCES): New variable.
554 (affs_mod_CFLAGS): Likewise.
555
556 * util/grub-emu.c (main): Call `grub_affs_init' and
557 `grub_affs_fini'.
558
559 * include/grub/fs.h (grub_affs_init): New prototype.
560 (grub_affs_fini): Likewise.
561
047b67e0 5622005-10-01 Marco Gerards <mgerards@xs4all.nl>
563
564 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
565
59b8208a 5662005-10-01 Marco Gerards <mgerards@xs4all.nl>
567
568 * configure.ac: Accept `x86_64' as host_cpu. In that case add
569 `-m32' to CFLAGS.
570
571 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
572 linking.
573
574 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
575 (COMMON_LDFLAGS): New variable.
576 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
577 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
578 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
579 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
580 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
581 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
582 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
583 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
584 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
585 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
586 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
587 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
588 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
589 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
590 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
591 variables.
592 (normal_mod_ASFLAGS): Add `-m32'.
593
594 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
595 (grub_host_size_t, grub_host_ssize_t): New types.
596 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
597 dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
598 `GRUB_HOST_SIZEOF_VOID_P'.
599
600 * include/grub/kernel.h (struct grub_module_header): Type of
601 member offset changed to `grub_host_off_t'. Type of member size
602 changed to `grub_host_size_t'.
603 (struct grub_module_info): Type of member offset changed to
604 `grub_host_off_t'. Type of member size changed to
605 `grub_host_size_t'.
606
b4093103 6072005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
608
609 Make GRUB's kernel compliant to Multiboot Specification.
610
611 * kern/i386/pc/startup.S (multiboot_header): New label.
612 (multiboot_entry): Likewise.
613 (multiboot_trampoline): Likewise.
614
615 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
616 Increased to 0x4A0.
617
618 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
619 put parentheses after a question mark.
620 [!GRUB_UTIL] (my_mod): New variable.
621
622 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
623
b2499b29 6242005-09-28 Marco Gerards <mgerards@xs4all.nl>
625
626 Adds support for the XFS filesystem. Btrees are not supported
627 yet.
628
629 * fs/xfs.c: New file.
630
631 * DISTLIST: Added `fs/xfs.c'.
632
633 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
634 (grub_probefs_SOURCES): Likewise.
635 (grub_emu_SOURCES): Likewise.
636 (pkgdata_MODULES): Add `xfs.mod'.
637 (xfs_mod_SOURCES): New variable.
638 (xfs_mod_CFLAGS): Likewise.
639
640 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
641 (pkgdata_MODULES): Add `xfs.mod'.
642 (xfs_mod_SOURCES): New variable.
643 (xfs_mod_CFLAGS): Likewise.
644
645 * util/grub-emu.c (main): Call `grub_xfs_init' and
646 `grub_xfs_fini'.
647
648 * include/grub/fs.h (grub_xfs_init): New prototype.
649 (grub_xfs_fini): Likewise.
650
651
83d37a62 6522005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
653
654 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
655 color modes, allow greater than 16 colors to be configured as
656 a default palette.
657
47d2d65e 6582005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
659
660 * normal/completion.c (complete_arguments): Add the qualifier
661 const into OPTIONS.
662
663 From Omniflux <omniflux+lists@omniflux.com>:
664 * include/grub/terminfo.h: New file.
665 * include/grub/tparm.h: Likewise.
666 * include/grub/i386/pc/serial.h: Likewise.
667 * term/terminfo.c: Likewise.
668 * term/tparm.c: Likewise.
669 * term/i386/pc/serial.c: Likewise.
670 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
671 serial.mod.
672 (terminfo_mod_SOURCES): New variable.
673 (terminfo_mod_CFLAGS): Likewise.
674 (serial_mod_SOURCES): Likewise.
675 (serial_mod_CFLAGS): Likewise.
676
48b671ff 6772005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
678
679 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
680 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
681 and kern/powerpc/ieee1275/cmain.c, respectively.
682
683 * boot/powerpc/ieee1275/crt0.S: Moved to ...
684 * kern/powerpc/ieee1275/crt0.S: ... here.
685
686 * boot/powerpc/ieee1275/cmain.c: Moved to ...
687 * kern/powerpc/ieee1275/cmain.c: ... here.
688
689 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
690 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
691 instead of boot/powerpc/ieee1275/crt0.S and
692 boot/powerpc/ieee1275/cmain.c, respectively.
693
694 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
695 sectors. It was not used anyway.
696
09fc77a7 6972005-08-30 Hollis Blanchard <hollis@penguinppc.org>
698
699 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
700 `unused parameter' warning.
701
003789c7 7022005-08-30 Hollis Blanchard <hollis@penguinppc.org>
703
704 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
705 function.
706 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
707 getcharwidth.
708
67f44c86 7092005-08-28 Marco Gerards <metgerards@student.han.nl>
710
711 * include/grub/normal.h (enum grub_completion_type): Added
712 `GRUB_COMPLETION_TYPE_ARGUMENT'.
713
714 * normal/cmdline.c (print_completion): Handle
715 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
716 * normal/menu_entry.c (store_completion): Likewise.
717
718 * normal/completion.c (complete_arguments): New function.
719 (grub_normal_do_completion): Call `complete_arguments' when the
720 current words start with a dash.
721
0b5abe02 7222005-08-27 Marco Gerards <metgerards@student.han.nl>
723
724 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
725 `gzio.mod' instead of `io.mod').
726
d9864ee1 7272005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
728
729 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
730 (DISTDIRS): Added io and video.
731 Rewrite the search routine to make an output consistently.
732
733 * DISTLIST: Added conf/sparc64-ieee1275.mk,
734 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
735 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
736 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
737 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
738 util/powerpc/ieee1275/misc.c.
739
740 * include/grub/gzio.h: New file.
741 * io/gzio.c: Likewise.
742
743 * kern/file.c (grub_file_close): Call grub_device_close only if
744 FILE->DEVICE is not NULL.
745
746 * include/grub/mm.h [!NULL] (NULL): New macro.
747
748 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
749
750 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
751 (pkgdata_MODULES): Added gzio.mod.
752 (gzio_mod_SOURCES): New variable.
753 (gzio_mod_CFLAGS): Likewise.
754
755 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
756 (pkgdata_MODULES): Added gzio.mod.
757 (gzio_mod_SOURCES): New variable.
758 (gzio_mod_CFLAGS): Likewise.
759
760 * commands/cat.c: Include grub/gzio.h.
761 (grub_cmd_cat): Use grub_gzfile_open instead of
762 grub_file_open.
763
764 * commands/cmp.c: Include grub/gzio.h.
765 (grub_cmd_cmp): Use grub_gzfile_open instead of
766 grub_file_open.
767
768 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
769 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
770 grub_file_open.
771 (grub_rescue_cmd_module): Likewise.
772
fa46f4b5 7732005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
774
775 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
776 kern/sparc64/ieee1275/init.c because it contains _start.
777 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
778
e9211b5d 7792005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
780
781 * configure.ac: Add support for sparc64 host with ieee1275
782 firmware.
783 * configure: Generated from configure.ac.
784 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
785 instead of int.
786 (grub_ofdisk_read): Likewise.
787 (grub_ofdisk_open): Use %p to print pointer values, and cast the
788 pointers as (void *) to remove a warning.
789 (grub_ofdisk_close): Likewise.
790 (grub_ofdisk_read): Likewise.
791 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
792 returns, so make it return void to remove a warning.
793 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
794 Corresponding prototype change.
795 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
796 values, and cast the pointers as (void *) to remove a warning.
797 (grub_mm_dump): Likewise.
798 * conf/sparc64-ieee1275.mk: New file.
799 * conf/sparc64-ieee1275.rmk: Likewise.
800 * include/grub/sparc64/setjmp.h: Likewise.
801 * include/grub/sparc64/types.h: Likewise.
802 * include/grub/sparc64/ieee1275/console.h: Likewise.
803 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
804 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
805 * include/grub/sparc64/ieee1275/time.h: Likewise.
806 * kern/sparc64/cache.c: Likewise.
807 * kern/sparc64/dl.c: Likewise.
808 * kern/sparc64/ieee1275/init.c: Likewise.
809 * kern/sparc64/ieee1275/openfw.c: Likewise.
810
385c6a92 8112005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
812
813 * util/console.c (grub_ncurses_putchar): If C is greater than
814 0x7f, set C to a question mark.
815 (grub_ncurses_getcharwidth): New function.
816 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
817 getcharwidth.
818
819 * normal/menu.c (print_entry): Made aware of Unicode. First,
820 convert TITLE to UCS-4, and predict the cursor position by
821 grub_getcharwidth.
822
823 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
824 const to SRC.
825 * kern/misc.c (grub_utf16_to_utf8): Likewise.
826
16ccb8b1 8272005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
828
829 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
830 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
831 grub_strcat.
832
833 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
834 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
835 grub_strcpy and grub_strlen. Take it into account that a space
836 character is inserted as a delimiter.
837
6a85ce79 8382005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
839
840 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
841 invalid magic in thre error.
842
843 * commands/search.c: New file.
844
845 * util/grub-emu.c (main): Call grub_search_init and
846 grub_search_fini.
847
848 * kern/rescue.c (grub_rescue_print_disks): Removed.
849 (grub_rescue_print_devices): New function.
850 (grub_rescue_cmd_ls): Use grub_device_iterate with
851 grub_rescue_print_devices instead of grub_disk_dev_iterate with
852 grub_rescue_print_disks.
853
854 * kern/partition.c (grub_partition_iterate): Return the result of
855 PARTMAP->ITERATE instead of GRUB_ERRNO.
856
857 * kern/device.c: Include grub/partition.h.
858 (grub_device_iterate): New function.
859
860 * include/grub/partition.h (grub_partition_iterate): Return int
861 instead of grub_err_t.
862
863 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
864 prototype.
865 [GRUB_UTIL] (grub_search_fini): Likewise.
866
867 * include/grub/device.h (grub_device_iterate): New prototype.
868
869 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
870 commands/search.c.
871 (pkgdata_MODULES): Added search.mod.
872 (search_mod_SOURCES): New variable.
873 (search_mod_CFLAGS): Likewise.
874
875 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
876 (pkgdata_MODULES): Added search.mod.
877 (search_mod_SOURCES): New variable.
878 (search_mod_CFLAGS): Likewise.
879
880 * commands/ls.c (grub_ls_list_disks): Renamed to ...
881 (grub_ls_list_devices): ... this, and use grub_device_iterate.
882 All callers changed.
883
884 * DISTLIST: Added commands/search.c.
885
ef095434 8862005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
887
888 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
889 conversion.
890 (grub_getcharwidth): New function.
891
892 * kern/misc.c (grub_utf8_to_ucs4): New function.
893
894 * include/grub/term.h (struct grub_term): Added a new member
895 "getcharwidth".
896 (grub_getcharwidth): New prototype.
897
898 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
899
900 * term/i386/pc/console.c (map_char): New function. Segregated from
901 grub_console_putchar.
902 (grub_console_putchar): Use map_char.
903 (grub_console_getcharwidth): New function.
904 (grub_console_term): Specified grub_console_getcharwidth as
905 getcharwidth.
906
907 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
908 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
909
910 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
911 GRUB_ERRNO.
912 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
913 on grub_strtoul completely.
914 (write_char): Declare local variables in the beginning of the
915 function.
916 (grub_vesafb_getcharwidth): New function.
917 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
918 getcharwidth.
919
1f0a95e4 9202005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
921
922 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
923 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
924 commands/i386/pc/vbetest.c.
925
926 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
927 call grub_vbe_get_controller_info again, because the returned
928 information is volatile.
929 (grub_vbe_set_video_mode): Mostly rewritten.
930 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
931 grub_vbe_status_t correctly.
932 (grub_vbe_get_video_mode_info): Likewise.
933 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
934 several if statements.
935
936 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
937 * commands/i386/pc/vbeinfo.c: ... this.
938
939 * commands/i386/pc/vbe_test.c: Renamed to ...
940 * commands/i386/pc/vbetest.c: ... this.
941
942 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
943 ...
944 (grub_cmd_vbeinfo): ... this. Save video modes before
945 iterating. Skip a video mode, if it is not available, not enough
946 information is given or it is monochrome. Show the memory
947 model. Leave the interpretation of MODEVAR to grub_strtoul
948 completely.
949 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
950 (GRUB_MOD_FINI): Likewise.
951
952 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
953 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
954 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
955 duplicated grub_env_get. Leave the interpretation of MODEVAR to
956 grub_strtoul completely.
957 (real2pm): Removed.
958 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
959 (GRUB_MOD_FINI): Likewise.
960
961 * normal/misc.c: Include grub/mm.h.
962
963 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
964 vbe_list_modes with vbetest.mod and vbeinfo.mod.
965 (vbe_list_modes_mod_SOURCES): Removed.
966 (vbe_list_modes_mod_CFLAGS): Likewise.
967 (vbe_test_mod_SOURCES): Likewise.
968 (vbe_test_mod_CFLAGS): Likewise.
969 (vbeinfo_mod_SOURCES): New variable.
970 (vbeinfo_mod_CFLAGS): Likewise.
971 (vbetest_mod_SOURCES): Likewise.
972 (vbetest_mod_CFLAGS): Likewise.
973
992ffbbe 9742005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
975
976 * normal/misc.c: New file.
977
978 * DISTLIST: Added normal/misc.c.
979
980 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
981 DISK to HOOK. Call HOOK with DISK.
982 * partmap/apple.c (apple_partition_map_iterate): Likewise.
983 * partmap/pc.c (pc_partition_map_iterate): Likewise.
984 * partmap/sun.c (sun_partition_map_iterate): Likewise.
985
986 * normal/menu_entry.c (struct screen): Added a new member
987 "completion_shown".
988 (completion_buffer): New global variable.
989 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
990 (store_completion): New function.
991 (complete): Likewise.
992 (clear_completions): Likewise.
993 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
994 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
995 a tab, call complete.
996
997 * normal/completion.c (disk_dev): Removed.
998 (print_simple_completion): Likewise.
999 (print_partition_completion): Likewise.
1000 (print_func): New global variable.
1001 (add_completion): Do not take the arguments WHAT or PRINT any
1002 longer. Added a new argument TYPE. Instead of printing directly,
1003 call PRINT_FUNC if not NULL.
1004 All callers changed.
1005 (complete_device): Use a local variable DEV instead of
1006 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
1007 (grub_normal_do_completion): Take a new argument HOOK. Do not
1008 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
1009 empty string, return NULL instead.
1010 All callers changed.
1011
1012 * normal/cmdline.c (print_completion): New function.
1013
1014 * kern/partition.c (grub_partition_iterate): Add an argument DISK
1015 to HOOK.
1016 All callers changed.
1017
1018 * kern/disk.c (grub_print_partinfo): Removed.
1019
1020 * include/grub/partition.h (struct grub_partition_map): Add a new
1021 argument DISK into HOOK of ITERATE.
1022 (grub_partition_iterate): Add a new argument DISK to HOOK.
1023
1024 * include/grub/normal.h (enum grub_completion_type): New enum.
1025 (grub_completion_type_t): New type.
1026 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
1027 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
1028 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
1029 (GRUB_COMPLETION_TYPE_FILE): Likewise.
1030 (grub_normal_do_completion): Added a new argument HOOK.
1031 (grub_normal_print_device_info): New prototype.
1032
1033 * include/grub/disk.h (grub_print_partinfo): Removed.
1034
1035 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
1036 (normal_mod_SOURCES): Likewise.
1037 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1038 (normal_mod_SOURCES): Likewise.
1039
1040 * commands/ls.c (grub_ls_list_disks): Use
1041 grub_normal_print_device_info instead of grub_print_partinfo. Free
1042 PNAME.
1043 (grub_ls_list_files): Use grub_normal_print_device_info instead of
1044 duplicating the code.
1045
0bd41162 10462005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
1047
1048 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
1049 follow GCS more precisely.
1050 * commands/i386/pc/vbe_test.c: Likewise.
1051 * include/grub/i386/pc/vbe.h: Likewise.
1052 * term/i386/pc/vesafb.c: Likewise.
1053 * video/i386/pc/vbe.c: Likewise.
1054
6323696a 10552005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
1056
1057 * DISTLIST: Added term/i386/pc/vesafb.c
1058 DISTLIST: Added video/i386/pc/vbe.c
1059 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
1060 DISTLIST: Added commands/i386/pc/vbe_test.c.
1061 * commands/i386/pc/vbe_list_modes.c: New file.
1062 * commands/i386/pc/vbe_test.c: Likewise.
1063 * term/i386/pc/vesafb.c: Likewise.
1064 * video/i386/pc/vbe.c: Likewise.
1065 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
1066 (grub_vbe_probe) Added prototype.
1067 (grub_vbe_set_video_mode) Likewise.
1068 (grub_vbe_get_video_mode) Likewise.
1069 (grub_vbe_get_video_mode_info) Likewise.
1070 (grub_vbe_set_pixel_rgb) Likewise.
1071 (grub_vbe_set_pixel_index) Likewise.
1072 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
1073 (pkgdata_MODULES): Added vesafb.mod.
1074 (pkgdata_MODULES): Added vbe_list_modes.mod.
1075 (pkgdata_MODULES): Added vbe_test.mod.
1076 (vbe_mod_SOURCES): Added.
1077 (vbe_mod_CFLAGS): Likewise.
1078 (vesafb_mod_SOURCES): Likewise.
1079 (vesafb_mod_CFLAGS): Likewise.
1080 (vbe_list_modes_mod_SOURCES): Likewise.
1081 (vbe_list_modes_mod_CFLAGS): Likewise.
1082 (vbe_test_mod_SOURCES): Likewise.
1083 (vbe_test_mod_CFLAGS): Likewise.
1084
0a74e62f 10852005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
1086
0a74e62f 1087 * normal/command.c (grub_command_execute): If INTERACTIVE is
1088 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
1089 CMDLINE. Disable the pager if INTERACTIVE is true.
1090 All callers are changed.
1091
1092 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
1093 before reading a config file.
1094 * normal/main.c (read_config_file): Even if a command is not
1095 found, register it if it is within an entry.
1096
1097 * util/grub-emu.c: Include sys/types.h and unistd.h.
1098 (options): Added --hold.
1099 (struct arguments): Added a new member "hold".
1100 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
1101 missing.
1102 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
1103 cleared by a debugger, if it is not zero.
1104
1105 * include/grub/normal.h (grub_command_execute): Add an argument
1106 INTERACTIVE.
1107
e51f85ae 11082005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
1109
1110 * DISTLIST: Added include/grub/i386/pc/vbe.h.
1111
e9c6f39b 11122005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
1113
1114 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
1115 program with another one, because the old one didn't detect a bug
1116 in gcc-3.4. Always use regparm 2, because the new test is still
1117 not enough for gcc-4.0. Someone must investigate a simple test
1118 case which detects a bug in gcc-4.0.
1119
8de3495c 11202005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
1121
1122 * DISTLIST: Added normal/completion.c.
1123
1124 * normal/completion.c: New file.
1125
1126 * term/i386/pc/console.c (grub_console_getwh): New function.
1127 (grub_console_term): Assign grub_console_getwh to getwh.
1128
1129 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
1130 function is defined in normal/completion.c as
1131 grub_normal_do_completion.
1132 (grub_cmdline_get): Use grub_normal_do_completion instead of
1133 grub_tab_complete.
1134
1135 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
1136 returns non-zero, otherwise return 0.
1137 (grub_partition_iterate): First, probe the partition map. Then,
1138 call ITERATE only for this partition map.
1139
1140 * kern/misc.c (grub_strncmp): Rewritten.
1141
1142 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
1143 returns non-zero. Otherwise return 0.
1144
1145 * include/grub/partition.h (grub_partition_map_iterate): Return
1146 int instead of void.
1147
1148 * include/grub/normal.h (grub_normal_do_completion): New prototype.
1149
1150 * include/grub/misc.h (grub_strncmp): Change the type of N to
1151 grub_size_t.
1152
1153 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
1154 of void.
1155
1156 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
1157 unsigned explictly before comparing it with I.
1158
1159 * kern/main.c (grub_env_write_root): Add the attribute unused into
1160 VAR.
1161
1162 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
1163 normal/completion.c.
1164 (normal_mod_SOURCES): Likewise.
1165 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1166 (normal_mod_SOURCES): Likewise.
1167
1168 * normal/command.c (grub_iterate_commands): If ITERATE returns
1169 non-zero, return one immediately.
1170
e85e144b 11712005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
1172
1173 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
1174 * kern/i386/pc/startup.S: Updated Global Descriptor table's
1175 descriptions.
1176 (grub_vbe_get_controller_info): New function.
1177 (grub_vbe_get_mode_info): Likewise.
1178 (grub_vbe_set_mode): Likewise.
1179 (grub_vbe_get_mode): Likewise.
1180 (grub_vbe_set_memory_window): Likewise.
1181 (grub_vbe_get_memory_window): Likewise.
1182 (grub_vbe_set_scanline_length): Likewise.
1183 (grub_vbe_get_scanline_length): Likewise.
1184 (grub_vbe_set_display_start): Likewise.
1185 (grub_vbe_get_display_start): Likewise.
1186 (grub_vbe_set_palette_data): Likewise.
1187 * include/grub/i386/pc/vbe.h: New file.
1188
c46153d2 11892005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1190
1191 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
1192 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
1193 * DISTLIST: Likewise.
1194 * kern/ieee1275/of.c: Moved to ...
1195 * kern/ieee1275/ieee1275.c: ... here.
1196
0cb90c45 11972005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1198
1199 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
1200 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
1201 Pass 0 as `end' parameter to grub_strtoul().
1202
a19fb360 12032005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1204
1205 * include/grub/powerpc/ieee1275/console.h: Do not include
1206 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
1207 ifdef.
1208 (grub_console_cur_color): Remove i386-specific prototype.
1209 (grub_console_real_putchar): Likewise.
1210 (grub_console_checkkey): Likewise.
1211 (grub_console_getkey): Likewise.
1212 (grub_console_getxy): Likewise.
1213 (grub_console_gotoxy): Likewise.
1214 (grub_console_cls): Likewise.
1215 (grub_console_setcursor): Likewise.
1216 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
1217 Include <grub/machine/console.h>.
1218 * term/ieee1275/ofconsole.c: Likewise.
1219
4ac9bd04 12202005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
1221
1222 * Makefile.in (LIBLZO): New variable.
1223
1224 * configure.ac: Check for LZO version 2.
1225
1226 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
1227 lzo/lzo1x.h instead of lzo1x.h.
1228
1229 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
1230 of -llzo.
1231
1232 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
1233 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
1234
1235 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
1236 copying the data from PARTITION to P.
1237
f4917dfd 12382005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1239
1240 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
1241 negative, unload the module.
1242
1243 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
1244 map is "pc_partition_map" but not "pc".
1245 (usage): Fix the description. The options are --boot-image and
1246 --core-image but not --boot-file or --core-file.
1247 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
1248 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
1249 DEFAULT_DIRECTORY.
1250
1251 * util/i386/pc/grub-install.in: Do not specify --boot-file or
1252 --core-file. Specify INSTALL_DEVICE as an argument.
1253
1254 * util/console.c: Include config.h.
1255 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
1256 [HAVE_NCURSES_H]: Include ncurses.h.
1257 [HAVE_CURSES_H]: Include curses.h.
1258 [!A_NORMAL] (A_NORMAL): Defined as zero.
1259 [!A_STANDOUT] (A_STANDOUT): Likewise.
1260
1261 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
1262 -lncurses.
1263 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
1264
1265 * configure.ac: Check for curses libraries and headers.
1266
1267 * Makefile.in (LIBCURSES): New variable.
1268
1269 * genmk.rb (Script::rule): Set the executable bits.
1270
1271 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
1272 name of the PC partition map is "pc_partition_map" but not "pc".
1273
0e143073 12742005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1275
1276 * util/i386/pc/grub-install.in (grub_probefs): New variable.
1277 (modules): Likewise.
1278 (usage): Added descriptions for --modules and --grub-probefs.
1279 Handle --modules and --grub-probefs. Save the arguments in MODULES
1280 and GRUB_PROBEFS, respectively.
1281 Auto-detect a filesystem module against GRUBDIR. If the result is
1282 empty and modules are not specified explicitly, abort the
1283 installation. Add the result to MODULES.
1284
1285 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
1286 disk/powerpc/ieee1275/ofdisk.c,
1287 include/grub/powerpc/ieee1275/init.h and
1288 term/powerpc/ieee1275/ofconsole.c.
1289 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
1290 term/ieee1275/ofconsole.c.
1291
1292 * include/grub/powerpc/ieee1275/console.h: Resurrected.
1293
1294 * COPYING: Upgraded to the latest version. Only the address of the
1295 FSF office has changed.
1296
efd6e6d5 12972005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1298
1299 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
1300 kern/ieee1275.c with kern/ieee1275/of.c.
1301
1302 * kern/ieee1275.c: Moved to ...
1303 * kern/ieee1275/of.c: ... here.
1304
8ceafda2 13052005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
1306
1307 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
1308 readablity.
1309
1310 * config.guess: Updated to the latest version from gnulib.
1311 * config.sub: Likewise.
1312 * install.sh: Likewise.
1313 * mkinstalldirs: Likewise.
1314
1315 * include/grub/console.h: Removed. This file is arch-specific. Do
1316 not put this in include/grub.
1317
1318 * include/grub/i386/pc/console.h: Resurrected.
1319
1320 * util/console.c: Include grub/machine/console.h instead of
1321 grub/console.h.
1322 * util/grub-emu.c: Likewise.
1323
267f6cd9 13242005-08-04 Marco Gerards <metgerards@student.han.nl>
1325
1326 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
1327 hardcoded value.
1328
1329 From Vincent Pelletier <subdino2004@yahoo.fr>
1330 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
1331 Redefined to use grub_getwh.
1332 (grub_term): New member named getwh.
1333 (grub_getwh): New prototype.
1334 * kern/term.c (grub_getwh): New function.
1335 * term/i386/pc/console.c (grub_console_getwh): New function.
1336 (grub_console_term): New member `getwh'.
1337 * term/i386/pc/vga.c (grub_vga_getwh): New function.
1338 (grub_vga_term): New member `getwh'.
0b5abe02 1339 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 1340 grub_ssize_t.
1341 (grub_ofconsole_getw): New function.
1342 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
1343 (grub_ofconsole_term): New field named getwh and new initial
1344 value.
1345
3be7266d 13462005-08-03 Hollis Blanchard <hollis@penguinppc.org>
1347
1348 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
1349 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
1350 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
1351 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
1352 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
1353 of <grub/machine/ieee1275.h>.
1354 * commands/ieee1275/reboot.c: Likewise.
1355 * boot/powerpc/ieee1275/ieee1275.c: Move ...
1356 * kern/ieee1275.c: ... to here. All users updated. Change all
1357 parameter structs to use new type `grub_ieee1275_cell_t'.
1358 * term/powerpc/ieee1275/ofconsole.c: Move ...
1359 * term/ieee1275/ofconsole.c: ... to here. All users updated.
1360 * disk/powerpc/ieee1275/ofdisk.c: Move ...
1361 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
1362 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
1363 to return int.
1364 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
1365 Remove unused prototypes. All users updated.
1366 * include/grub/powerpc/ieee1275/console.h: Removed.
1367 * include/grub/powerpc/ieee1275/ieee1275.h: Define
1368 `grub_ieee1275_cell_t'.
1369 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
1370 Cast comparisons with -1 to the correct type.
1371 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
1372 type to match `grub_ieee1275_entry_fn'.
1373
8b5f3938 13742005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
1375
1376 * DISTLIST: Added util/i386/pc/grub-probefs.c.
1377
1378 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
1379 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
1380 partmap/sun.c.
1381 (grub_probefs_SOURCES): New variable.
1382
1383 * util/i386/pc/grub-probefs.c: New file.
1384
1385 * util/i386/pc/grub-setup.c (main): Call
1386 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
1387 grub_hfs_init and grub_jfs_init to initialize the system. Call
1388 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
1389 grub_pc_partition_map_fini to finish the system.
1390
ea409713 13912005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
1392
1393 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
1394 function.
1395 (grub_multiboot_load_elf32): Likewise.
1396 (grub_multiboot_is_elf64): Likewise.
1397 (grub_multiboot_load_elf64): Likewise.
1398 (grub_multiboot_load_elf): Likewise.
1399 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
1400 an ELF32 or ELF64 file.
1401 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
1402
1403 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
1404 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
1405 NULL before calling FS->LABEL.
1406 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
1407 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
1408 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
1409 before calling FS->LABEL.
1410
141a288b 14112005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
1412
1413 * util/i386/pc/grub-install.in (datadir): New variable.
1414 (libdir): Removed.
1415 (pkgdatadir): New variable.
1416 (pkglibdir): Removed.
1417
0d5f8a54 14182005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
1419
1420 * DISTLIST: Added util/i386/pc/grub-install.in.
1421
1422 * util/i386/pc/grub-install.in: New file.
1423
1424 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
1425 (grub_install_SOURCES): Likewise.
1426
1427 * genmk.rb: Added support for scripts.
1428 (Script): New class.
1429 (scripts): New variable.
1430
1431 * Makefile.in (install-local): Install sbin_SCRIPTS by
1432 INSTALL_SCRIPT.
1433 (uninstall): Remove sbin_SCRIPTS.
1434
1435 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
1436 device, try to get a GRUB device by
1437 grub_util_biosdisk_get_grub_dev.
1438 Free DEST_DEV.
1439
1440 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
1441 description for --device-map.
1442
5f968e1e 14432005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
1444
1445 Change the semantics of variable hooks. They now return strings
1446 instead of error values.
1447
1448 * util/i386/pc/grub-setup.c: Include grub/env.h.
1449 (setup): Use grub_device_set_root instead of grub_env_set.
1450
1451 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
1452 grub_env_get instead of grub_device_set_root and
1453 grub_device_get_root, respectively.
1454
1455 * kern/main.c (grub_env_write_root): New function.
1456 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
1457 grub_env_set instead of grub_device_set_root.
1458
1459 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
1460 many variables.
1461 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
1462 rather than calling ENV->WRITE_HOOK afterwards.
1463 (grub_env_get): Return the result of ENV->READ_HOOK rather than
1464 passing a pointer of a pointer.
1465 (grub_register_variable_hook): Change the types of "read_hook" and
1466 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
1467 respectively.
1468 Allocate the default empty string on the heap, because this string
1469 may be freed later.
1470
1471 * kern/device.c: Include grub/env.h.
1472 (grub_device_set_root): Removed.
1473 (grub_device_get_root): Likewise.
1474 (grub_device_open): Use grub_env_get instead of
1475 grub_device_get_root.
1476
1477 * include/grub/env.h (grub_env_read_hook_t): New type.
1478 (grub_env_write_hook_t): Likewise.
1479 (grub_env_var): Change the types of "read_hook" and "write_hook"
1480 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
1481 (grub_register_variable_hook): Likewise.
1482
1483 * include/grub/device.h (grub_device_set_root): Removed.
1484 (grub_device_set_root): Likewise.
1485
1486 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
1487 make sure that DIRNAME terminates with '/', so that
1488 grub_fat_find_dir will fail if PATH is not a directory.
1489
1490 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
1491 from DIRNAME.
1492 Use the qualifier auto for print_files and print_files_long.
1493 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
1494 as a regular file.
1495 Put a newline only if there is no error.
1496 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
1497 used.
1498
896f0afd 14992005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
1500
1501 * kern/partition.c (grub_partition_probe): Initialize PART to
1502 NULL. Otherwise, when no partition map is registered, this returns
1503 a garbage.
1504
b28b81b2 15052005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
1506
1507 * partmap/apple.c (apple_partition_map_iterate): Check if POS
1508 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
1509 valid.
1510
5f3607e0 15112005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
1512
1513 * commands/ls.c (grub_ls_list_disks): Print the filesystem
1514 information on each device, if it does not have partitions. Print
1515 "Device" instead of "Disk", because this function is not specific
1516 to disk devices.
1517
1518 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
1519 static to ensure that it is put on the memory rather than a
1520 register.
1521
502c87e8 15222005-07-17 Yoshinori Okuji <okuji@enbug.org>
1523
1524 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
1525 (grub_cat_init): Likewise.
1526 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
1527 (options): Likewise.
1528 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
1529 (grub_configfile_init): Likewise.
1530 * font/manager.c (GRUB_MOD_INIT): Likewise.
1531 * commands/help.c (GRUB_MOD_INIT): Likewise.
1532 (grub_help_init): Likewise.
1533 * normal/command.c (grub_command_init): Likewise.
1534 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
1535 * disk/loopback.c (grub_loop_init): Likewise.
1536 (GRUB_MOD_INIT): Likewise.
1537 * commands/ls.c (grub_ls_init): Likewise.
1538 (GRUB_MOD_INIT): Likewise.
1539 (options): Likewise.
1540 * commands/boot.c (grub_boot_init): Likewise.
1541 (GRUB_MOD_INIT): Likewise.
1542 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
1543 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
1544 (GRUB_MOD_INIT): Likewise.
1545 * commands/cmp.c (grub_cmp_init): Likewise.
1546 (GRUB_MOD_INIT): Likewise.
1547
1548 * normal/arg.c: Use <> instead of "" to include header files.
1549 (SHORT_ARG_HELP): New macro.
1550 (SHORT_ARG_USAGE): Likewise.
1551 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
1552 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
1553 descriptions.
1554 (find_short): Check if C is 'h' or 'u' explicitly.
1555 (grub_arg_show_help): Use space characters instead of tabs. Treat
1556 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
1557 are shown with --help and --usage only if they are not used for
1558 the command itself.
1559 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
1560 'h' and 'u'.
1561
1562 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
1563 const into "longarg". Change the type of "shortarg" to int.
1564
f806d18e 15652005-07-17 Yoshinori Okuji <okuji@enbug.org>
1566
1567 * boot/i386/pc/boot.S (boot_drive_check): New label.
1568
1569 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
1570 macro.
1571
1572 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
1573 which do not pass a boot drive correctly. Copied from GRUB Legacy.
1574
e293232b 15752005-07-17 Yoshinori Okuji <okuji@enbug.org>
1576
1577 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
1578 When turning off Gate A20, skip the check and return immediately,
1579 because this is not fatal usually.
1580
ebedfd00 15812005-07-17 Yoshinori Okuji <okuji@enbug.org>
1582
1583 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
1584 be 0x7C00 instead of 0x8000.
1585
1586 * boot/i386/pc/pxeboot.S: Rewritten.
1587
1588 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
1589 EXT_C.
1590 (gate_a20_check_state): Read a byte from 0x108000. Invert the
1591 result.
1592
654fc59f 15932005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
1594
1595 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
1596 robustness. This routine now supports a BIOS call and System
1597 Control Port A to modify the gate A20.
1598
1599 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
1600 Increased to 0x440.
1601
09f9923f 16022005-07-12 Hollis Blanchard <hollis@penguinppc.org>
1603
1604 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
1605 device path and resulting ihandle.
1606 (grub_ofdisk_close): dprintf the ihandle being closed.
1607 (grub_ofdisk_read): dprintf function parameters.
1608 * kern/mm.c (grub_mm_init_region): Likewise.
1609 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
1610 (grub_linux_boot): dprintf the Linux entry point, initrd address and
1611 size, and boot arguments.
1612 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
1613 before loading into memory.
1614 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
1615 before loading into memory.
1616
7ef504d8 16172005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
1618
1619 * kern/mm.c: Added much documentation.
1620 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
1621 8, set to 5 instead of 8.
1622
e0f050c2 16232005-07-10 Yoshinori Okuji <okuji@enbug.org>
1624
1625 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
1626
1627 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
1628 (grub_mkdevicemap_SOURCES): New variable.
1629
1630 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
1631 lib/device.c of GRUB Legacy.
1632
7224189a 16332005-07-10 Yoshinori Okuji <okuji@enbug.org>
1634
1635 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
1636 instead of PATH is NULL.
1637
68c864eb 16382005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
1639
1640 * commands/cmp.c (BUFFER_SIZE): New macro.
1641 (grub_cmd_cmp): Close the right file at the right time. Compare
1642 only data just read. Don't report files of different size as
1643 identical. Dynamically allocate buffers. Move variable
1644 declarations at the beginning of function.
1645
e6f3e614 16462005-07-09 Yoshinori Okuji <okuji@enbug.org>
1647
1648 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
1649 reverse.
1650
f8f1559a 16512004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
1652
1653 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
1654 when backspace is pressed at beginning of line.
1655
39c9d41d 16562005-07-03 Yoshinori Okuji <okuji@enbug.org>
1657
1658 * DISTLIST: Added genfslist.sh.
1659
1660 * normal/main.c (fs_module_list): New variable.
1661 (autoload_fs_module): New function.
1662 (read_fs_list): Likewise.
1663 (grub_normal_execute): Call read_fs_list.
1664
1665 * kern/fs.c (grub_fs_autoload_hook): New variable.
1666 (grub_fs_probe): Added support for auto-loading.
1667
1668 * include/grub/normal.h (struct grub_fs_module_list): New struct.
1669 (grub_fs_module_list_t): New type.
1670
1671 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
1672 (grub_fs_autoload_hook): New prototype.
1673
1674 * genfslist.sh: New file.
1675
1676 * genmk.rb: Added a rule to generate a filesystem list.
1677
121c1d83 16782005-06-30 Marco Gerards <metgerards@student.han.nl>
1679
1680 * configure.ac: Fix the test for cross-compiling.
1681
1682 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
1683 define GRUB_UTIL anymore.
1684
1685 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
1686 so this function works on other systems than just big endian.
1687 (load_modules): Likewise.
1688 (add_segments): Likewise.
1689
e75d76e1 16902005-06-23 Hollis Blanchard <hollis@penguinppc.org>
1691
1692 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
1693 contains `l' modifier, get a long from va_arg().
1694
50b5a0a7 16952005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
1696
1697 * kern/mm.c (grub_free): If the next free block which is being
1698 merged is the first free block, set the first block to the block
1699 being freed.
1700 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
1701
89371b20 17022005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1703
1704 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
1705 `grub_ieee1275_chosen'.
1706
168d6e58 17072005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1708
1709 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
1710 (grub_ieee1275_chosen): New variable.
1711 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
1712 `chosen'.
1713 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
1714 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
1715 Rename first argument to `phandle' for consistency.
1716 (grub_ieee1275_get_property_length): Likewise.
1717 (grub_ieee1275_next_property): Likewise. Change type of first argument
1718 to grub_ieee1275_phandle_t.
1719 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
1720 Move export next to declaration.
1721 (grub_ieee1275_chosen): New variable.
1722 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
1723 Correct cosmetic typo.
1724 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
1725 `grub_ieee1275_chosen'.
1726 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
1727 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
1728 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
1729 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
1730 `grub_ieee1275_chosen'.
1731
ca5baa3f 17322005-05-10 Hollis Blanchard <hollis@penguinppc.org>
1733
1734 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
1735 /chosen/bootargs.
1736 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
1737 /chosen/bootargs as "variable=value" pairs.
1738
708b345f 17392005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
1740
1741 * include/grub/misc.h (grub_dprintf): New macro.
1742 (grub_real_dprintf): New prototype.
1743 (grub_strword): Likewise.
1744 (grub_iswordseparator): Likewise.
1745 * kern/misc.c (grub_real_dprintf): New function.
1746 (grub_strword): Likewise.
1747 (grub_iswordseparator): Likewise.
1748
f4c5e67c 17492005-04-30 Hollis Blanchard <hollis@penguinppc.org>
1750
1751 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
1752 (roundup): Remove macro.
1753 (grub_ieee1275_flags): Make static.
1754 (grub_ieee1275_realmode): Remove.
1755 (grub_ieee1275_test_flag): New function.
1756 (grub_ieee1275_set_flag): Likewise.
1757 (find_options): Rename to `grub_ieee1275_find_options'; update
1758 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
1759 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
1760 (cmain): New prototype.
1761 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
1762 `grub_ieee1275_flags' directly.
1763 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
1764 machine/biosdisk.h.
1765 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
1766 Don't include grub/machine/init.h.
1767 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
1768 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
1769 Remove prototype.
1770 (grub_ieee1275_realmode): Likewise.
1771 (grub_ieee1275_flag): New enum.
1772 (grub_ieee1275_test_flag): New prototype.
1773 (grub_ieee1275_set_flag): New prototype.
1774 * include/grub/powerpc/ieee1275/init.h: Remove file.
1775 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
1776 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
1777 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
1778 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
1779 comment.
1780 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
1781 `grub_ieee1275_test_flag'.
1782 (grub_ieee1275_encode_devname): Likewise.
1783
ed16607e 17842005-04-21 Hollis Blanchard <hollis@penguinppc.org>
1785
1786 * include/grub/powerpc/ieee1275/ieee1275.h
1787 (grub_ieee1275_encode_devname): New prototype.
1788 (grub_ieee1275_get_filename): Likewise.
1789 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
1790 function.
1791 (grub_set_prefix): Likewise.
1792 (grub_machine_init): Call grub_set_prefix.
1793 * kern/powerpc/ieee1275/openfw.c: Fix typos.
1794 (grub_parse_type): New enum.
1795 (grub_ieee1275_get_devargs): New function.
1796 (grub_ieee1275_get_devname): Likewise.
1797 (grub_ieee1275_parse_args): Likewise.
1798 (grub_ieee1275_get_filename): Likewise.
1799 (grub_ieee1275_encode_devname): Likewise.
1800
be369920 18012005-03-30 Marco Gerards <metgerards@student.han.nl>
1802
1803 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
1804 `grub_loader_unset'.
1805
a5ce3a4a 18062005-03-26 Hollis Blanchard <hollis@penguinppc.org>
1807
1808 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
1809 instead of grub_ieee1275_interpret.
1810 (grub_halt_init): New function.
1811 (grub_halt_fini): Likewise.
1812 (GRUB_MOD_INIT): Correct message grammar.
1813 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
1814 instead of grub_ieee1275_interpret.
1815 (grub_reboot_init): New function.
1816 (grub_reboot_fini): Likewise.
1817 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
1818 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
1819 util/i386/pc/misc.c with commands/ieee1275/halt.c,
1820 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
1821 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
1822 function.
1823 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
1824 Add prototype.
1825 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
1826 prototype.
1827 (grub_halt): Likewise.
1828 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
1829 (cmain): Remove __attribute__((unused)).
1830 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
1831 (grub_heap_len): Likewise.
1832 (grub_machine_fini): New function.
1833 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
1834 (grub_halt): Likewise.
1835 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
1836 function.
1837 * util/powerpc/ieee1275/misc.c: New file.
1838
0058f771 18392005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
1840
1841 * DISTLIST: New file.
1842 * gendistlist.sh: Likewise.
1843
1844 * Makefile.in (COMMON_DISTFILES): Removed.
1845 (BOOT_DISTFILES): Likewise.
1846 (CONF_DISTFILES): Likewise.
1847 (DISK_DISTFILES): Likewise.
1848 (FS_DISTFILES): Likewise.
1849 (INCLUDE_DISTFILES): Likewise.
1850 (KERN_DISTFILES): Likewise.
1851 (LOADER_DISTFILES): Likewise.
1852 (TERM_DISTFILES): Likewise.
1853 (UTIL_DISTFILES): Likewise.
1854 (DISTFILES): Likewise.
1855 (uninstall): Uninstall files in $(pkgdata_DATA).
1856 (DISTLIST): New target.
1857 (distdir): Use the contents of the file DISTLIST to get a list of
1858 distributed files.
1859
46b3b8a5 18602005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
1861
1862 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
1863 descriptor. This is ported from GRUB Legacy.
1864
1865 * gencmdlist.sh: Added an extra semicolon to make it work with
1866 old sed versions. Reported by Robert Bihlmeyer
1867 <robbe@orcus.priv.at>.
1868
5822ff87 18692005-03-08 Yoshinori Okuji <okuji@enbug.org>
1870
1871 Automatic loading of commands is supported.
1872
1873 * normal/main.c (read_command_list): New function.
1874 (grub_normal_execute): Call read_command_list.
1875
1876 * normal/command.c (grub_register_command): Return zero or CMD.
1877 Allocate CMD->NAME from the heap.
1878 Initialize CMD->MODULE_NAME to zero.
1879 Find the same name as well. If the same command is found and it is
1880 a dummy command, overwrite members. If it is not a dummy command,
1881 return zero.
1882 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
1883 (grub_command_find): If a dummy command is found, load a module
1884 and retry to find a command only once.
1885
1886 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
1887 make sure that each command is loaded.
1888
1889 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
1890 macro.
1891 (struct grub_command): Remove const from the member `name'.
1892 Add a new member `module_name'.
1893 (grub_register_command): Return grub_command_t.
1894
1895 * commands/help.c (grub_cmd_help): Call grub_command_find to make
1896 sure that each command is loaded.
1897
1898 * genmk.rb (PModule::rule): Specify a module name without the
1899 suffix ".mod" to gencmdlist.sh.
1900
7b1f4b57 19012005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
1902
1903 * gencmdlist.sh: New file.
1904
1905 * genmk.rb (PModule::rule): Generate a rule for a command list.
1906 Clean command.lst.
1907 Generate command.lst from $(COMMANDFILES).
1908
1909 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
1910 (DATA): Added $(pkgdata_DATA).
1911 (install-local): Install files in $(pkgdata_DATA).
1912
062aaf39 19132005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
1914
1915 * term/i386/pc/vga.c (debug_command): Removed.
1916 (GRUB_MOD_INIT): Do not register the command "debug".
1917
1918 From Hollis Blanchard:
1919 * commands/configfile.c: New file.
1920 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
1921 commands/configfile.c.
1922 (pkgdata_MODULES): Added configfile.mod.
1923 (configfile_mod_SOURCES): New variable.
1924 (configfile_mod_CFLAGS): Likewise.
1925 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
1926 commands/configfile.c.
1927 (pkgdata_MODULES): Added configfile.mod.
1928 (configfile_mod_SOURCES): New variable.
1929 (configfile_mod_CFLAGS): Likewise.
1930 * util/grub-emu.c (main): Call grub_configfile_init and
1931 grub_configfile_fini.
1932 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
1933 prototype.
1934 [GRUB_UTIL] (grub_configfile_fini): Likewise.
1935
cee01aa6 19362005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
1937
1938 * normal/arg.c (grub_arg_show_help): Do not show the bug report
1939 address.
1940
1941 * commands/help.c (grub_cmd_help): Do not print newlines after
1942 the last command in print_command_help.
1943
93f3a1d8 19442005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
1945
1946 * commands/default.h: New file.
1947 * commands/timeout.h: Likewise.
1948 * normal/context.c: Likewise.
1949
1950 * util/misc.c: Do not include sys/times.h.
1951 Include sys/time.h and grub/machine/time.h.
1952 (grub_get_rtc): Rewritten with gettimeofday.
1953
1954 * util/grub-emu.c (main): Call grub_default_init and
1955 grub_timeout_init before grub_normal_init, and call
1956 grub_timeout_fini and grub_default_fini after grub_main.
1957
1958 * util/console.c (grub_ncurses_checkkey): Return the read
1959 character or -1.
1960
1961 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
1962 timeouts.
1963
1964 * normal/main.c (read_config_file): Push MENU. If this fails,
1965 print an error and wait for a user input.
1966 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
1967 If a menu is empty or an error occurs, pop MENU.
1968 (grub_normal_execute): Pop and free MENU after grub_menu_run
1969 returns.
1970
1971 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
1972
1973 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
1974 include time.h.
1975 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
1976 without GRUB_UTIL.
1977 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
1978 time.h.
1979 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
1980 without GRUB_UTIL.
1981
1982 * include/grub/normal.h (struct grub_menu_list): New struct.
1983 (grub_menu_list_t): New type.
1984 (struct grub_context): New struct.
1985 (grub_context_t): New type.
1986 (grub_register_command): Got rid of EXPORT_FUNC.
1987 (grub_unregister_command): Likewise.
1988 (grub_context_get): New prototype.
1989 (grub_context_get_current_menu): Likewise.
1990 (grub_context_push_menu): Likewise.
1991 (grub_context_pop_menu): Likewise.
1992 [GRUB_UTIL] (grub_default_init): Likewise.
1993 [GRUB_UTIL] (grub_default_fini): Likewise.
1994 [GRUB_UTIL] (grub_timeout_init): Likewise.
1995 [GRUB_UTIL] (grub_timeout_fini): Likewise.
1996
1997 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
1998 commands/timeout.c and normal/context.c.
1999 (pkgdata_MODULES): Added default.mod and timeout.mod.
2000 (normal_mod_SOURCES): Added normal/context.c.
2001 (default_mod_SOURCES): New variable.
2002 (default_mod_CFLAGS): Likewise.
2003 (timeout_mod_SOURCES): Likewise.
2004 (timeout_mod_CFLAGS): Likewise.
2005 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
2006 conf/i386-pc.rmk.
2007 (pkgdata_MODULES): Added default.mod and timeout.mod.
2008 (normal_mod_SOURCES): Added normal/context.c.
2009 (default_mod_SOURCES): New variable.
2010 (default_mod_CFLAGS): Likewise.
2011 (timeout_mod_SOURCES): Likewise.
2012 (timeout_mod_CFLAGS): Likewise.
2013
2014 * Makefile.in (all-local): Added $(MKFILES).
2015
4ed2e1dd 20162005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
2017
2018 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
2019 (grub_emu_SOURCES): Likewise.
2020 (pkgdata_MODULES): Add `sun.mod'.
2021 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
2022 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2023 `partmap/sun.c'.
2024 (pkgdata_MODULES): Add `sun.mod'.
2025 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
2026 * include/grub/partition.h (grub_sun_partition_map_init): New
2027 prototype.
2028 (grub_sun_partition_map_fini): Likewise.
2029 * partmap/sun.c: New file.
2030 * util/grub-emu.c (main): Initialize and de-initialize the sun
2031 partitionmap support.
2032
4d4e372e 20332005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
2034
2035 This implements an Emacs-like menu entry editor.
2036
2037 * normal/menu_entry.c: New file.
2038
2039 * util/console.c (grub_ncurses_putchar): Translate some Unicode
2040 characters to ASCII.
2041 (saved_char): New variable.
2042 (grub_ncurses_checkkey): Rewritten completely.
2043 (grub_ncurses_getkey): Likewise.
2044 (grub_ncurses_init): Call raw instead of cbreak.
2045
2046 * normal/menu.c (print_entry): Do not put a space.
2047 (init_page): Renamed to ...
2048 (grub_menu_init_page): ... this. All callers changed.
2049 (edit_menu_entry): Removed.
2050 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
2051
2052 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
2053
2054 * kern/misc.c (grub_vprintf): Call grub_refresh.
2055
2056 * normal/menu.c (DISP_LEFT): Renamed to ...
2057 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
2058 * normal/menu.c (DISP_UP): Renamed to ...
2059 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
2060 * normal/menu.c (DISP_RIGHT): Renamed to ...
2061 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
2062 * normal/menu.c (DISP_DOWN): Renamed to ...
2063 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
2064 * normal/menu.c (DISP_HLINE): Renamed to ...
2065 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
2066 * normal/menu.c (DISP_VLINE): Renamed to ...
2067 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
2068 * normal/menu.c (DISP_UL): Renamed to ...
2069 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
2070 * normal/menu.c (DISP_UR): Renamed to ...
2071 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
2072 * normal/menu.c (DISP_LL): Renamed to ...
2073 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
2074 * normal/menu.c (DISP_LR): Renamed to ...
2075 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
2076 * normal/menu.c (TERM_WIDTH): Renamed to ...
2077 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
2078 * normal/menu.c (TERM_HEIGHT): Renamed to ...
2079 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
2080 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
2081 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
2082 * normal/menu.c (TERM_MARGIN): Renamed to ...
2083 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
2084 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
2085 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
2086 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
2087 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
2088 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
2089 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
2090 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
2091 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
2092 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
2093 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
2094 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
2095 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
2096 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
2097 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
2098 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
2099 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
2100 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
2101 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
2102 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
2103 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
2104 All callers changed.
2105
2106 * include/grub/normal.h: New prototype.
2107
2108 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
2109 normal/menu_entry.c.
2110 (normal_mod_SOURCES): Likewise.
2111 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2112 (normal_mod_SOURCES): Likewise.
2113
e6b92c8a 21142005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
2115
2116 * include/grub/normal.h (grub_halt_init): New prototype.
2117 (grub_halt_fini): Likewise.
2118 (grub_reboot_init): Likewise.
2119 (grub_reboot_fini): Likewise.
2120
2121 * util/grub-emu.c: Include signal.h.
2122 (main_env): New global variable.
2123 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
2124 catch C-c.
2125 (grub_machine_fini): New function.
2126 (main): Call grub_halt_init and grub_reboot_init before
2127 grub_main, and grub_reboot_fini and grub_halt_fini after it.
2128 Call setjmp with MAIN_ENV to go back afterwards.
2129 Call grub_machine_fini right before return.
2130
2131 * include/grub/util/misc.h: Include setjmp.h.
2132 (main_env): New prototype.
2133
2134 * include/grub/kernel.h (grub_machine_fini): New prototype.
2135 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
2136 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
2137
2138 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
2139 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
2140 * term/i386/pc/console.c (grub_console_fini): Likewise.
2141
2142 * util/i386/pc/misc.c: New file.
2143
2144 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
2145 util/i386/pc/misc.c, commands/i386/pc/halt.c and
2146 commands/i386/pc/reboot.c.
2147
c642636f 21482005-02-14 Guillem Jover <guillem@hadrons.org>
2149
2150 * include/grub/dl.h (grub_dl_check_header): New prototype.
2151 (grub_arch_dl_check_header): Change return type to grub_err_t,
2152 remove size parameter and export function. Update all callers.
2153 * kern/dl.c (grub_dl_check_header): New function.
2154 (grub_dl_load_core): Use `grub_dl_check_header' instead of
2155 `grub_arch_dl_check_header'. Check ELF type. Check if sections
2156 are inside the core.
2157 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
2158 independent ELF header checks.
2159 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
2160 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
2161 `grub_dl_check_header' instead of explicit checks. Check for the
2162 ELF type.
2163 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
2164 `grub_dl_check_header' instead of explicit checks. Remove arch
2165 specific ELF header checks.
2166
e6b92c8a 2167 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
2168 argument SIZE.
2169
5eabe94b 21702005-02-13 Hollis Blanchard <hollis@penguinppc.org>
2171
2172 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
2173 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
2174
1b14a681 21752005-02-12 Hollis Blanchard <hollis@penguinppc.org>
2176
2177 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
2178 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
2179 (part_map_iterate): Clear `grub_errno' and return 0 if
2180 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
2181 * partmap/amiga.c (amiga_partition_map_iterate): Return
2182 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
2183 * partmap/apple.c (apple_partition_map_iterate): Likewise.
2184
aca108aa 21852005-02-01 Guillem Jover <guillem@hadrons.org>
2186
2187 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
2188 help info.
2189
c9f9c556 21902005-01-31 Marco Gerards <metgerards@student.han.nl>
2191
2192 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
2193 Removed prototype.
2194 (grub_rescue_cmd_linux): New prototype.
2195 (grub_rescue_cmd_initrd): Likewise.
2196 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
2197 `bi_rec'.
2198 (grub_linux_release_mem): Release the memory for the initrd.
2199 (grub_load_linux): Renamed from this...
2200 (grub_rescue_cmd_linux): ...To this. Changed all callers.
2201 Changed `entry' not to be static. Loop over memory regions to
2202 find another one when the default fails.
2203 (grub_rescue_cmd_initrd): New function.
2204 (grub_linux_init): Remove function.
2205 (grub_linux_fini): Likewise.
2206 (GRUB_MOD_INIT): Register `initrd'.
2207 (GRUB_MOD_FINI): Unregister `initrd'.
2208 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
2209 Function removed.
2210 (grub_linux_normal_fini): Likewise.
2211 (GRUB_MOD_INIT): Register `initrd'.
2212 (GRUB_MOD_FINI): Unregister `initrd'.
2213
990cf3aa 22142005-01-31 Marco Gerards <metgerards@student.han.nl>
2215
2216 * commands/help.c: New file.
2217 * normal/arg.c (show_help): Renamed to...
2218 (grub_arg_show_help): ... this.
2219 * commands/i386/pc/halt.c: New file.
2220 * commands/i386/pc/reboot.c: Likewise.
2221 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
2222 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
2223 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
2224 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
2225 variables.
2226 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2227 `commands/help.c'.
2228 (pkgdata_MODULES): Add `help.mod'.
2229 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
2230 * grub/i386/pc/init.h (grub_reboot): New prototype.
2231 (grub_halt): Likewise.
2232 * include/grub/normal.h (grub_arg_show_help): New prototype.
2233 (grub_help_init): Likewise.
2234 (grub_help_fini): Likewise.
2235 * util/grub-emu.c (main): Initialize and deinitialize the help
2236 command.
2237
2238 * normal/cmdline.c (grub_cmdline_get): Doc fix.
2239
2240 * normal/command.c (grub_command_init): Fixed the description of
2241 the `set' and `unset' commands.
2242
22432005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 2244
2245 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
2246 function.
2247 * commands/ieee1275/halt.c: New file.
2248 * commands/ieee1275/reboot.c: Likewise.
2249 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
2250 `__attribute__ ((unused))'. Some GCS related fixed.
2251 (grub_suspend_init) [GRUB_UTIL]: Function removed.
2252 (grub_suspend_fini): Likewise.
2253 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
2254 and `halt.mod'.
2255 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
2256 (halt_mod_CFLAGS): New variables.
2257 * include/grub/powerpc/ieee1275/ieee1275.h
2258 (grub_ieee1275_interpret): New prototype.
2259
1ab09cc7 22602005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
2261
2262 * include/grub/misc.h (memmove): New prototype.
2263 (memcpy): Likewise.
2264
8b8cbdb2 22652005-01-22 Hollis Blanchard <hollis@penguinppc.org>
2266
2267 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
2268 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
2269
e3741a27 22702005-01-22 Marco Gerards <metgerards@student.han.nl>
2271
2272 * kern/misc.c (grub_strndup): Function rewritten.
2273
776bd780 22742005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
2275
2276 * normal/menu.c (TERM_WIDTH): Macro redefined.
2277 (TERM_TOP_BORDER_Y): Likewise.
2278 (draw_border): Replaced while-loop by a for-loop. Make the number
2279 of lines consistent with the number of lines displayed in
2280 print_entries. Added a margin below the rectangle.
2281 (print_entry): Make the entry fit in the rectangle.
2282 (print_entries): Display the scroll arrows next to the right
2283 border.
2284
78026bce 22852005-01-21 Marco Gerards <metgerards@student.han.nl>
2286
2287 * fs/minix.c (grub_minix_find_file): Reserve more space for
2288 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
2289 `grub_strncpy' to copy `path' into it.
2290
67bbaf0f 22912005-01-21 Marco Gerards <metgerards@student.han.nl>
2292
2293 Add the loopback device, a device via which files can be accessed
2294 as devices.
2295
2296 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
2297 (pkgdata_MODULES): Add loopback.mod.
2298 (loopback_mod_SOURCES): New variable.
2299 (loopback_mod_CFLAGS): Likewise.
2300 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2301 `disk/loopback.c'.
2302 (pkgdata_MODULES): Add loopback.mod.
2303 (loopback_mod_SOURCES): New variable.
2304 (loopback_mod_CFLAGS): Likewise.
2305 * disk/loopback.c: new file.
2306 * include/grub/normal.h (grub_loop_init): New prototype.
2307 (grub_loop_fini): New prototype.
2308 * util/grub-emu.c (main): Initialize and de-initialize loopback
2309 support.
2310 * include/grub/disk.h (grub_disk_dev_id): Add
2311 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
2312
6f1c18bd 23132005-01-20 Hollis Blanchard <hollis@penguinppc.org>
2314
2315 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
2316 function.
2317 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
2318 (suspend_mod_SOURCES): New variable.
2319 (suspend_mod_CFLAGS): Likewise.
2320 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
2321 New prototype.
2322 * commands/ieee1275/suspend.c: New file.
2323
b38551da 23242005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
2325
2326 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
2327 ((unused))' to `__attribute__ ((used))'.
2328 (GRUB_MOD_FINI): Likewise.
2329 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
2330 * genmk.rb (PModule): Assign space to common symbols when linking
2331 modules.
2332
777aff39 23332005-01-20 Marco Gerards <metgerards@student.han.nl>
2334
2335 * include/grub/mm.h (grub_mm_init_region): Change the type of the
2336 `unsigned' arguments to `grub_size_t'.
2337 (grub_malloc): Likewise.
2338 (grub_realloc): Likewise.
2339 (grub_memalign): Likewise.
2340 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
2341 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
2342 * util/misc.c (grub_malloc): Likewise.
2343 (grub_realloc): Likewise.
2344 * kern/mm.c (get_header_from_pointer): Change the casts to
2345 `unsigned' into a cast to `grub_size_t'.
2346
2347 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
2348 point to `currnode' when `currnode' is changed.
2349
2350 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
2351 Schottelius <nico-linux@schottelius.org>.
2352
d0ff18e1 23532005-01-09 Hollis Blanchard <hollis@penguinppc.org>
2354
2355 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
2356 (note_path): Remove variable.
2357 (GRUB_IEEE1275_NOTE_NAME): New macro.
2358 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
2359 (grub_ieee1275_note_hdr): New structure.
2360 (grub_ieee1275_note_desc): Likewise.
2361 (grub_ieee1275_note): Likewise.
2362 (load_note): Remove `dir' argument. All callers updated. Remove
2363 `note_img' and `path'. Do not load a file from `note_path'.
2364 Initialize a struct grub_ieee1275_note and write that to `out'.
2365 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
2366
4ca7004c 23672005-01-05 Marco Gerards <metgerards@student.han.nl>
2368
2369 * util/misc.c (grub_util_read_image): Revert last change. It
2370 called `grub_util_read_at', which seeks from the beginning of the
2371 file.
2372
0b412211 23732005-01-04 Hollis Blanchard <hollis@penguinppc.org>
2374
2375 * TODO: Add note about endianness in grub-mkimage.
2376 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
2377 section.
2378 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
2379 (grub_mkimage_SOURCES): New target.
2380 * include/grub/kernel.h (grub_start_addr): Remove variable.
2381 (grub_end_addr): Likewise.
2382 (grub_total_module_size): Likewise.
2383 (grub_kernel_image_size): Likewise.
2384 (GRUB_MODULE_MAGIC): New constant.
2385 (grub_module_info): New structure.
2386 (grub_arch_modules_addr): New prototype.
2387 (grub_get_end_addr): Remove prototype.
2388 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
2389 * include/grub/powerpc/ieee1275/kernel.h: New file.
2390 * include/grub/util/misc.h (grub_util_get_fp_size): New
2391 prototype.
2392 (grub_util_read_at): Likewise.
2393 (grub_util_write_image_at): Likewise.
2394 * kern/main.c (grub_get_end_addr): Remove function.
2395 (grub_load_modules): Call grub_arch_modules_addr instead of using
2396 grub_end_addr. Look for a grub_module_info struct in memory. Use
2397 the grub_module_info fields instead of calling grub_get_end_addr
2398 as loop conditions. Move grub_add_unused_region code here.
2399 (grub_add_unused_region): Remove function.
2400 * kern/i386/pc/init.c: Include grub/cache.h.
2401 (grub_machine_init): Remove call to grub_get_end_addr. Remove
2402 one call to add_mem_region.
2403 (grub_arch_modules_addr): New function.
2404 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
2405 (grub_total_module_size): Likewise.
2406 Include grub/machine/kernel.h.
2407 (grub_arch_modules_addr): New function.
2408 * util/grub-emu.c (grub_end_addr): Remove variable.
2409 (grub_total_module_size): Likewise.
2410 (grub_arch_modules_addr): New function.
2411 * util/misc.c: Include unistd.h.
2412 (grub_util_get_fp_size): New function.
2413 (grub_util_read_at): Likewise.
2414 (grub_util_write_image_at): Likewise.
2415 (grub_util_read_image): Call grub_util_read_at.
2416 (grub_util_write_image): Call grub_util_write_image_at.
2417 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
2418 additional memory in kernel_img for a struct grub_module_info.
2419 Fill in that grub_module_info.
2420 * util/powerpc/ieee1275/grub-mkimage.c: New file.
2421
458786f8 24222005-01-03 Hollis Blanchard <hollis@penguinppc.org>
2423
2424 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
2425 New function.
2426 * include/grub/powerpc/ieee1275/ieee1275.h
2427 (grub_ieee1275_milliseconds): New prototype.
2428 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
2429 Change to 1000.
2430 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
2431 grub_ieee1275_milliseconds.
2432
ac507d1b 24332005-01-03 Hollis Blanchard <hollis@penguinppc.org>
2434
2435 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
2436 variable.
2437 (find_options): New function.
2438 (cmain): Call find_options.
2439 * include/grub/powerpc/ieee1275/ieee1275.h
2440 (grub_ieee1275_realmode): New extern variable.
2441 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
2442 grub_map if grub_ieee1275_realmode is false.
2443
6b8fd1c4 24442004-12-29 Marco Gerards <metgerards@student.han.nl>
2445
2446 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
2447 lines are inserted and make it work like readline. Reported by
2448 Vincent Pelletier <subdino2004@yahoo.fr>.
2449
8514a1e0 24502004-12-28 Marco Gerards <metgerards@student.han.nl>
2451
2452 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
2453
2454 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
2455 `kern/powerpc/cache.S'.
2456
924b6140 24572004-12-27 Marco Gerards <metgerards@student.han.nl>
2458
2459 * genmk.rb: Handle the `Program' class in the main loop. Written
2460 by Johan Rydberg <jrydberg@gnu.org>.
2461 (Program): New class.
2462 (programs): New variable.
2463 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
2464 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
2465 instead of "grub/kernel.h". Include <grub/machine/init.h>.
2466 (help_arch): Function removed.
2467 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
2468 `powerpc/libgcc.h' and `loader.h'.
2469 (pkgdata_PROGRAMS): New variable.
2470 (sbin_UTILITIES): Variable removed.
2471 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
2472 (grubof_SOURCES): Variable re-defined so it only includes the
2473 core functionality.
2474 (grubof_CFLAGS): Remove `-DGRUBOF'.
2475 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
2476 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
2477 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
2478 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
2479 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
2480 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
2481 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
2482 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
2483 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
2484 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
2485 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
2486 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
2487 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
2488 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
2489 (pc_mod_CFLAGS): New variables.
2490 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
2491 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
2492 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
2493 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
2494 Moved from here...
2495 * include/grub/i386/pc/init.h (grub_os_area_addr)
2496 (rub_os_area_size): ... to here.
2497 * include/grub/powerpc/ieee1275/ieee1275.h
2498 (grub_ieee1275_entry_fn): Export symbol.
2499 * include/grub/powerpc/ieee1275/init.h: New file.
2500 * include/grub/powerpc/libgcc.h: Likewise.
2501 * include/grub/cache.h: Likewise.
2502 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
2503 <hollis@penguinppc.org>.
2504 * kern/dl.c: Include <grub/cache.h>.
2505 (grub_dl_flush_cache): New function.
2506 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
2507 for this module.
2508 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
2509 (grub_console_init): Removed prototypes.
2510 (grub_machine_init): Don't initialize the modules anymore.
2511 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
2512 static.
2513 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
2514 Macro undef removed.
2515 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
2516 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
2517 relocation `R_PPC_REL32'. Return an error when the relocation is
2518 unknown.
2519 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
2520 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
2521 * util/misc.c (grub_arch_sync_caches): Likewise.
2522
e4b47e0c 25232004-12-19 Marco Gerards <metgerards@student.han.nl>
2524
2525 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
2526 `symlist.c', add `grubof_symlist.c'.
2527 (symlist.c): Variable removed.
2528 (grubof_HEADERS): Variable added.
2529 (grubof_symlist.c): New target.
2530 (kernel_syms.lst): Use `grubof_HEADERS' instead of
2531 `kernel_img_HEADERS'.
2532 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
2533 * kern/powerpc/dl.c: New file.
2534 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
2535 Function removed.
2536 (grub_arch_dl_relocate_symbols): Likewise.
2537 (grub_register_exported_symbols): Likewise.
2538
4ceb3636 25392004-12-13 Marco Gerards <metgerards@student.han.nl>
2540
2541 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
2542 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
2543 to fail instead. Reported by Vincent Pelletier
2544 <subdino2004@yahoo.fr>.
2545
2546 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
2547 it is not allocated. Reported by Vincent Pelletier
2548 <subdino2004@yahoo.fr>.
2549
2550 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
2551 output so the output looks better.
2552
3f1578fe 25532004-12-04 Marco Gerards <metgerards@student.han.nl>
2554
2555 Modulize the partition map support and add support for the amiga
2556 partition map.
2557
2558 * commands/ls.c: Include <grub/partition.h> instead of
2559 <grub/machine/partition.h>.
2560 * kern/disk.c: Likewise.
2561 * kern/rescue.c: Likewise.
2562 * loader/i386/pc/chainloader.c: Likewise.
2563 * normal/cmdline.c: Likewise.
2564 * kern/powerpc/ieee1275/init.c: Likewise.
2565 (grub_machine_init): Call `grub_pc_partition_map_init',
2566 `grub_amiga_partition_map_init' and
2567 `grub_apple_partition_map_init'.
2568 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
2569 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
2570 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
2571 `partition.h' and `pc_partition.h'.
2572 (grub_setup_SOURCES): Remove
2573 `disk/i386/pc/partition.c'. Add `kern/partition.c',
2574 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
2575 (grub_emu_SOURCES): Likewise.
2576 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
2577 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
2578 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
2579 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
2580 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
2581 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
2582 (grubof_SOURCES): Likewise.
2583 * disk/i386/pc/partition.c: File removed.
2584 * disk/powerpc/ieee1275/partition.c: Likewise.
2585 * include/grub/powerpc/ieee1275/partition.h: Likewise.
2586 * include/grub/i386/pc/partition.h: Likewise.
2587 * kern/partition.c: New file.
2588 * partmap/amiga.c: Likewise.
2589 * partmap/apple.c: Likewise.
2590 * partmap/pc.c: Likewise.
2591 * include/grub/partition.h: Likewise..
2592 * include/grub/pc_partition.h: Likewise.
2593 * util/grub-emu.c: Include <grub/partition.h> instead of
2594 <grub/machine/partition.h>.
2595 (main): Call `grub_pc_partition_map_init',
2596 `grub_amiga_partition_map_init' and
2597 `grub_apple_partition_map_init' and deinitialize afterwards.
2598 * util/i386/pc/biosdisk.c: Include `#include
2599 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
2600 `<grub/machine/partition.h>'.
2601 * util/i386/pc/grub-setup.c: Likewise.
2602 * util/i386/pc/biosdisk.c: Likewise.
2603 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
2604 partition information in case of a PC partition.
2605 * util/i386/pc/grub-setup.c: Include `#include
2606 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
2607 `<grub/machine/partition.h>'.
2608 (setup): Only access the PC specific partition information in case
2609 of a PC partition.
2610
0ef4ced9 26112004-11-17 Hollis Blanchard <hollis@penguinppc.org>
2612
2613 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
2614 (grub_longjmp): Likewise.
2615 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
2616 20.
2617 * normal/powerpc/setjmp.S: New file.
2618 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
2619 `normal/powerpc/setjmp.S'.
2620 (grubof_CFLAGS): Add `-DGRUBOF'.
2621 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
2622 [GRUB_UTIL && !GRUBOF].
2623
19950e29 26242004-11-16 Marco Gerards <metgerards@student.han.nl>
2625
2626 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
2627 property named `name'. Correctly handle the error returned by
2628 `grub_ieee1275_finddevice' if a device can not be opened.
2629
a2fea427 26302004-11-02 Hollis Blanchard <hollis@penguinppc.org>
2631
2632 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
2633 `actual' for negativity.
2634 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
2635 kern/fshelp.c.
2636
41ea0ea3 26372004-11-01 Marco Gerards <metgerards@student.han.nl>
2638
2639 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
2640 (PAGE_OFFSET): New macro.
2641 (CRTC_ADDR_PORT): Likewise.
2642 (CRTC_DATA_PORT): Likewise.
2643 (START_ADDR_HIGH_REGISTER): Likewise.
2644 (START_ADDR_LOW_REGISTER): Likewise.
2645 (GRAPHICS_ADDR_PORT): Likewise.
2646 (GRAPHICS_DATA_PORT): Likewise.
2647 (READ_MAP_REGISTER): Likewise.
2648 (INPUT_STATUS1_REGISTER): Likewise.
2649 (INPUT_STATUS1_VERTR_BIT): Likewise.
2650 (page): New variable.
2651 (wait_vretrace): New function.
2652 (set_read_map): Likewise.
2653 (set_start_address): Likewise.
2654 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
2655 the right page.
2656 (check_vga_mem): Take the page into account.
2657 (write_char): Likewise.
2658 (write_cursor): Likewise.
2659 (scroll_up): Likewise. Copy the page to the page that is not
2660 shown and switch between both pages.
2661 (grub_vga_putchar): Fix off by one error.
2662 (grub_vga_cls): Wait for the vertical retrace. Take the page into
2663 account.
2664
ad0bd20b 26652004-11-01 Marco Gerards <metgerards@student.han.nl>
2666
2667 Add support for iso9660 (including rockridge).
2668
2669 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
2670 (iso9660_mod_SOURCES): New variable.
2671 (iso9660_mod_CFLAGS): Likewise.
2672 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
2673 * include/grub/fs.h (grub_iso9660_init): New prototype.
2674 * util/grub-emu.c (main): Call `grub_iso9660_init'.
2675 * fs/iso9660.c: New file.
2676
2677 * include/grub/misc.h (grub_strncat): New prototype.
2678 * kern/misc.c (grub_strncat): New function.
2679
2680 * fs/hfs.c (grub_hfs_mount): Translate the error
2681 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
2682 * fs/jfs.c (grub_jfs_mount): Likewise.
2683 * fs/ufs.c (grub_ufs_mount): Likewise.
2684
a5477a59 26852004-10-28 Hollis Blanchard <hollis@penguinppc.org>
2686
2687 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
2688 which initialized BAT registers.
2689 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
2690 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
2691 Move from here...
2692 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
2693 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
2694 ... to here.
2695 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
2696 (grub_mapclaim): Likewise.
2697 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
2698 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
2699 hand.
2700
9304c1f8 27012004-10-19 Hollis Blanchard <hollis@penguinppc.org>
2702
2703 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
2704 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
2705 -ffreestanding and -msoft-float.
2706
86f4ae25 27072004-10-15 Hollis Blanchard <hollis@penguinppc.org>
2708
2709 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
2710 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
2711 set in grub_ieee1275_flags.
2712
38912228 27132004-10-14 Hollis Blanchard <hollis@penguinppc.org>
2714
2715 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
2716 prototype.
2717 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
2718 grub_console_init first.
2719 Change the memory range used for grub_ieee1275_claim and
2720 grub_mm_init_region.
2721 Print an error message if the claim fails.
2722 Include <grub/misc.h>.
2723
d1923dc8 27242004-10-13 Hollis Blanchard <hollis@penguinppc.org>
2725
2726 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
2727 Call grub_children_iterate for device nodes of type `scsi',
2728 `ide', or `ata'.
2729 (grub_ofdisk_open): Remove manual device alias resolution.
2730 Fix memory leak when device cannot be opened.
2731 * include/grub/powerpc/ieee1275/ieee1275.h
2732 (grub_children_iterate): New prototype.
2733 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
2734 New function.
2735 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2736 Return -1 if args.size was -1.
2737
4512e4f3 27382004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2739
2740 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
2741 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
2742 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
2743 Open Firmware's memory for it; claim memory from _start to _end.
2744 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
2745 (_end): New extern.
2746 (_start): Zero BSS from __bss_start to _end.
2747 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
2748 New extern.
2749 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
2750
4d61feb0 27512004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2752
ad0bd20b 2753 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
2754 -1 if args.base was -1.
4d61feb0 2755
026fa2f9 27562004-10-08 Hollis Blanchard <hollis@penguinppc.org>
2757
2758 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
2759 escape sequence instead of a literal ^L. Also call
2760 grub_ofconsole_gotoxy.
2761
9f2220ef 27622004-10-03 Hollis Blanchard <hollis@penguinppc.org>
2763
2764 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
2765 void * arguments to grub_addr_t. All callers updated. Also make
2766 the `result' argument optional.
2767 (grub_ieee1275_release): change void * arguments to grub_addr_t.
2768 All callers updated.
2769
8a572cd7 27702004-09-22 Hollis Blanchard <hollis@penguinppc.org>
2771
2772 * commands/ls.c (grub_ls_list_files): Use the string following the
2773 initial ')', if present, as the filesystem path.
2774 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
2775
2776 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
2777
18aa81f2 27782004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
2779
2780 Make the source code of the menu interface more readable.
2781
2782 * normal/menu.c: Include grub/mm.h.
2783 (TERM_WIDTH): New macro.
2784 (TERM_HEIGHT): Likewise.
2785 (TERM_INFO_HEIGHT): Likewise.
2786 (TERM_MARGIN): Likewise.
2787 (TERM_SCROLL_WIDTH): Likewise.
2788 (TERM_TOP_BORDER_Y): Likewise.
2789 (TERM_LEFT_BORDER_X): Likewise.
2790 (TERM_BORDER_WIDTH): Likewise.
2791 (TERM_MESSAGE_HEIGHT): Likewise.
2792 (TERM_BORDER_HEIGHT): Likewise.
2793 (TERM_NUM_ENTRIES): Likewise.
2794 (TERM_FIRST_ENTRY_Y): Likewise.
2795 (TERM_ENTRY_WIDTH): Likewise.
2796 (TERM_CURSOR_X): Likewise.
2797 (draw_border): Use macros instead of magic numbers.
2798 (print_entry): Likewise.
2799 (print_entries): Likewise.
2800 (run_menu): Likewise. Also, handle the key 'e'.
2801 (run_menu_entry): Ignore empty command lines.
2802 (print_message): Added a new argument EDIT. If EDIT is true,
2803 print a different message.
2804 (init_page): Likewise.
2805 (edit_menu_entry): New function. Not implemented yet.
2806
b47efe30 28072004-09-17 Marco Gerards <metgerards@student.han.nl>
2808
2809 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
2810 can be loaded from normal mode.
2811
2812 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
2813 `multiboot.mod'.
2814 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
2815 (multiboot_mod_CFLAGS): New variables.
2816 * loader/i386/pc/linux_normal.c: New file.
2817 * loader/i386/pc/multiboot_normal.c: Likewise.
2818
2819 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
2820 attribute `unused'.
2821
2822 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
2823 `fdiro' to read the mode information from instead of `diro'.
2824
2825 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
2826 looking up a symlink.
2827
2828 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
2829 macro.
2830 * normal/command.c (grub_command_execute): Don't parse the
2831 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
2832 flags of the command.
2833
2834 * normal/menu.c (grub_menu_run): Fix typo.
2835
da75ac71 28362004-09-14 Hollis Blanchard <hollis@penguinppc.org>
2837
2838 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
2839
2840 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
2841 `y + 1' instead of `y - 1'.
2842
2843 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
2844
062b24c2 28452004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
2846
2847 From Hollis Blanchard <hollis@penguinppc.org>:
2848 * kern/misc.c (memmove): New alias for grub_memmove.
2849 (memcmp): New alias for grub_memcmp.
2850 (memset): New alias for grub_memset.
2851 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2852 Change "int handle" to "grub_ieee1275_phandle_t handle".
2853 * include/grub/powerpc/ieee1275/ieee1275.h
2854 (grub_ieee1275_get_property): Likewise.
2855
8ddad845 28562004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
2857
2858 Added normal mode command `chainloader' as module chain.mod, which
2859 depends on normal.mod and _chain.mod.
2860
2861 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
2862 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
2863 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
2864 Deleted prototype.
2865 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
2866 but arguments parsing moved to ...
2867 (grub_chainloader_cmd): ... here. New function.
2868 * include/grub/i386/pc/chainloader.h: New file.
2869 * loader/i386/pc/chainloader_normal.c: Likewise.
2870
2c1f4ce3 28712004-09-11 Marco Gerards <metgerards@student.han.nl>
2872
2873 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
2874 (grub_mkimage_LDFLAGS): Likewise.
2875 (grub_emu_SOURCES): Likewise.
2876 (kernel_img_HEADERS): Added fshelp.h.
2877 * fs/ext2.c: Include <grub/fshelp.h>.
2878 (FILETYPE_REG): New macro.
2879 (FILETYPE_INO_REG): Likewise.
2880 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
2881 Changed all users.
2882 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
2883 all users.
2884 (grub_fshelp_node): New struct.
2885 (grub_ext2_data): Added member `diropen'. Changed member `inode'
2886 to a pointer.
2887 (grub_ext2_get_file_block): Removed function.
2888 (grub_ext2_read_block): New function.
2889 (grub_ext2_read_file): Replaced parameter `data' by `node'.
2890 This function was written.
2891 (grub_ext2_mount): Read the root inode. Create a diropen struct.
2892 (grub_ext2_find_file): Removed function.
2893 (grub_ext2_read_symlink): New function.
2894 (grub_ext2_iterate_dir): Likewise.
2895 (grub_ext2_open): Rewritten.
2896 (grub_ext2_dir): Rewritten.
2897 * include/grub/fshelp.h: New file.
2898 * fs/fshelp.c: Likewise.
2899
3c52136a 29002004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
2901
2902 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
2903 (print_message): Add a missing newline.
2904 (run_menu): Added timeout support.
2905 (run_menu_entry): New local function.
2906 (grub_menu_run): Added support for booting.
2907
2908 * kern/loader.c (grub_loader_is_loaded): New function.
2909
2910 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
2911 (grub_get_rtc): Exported.
2912
2913 * include/grub/i386/pc/time.h: Include grub/symbol.h.
2914 (grub_get_rtc): Exported.
2915
2916 * include/grub/normal.h (struct grub_command_list): Remove
2917 constant from the member `command'.
2918
2919 * include/grub/loader.h (grub_loader_is_loaded): Declared.
2920
2921 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
2922
2923 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
2924
aa033560 29252004-08-28 Marco Gerards <metgerards@student.han.nl>
2926
2927 Add support for the JFS filesystem.
2928
2929 * fs/jfs.c: New file.
2930 * include/grub/fs.h (grub_jfs_init): New prototype.
2931 (grub_jfs_fini): New prototype.
2932 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
2933 (grub_emu_SOURCES): Likewise.
2934 (pkgdata_MODULES): Add jfs.mod.
2935 (jfs_mod_SOURCES): New variable.
2936 (jfs_mod_CFLAGS): Likewise.
2937 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
2938 (grubof_SOURCES): Likewise.
2939 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
2940
2941 * fs/fat.c (grub_fat_find_dir): Convert the filename little
2942 endian to the host endian.
2943 (grub_fat_utf16_to_utf8): Move function from there...
2944 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
2945 the endianess of the source string anymore.
2946 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
2947
94bc45af 29482004-08-24 Marco Gerards <metgerards@student.han.nl>
2949
2950 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
2951 (grub_boot_fini) [GRUB_UTIL]: Likewise.
2952 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
2953 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
2954
2955 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
2956 (grub_hfs_iterate_dir): Make the function static. Add prototypes
2957 for `node_found' and `it_dir'.
2958 (grub_hfs_dir): Add prototype for `dir_hook'.
2959
2960 * fs/minix.c (grub_minix_get_file_block): Add prototype for
2961 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
2962 and `indir32' to silence a gcc warning.
2963
2964 * include/grub/fs.h (grub_hfs_init): New prototype.
2965 (grub_hfs_fini): Likewise.
2966
2967
97543f08 29682004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
2969
2970 Each disk device has its own id now. This is useful to make use
2971 of multiple disk devices.
2972
2973 * include/grub/disk.h (grub_disk_dev_id): New enum.
2974 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
2975 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
2976
2977 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
2978 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
2979
2980 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
2981 GRUB_DISK_DEVICE_OFDISK_ID as an id.
2982
2983 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
2984 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
2985
2986 * include/grub/disk.h (struct grub_disk_dev): Added a new member
2987 "id" which is used by the cache manager.
2988
2989 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
2990 of just "GRUB".
2991
64372eb4 29922004-08-18 Marco Gerards <metgerards@student.han.nl>
2993
2994 * fs/hfs.c: New file.
2995 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
2996 (grub_emu_SOURCES): Likewise.
2997 (pkgdata_MODULES): Add hfs.mod.
2998 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
2999 (grubof_SOURCES): Likewise.
3000 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
3001
3002 * include/grub/misc.h (grub_strncasecmp): Add prototype.
3003 * kern/misc.c (grub_strncasecmp): Add function.
3004
cc61b58f 30052004-08-14 Marco Gerards <metgerards@student.han.nl>
3006
3007 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
3008 with parentheses.
3009
3010 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
3011 (grub_ext2_dir): In case the directory entry type is unknown, read
3012 it from the inode.
3013
0ef123f6 30142004-08-02 Peter Bruin <pjbruin@dds.nl>
3015
3016 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
3017 grub_load_linux instead of grub_rescue_cmd_linux as second
3018 argument of grub_rescue_register_command.
3019
3020 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
3021
a447c5df 30222004-07-27 Marco Gerards <metgerards@student.han.nl>
3023
3024 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
3025 function.
3026 * commands/boot.c: Remove the check for `GRUB_UTIL'.
3027 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
3028 `loader/powerpc/ieee1275/linux.c',
3029 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
3030 * include/grub/powerpc/ieee1275/ieee1275.h
3031 (grub_ieee1275_release): New prototype.
3032 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
3033 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
3034 normal, boot, linux and linux_normal.
3035 * loader/powerpc/ieee1275/linux.c: New file.
3036 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
3037
5a9e3546 30382004-07-12 Marco Gerards <metgerards@student.han.nl>
3039
3040 * normal/arg.c (grub_arg_parse): Correct error handling after
3041 reallocating the argumentlist (check if `argl' is not null instead
3042 of checking if `args' is not null).
3043 * kern/mm.c (grub_realloc): Return the same pointer when using the
3044 same region, instead of returning the header address.
3045
e15199cb 30462004-07-11 Marco Gerards <metgerards@student.han.nl>
3047
3048 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
3049 one block instead of two when looking for the initial partition.
3050 (grub_partition_probe): Initialize the local variable `p' with 0.
3051 Use base 10 for the grub_strtoul call.
3052 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
3053 need for one local variable.
3054 (grub_strtoul): Don't add the new value to `num', instead of that
3055 just assign it.
3056
020616c2 30572004-07-11 Marco Gerards <metgerards@student.han.nl>
3058
3059 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
3060 (pxeboot_img_SOURCES): New variable.
3061 (pxeboot_img_ASFLAGS): Likewise.
3062 (pxeboot_img_LDFLAGS): Likewise.
3063 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
3064 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
3065 <lode_leroy@hotmail.com>.
3066
6c51eb64 30672004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3068
3069 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
3070 there was no input.
3071
cfb12aff 30722004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3073
3074 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
3075 the history buffer logic.
3076
6eabba74 30772004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3078
3079 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
3080 (FILETYPE_INO_SYMLINK): New macros.
3081 (grub_ext2_find_file): Check if the node is a directory using the
3082 inode stat information instead of using the filetype in the
3083 dirent. Exclude the first character of an absolute symlink.
3084 (grub_ext2_dir): Mask out the filetype part of the mode member of
3085 the inode.
3086
66e19ef8 30872004-05-24 Marco Gerards <metgerards@student.han.nl>
3088
3089 Add support for UFS version 1 and 2. Add support for the minix
3090 filesystem version 1 and 2, both the variants with 14 and 30 long
3091 filenames.
3092
3093 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
3094 fs/minix.c.
3095 (grub_emu_SOURCES): Likewise.
3096 (pkgdata_MODULES): Add ufs.mod and minix.mod.
3097 (ufs_mod_SOURCES): New variable.
3098 (ufs_mod_CFLAGS): Likewise.
3099 (minix_mod_SOURCES): Likewise.
3100 (minix_mod_CFLAGS): Likewise.
3101 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
3102 fs/minix.c.
3103 (grubof_SOURCES): Likewise.
3104 * fs/ufs.c: New file.
3105 * fs/minix.c: New file.
3106 * include/grub/fs.h (grub_ufs_init): New prototype.
3107 (grub_ufs_fini): Likewise.
3108 (grub_minix_init): Likewise.
3109 (grub_minix_fini): Likewise.
3110 * util/grub-emu.c (main): Initialize and deinitialize UFS and
3111 minix fs.
3112
cc2e748a 31132004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
3114
3115 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
3116 commands/ls.c, commands/terminal.c, commands/boot.c,
3117 commands/cmp.c and commands/cat.c.
3118 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
3119
3120 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
3121 "env.h"
3122
4b13b216 31232004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
3124
3125 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
3126 and grub_, respectively. Because the conversion is trivial and
3127 mechanical, I omit the details here. Please refer to the CVS
3128 if you need more information.
3129
6a142551 31302004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
3131
3132 * include/pupa: Renamed to ...
3133 * include/grub: ... this.
3134 * util/i386/pc/pupa-mkimage.c: Renamed to ...
3135 * util/i386/pc/grub-mkimage.c: ... this.
3136 * util/i386/pc/pupa-setup.c: Renamed to ...
3137 * util/i386/pc/grub-setup.c: ... this.
3138 * util/pupa-emu.c: Renamed to ...
3139 * util/grub-emu.c: ... this.
3140
e56cdf21 31412004-03-29 Marco Gerards <metgerards@student.han.nl>
3142
3143 Add support for the newworld apple macintosh (PPC). This has been
3144 tested on the powerbook 2000 only. It only adds support for
3145 generic ieee1275 functions, console and disk support. This should
3146 be easy to port to other architectures with support for Open
3147 Firmware.
3148
3149 * configure.ac: Accept the powerpc as host_cpu. In the case of
3150 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
3151 specific tests are only executed while building for the i386.
3152 Inverse test for crosscompile.
3153 * genmk.rb (Utility): Allow assembler files.
3154 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
3155 * conf/powerpc-ieee1275.rmk: New file.
3156 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
3157 * disk/powerpc/ieee1275/partition.c: Likewise.
3158 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
3159 * include/pupa/powerpc/ieee1275/console.h: Likewise.
3160 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
3161 * include/pupa/powerpc/ieee1275/time.h: Likewise.
3162 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
3163 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
3164 * include/pupa/powerpc/ieee1275/loader.h
3165 * include/pupa/powerpc/setjmp.h: Likewise.
3166 * include/pupa/powerpc/types.h: Likewise.
3167 * kern/powerpc/ieee1275/init.c: Likewise.
3168 * kern/powerpc/ieee1275/openfw.c: Likewise.
3169 * term/powerpc/ieee1275/ofconsole.c: Likewise.
3170
3171 These files were written by Johan Rydberg
3172 (jrydberg@night.trouble.net) and I only modified them slightly.
3173
3174 * boot/powerpc/ieee1275/cmain.c: New file.
3175 * boot/powerpc/ieee1275/crt0.S: Likewise.
3176 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
3177 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
3178
8c8cc205 31792004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
3180
3181 * Makefile.in: Update copyright.
3182 * genmodsrc.sh: Likewise.
3183 * gensymlist.sh: Likewise.
3184 * term/i386/pc/vga.c: Indent correctly.
3185
3186 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
3187 bugreporting address.
3188 * util/i386/pc/pupa-setup.c (usage): Likewise,
3189 (main): Call pupa_ext2_init and pupa_ext2_fini.
3190
3191 * fs/fat.c (log2): Renamed to ...
3192 (fat_log2): ... this.
3193 All callers changed.
3194 * kern/misc.c (memcpy): Alias to pupa_memmove.
3195 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
3196 lvalue cast.
3197 * util/console.c (pupa_ncurses_fini): Return 0.
3198
3199 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
3200 Move fail label here.
3201 [__GNU__]: Don't warn when using stat.
3202 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
3203 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
3204 long int. Use strtol instead of strtoul.
3205
db1771cf 32062004-03-14 Marco Gerards <metgerards@student.han.nl>
3207
3208 * commands/boot.c: New file.
3209 * commands/cat.c: Likewise.
3210 * commands/cmp.c: Likewise.
3211 * commands/ls.c: Likewise.
3212 * commands/terminal.c: Likewise.
3213 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
3214 (pupa_register_command): Changed interface to match the new
3215 argument parser.
3216 (pupa_command_execute): Changed (almost rewritten) so it uses
3217 pupa_split_command. Added support for setting variables using the
3218 syntax `foo=bar'.
3219 (rescue_command): Changed to work with the new argument parser.
3220 (terminal_command): Moved from here to commands/terminal.c.
3221 (set_command): New function.
3222 (unset_command): New function.
3223 (insmod_command): New function.
3224 (rmmod_command): New function.
3225 (lsmod_command): New function.
3226 (pupa_command_init): Don't initialize the command terminal
3227 anymore. Initialize the commands set, unset, insmod, rmmod and
3228 lsmod.
3229 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
3230 (kernel_img_HEADERS): Add arg.h and env.h.
3231 (pupa_mkimage_LDFLAGS): Add kern/env.c.
3232 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
3233 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
3234 normal/arg.c.
3235 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
3236 terminal.mod.
3237 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
3238 (boot_mod_SOURCES): New variable.
3239 (terminal_mod_SOURCES): Likewise.
3240 (ls_mod_SOURCES): Likewise.
3241 (cmp_mod_SOURCES): Likewise.
3242 (cat_mod_SOURCES): Likewise.
3243
3244 * normal/arg.c: New file.
3245 * kern/env.c: Likewise.
3246 * include/pupa/arg.h: Likewise.
3247 * include/pupa/env.h: Likewise.
3248 * font/manager.c (font_command): Changed to match argument parsing
3249 interface changes.
3250 (PUPA_MOD_INIT): Likewise.
3251 * hello/hello.c (pupa_cmd_hello): Likewise.
3252 (PUPA_MOD_INIT): Likewise.
3253 * include/pupa/disk.h: Include <pupa/device.h>.
3254 (pupa_print_partinfo): New prototype.
3255 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
3256 (pupa_dl_get_prefix): Likewise.
3257 * include/pupa/misc.h: Include <pupa/err.h>.
3258 (pupa_isgraph): New prototype.
3259 (pupa_isdigit): Likewise.
3260 (pupa_split_cmdline): Likewise.
3261 * include/pupa/normal.h: Include <pupa/arg.h>.
3262 (pupa_command): Changed the prototype of the member `func' to
3263 match the argument parsing interface. Added member `options'.
3264 (pupa_register_command): Updated to match function.
3265 (pupa_arg_parse): New prototype.
3266 (pupa_hello_init) [PUPA_UTIL]: New prototype.
3267 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
3268 (pupa_ls_init) [PUPA_UTIL]: Likewise.
3269 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
3270 (pupa_cat_init) [PUPA_UTIL]: Likewise.
3271 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
3272 (pupa_boot_init) [PUPA_UTIL]: Likewise.
3273 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
3274 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
3275 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
3276 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
3277 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
3278 * kern/disk.c: Include <pupa/file.h>.
3279 (pupa_print_partinfo): New function.
3280 * kern/dl.c: Include <pupa/env.h>.
3281 (pupa_dl_dir): Variable removed.
3282 (pupa_dl_load): Use the environment variable `prefix' instead of
3283 the variable pupa_dl_dir.
3284 (pupa_dl_set_prefix): Function removed.
3285 (pupa_dl_get_prefix): Likewise.
3286 * kern/i386/pc/init.c: Include <pupa/env.h>.
3287 (pupa_machine_init): Use the environment variable `prefix' instead of
3288 using pupa_dl_set_prefix to set the prefix.
3289 * kern/main.c: Include <pupa/env.h>.
3290 (pupa_set_root_dev): Use the environment variable `prefix' instead of
3291 using pupa_dl_get_prefix to get the prefix.
3292 * kern/misc.c: Include <pupa/env.h>.
3293 (pupa_isdigit): New function.
3294 (pupa_isgraph): Likewise.
3295 (pupa_ftoa): Likewise.
3296 (pupa_vsprintf): Added support for printing values of the type
3297 `double'. Make it possible to format variable output when using
3298 formatting like `%1.2%f'.
3299 (pupa_split_cmdline): New function.
3300 * kern/rescue.c: Include <pupa/env.h>.
3301 (next_word): Removed function.
3302 (pupa_rescue_cmd_prefix): Likewise.
3303 (pupa_rescue_cmd_set): New function.
3304 (pupa_rescue_cmd_unset): New function.
3305 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
3306 split the command line instead of splitting it here. Added
3307 support for setting variables using the syntax `foo=bar'. Don't
3308 initialize the prefix command anymore. Initialized the set and
3309 unset commands.
3310 * normal/cmdline.c: Include <pupa/env.h>.
3311 (pupa_tab_complete): Added prototypes for print_simple_completion,
3312 print_partition_completion, add_completion, iterate_commands,
3313 iterate_dev, iterate_part and iterate_dir. Moved code to print
3314 partition information from here to kern/disk.c.
3315 (pupa_cmdline_run): Don't check if the funtion exists anymore.
3316 * normal/main.c: Include <pupa/env.h>.
3317 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
3318 instead of using pupa_dl_get_prefix to get the prefix.
3319 * term/i386/pc/vga.c: Include <pupa/arg.h>.
3320 (check_vga_mem): Cast pointers to `void *' to silence a gcc
3321 warning.
3322 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
3323 (pupa_vga_setcolor): Declare unused variables with `__attribute__
3324 ((unused))' to silence a gcc warning.
3325 (pupa_vga_setcolor): Likewise.
3326 (debug_command): Changed to match argument parsing
3327 interface changes.
3328 * util/pupa-emu.c: Include <pupa/env.h>.
3329 (options): Added 0's for unused fields to silence a gcc warning.
3330 (argp): Likewise.
3331 (main): Use the environment variable `prefix' instead of using
3332 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
3333 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
3334 and terminal.
3335
3336 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
3337 * util/misc.c: Include <malloc.h>.
3338 (pupa_malloc): Rewritten so errors are correctly reported.
3339 (pupa_realloc): Likewise.
3340 (pupa_memalign): Likewise.
3341 (pupa_mm_init_region): Declare unused variables with
3342 `__attribute__ ((unused))' to silence a gcc warning.
3343 * normal/i386/setjmp.S: Remove tab at the end of the file to
3344 silence a gcc warning.
3345 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
3346 variables with `__attribute__ ((unused))' to silence a gcc
3347 warning.
3348 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
3349 local variable i unsigned to silence a gcc warning.
3350
3351 * kern/term.c: Include <pupa/misc.h>.
3352 (pupa_more_lines): New variable.
3353 (pupa_more): Likewise.
3354 (pupa_putcode): When the pager is active pause at the end of every
3355 screen.
3356 (pupa_set_more): New function.
3357 * include/pupa/term.h (pupa_set_more): New prototype.
3358
3359
3b1139cb 33602004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
3361
3362 Now this project is GRUB 2 rather than PUPA. The location of
3363 the CVS repository was moved to GRUB's.
3364
3365 * configure.ac: Use bug-grub as the reporting address.
3366 Use GRUB instead of PUPA.
3367 Change the version number to 1.90.
3368
8367695c 33692004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
3370
3371 * genkernsyms.sh: Updated copyright information.
3372 * genmk.rb: Likewise.
3373 * genmodsrc.sh: Likewise.
3374 * gensymlist.sh: Likewise.
3375 * boot/i386/pc/boot.S: Likewise.
3376 * boot/i386/pc/diskboot.S: Likewise.
3377 * disk/i386/pc/biosdisk.c: Likewise.
3378 * disk/i386/pc/partition.c: Likewise.
3379 * font/manager.c: Likewise.
3380 * fs/ext2.c: Likewise.
3381 * fs/fat.c: Likewise.
3382 * include/pupa/boot.h: Likewise.
3383 * include/pupa/device.h: Likewise.
3384 * include/pupa/disk.h: Likewise.
3385 * include/pupa/dl.h: Likewise.
3386 * include/pupa/elf.h: Likewise.
3387 * include/pupa/err.h: Likewise.
3388 * include/pupa/file.h: Likewise.
3389 * include/pupa/font.h: Likewise.
3390 * include/pupa/fs.h: Likewise.
3391 * include/pupa/kernel.h: Likewise.
3392 * include/pupa/loader.h: Likewise.
3393 * include/pupa/misc.h: Likewise.
3394 * include/pupa/mm.h: Likewise.
3395 * include/pupa/net.h: Likewise.
3396 * include/pupa/normal.h: Likewise.
3397 * include/pupa/rescue.h: Likewise.
3398 * include/pupa/setjmp.h: Likewise.
3399 * include/pupa/symbol.h: Likewise.
3400 * include/pupa/term.h: Likewise.
3401 * include/pupa/types.h: Likewise.
3402 * include/pupa/i386/setjmp.h: Likewise.
3403 * include/pupa/i386/types.h: Likewise.
3404 * include/pupa/i386/pc/biosdisk.h: Likewise.
3405 * include/pupa/i386/pc/boot.h: Likewise.
3406 * include/pupa/i386/pc/console.h: Likewise.
3407 * include/pupa/i386/pc/init.h: Likewise.
3408 * include/pupa/i386/pc/kernel.h: Likewise.
3409 * include/pupa/i386/pc/linux.h: Likewise.
3410 * include/pupa/i386/pc/loader.h: Likewise.
3411 * include/pupa/i386/pc/memory.h: Likewise.
3412 * include/pupa/i386/pc/multiboot.h: Likewise.
3413 * include/pupa/i386/pc/partition.h: Likewise.
3414 * include/pupa/i386/pc/time.h: Likewise.
3415 * include/pupa/i386/pc/vga.h: Likewise.
3416 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
3417 * include/pupa/util/getroot.h: Likewise.
3418 * include/pupa/util/misc.h: Likewise.
3419 * include/pupa/util/resolve.h: Likewise.
3420 * kern/device.c: Likewise.
3421 * kern/disk.c: Likewise.
3422 * kern/dl.c: Likewise.
3423 * kern/err.c: Likewise.
3424 * kern/file.c: Likewise.
3425 * kern/fs.c: Likewise.
3426 * kern/loader.c: Likewise.
3427 * kern/main.c: Likewise.
3428 * kern/misc.c: Likewise.
3429 * kern/mm.c: Likewise.
3430 * kern/rescue.c: Likewise.
3431 * kern/term.c: Likewise.
3432 * kern/i386/dl.c: Likewise.
3433 * kern/i386/pc/init.c: Likewise.
3434 * kern/i386/pc/lzo1x.S: Likewise.
3435 * kern/i386/pc/startup.S: Likewise.
3436 * loader/i386/pc/chainloader.c: Likewise.
3437 * loader/i386/pc/linux.c: Likewise.
3438 * loader/i386/pc/multiboot.c: Likewise.
3439 * normal/cmdline.c: Likewise.
3440 * normal/command.c: Likewise.
3441 * normal/main.c: Likewise.
3442 * normal/menu.c: Likewise.
3443 * normal/i386/setjmp.S: Likewise.
3444 * term/i386/pc/console.c: Likewise.
3445 * term/i386/pc/vga.c: Likewise.
3446 * util/console.c: Likewise.
3447 * util/genmoddep.c: Likewise.
3448 * util/misc.c: Likewise.
3449 * util/pupa-emu.c: Likewise.
3450 * util/resolve.c: Likewise.
3451 * util/unifont2pff.rb: Likewise.
3452 * util/i386/pc/biosdisk.c: Likewise.
3453 * util/i386/pc/getroot.c: Likewise.
3454 * util/i386/pc/pupa-mkimage.c: Likewise.
3455 * util/i386/pc/pupa-setup.c: Likewise.
3456
e6eced71 34572004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
3458
3459 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
3460 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
3461 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
3462 reading and reset it after reading.
3463 (pupa_ext2_close): Return PUPA_ERR_NONE.
3464
3465 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
3466 Correct value.
3467 (struct linux_kernel_header): Add kernel_version and
3468 initrd_addr_max.
3469 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
3470 pupa_file_read succeeds.
3471 (pupa_rescue_cmd_initrd): Implement.
3472
5aded270 34732003-12-03 Marco Gerards <metgerards@student.han.nl>
3474
3475 * fs/ext2.c (pupa_ext2_label): New function.
3476 (pupa_ext2_fs): Added label.
3477 * fs/fat.c (pupa_fat_label): New function.
3478 (pupa_fat_fs): Added label.
3479 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
3480
3481 * kern/misc.c (pupa_strndup): New function.
3482 * include/pupa/misc.h (pupa_strndup): New prototype.
3483
3484 * include/pupa/normal.h: Include <pupa/err.h>.
3485 (pupa_set_history): New prototype.
3486 (pupa_iterate_commands): New prototype.
3487 * normal/cmdline.c: Include <pupa/machine/partition.h>,
3488 <pupa/disk.h>, <pupa/file.h>.
3489 (hist_size): New variable.
3490 (hist_lines): Likewise.
3491 (hist_end): Likewise.
3492 (hist_used): Likewise.
3493 (pupa_set_history): New function.
3494 (pupa_history_get): Likewise.
3495 (pupa_history_add): Likewise.
3496 (pupa_history_replace): Likewise.
3497 (pupa_tab_complete): Likewise.
3498 (pupa_cmdline_run): Added tab completion and history buffer. Tab
3499 completion shows partitionnames while completing partitions, this
3500 feature was suggested by Jeff Bailey.
3501 * normal/command.c (pupa_iterate_commands): New function.
3502 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
3503 (pupa_normal_init): Initialize history buffer.
3504 (PUPA_MOD_INIT): Likewise.
3505 (pupa_normal_fini): Free the history buffer.
3506 (PUPA_MOD_FINI): Likewise.
3507
3508 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
3509 key.
3510
3511 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
3512 * configure.ac [i386]: Check for regparam bug.
3513 (NESTED_FUNC_ATTR) [! i386]: Defined.
3514
1f7315a3 35152003-11-17 Marco Gerards <metgerards@student.han.nl>
3516
3517 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
3518 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
3519 (pupa_emu_SOURCES): New variable.
3520 (pupa_emu_LDFLAGS): Likewise.
3521 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
3522 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
3523 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
3524 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
3525 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
3526 (pupa_jmp_buf): New typedef.
3527 (pupa_setjmp) [PUPA_UTIL]: New macro.
3528 (pupa_longjmp) [PUPA_UTIL]: Likewise.
3529 * include/pupa/term.h (struct pupa_term): New member `refresh'.
3530 (pupa_refresh): New prototype.
3531 * include/pupa/util/getroot.h: New file.
3532 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
3533 it.
3534 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
3535 (pupa_rescue_cmd_cat): Likewise.
3536 (pupa_rescue_cmd_ls): Likewise.
3537 (pupa_rescue_cmd_testload): Likewise.
3538 (pupa_rescue_cmd_lsmod): Likewise.
3539 * normal/cmdline.c (pupa_cmdline_get): Likewise.
3540 * normal/menu.c (run_menu): Likewise.
3541 * kern/term.c (pupa_cls): Likewise.
3542 (pupa_refresh): New function.
3543 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
3544 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
3545 * util/console.c: New file.
3546
3547 * util/i386/pc/getroot.c: New file.
3548 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
3549 (pupa_putchar): New function.
3550 (pupa_refresh): Likewise.
3551 (xgetcwd): Function moved to ...
3552 (strip_extra_slashes): Likewise.
3553 (get_prefix): Likewise.
3554 * util/i386/pc/getroot.c: ... here.
3555 (find_root_device): Function moved and renamed to...
3556 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
3557 Changed all callers.
3558 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
3559 and renamed to...
3560 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
3561 Changed all callers.
3562 * util/misc.c (pupa_memalign): New function.
3563 (pupa_mm_init_region): Likewise.
3564 (pupa_register_exported_symbols): Likewise.
3565 (pupa_putchar): Function removed.
3566 * util/pupa-emu.c: New file.
3567
9a5c1ade 35682003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
3569
3570 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
3571 (_multiboot_mod_SOURCES): New variable.
3572 (_multiboot_mod_CFLAGS): Likewise.
3573 * loader/i386/pc/multiboot.c: New file.
3574 * include/pupa/i386/pc/multiboot.h: Likewise.
3575 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
3576 (pupa_multiboot_real_boot): New function.
3577 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
3578 (pupa_multiboot_real_boot): New prototype.
3579 (pupa_rescue_cmd_multiboot): Likewise
3580 (pupa_rescue_cmd_module): Likewise.
3581
3582 * kern/loader.c (pupa_loader_set): Continue when
3583 pupa_loader_unload_func() fails.
3584 (pupa_loader_unset): New function.
3585 * include/pupa/loader.h (pupa_loader_unset): New prototype.
3586
3587 * kern/misc.c (pupa_stpcpy): New function.
3588 * include/pupa/misc.h (pupa_stpcpy): New prototype.
3589
8e72a9c0 35902003-11-12 Marco Gerards <metgerards@student.han.nl>
3591
3592 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
3593 for available extensions.
3594
3595 * include/pupa/i386/pc/time.h: New file.
3596 * kern/disk.c: Include <pupa/machine/time.h>.
3597 (PUPA_CACHE_TIMEOUT): New macro.
3598 (pupa_last_time): New variable.
3599 (pupa_disk_open): Flush the cache when there was a timeout.
3600 (pupa_disk_close): Reset the timer.
3601 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
3602 pupa_currticks.
3603 * util/misc.c: Include <sys/times.h>
3604 (pupa_get_rtc): New function.
3605
c4adbd32 36062003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
3607
3608 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
3609 as blocks.
3610 (pupa_ext2_get_file_block): Use blocks member.
3611
3612 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
3613 first block. Return -1 instead of pupa_errno on error.
3614
bfd30f06 36152003-10-27 Marco Gerards <metgerards@student.han.nl>
3616
3617 * README: In the pupa-mkimage example use _chain instead of chain
3618 and ext2 instead of fat.
3619 * TODO: Replace ext2fs with jfs as an example. Add an item for
3620 adding journal playback for ext2fs.
3621 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
3622 (pkgdata_MODULES): Added ext2.mod.
3623 (ext2_mod_SOURCES): New variable.
3624 (ext2_mod_CFLAGS): Likewise.
3625 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
3626 * include/pupa/misc.h (pupa_strncpy): New prototype.
3627 (pupa_strcat): Likewise.
3628 (pupa_strncmp): Likewise.
3629 * kern/misc.c (pupa_strcat): Enable function.
3630 (pupa_strncpy): New function.
3631 (pupa_strncmp): Likewise.
3632 * fs/ext2.c: New file.
3633
3634 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
3635 when the read failed before retrying.
3636 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
3637 (_FILE_OFFSET_BITS): Likewise.
3638 * configure.ac: Added AC_SYS_LARGEFILE.
3639
98d15063 36402003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
3641
3642 * genmk.rb (PModule#rule): Make sure to get only symbol names
3643 from the output of nm.
3644 Reported by Robert Millan <zeratul2@wanadoo.es>.
3645
18d9c7cd 36462003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
3647
3648 I forgot to check in these changes for a long time. This adds
3649 incomplete support for VGA console, and this is still very
3650 buggy. Also, a lot of consideration is required for I18N,
3651 UNICODE, and VGA font issues. Therefore, assume that this is
3652 such that "better than nothing".
3653
3654 * font/manager.c: New file.
3655 * include/pupa/font.h: Likewise.
3656 * include/pupa/i386/pc/vga.h: Likewise.
3657 * term/i386/pc/vga.c: Likewise.
3658 * util/unifont2pff.rb: Likewise.
3659
3660 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
3661 (pkgdata_MODULES): Added vga.mod and font.mod.
3662 (vga_mod_SOURCES): New variables.
3663 (vga_mod_CFLAGS): Likewise.
3664 (font_mod_SOURCES): Likewise.
3665 (font_mod_CFLAGS): Likewise.
3666
3667 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
3668
3669 * include/pupa/term.h: Include pupa/err.h.
3670 (struct pupa_term): Added init and fini.
3671 Changed the argument of putchar to pupa_uint32_t.
3672
3673 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
3674 (pupa_console_real_putchar): New prototype.
3675 (pupa_console_putchar): Removed.
3676 (pupa_console_checkkey): Exported.
3677 (pupa_console_getkey): Likewise.
3678
3679 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
3680 characters.
3681
3682 * kern/term.c (pupa_term_set_current): Rewritten.
3683 (pupa_putchar): Likewise.
3684 (pupa_putcode): New function.
3685
3686 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
3687 (pupa_console_real_putchar): ... this.
3688 (pupa_vga_set_mode): New function.
3689 (pupa_vga_get_font): Likewise.
3690
3691 * normal/command.c: Include pupa/term.h.
3692 (terminal_command): New function.
3693 (pupa_command_init): Register the command "terminal".
3694
3695 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
3696 (DISP_UP): Likewise.
3697 (DISP_RIGHT): Likewise.
3698 (DISP_DOWN): Likewise.
3699 (DISP_HLINE): Likewise.
3700 (DISP_VLINE): Likewise.
3701 (DISP_UL): Likewise.
3702 (DISP_UR): Likewise.
3703 (DISP_LL): Likewise.
3704 (DISP_LR): Likewise.
3705
3706 * term/i386/pc/console.c (pupa_console_putchar): New function.
3707
977329f5 37082003-02-08 NIIBE Yutaka <gniibe@m17n.org>
3709
3710 * util/resolve.c (pupa_util_resolve_dependencies): BUG
3711 FIX. Reverse the path_list.
3712
3713 * include/pupa/normal.h: Export pupa_register_command and
3714 pupa_unregister_command.
3715
3716 * hello/hello.c (pupa_cmd_hello): New module.
3717 * conf/i386-pc.rmk: Added hello.mod.
3718
1f5ab428 37192003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
3720
3721 * kern/i386/pc/lzo1x.S: New file.
3722
3723 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
3724 (compress_kernel): New variable.
3725 (generate_image): Heavily modified to support compressing a
3726 large part of the core image.
3727
3728 * util/misc.c (pupa_util_read_image): Fix a file descriptor
3729 leak.
3730 (pupa_util_load_image): New function.
3731
3732 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
3733 (pupa_compressed_size): New variable.
3734 (codestart): Enable Gate A20 here.
3735 Decompress the compressed part of the core image.
3736 Rearrange the code to put functions and variables which are
3737 required for initialization in the non-compressed part.
3738 Include lzo1x.S.
3739
3740 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
3741 here.
3742
3743 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
3744
3745 * include/pupa/i386/pc/kernel.h
3746 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
3747 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
3748 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
3749 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
3750 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
3751
3752 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
3753
3754 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
3755 (Utility#rule): Likewise.
3756
3757 * configure.ac: Check if LZO is available.
3758
ce5bf700 37592003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
3760
3761 * include/pupa/normal.h: New file.
3762 * include/pupa/setjmp.h: Likewise.
3763 * include/pupa/i386/setjmp.h: Likewise.
3764 * normal/cmdline.c: Likewise.
3765 * normal/command.c: Likewise.
3766 * normal/main.c: Likewise.
3767 * normal/menu.c: Likewise.
3768 * normal/i386/setjmp.S: Likewise.
3769
3770 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
3771 (pupa_rescue_cmd_initrd): Likewise.
3772
3773 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
3774 Likewise.
3775
3776 * kern/i386/pc/startup.S (translation_table): New variable.
3777 (translate_keycode): New function.
3778 (pupa_console_getkey): Call translate_keycode.
3779
3780 * kern/rescue.c (attempt_normal_mode): New function.
3781 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
3782 it failed, print a message.
3783
3784 * kern/mm.c (pupa_real_malloc): Print more information when a
3785 free magic is broken.
3786 (pupa_free): If the first free header is not free actually, set
3787 it to P.
3788
3789 * kern/main.c (pupa_load_normal_mode): Just load the module
3790 "normal".
3791 (pupa_main): Don't print the message
3792 "Entering into rescue mode..." here.
3793
3794 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
3795 Declared.
3796 (pupa_rescue_cmd_initrd): Likewise.
3797 (pupa_rescue_cmd_initrd): Likewise.
3798
3799 * include/pupa/symbol.h (FUNCTION): Specify the type.
3800 (VARIABLE): Likewise.
3801
3802 * include/pupa/err.h (pupa_err_t): Added
3803 PUPA_ERR_UNKNOWN_COMMAND.
3804
3805 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
3806 (pupa_dl_get_prefix): Likewise.
3807
3808 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
3809 Added _chain.mod and _linux.mod instead of chain.mod and
3810 linux.mod.
3811 (chain_mod_SOURCES): Renamed to ...
3812 (_chain_mod_SOURCES): ... this.
3813 (chain_mod_CFLAGS): Renamed to ...
3814 (_chain_mod_CFLAGS): ... this.
3815 (linux_mod_SOURCES): Renamed to ...
3816 (_linux_mod_SOURCES): ... this.
3817 (linux_mod_CFLAGS): Renamed to ...
3818 (_linux_mod_CFLAGS): ... this.
3819 (normal_mod_SOURCES): New variable.
3820 (normal_mod_CFLAGS): Likewise.
3821 (normal_mod_ASFLAGS): Likewise.
3822
38232003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
3824
3825 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
3826 possible.
3827
3828 * kern/dl.c (pupa_dl_ref): Refer dependending modules
3829 recursively.
3830 (pupa_dl_unref): Unrefer depending modules recursively.
3831 Don't call pupa_dl_unload implicitly, because PUPA can crash if
3832 a module is unloaded before one depending on that module is
3833 unloaded.
3834 (pupa_dl_unload): Unload depending modules explicitly,
3835 if possible.
3836
c04da074 38372003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
3838
3839 * include/pupa/i386/pc/linux.h: New file.
3840 * loader/i386/pc/linux.c: Likewise.
3841
3842 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
3843 Removed.
3844 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
3845 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
3846 of PUPA_CHAINLOADER_BOOT_SECTOR.
3847
3848 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
3849 (pupa_linux_prot_size): New variable.
3850 (pupa_linux_tmp_addr): Likewise.
3851 (pupa_linux_real_addr): Likewise.
3852 (pupa_linux_boot_zimage): New function.
3853 (pupa_linux_boot_bzimage): Likewise.
3854
3855 * kern/i386/pc/init.c (struct mem_region): New structure.
3856 (MAX_REGIONS): New macro.
3857 (mem_regions): New variable.
3858 (num_regions): Likewise.
3859 (pupa_os_area_addr): Likewise.
3860 (pupa_os_area_size): Likewise.
3861 (pupa_lower_mem): Likewise.
3862 (pupa_upper_mem): Likewise.
3863 (add_mem_region): New function.
3864 (compact_mem_regions): Likewise.
3865 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
3866 the size of the conventional memory and that of so-called upper
3867 memory (before the first memory hole).
3868 Instead of adding each found region to free memory, use
3869 add_mem_region and add them after removing overlaps.
3870 Also, add only 1/4 of the upper memory to free memory. The rest
3871 is used for loading OS images. Maybe this is ad hoc, but this
3872 makes it much easier to relocate OS images when booting.
3873
3874 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
3875 (pupa_enter_rescue_mode): Don't register initrd and module.
3876
3877 * kern/mm.c: Include pupa/dl.h.
3878
3879 * kern/main.c: Include pupa/file.h and pupa/device.h.
3880
3881 * kern/loader.c (pupa_loader_load_module_func): Removed.
3882 (pupa_loader_load_module): Likewise.
3883
3884 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
3885 ``.o''.
3886
3887 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
3888 (pupa_linux_tmp_addr): Likewise.
3889 (pupa_linux_real_addr): Likewise.
3890 (pupa_linux_boot_zimage): Likewise.
3891 (pupa_linux_boot_bzimage): Likewise.
3892
3893 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
3894 (pupa_upper_mem): Likewise.
3895 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
3896 module is too dangerous.
3897
3898 * include/pupa/loader.h (pupa_os_area_addr): Declared.
3899 (pupa_os_area_size): Likewise.
3900 (pupa_loader_set): Remove the first argument. Loader doesn't
3901 manage modules or initrd any longer.
3902 (pupa_loader_load_module): Removed.
3903
3904 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
3905 (linux_mod_SOURCES): New variable.
3906 (linux_mod_CFLAGS): Likewise.
3907
a13f9237 39082003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
3909
3910 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
3911 the length of a blocklist correctly.
3912
3913 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
3914 Use ioctl only if the OS file is a block device.
3915 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
3916 not very useful for normal files.
3917
3918 * kern/main.c (pupa_set_root_dev): New function.
3919 (pupa_load_normal_mode): Likewise.
3920 (pupa_main): Call those above.
3921
3922 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
3923 pupa_uint16_t.
3924
3925 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
3926
a5ffe966 39272003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
3928
3929 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
3930 (setup): Configure the installed partition information and the
3931 dl prefix.
3932
3933 * loader/i386/pc/chainloader.c (my_mod): New variable.
3934 (pupa_chainloader_unload): New function.
3935 (pupa_rescue_cmd_chainloader): Refer itself.
3936 (PUPA_MOD_INIT): Save its own module in MY_MOD.
3937
3938 * kern/i386/pc/startup.S (install_partition): Removed.
3939 (version_string): Likewise.
3940 (config_file): Likewise.
3941 (pupa_install_dos_part): New variable.
3942 (pupa_install_bsd_part): Likewise.
3943 (pupa_prefix): Likewise.
3944 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
3945
3946 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
3947 and pupa/misc.h.
3948 (make_install_device): New function.
3949 (pupa_machine_init): Set the dl prefix.
3950
3951 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
3952 (buf): Renamed to ...
3953 (linebuf): ... this.
3954 (pupa_rescue_cmd_prefix): New function.
3955 (pupa_rescue_cmd_insmod): Likewise.
3956 (pupa_rescue_cmd_rmmod): Likewise.
3957 (pupa_rescue_cmd_lsmod): Likewise.
3958 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
3959 rmmod and lsmod.
3960
3961 * kern/mm.c (pupa_memalign): If failed even after invalidating
3962 disk caches, unload unneeded modules and retry.
3963
3964 * kern/misc.c (pupa_memmove): New function.
3965 (pupa_memcpy): Removed.
3966 (pupa_strcpy): New function.
3967 (pupa_itoa): Made static.
3968
3969 * kern/dl.c (pupa_dl_iterate): New function.
3970 (pupa_dl_ref): Likewise.
3971 (pupa_dl_unref): Likewise.
3972 (pupa_dl_unload): Return if succeeded or not.
3973 (pupa_dl_unload_unneeded): New function.
3974 (pupa_dl_unload_all): Likewise.
3975 (pupa_dl_init): Renamed to ...
3976 (pupa_dl_set_prefix): ... this.
3977 (pupa_dl_get_prefix): New function.
3978
3979 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
3980 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
3981 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
3982 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
3983 (pupa_install_dos_part): Declared.
3984 (pupa_install_bsd_part): Likewise.
3985 (pupa_prefix): Likewise.
3986 (pupa_boot_drive): Likewise.
3987
3988 * include/pupa/types.h: Fix a typo.
3989
3990 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
3991 pupa_memmove.
3992 (pupa_memmove): Declared.
3993 (pupa_strcpy): Likewise.
3994
3995 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
3996 pupa_mod_init takes one argument, its own module.
3997 (pupa_dl_unload_unneeded): Declared.
3998 (pupa_dl_unload_all): Likewise.
3999 (pupa_dl_ref): Likewise.
4000 (pupa_dl_unref): Likewise.
4001 (pupa_dl_iterate): Likewise.
4002 (pupa_dl_init): Renamed to ...
4003 (pupa_dl_set_prefix): ... this.
4004 (pupa_dl_get_prefix): Declared.
4005
4006 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
4007 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
4008 unloaded.
4009 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
4010 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
4011
4012 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
4013 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
4014
012d7999 40152003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
4016
4017 * util/i386/pc/pupa-setup.c (setup): Define the internal
4018 function find_first_partition_start at the top level, because GCC
4019 3.0.x cannot compile internal functions in deeper scopes
4020 correctly.
4021 (find_root_device): Use lstat instead of stat.
4022 Don't follow symbolic links.
4023 Fix the path-constructing code.
4024
4025 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
4026 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
4027 by a BLKGETSIZE ioctl first, because block devices don't fill
4028 the member st_mode of the structure stat on Linux.
4029 [__linux__] (linux_find_partition): Use a temporary buffer
4030 REAL_DEV for the working space. Copy it to DEV before returning.
4031 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
4032 buffer cache consistent.
4033 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
4034 strncmp. The previous value was merely wrong.
4035 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
4036
4037 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
4038 FAT size is 12. The previous value was merely wrong.
4039
4040 * kern/main.c (pupa_main): Don't split the starting message from
4041 newlines.
4042
4043 * kern/term.c (pupa_putchar): Put CR after LF instead of before
4044 LF, because BIOS goes crazy about character attributes in this
4045 case.
4046
1cc73a62 40472003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
4048
4049 * include/i386/pc/util/biosdisk.h: New file.
4050 * util/i386/pc/biosdisk.c: Likewise.
4051 * util/i386/pc/pupa-setup.c: Likewise.
4052
4053 * Makefile.in (INCLUDE_DISTFILES): Added
4054 include/pupa/i386/pc/util/biosdisk.h.
4055 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
4056 directory util/i386/pc.
4057 (install-local): Added a rule for sbin_UTILITIES.
4058 (uninstall): Likewise.
4059
4060 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
4061
4062 * util/misc.c (xrealloc): New function.
4063 (pupa_malloc): Likewise.
4064 (pupa_free): Likewise.
4065 (pupa_realloc): Likewise.
4066 (pupa_stop): Likewise.
4067 (pupa_putchar): Likewise.
4068
4069 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
4070
4071 * include/pupa/util/misc.h (xrealloc): Declared.
4072
4073 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
4074 macro.
4075 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
4076 (PUPA_BOOT_MACHINE_BPB_END): ... this.
4077
4078 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
4079 [PUPA_UTIL] (pupa_fat_fini): Likewise.
4080
4081 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
4082 way should be implemented.
4083 [PUPA_UTIL] (pupa_fat_fini): Likewise.
4084
4085 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
4086 the size of NAME for safety.
4087 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
4088 0x88.
4089
4090 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
4091 (pupa_setup_SOURCES): Likewise.
4092
4093 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
4094
08b70fe8 40952002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
4096
4097 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
4098 bunch of pushl's from pusha, because this destroys the return
4099 value.
4100
62ddcc8f 41012002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
4102
4103 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
4104 This means that any missing prototypes could be fatal. Also, you
4105 must take care when writing assembly code. See the comments at
4106 the beginning of startup.S, for more details.
4107
4108 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
4109 compilation mechanism.
4110 (pupa_chainloader_real_boot): Likewise.
4111 (pupa_biosdisk_rw_int13_extensions): Likewise.
4112 (pupa_biosdisk_rw_standard): Likewise.
4113 (pupa_biosdisk_check_int13_extensions): Likewise.
4114 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
4115 (pupa_biosdisk_get_diskinfo_standard): Likewise.
4116 (pupa_get_memsize): Likewise.
4117 (pupa_get_mmap_entry): Likewise.
4118 (pupa_console_putchar): Likewise.
4119 (pupa_console_setcursor): Likewise.
4120 (pupa_getrtsecs): Use pushl instead of push.
4121
4122 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
4123 memory instead of the stack for a mmap entry, because some
4124 BIOSes may ignore the maximum size and overflow.
4125
4126 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
4127
4128 * genmk.rb (PModule#rule): Compile automatically generated
4129 sources with module-specific CFLAGS as well as other sources.
4130
9962ed99 41312002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4132
4133 * configure.ac: Check ld.
4134 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
4135 respectively, before checking endianness and sizes.
4136
4137 * Makefile.in (LD): New variable.
4138
abdfc3c5 41392002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4140
4141 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
4142
6a161fa9 41432002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4144
4145 * Changelog: New file.
4146