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