1
2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
3
* kern/env.c (grub_env_set): Check if ENV->VALUE instead of
4
ENV->NAME is NULL after allocating ENV->VALUE.
6
2005-12-25 Marco Gerards <marco@gnu.org>
8
* kern/env.c (grub_env_set): Rewritten the error handling code.
10
2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
12
* geninit.sh: Made more robust, and more portable.
14
2005-12-25 Marco Gerards <marco@gnu.org>
16
Add support for Apple HFS+ filesystems.
18
* fs/hfsplus.c: New file.
20
* DISTLIST: Added `fs/hfsplus.c'.
22
* conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
23
(hfsplus_mod_SOURCES): New variable.
24
(hfsplus_mod_CFLAGS): Likewise.
25
(hfsplus_mod_LDFLAGS): Likewise.
26
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
27
(grub_setup_SOURCES): Likewise.
28
(grub_mkdevicemap_SOURCES): Likewise.
29
(grub_emu_SOURCES): Likewise.
30
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
32
* fs/fshelp.c (grub_fshelp_log2blksize): New function.
34
* include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
36
2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
38
* DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
39
commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
40
include/grub/parser.h, include/grub/script.h, kern/parser.c,
41
kern/sparc64/cache.S, normal/execute.c, normal/function.c,
42
normal/lexer.c, normal/parser.y, normal/script.c, and
44
Removed kern/sparc64/cache.c.
46
* conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
47
grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
50
* configure.ac (AC_INIT): Bumped to 1.92.
52
2005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
54
* kern/err.c (grub_error_push): Added new function to support error
56
(grub_error_pop): Likewise.
57
(grub_error_stack_items): New local variable to support error stacks.
58
(grub_error_stack_pos): Likewise.
59
(grub_error_stack_assert): Likewise.
60
(GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
62
(grub_print_error): Added support to print errors from error stack.
64
* include/grub/err.h (grub_error_push): Added function prototype.
65
(grub_error_pop): Likewise.
67
2005-12-09 Hollis Blanchard <hollis@penguinppc.org>
69
* configure.ac: Accept `powerpc64' as host_cpu.
70
(amd64): Rename to `biarch32'.
72
* kern/powerpc/cache.S (grub_arch_sync_caches): Handle
73
non-cacheline-aligned addresses.
75
* kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
76
(grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
77
if `size' is non-zero.
79
2005-12-03 Marco Gerards <mgerards@xs4all.nl>
81
* conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
82
and `cd' to make sure the filename is not prefixed with a
84
(pkgdata_MODULES): Add `gpt.mod'.
85
(gpt_mod_SOURCES): New variable.
86
(gpt_mod_CFLAGS): Likewise.
87
(gpt_mod_LDFLAGS): Likewise.
89
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
91
* include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
94
* partmap/gpt.c: New file.
96
* partmap/pc.c (pc_partition_map_iterate): Don't continue when a
97
GPT partition map is detected.
99
2005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
101
* commands/i386/pc/play.c: New file.
102
* conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
103
(play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
106
2005-11-27 Marco Gerards <mgerards@xs4all.nl>
108
* include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
109
((unused))' to silence gcc warning.
111
2005-11-26 Hollis Blanchard <hollis@penguinppc.org>
113
* configure.ac: Correct `AC_PROG_YACC' test.
115
2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
117
* util/powerpc/ieee1275/grub-install.in: Run the mount point
118
check before installing files.
120
2005-11-22 Mike Small <smallm@panix.com>
122
* util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
123
number regex so multidigit numbers are recognized correctly.
125
2005-11-22 Mike Small <smallm@panix.com>
127
* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
128
debugging message before attempting to claim memory.
129
(grub_rescue_cmd_initrd): Add a claim debugging message and try
130
multiple addresses in case of failure.
132
2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
134
* term/tparm.c (get_space): Remove empty `if' statement.
136
* fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
138
* kern/parser.c (check_varstate): Rename `state' to 's'.
140
2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
142
* partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
143
variable definitions to the beginning of each function. Sort stack
145
(find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
146
`buf' argument to `char *'.
148
2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
150
* conf/powerpc-ieee1275.rmk: Include conf/common.mk.
151
(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
152
minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
153
hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
154
help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
155
sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
156
configfile.mod, search.mod, gzio.mod and test.mod.
157
(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
158
(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
159
(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
160
(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
161
(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
162
(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
163
(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
164
(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
165
(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
166
(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
167
(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
168
(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
169
(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
170
(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
171
(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
172
(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
173
(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
174
(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
175
(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
176
(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
177
(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
178
(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
179
(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
181
* conf/common.mk (grub_modules_init.lst): Use `find' instead of
183
(pkgdata_MODULES): Add test.mod.
185
2005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
187
* genmk.rb: Fixed list rules moved to Makefile.in. Recognise
188
appending to variables with "+=".
189
(PModule): Use full pathname to generate *.lst filenames.
191
* Makefile.in: Fixed list rules moved from genmk.rb.
192
(.DELETE_ON_ERROR): New special target.
193
(RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
195
* conf/i386-pc.rmk: Include conf/common.mk.
196
(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
197
minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
198
hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
199
help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
200
sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
201
configfile.mod, search.mod, gzio.mod and test.mod.
202
(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
203
(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
204
(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
205
(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
206
(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
207
(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
208
(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
209
(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
210
(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
211
(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
212
(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
213
(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
214
(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
215
(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
216
(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
217
(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
218
(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
219
(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
220
(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
221
(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
222
(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
223
(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
224
(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
226
* conf/common.rmk: ... to here. New file.
228
* conf/common.mk: New file.
230
2005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
232
* conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
233
(grub_script.tab.c): ... here.
235
* conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
236
(grub_script.tab.c): ... here.
238
* conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
239
(grub_script.tab.c): ... here.
241
* normal/command.c (grub_command_find): Fixed a memory leak of
242
MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
244
2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
246
* include/grub/symbol.h: (FUNCTION): Use double quotes instead of
247
"@" which marks the start of a comment on ARM.
248
(VARIABLE): Likewise.
250
2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
252
Add support for Linux/ADFS partition tables.
254
* partmap/acorn.c: New file.
256
* include/grub/acorn_filecore.h: Likewise.
258
* DISTLIST: Added `partmap/acorn.c' and
259
`include/grub/acorn_filecore.h'.
261
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
263
(pkgdata_MODULES): Add `acorn.mod'.
264
(acorn_mod_SOURCES): New variable.
265
(acorn_mod_CFLAGS): Likewise.
267
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
269
(pkgdata_MODULES): Add `acorn.mod'.
270
(acorn_mod_SOURCES): New variable.
271
(acorn_mod_CFLAGS): Likewise.
273
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
274
(pkgdata_MODULES): Add `acorn.mod'.
275
(acorn_mod_SOURCES): New variable.
276
(acorn_mod_CFLAGS): Likewise.
277
(acorn_mod_LDFLAGS): Likewise.
279
* include/types.h (grub_disk_addr_t): New typedef.
281
2005-11-13 Marco Gerards <mgerards@xs4all.nl>
283
* geninit.sh: New file.
285
* geninitheader.sh: Likewise.
287
* commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
288
* commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
289
* commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
290
* commands/configfile.c (grub_configfile_init)
291
(grub_configfile_fini): Likewise.
292
* commands/default.c (grub_default_init, grub_default_fini):
294
* commands/help.c (grub_help_init, grub_help_fini): Likewise.
295
* commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
296
* commands/search.c (grub_search_init, grub_search_fini): Likewise.
297
* commands/terminal.c (grub_terminal_init, grub_terminal_fini):
299
* commands/test.c (grub_test_init, grub_test_fini): Likewise.
300
* commands/timeout.c (grub_timeout_init, grub_timeout_fini):
302
* commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
303
* commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
305
* commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
307
* commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
309
* disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
310
* fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
311
* fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
312
* fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
313
* fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
314
* fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
315
* fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
316
* fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
317
* fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
318
* fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
319
* fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
320
* normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
321
* partmap/amiga.c (grub_amiga_partition_map_init)
322
(grub_amiga_partition_map_fini): Likewise.
323
* partmap/apple.c (grub_apple_partition_map_init)
324
(grub_apple_partition_map_fini): Likewise.
325
* partmap/pc.c (grub_pc_partition_map_init)
326
(grub_pc_partition_map_fini): Likewise.
327
* partmap/sun.c (grub_sun_partition_map_init,
328
grub_sun_partition_map_fini): Likewise.
329
* term/terminfo.c (grub_terminal_init, grub_terminal_fini):
332
* util/grub-emu.c: Include <grub_modules_init.h>.
333
(main): Don't initialize and de-initialize any modules directly,
334
use `grub_init_all' and `grub_fini_all' instead.
336
* term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
337
`grub_vesafb_mod_init'.
338
(grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
340
* term/i386/pc/vga.c (grub_vga_init): Renamed to
341
`grub_vga_mod_init'. Updated all users.
342
(grub_vga_fini): Renamed to `grub_vga_mod_fini'.
344
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
345
(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
348
* include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
349
Generate a function to initialize the module in utilities.
351
(GRUB_MOD_FINI): Add argument `name'. Generate a function to
352
initialize the module in utilities. Updated all callers.
354
2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
356
* term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
357
escape sequence and a literal ^L to clear the screen.
359
* commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
360
when returning from Open Firmware.
362
2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
364
* term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
365
(grub_ofconsole_height): Likewise.
366
(grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
367
manually insert a '\n'.
368
(grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
369
`grub_ofconsole_height'. Return early if these are already set.
371
2005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
373
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
374
`commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
375
`normal/execute.c', `normal/lexer.c', `io/gzio.c',
376
`kern/parser.c', `grub_script.tab.c', `normal/function.c'
377
and `normal/script.c'.
378
(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
379
`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
380
(test_mod_SOURCES): New variable.
381
(test_mod_CFLAGS): Likewise.
382
(test_mod_LDFLAGS): Likewise.
383
(pkgdata_MODULES): Add `test.mod'.
384
(grub_script.tab.c): New rule.
385
(grub_script.tab.h): Likewise.
387
2005-11-07 Marco Gerards <mgerards@xs4all.nl>
389
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
390
`commands/test.c', `normal/execute.c', `normal/lexer.c',
391
`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
392
(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
393
`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
394
(test_mod_SOURCES): New variable.
395
(test_mod_CFLAGS): Likewise.
396
(pkgdata_MODULES): Add `test.mod'.
397
(grub_script.tab.c): New rule.
398
(grub_script.tab.h): Likewise.
400
2005-11-06 Marco Gerards <mgerards@xs4all.nl>
402
Add initial scripting support.
404
* commands/test.c: New file.
405
* include/grub/script.h: Likewise.
406
* normal/execute.c: Likewise.
407
* normal/function.c: Likewise.
408
* normal/lexer.c: Likewise.
409
* normal/parser.y: Likewise.
410
* normal/script.c: Likewise.
412
* configure.ac: Add `AC_PROG_YACC' test.
414
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
415
`normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
416
`normal/function.c' and `normal/script.c'.
417
(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
418
`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
419
(test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
421
(pkgdata_MODULES): Add `test.mod'.
422
(grub_script.tab.c): New rule.
423
(grub_script.tab.h): Likewise.
425
* include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
427
* include/grub/normal.h (grub_test_init): New prototype.
428
(grub_test_fini): Likewise.
430
* normal/command.c: Include <grub/script.h>.
431
(grub_command_execute): Rewritten.
433
* util/grub-emu.c (main): Call `grub_test_init' and
436
2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
438
* kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
440
* term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
441
there are no pending characters.
443
2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
445
* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
446
`grub_strndup' to drop device arguments. Replace unnecessary
447
`grub_strndup' with `grub_strdup'.
449
2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
451
* kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
452
`debug' environment variable has been set.
454
2005-11-02 Hollis Blanchard <hollis@penguinppc.org>
456
* Makefile.in (install-local): Use $(DATA).
457
(uninstall): Likewise.
458
* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
459
(sbin_UTILITIES): ... to here.
460
(sbin_SCRIPTS): New variable.
461
(grub_install_SOURCES): New variable.
462
* util/powerpc/ieee1275/grub-install.in: New file.
463
* util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
465
(add_segments): Call `grub_util_get_path'.
467
2005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
469
From Timothy Baldwin:
470
* commands/ls.c (grub_ls_list_files): Close FILE with
472
* kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
474
2005-10-24 Marco Gerards <mgerards@xs4all.nl>
476
* include/grub/parser.h: New file.
478
* kern/parser.c: Likewise.
480
* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
481
(grub_setup_SOURCES): Likewise.
482
(grub_probefs_SOURCES): Likewise.
483
(grub_emu_SOURCES): Likewise.
484
(kernel_img_HEADERS): Add `parser.h'.
486
* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
487
(grub_emu_SOURCES): Add `kern/parser.c'.
488
(grubof_SOURCES): Likewise.
490
* conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
491
(grubof_SOURCES): Add `kern/parser.c'.
493
* include/grub/misc.h (grub_split_cmdline): Removed prototype.
495
* kern/misc.c (grub_split_cmdline): Removed function.
497
* kern/rescue.c: Include <grub/parser.h>.
498
(grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
499
of `grub_split_cmdline'.
501
* normal/command.c: Include <grub/parser.h>.
502
(grub_command_execute): Use `grub_parser_split_cmdline' instead
503
of `grub_split_cmdline'.
505
* normal/completion.c: Include <grub/parser.h>.
506
(cmdline_state): New variable.
507
(iterate_dir): End the filename with a quote depending on the
509
(get_state): new function.
510
(grub_normal_do_completion): Use `grub_parser_split_cmdline' to
511
split the arguments and determine the current argument. When the
512
argument string is not quoted, escape all spaces.
514
2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
516
* normal/sparc64/setjmp.S: New file.
518
2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
520
* include/grub/sparc64/libgcc.h: New file.
521
* conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
522
(normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
523
normal/sparc64/setjmp.c.
525
2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
527
* kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
528
* kern/sparc64/cache.S: New file.
529
* kern/sparc64/cache.c: Removed.
530
* conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
531
(COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
533
(COMMON_LDFLAGS): Add -melf64_sparc.
534
(grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
535
(grubof_SOURCES): Use cache.S instead of cache.c.
536
(grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
537
--oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
538
(pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
540
(normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
541
(_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
542
(linux_mod_CFLAGS): Commented out.
543
(_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
544
out because module isn't built.
545
(fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
546
(ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
547
(jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
548
(hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
549
(ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
550
(font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
551
(pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
552
(suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
553
(help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
554
(configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
555
(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
556
(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
557
(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
558
(gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
560
2005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
562
* util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
563
grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
564
longer, because HFS should not be used on PC.
566
2005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
568
* io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
569
consistently within the loop.
571
2005-10-15 Marco Gerards <mgerards@xs4all.nl>
573
* fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
574
directory can not be read.
576
2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
578
* configure.ac (AC_INIT): Increase the version number to 1.91.
580
* DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
581
include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
582
term/i386/pc/serial.c.
584
2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
586
* kern/file.c (grub_file_seek): Seeking to an offset equal to a
587
file size must be permitted.
589
* kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
592
2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
594
* fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
596
Call the hook with a NUL-terminated filename.
597
(grub_xfs_mount): Use grub_be_to_cpu32 instead of
600
* kern/term.c (cursor_state): New variable.
601
(grub_term_set_current): Reset the cursor state on a new
603
(grub_setcursor): Rewritten to use CURSOR_STATE.
604
(grub_getcursor): New function.
606
* include/grub/term.h (grub_getcursor): New prototype.
608
* io/gzio.c (test_header): Align BUF for accessing it as 32-bit
609
integers on ARM. Reported by Timothy Baldwin
610
<T.E.Baldwin99@members.leeds.ac.uk>.
612
2005-10-11 Marco Gerards <mgerards@xs4all.nl>
614
* fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
616
(grub_sfs_dir): Likewise.
618
2005-10-09 Marco Gerards <mgerards@xs4all.nl>
620
Add support for the SFS filesystem.
622
* fs/sfs.c: New file.
624
* DISTLIST: Added `fs/sfs.c'.
626
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
627
(grub_probefs_SOURCES): Likewise.
628
(grub_emu_SOURCES): Likewise.
629
(pkgdata_MODULES): Add `sfs.mod'.
630
(sfs_mod_SOURCES): New variable.
631
(sfs_mod_CFLAGS): Likewise.
632
(sfs_mod_LDFLAGS): Likewise.
634
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
635
(pkgdata_MODULES): Add `sfs.mod'.
636
(sfs_mod_SOURCES): New variable.
637
(sfs_mod_CFLAGS): Likewise.
639
* util/grub-emu.c (main): Call `grub_sfs_init' and
642
* include/grub/fs.h (grub_sfs_init): New prototype.
643
(grub_sfs_fini): Likewise.
645
2005-10-07 Marco Gerards <mgerards@xs4all.nl>
647
Add support for the AFFS filesystem.
649
* fs/affs.c: New file.
651
* DISTLIST: Added `fs/affs.c'.
653
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
654
(grub_probefs_SOURCES): Likewise.
655
(grub_emu_SOURCES): Likewise.
656
(pkgdata_MODULES): Add `affs.mod'.
657
(affs_mod_SOURCES): New variable.
658
(affs_mod_CFLAGS): Likewise.
659
(affs_mod_LDFLAGS): Likewise.
661
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
662
(pkgdata_MODULES): Add `affs.mod'.
663
(affs_mod_SOURCES): New variable.
664
(affs_mod_CFLAGS): Likewise.
666
* util/grub-emu.c (main): Call `grub_affs_init' and
669
* include/grub/fs.h (grub_affs_init): New prototype.
670
(grub_affs_fini): Likewise.
672
2005-10-01 Marco Gerards <mgerards@xs4all.nl>
674
* fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
676
2005-10-01 Marco Gerards <mgerards@xs4all.nl>
678
* configure.ac: Accept `x86_64' as host_cpu. In that case add
681
* genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
684
* conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
685
(COMMON_LDFLAGS): New variable.
686
(kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
687
(_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
688
(ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
689
(hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
690
(xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
691
(normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
692
(terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
693
(cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
694
(halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
695
(terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
696
(multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
697
(pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
698
(default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
699
(vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
700
(vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
702
(normal_mod_ASFLAGS): Add `-m32'.
704
* include/grub/types.h (grub_host_addr_t, grub_host_off_t)
705
(grub_host_size_t, grub_host_ssize_t): New types.
706
(grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
707
dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
708
`GRUB_HOST_SIZEOF_VOID_P'.
710
* include/grub/kernel.h (struct grub_module_header): Type of
711
member offset changed to `grub_host_off_t'. Type of member size
712
changed to `grub_host_size_t'.
713
(struct grub_module_info): Type of member offset changed to
714
`grub_host_off_t'. Type of member size changed to
717
2005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
719
Make GRUB's kernel compliant to Multiboot Specification.
721
* kern/i386/pc/startup.S (multiboot_header): New label.
722
(multiboot_entry): Likewise.
723
(multiboot_trampoline): Likewise.
725
* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
728
* fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
729
put parentheses after a question mark.
730
[!GRUB_UTIL] (my_mod): New variable.
732
* util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
734
2005-09-28 Marco Gerards <mgerards@xs4all.nl>
736
Adds support for the XFS filesystem. Btrees are not supported
739
* fs/xfs.c: New file.
741
* DISTLIST: Added `fs/xfs.c'.
743
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
744
(grub_probefs_SOURCES): Likewise.
745
(grub_emu_SOURCES): Likewise.
746
(pkgdata_MODULES): Add `xfs.mod'.
747
(xfs_mod_SOURCES): New variable.
748
(xfs_mod_CFLAGS): Likewise.
750
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
751
(pkgdata_MODULES): Add `xfs.mod'.
752
(xfs_mod_SOURCES): New variable.
753
(xfs_mod_CFLAGS): Likewise.
755
* util/grub-emu.c (main): Call `grub_xfs_init' and
758
* include/grub/fs.h (grub_xfs_init): New prototype.
759
(grub_xfs_fini): Likewise.
762
2005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
764
* video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
765
color modes, allow greater than 16 colors to be configured as
768
2005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
770
* normal/completion.c (complete_arguments): Add the qualifier
773
From Omniflux <omniflux+lists@omniflux.com>:
774
* include/grub/terminfo.h: New file.
775
* include/grub/tparm.h: Likewise.
776
* include/grub/i386/pc/serial.h: Likewise.
777
* term/terminfo.c: Likewise.
778
* term/tparm.c: Likewise.
779
* term/i386/pc/serial.c: Likewise.
780
* conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
782
(terminfo_mod_SOURCES): New variable.
783
(terminfo_mod_CFLAGS): Likewise.
784
(serial_mod_SOURCES): Likewise.
785
(serial_mod_CFLAGS): Likewise.
787
2005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
789
* DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
790
boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
791
and kern/powerpc/ieee1275/cmain.c, respectively.
793
* boot/powerpc/ieee1275/crt0.S: Moved to ...
794
* kern/powerpc/ieee1275/crt0.S: ... here.
796
* boot/powerpc/ieee1275/cmain.c: Moved to ...
797
* kern/powerpc/ieee1275/cmain.c: ... here.
799
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
800
kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
801
instead of boot/powerpc/ieee1275/crt0.S and
802
boot/powerpc/ieee1275/cmain.c, respectively.
804
* boot/i386/pc/boot.S (lba_mode): Do not store the total number of
805
sectors. It was not used anyway.
807
2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
809
* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
810
`unused parameter' warning.
812
2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
814
* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
816
(grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
819
2005-08-28 Marco Gerards <metgerards@student.han.nl>
821
* include/grub/normal.h (enum grub_completion_type): Added
822
`GRUB_COMPLETION_TYPE_ARGUMENT'.
824
* normal/cmdline.c (print_completion): Handle
825
the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
826
* normal/menu_entry.c (store_completion): Likewise.
828
* normal/completion.c (complete_arguments): New function.
829
(grub_normal_do_completion): Call `complete_arguments' when the
830
current words start with a dash.
832
2005-08-27 Marco Gerards <metgerards@student.han.nl>
834
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
835
`gzio.mod' instead of `io.mod').
837
2005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
839
* gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
840
(DISTDIRS): Added io and video.
841
Rewrite the search routine to make an output consistently.
843
* DISTLIST: Added conf/sparc64-ieee1275.mk,
844
conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
845
include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
846
io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
847
kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
848
util/powerpc/ieee1275/misc.c.
850
* include/grub/gzio.h: New file.
851
* io/gzio.c: Likewise.
853
* kern/file.c (grub_file_close): Call grub_device_close only if
854
FILE->DEVICE is not NULL.
856
* include/grub/mm.h [!NULL] (NULL): New macro.
858
* include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
860
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
861
(pkgdata_MODULES): Added gzio.mod.
862
(gzio_mod_SOURCES): New variable.
863
(gzio_mod_CFLAGS): Likewise.
865
* conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
866
(pkgdata_MODULES): Added gzio.mod.
867
(gzio_mod_SOURCES): New variable.
868
(gzio_mod_CFLAGS): Likewise.
870
* commands/cat.c: Include grub/gzio.h.
871
(grub_cmd_cat): Use grub_gzfile_open instead of
874
* commands/cmp.c: Include grub/gzio.h.
875
(grub_cmd_cmp): Use grub_gzfile_open instead of
878
* loader/i386/pc/multiboot.c: Include grub/gzio.h.
879
(grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
881
(grub_rescue_cmd_module): Likewise.
883
2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
885
* conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
886
kern/sparc64/ieee1275/init.c because it contains _start.
887
* conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
889
2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
891
* configure.ac: Add support for sparc64 host with ieee1275
893
* configure: Generated from configure.ac.
894
* disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
896
(grub_ofdisk_read): Likewise.
897
(grub_ofdisk_open): Use %p to print pointer values, and cast the
898
pointers as (void *) to remove a warning.
899
(grub_ofdisk_close): Likewise.
900
(grub_ofdisk_read): Likewise.
901
* kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
902
returns, so make it return void to remove a warning.
903
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
904
Corresponding prototype change.
905
* kern/mm.c (grub_mm_init_region): Use %p to print pointer
906
values, and cast the pointers as (void *) to remove a warning.
907
(grub_mm_dump): Likewise.
908
* conf/sparc64-ieee1275.mk: New file.
909
* conf/sparc64-ieee1275.rmk: Likewise.
910
* include/grub/sparc64/setjmp.h: Likewise.
911
* include/grub/sparc64/types.h: Likewise.
912
* include/grub/sparc64/ieee1275/console.h: Likewise.
913
* include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
914
* include/grub/sparc64/ieee1275/kernel.h: Likewise.
915
* include/grub/sparc64/ieee1275/time.h: Likewise.
916
* kern/sparc64/cache.c: Likewise.
917
* kern/sparc64/dl.c: Likewise.
918
* kern/sparc64/ieee1275/init.c: Likewise.
919
* kern/sparc64/ieee1275/openfw.c: Likewise.
921
2005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
923
* util/console.c (grub_ncurses_putchar): If C is greater than
924
0x7f, set C to a question mark.
925
(grub_ncurses_getcharwidth): New function.
926
(grub_ncurses_term): Specify grub_ncurses_getcharwidth as
929
* normal/menu.c (print_entry): Made aware of Unicode. First,
930
convert TITLE to UCS-4, and predict the cursor position by
933
* include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
935
* kern/misc.c (grub_utf16_to_utf8): Likewise.
937
2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
939
* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
940
the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
943
* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
944
file by the option BOOT_IMAGE. Use grub_stpcpy instead of
945
grub_strcpy and grub_strlen. Take it into account that a space
946
character is inserted as a delimiter.
948
2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
950
* partmap/pc.c (pc_partition_map_iterate): Include the value of an
951
invalid magic in thre error.
953
* commands/search.c: New file.
955
* util/grub-emu.c (main): Call grub_search_init and
958
* kern/rescue.c (grub_rescue_print_disks): Removed.
959
(grub_rescue_print_devices): New function.
960
(grub_rescue_cmd_ls): Use grub_device_iterate with
961
grub_rescue_print_devices instead of grub_disk_dev_iterate with
962
grub_rescue_print_disks.
964
* kern/partition.c (grub_partition_iterate): Return the result of
965
PARTMAP->ITERATE instead of GRUB_ERRNO.
967
* kern/device.c: Include grub/partition.h.
968
(grub_device_iterate): New function.
970
* include/grub/partition.h (grub_partition_iterate): Return int
971
instead of grub_err_t.
973
* include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
975
[GRUB_UTIL] (grub_search_fini): Likewise.
977
* include/grub/device.h (grub_device_iterate): New prototype.
979
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
981
(pkgdata_MODULES): Added search.mod.
982
(search_mod_SOURCES): New variable.
983
(search_mod_CFLAGS): Likewise.
985
* conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
986
(pkgdata_MODULES): Added search.mod.
987
(search_mod_SOURCES): New variable.
988
(search_mod_CFLAGS): Likewise.
990
* commands/ls.c (grub_ls_list_disks): Renamed to ...
991
(grub_ls_list_devices): ... this, and use grub_device_iterate.
994
* DISTLIST: Added commands/search.c.
996
2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
998
* kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
1000
(grub_getcharwidth): New function.
1002
* kern/misc.c (grub_utf8_to_ucs4): New function.
1004
* include/grub/term.h (struct grub_term): Added a new member
1006
(grub_getcharwidth): New prototype.
1008
* include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
1010
* term/i386/pc/console.c (map_char): New function. Segregated from
1011
grub_console_putchar.
1012
(grub_console_putchar): Use map_char.
1013
(grub_console_getcharwidth): New function.
1014
(grub_console_term): Specified grub_console_getcharwidth as
1017
* term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
1018
(grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
1020
* term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
1022
(grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
1023
on grub_strtoul completely.
1024
(write_char): Declare local variables in the beginning of the
1026
(grub_vesafb_getcharwidth): New function.
1027
(grub_vesafb_term): Specified grub_vesafb_getcharwidth as
1030
2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
1032
* DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
1033
commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
1034
commands/i386/pc/vbetest.c.
1036
* video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
1037
call grub_vbe_get_controller_info again, because the returned
1038
information is volatile.
1039
(grub_vbe_set_video_mode): Mostly rewritten.
1040
(grub_vbe_get_video_mode): Use grub_vbe_probe and use
1041
grub_vbe_status_t correctly.
1042
(grub_vbe_get_video_mode_info): Likewise.
1043
(grub_vbe_set_pixel_rgb): Use a switch statement rather than
1044
several if statements.
1046
* commands/i386/pc/vbe_list_modes.c: Renamed to ...
1047
* commands/i386/pc/vbeinfo.c: ... this.
1049
* commands/i386/pc/vbe_test.c: Renamed to ...
1050
* commands/i386/pc/vbetest.c: ... this.
1052
* commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
1054
(grub_cmd_vbeinfo): ... this. Save video modes before
1055
iterating. Skip a video mode, if it is not available, not enough
1056
information is given or it is monochrome. Show the memory
1057
model. Leave the interpretation of MODEVAR to grub_strtoul
1059
(GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
1060
(GRUB_MOD_FINI): Likewise.
1062
* commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
1063
(grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
1064
grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
1065
duplicated grub_env_get. Leave the interpretation of MODEVAR to
1066
grub_strtoul completely.
1068
(GRUB_MOD_INIT): Rename vbe_test to vbetest.
1069
(GRUB_MOD_FINI): Likewise.
1071
* normal/misc.c: Include grub/mm.h.
1073
* conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
1074
vbe_list_modes with vbetest.mod and vbeinfo.mod.
1075
(vbe_list_modes_mod_SOURCES): Removed.
1076
(vbe_list_modes_mod_CFLAGS): Likewise.
1077
(vbe_test_mod_SOURCES): Likewise.
1078
(vbe_test_mod_CFLAGS): Likewise.
1079
(vbeinfo_mod_SOURCES): New variable.
1080
(vbeinfo_mod_CFLAGS): Likewise.
1081
(vbetest_mod_SOURCES): Likewise.
1082
(vbetest_mod_CFLAGS): Likewise.
1084
2005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
1086
* normal/misc.c: New file.
1088
* DISTLIST: Added normal/misc.c.
1090
* partmap/amiga.c (amiga_partition_map_iterate): Add an argument
1091
DISK to HOOK. Call HOOK with DISK.
1092
* partmap/apple.c (apple_partition_map_iterate): Likewise.
1093
* partmap/pc.c (pc_partition_map_iterate): Likewise.
1094
* partmap/sun.c (sun_partition_map_iterate): Likewise.
1096
* normal/menu_entry.c (struct screen): Added a new member
1098
(completion_buffer): New global variable.
1099
(make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
1100
(store_completion): New function.
1101
(complete): Likewise.
1102
(clear_completions): Likewise.
1103
(grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
1104
call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
1105
a tab, call complete.
1107
* normal/completion.c (disk_dev): Removed.
1108
(print_simple_completion): Likewise.
1109
(print_partition_completion): Likewise.
1110
(print_func): New global variable.
1111
(add_completion): Do not take the arguments WHAT or PRINT any
1112
longer. Added a new argument TYPE. Instead of printing directly,
1113
call PRINT_FUNC if not NULL.
1114
All callers changed.
1115
(complete_device): Use a local variable DEV instead of
1116
DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
1117
(grub_normal_do_completion): Take a new argument HOOK. Do not
1118
initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
1119
empty string, return NULL instead.
1120
All callers changed.
1122
* normal/cmdline.c (print_completion): New function.
1124
* kern/partition.c (grub_partition_iterate): Add an argument DISK
1126
All callers changed.
1128
* kern/disk.c (grub_print_partinfo): Removed.
1130
* include/grub/partition.h (struct grub_partition_map): Add a new
1131
argument DISK into HOOK of ITERATE.
1132
(grub_partition_iterate): Add a new argument DISK to HOOK.
1134
* include/grub/normal.h (enum grub_completion_type): New enum.
1135
(grub_completion_type_t): New type.
1136
(GRUB_COMPLETION_TYPE_COMMAND): New constant.
1137
(GRUB_COMPLETION_TYPE_DEVICE): Likewise.
1138
(GRUB_COMPLETION_TYPE_PARTITION): Likewise.
1139
(GRUB_COMPLETION_TYPE_FILE): Likewise.
1140
(grub_normal_do_completion): Added a new argument HOOK.
1141
(grub_normal_print_device_info): New prototype.
1143
* include/grub/disk.h (grub_print_partinfo): Removed.
1145
* conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
1146
(normal_mod_SOURCES): Likewise.
1147
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1148
(normal_mod_SOURCES): Likewise.
1150
* commands/ls.c (grub_ls_list_disks): Use
1151
grub_normal_print_device_info instead of grub_print_partinfo. Free
1153
(grub_ls_list_files): Use grub_normal_print_device_info instead of
1154
duplicating the code.
1156
2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
1158
* commands/i386/pc/vbe_list_modes.c: Update source formatting to
1159
follow GCS more precisely.
1160
* commands/i386/pc/vbe_test.c: Likewise.
1161
* include/grub/i386/pc/vbe.h: Likewise.
1162
* term/i386/pc/vesafb.c: Likewise.
1163
* video/i386/pc/vbe.c: Likewise.
1165
2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
1167
* DISTLIST: Added term/i386/pc/vesafb.c
1168
DISTLIST: Added video/i386/pc/vbe.c
1169
DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
1170
DISTLIST: Added commands/i386/pc/vbe_test.c.
1171
* commands/i386/pc/vbe_list_modes.c: New file.
1172
* commands/i386/pc/vbe_test.c: Likewise.
1173
* term/i386/pc/vesafb.c: Likewise.
1174
* video/i386/pc/vbe.c: Likewise.
1175
* include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
1176
(grub_vbe_probe) Added prototype.
1177
(grub_vbe_set_video_mode) Likewise.
1178
(grub_vbe_get_video_mode) Likewise.
1179
(grub_vbe_get_video_mode_info) Likewise.
1180
(grub_vbe_set_pixel_rgb) Likewise.
1181
(grub_vbe_set_pixel_index) Likewise.
1182
* conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
1183
(pkgdata_MODULES): Added vesafb.mod.
1184
(pkgdata_MODULES): Added vbe_list_modes.mod.
1185
(pkgdata_MODULES): Added vbe_test.mod.
1186
(vbe_mod_SOURCES): Added.
1187
(vbe_mod_CFLAGS): Likewise.
1188
(vesafb_mod_SOURCES): Likewise.
1189
(vesafb_mod_CFLAGS): Likewise.
1190
(vbe_list_modes_mod_SOURCES): Likewise.
1191
(vbe_list_modes_mod_CFLAGS): Likewise.
1192
(vbe_test_mod_SOURCES): Likewise.
1193
(vbe_test_mod_CFLAGS): Likewise.
1195
2005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
1197
* normal/command.c (grub_command_execute): If INTERACTIVE is
1198
false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
1199
CMDLINE. Disable the pager if INTERACTIVE is true.
1200
All callers are changed.
1202
* normal/main.c (grub_normal_execute): Read command.lst and fs.lst
1203
before reading a config file.
1204
* normal/main.c (read_config_file): Even if a command is not
1205
found, register it if it is within an entry.
1207
* util/grub-emu.c: Include sys/types.h and unistd.h.
1208
(options): Added --hold.
1209
(struct arguments): Added a new member "hold".
1210
(parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
1212
(main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
1213
cleared by a debugger, if it is not zero.
1215
* include/grub/normal.h (grub_command_execute): Add an argument
1218
2005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
1220
* DISTLIST: Added include/grub/i386/pc/vbe.h.
1222
2005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
1224
* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
1225
program with another one, because the old one didn't detect a bug
1226
in gcc-3.4. Always use regparm 2, because the new test is still
1227
not enough for gcc-4.0. Someone must investigate a simple test
1228
case which detects a bug in gcc-4.0.
1230
2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
1232
* DISTLIST: Added normal/completion.c.
1234
* normal/completion.c: New file.
1236
* term/i386/pc/console.c (grub_console_getwh): New function.
1237
(grub_console_term): Assign grub_console_getwh to getwh.
1239
* normal/cmdline.c (grub_tab_complete): Removed. Now the same
1240
function is defined in normal/completion.c as
1241
grub_normal_do_completion.
1242
(grub_cmdline_get): Use grub_normal_do_completion instead of
1245
* kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
1246
returns non-zero, otherwise return 0.
1247
(grub_partition_iterate): First, probe the partition map. Then,
1248
call ITERATE only for this partition map.
1250
* kern/misc.c (grub_strncmp): Rewritten.
1252
* kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
1253
returns non-zero. Otherwise return 0.
1255
* include/grub/partition.h (grub_partition_map_iterate): Return
1256
int instead of void.
1258
* include/grub/normal.h (grub_normal_do_completion): New prototype.
1260
* include/grub/misc.h (grub_strncmp): Change the type of N to
1263
* include/grub/disk.h (grub_disk_dev_iterate): Return int instead
1266
* normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
1267
unsigned explictly before comparing it with I.
1269
* kern/main.c (grub_env_write_root): Add the attribute unused into
1272
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
1273
normal/completion.c.
1274
(normal_mod_SOURCES): Likewise.
1275
* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1276
(normal_mod_SOURCES): Likewise.
1278
* normal/command.c (grub_iterate_commands): If ITERATE returns
1279
non-zero, return one immediately.
1281
2005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
1283
* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
1284
* kern/i386/pc/startup.S: Updated Global Descriptor table's
1286
(grub_vbe_get_controller_info): New function.
1287
(grub_vbe_get_mode_info): Likewise.
1288
(grub_vbe_set_mode): Likewise.
1289
(grub_vbe_get_mode): Likewise.
1290
(grub_vbe_set_memory_window): Likewise.
1291
(grub_vbe_get_memory_window): Likewise.
1292
(grub_vbe_set_scanline_length): Likewise.
1293
(grub_vbe_get_scanline_length): Likewise.
1294
(grub_vbe_set_display_start): Likewise.
1295
(grub_vbe_get_display_start): Likewise.
1296
(grub_vbe_set_palette_data): Likewise.
1297
* include/grub/i386/pc/vbe.h: New file.
1299
2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1301
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
1302
kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
1303
* DISTLIST: Likewise.
1304
* kern/ieee1275/of.c: Moved to ...
1305
* kern/ieee1275/ieee1275.c: ... here.
1307
2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1309
* term/ieee1275/ofconsole.c: Include <grub/mm.h>.
1310
(grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
1311
Pass 0 as `end' parameter to grub_strtoul().
1313
2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
1315
* include/grub/powerpc/ieee1275/console.h: Do not include
1316
<grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
1318
(grub_console_cur_color): Remove i386-specific prototype.
1319
(grub_console_real_putchar): Likewise.
1320
(grub_console_checkkey): Likewise.
1321
(grub_console_getkey): Likewise.
1322
(grub_console_getxy): Likewise.
1323
(grub_console_gotoxy): Likewise.
1324
(grub_console_cls): Likewise.
1325
(grub_console_setcursor): Likewise.
1326
* kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
1327
Include <grub/machine/console.h>.
1328
* term/ieee1275/ofconsole.c: Likewise.
1330
2005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
1332
* Makefile.in (LIBLZO): New variable.
1334
* configure.ac: Check for LZO version 2.
1336
* util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
1337
lzo/lzo1x.h instead of lzo1x.h.
1339
* conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
1342
* util/i386/pc/grub-setup.c (main): Do not free PREFIX
1343
twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
1345
* partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
1346
copying the data from PARTITION to P.
1348
2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1350
* kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
1351
negative, unload the module.
1353
* util/i386/pc/grub-setup.c (setup): The name of the PC partition
1354
map is "pc_partition_map" but not "pc".
1355
(usage): Fix the description. The options are --boot-image and
1356
--core-image but not --boot-file or --core-file.
1357
(main): If not specified explicitly, make BOOT_FILE and CORE_FILE
1358
based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
1361
* util/i386/pc/grub-install.in: Do not specify --boot-file or
1362
--core-file. Specify INSTALL_DEVICE as an argument.
1364
* util/console.c: Include config.h.
1365
[HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
1366
[HAVE_NCURSES_H]: Include ncurses.h.
1367
[HAVE_CURSES_H]: Include curses.h.
1368
[!A_NORMAL] (A_NORMAL): Defined as zero.
1369
[!A_STANDOUT] (A_STANDOUT): Likewise.
1371
* conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
1373
* conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
1375
* configure.ac: Check for curses libraries and headers.
1377
* Makefile.in (LIBCURSES): New variable.
1379
* genmk.rb (Script::rule): Set the executable bits.
1381
* util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
1382
name of the PC partition map is "pc_partition_map" but not "pc".
1384
2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1386
* util/i386/pc/grub-install.in (grub_probefs): New variable.
1387
(modules): Likewise.
1388
(usage): Added descriptions for --modules and --grub-probefs.
1389
Handle --modules and --grub-probefs. Save the arguments in MODULES
1390
and GRUB_PROBEFS, respectively.
1391
Auto-detect a filesystem module against GRUBDIR. If the result is
1392
empty and modules are not specified explicitly, abort the
1393
installation. Add the result to MODULES.
1395
* DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
1396
disk/powerpc/ieee1275/ofdisk.c,
1397
include/grub/powerpc/ieee1275/init.h and
1398
term/powerpc/ieee1275/ofconsole.c.
1399
Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
1400
term/ieee1275/ofconsole.c.
1402
* include/grub/powerpc/ieee1275/console.h: Resurrected.
1404
* COPYING: Upgraded to the latest version. Only the address of the
1405
FSF office has changed.
1407
2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
1409
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
1410
kern/ieee1275.c with kern/ieee1275/of.c.
1412
* kern/ieee1275.c: Moved to ...
1413
* kern/ieee1275/of.c: ... here.
1415
2005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
1417
* conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
1420
* config.guess: Updated to the latest version from gnulib.
1421
* config.sub: Likewise.
1422
* install.sh: Likewise.
1423
* mkinstalldirs: Likewise.
1425
* include/grub/console.h: Removed. This file is arch-specific. Do
1426
not put this in include/grub.
1428
* include/grub/i386/pc/console.h: Resurrected.
1430
* util/console.c: Include grub/machine/console.h instead of
1432
* util/grub-emu.c: Likewise.
1434
2005-08-04 Marco Gerards <metgerards@student.han.nl>
1436
* kern/term.c (grub_putcode): Use `grub_getwh' instead of
1439
From Vincent Pelletier <subdino2004@yahoo.fr>
1440
* include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
1441
Redefined to use grub_getwh.
1442
(grub_term): New member named getwh.
1443
(grub_getwh): New prototype.
1444
* kern/term.c (grub_getwh): New function.
1445
* term/i386/pc/console.c (grub_console_getwh): New function.
1446
(grub_console_term): New member `getwh'.
1447
* term/i386/pc/vga.c (grub_vga_getwh): New function.
1448
(grub_vga_term): New member `getwh'.
1449
* term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
1451
(grub_ofconsole_getw): New function.
1452
(grub_ofconsole_init): Use grub_ssize_t and unsigned char.
1453
(grub_ofconsole_term): New field named getwh and new initial
1456
2005-08-03 Hollis Blanchard <hollis@penguinppc.org>
1458
* include/grub/powerpc/ieee1275/ieee1275.h: Move ...
1459
* include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
1460
Move `abort', `grub_reboot', and `grub_halt' prototypes ...
1461
* include/grub/powerpc/ieee1275/kernel.h: ... to here.
1462
* commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
1463
of <grub/machine/ieee1275.h>.
1464
* commands/ieee1275/reboot.c: Likewise.
1465
* boot/powerpc/ieee1275/ieee1275.c: Move ...
1466
* kern/ieee1275.c: ... to here. All users updated. Change all
1467
parameter structs to use new type `grub_ieee1275_cell_t'.
1468
* term/powerpc/ieee1275/ofconsole.c: Move ...
1469
* term/ieee1275/ofconsole.c: ... to here. All users updated.
1470
* disk/powerpc/ieee1275/ofdisk.c: Move ...
1471
* disk/ieee1275/ofdisk.c: ... to here. All users updated.
1472
* boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
1474
* include/grub/i386/pc/console.h: Move to include/grub/console.h.
1475
Remove unused prototypes. All users updated.
1476
* include/grub/powerpc/ieee1275/console.h: Removed.
1477
* include/grub/powerpc/ieee1275/ieee1275.h: Define
1478
`grub_ieee1275_cell_t'.
1479
* kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
1480
Cast comparisons with -1 to the correct type.
1481
* loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
1482
type to match `grub_ieee1275_entry_fn'.
1484
2005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
1486
* DISTLIST: Added util/i386/pc/grub-probefs.c.
1488
* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
1489
(grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
1491
(grub_probefs_SOURCES): New variable.
1493
* util/i386/pc/grub-probefs.c: New file.
1495
* util/i386/pc/grub-setup.c (main): Call
1496
grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
1497
grub_hfs_init and grub_jfs_init to initialize the system. Call
1498
grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
1499
grub_pc_partition_map_fini to finish the system.
1501
2005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
1503
* loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
1505
(grub_multiboot_load_elf32): Likewise.
1506
(grub_multiboot_is_elf64): Likewise.
1507
(grub_multiboot_load_elf64): Likewise.
1508
(grub_multiboot_load_elf): Likewise.
1509
(grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
1510
an ELF32 or ELF64 file.
1511
This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
1513
From Serbinenko Vladimir <serbinenko.vova@list.ru>:
1514
* kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
1515
NULL before calling FS->LABEL.
1516
* fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
1517
* commands/ls.c (grub_ls_list_files): Show labels, if possible.
1518
(grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
1519
before calling FS->LABEL.
1521
2005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
1523
* util/i386/pc/grub-install.in (datadir): New variable.
1525
(pkgdatadir): New variable.
1526
(pkglibdir): Removed.
1528
2005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
1530
* DISTLIST: Added util/i386/pc/grub-install.in.
1532
* util/i386/pc/grub-install.in: New file.
1534
* conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
1535
(grub_install_SOURCES): Likewise.
1537
* genmk.rb: Added support for scripts.
1538
(Script): New class.
1539
(scripts): New variable.
1541
* Makefile.in (install-local): Install sbin_SCRIPTS by
1543
(uninstall): Remove sbin_SCRIPTS.
1545
* util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
1546
device, try to get a GRUB device by
1547
grub_util_biosdisk_get_grub_dev.
1550
* util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
1551
description for --device-map.
1553
2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
1555
Change the semantics of variable hooks. They now return strings
1556
instead of error values.
1558
* util/i386/pc/grub-setup.c: Include grub/env.h.
1559
(setup): Use grub_device_set_root instead of grub_env_set.
1561
* kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
1562
grub_env_get instead of grub_device_set_root and
1563
grub_device_get_root, respectively.
1565
* kern/main.c (grub_env_write_root): New function.
1566
(grub_set_root_dev): Register grub_env_write_hook for "root". Use
1567
grub_env_set instead of grub_device_set_root.
1569
* kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
1571
(grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
1572
rather than calling ENV->WRITE_HOOK afterwards.
1573
(grub_env_get): Return the result of ENV->READ_HOOK rather than
1574
passing a pointer of a pointer.
1575
(grub_register_variable_hook): Change the types of "read_hook" and
1576
"write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
1578
Allocate the default empty string on the heap, because this string
1581
* kern/device.c: Include grub/env.h.
1582
(grub_device_set_root): Removed.
1583
(grub_device_get_root): Likewise.
1584
(grub_device_open): Use grub_env_get instead of
1585
grub_device_get_root.
1587
* include/grub/env.h (grub_env_read_hook_t): New type.
1588
(grub_env_write_hook_t): Likewise.
1589
(grub_env_var): Change the types of "read_hook" and "write_hook"
1590
to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
1591
(grub_register_variable_hook): Likewise.
1593
* include/grub/device.h (grub_device_set_root): Removed.
1594
(grub_device_set_root): Likewise.
1596
* fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
1597
make sure that DIRNAME terminates with '/', so that
1598
grub_fat_find_dir will fail if PATH is not a directory.
1600
* commands/ls.c (grub_ls_list_files): Remove the qualifier const
1602
Use the qualifier auto for print_files and print_files_long.
1603
If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
1605
Put a newline only if there is no error.
1606
(grub_cmd_ls): Remove grub_ls_print_files, because this is not
1609
2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
1611
* kern/partition.c (grub_partition_probe): Initialize PART to
1612
NULL. Otherwise, when no partition map is registered, this returns
1615
2005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
1617
* partmap/apple.c (apple_partition_map_iterate): Check if POS
1618
equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
1621
2005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
1623
* commands/ls.c (grub_ls_list_disks): Print the filesystem
1624
information on each device, if it does not have partitions. Print
1625
"Device" instead of "Disk", because this function is not specific
1628
* normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
1629
static to ensure that it is put on the memory rather than a
1632
2005-07-17 Yoshinori Okuji <okuji@enbug.org>
1634
* commands/cat.c (GRUB_MOD_INIT): Use better documentation.
1635
(grub_cat_init): Likewise.
1636
* loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
1637
(options): Likewise.
1638
* commands/configfile.c (GRUB_MOD_INIT): Likewise.
1639
(grub_configfile_init): Likewise.
1640
* font/manager.c (GRUB_MOD_INIT): Likewise.
1641
* commands/help.c (GRUB_MOD_INIT): Likewise.
1642
(grub_help_init): Likewise.
1643
* normal/command.c (grub_command_init): Likewise.
1644
* loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
1645
* disk/loopback.c (grub_loop_init): Likewise.
1646
(GRUB_MOD_INIT): Likewise.
1647
* commands/ls.c (grub_ls_init): Likewise.
1648
(GRUB_MOD_INIT): Likewise.
1649
(options): Likewise.
1650
* commands/boot.c (grub_boot_init): Likewise.
1651
(GRUB_MOD_INIT): Likewise.
1652
* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
1653
* commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
1654
(GRUB_MOD_INIT): Likewise.
1655
* commands/cmp.c (grub_cmp_init): Likewise.
1656
(GRUB_MOD_INIT): Likewise.
1658
* normal/arg.c: Use <> instead of "" to include header files.
1659
(SHORT_ARG_HELP): New macro.
1660
(SHORT_ARG_USAGE): Likewise.
1661
(help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
1662
of 'h' and 'u' for help and usage, respectively. Use more GNU-like
1664
(find_short): Check if C is 'h' or 'u' explicitly.
1665
(grub_arg_show_help): Use space characters instead of tabs. Treat
1666
SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
1667
are shown with --help and --usage only if they are not used for
1669
(parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
1672
* include/grub/arg.h (struct grub_arg_option): Add the qualifier
1673
const into "longarg". Change the type of "shortarg" to int.
1675
2005-07-17 Yoshinori Okuji <okuji@enbug.org>
1677
* boot/i386/pc/boot.S (boot_drive_check): New label.
1679
* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
1682
* util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
1683
which do not pass a boot drive correctly. Copied from GRUB Legacy.
1685
2005-07-17 Yoshinori Okuji <okuji@enbug.org>
1687
* kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
1688
When turning off Gate A20, skip the check and return immediately,
1689
because this is not fatal usually.
1691
2005-07-17 Yoshinori Okuji <okuji@enbug.org>
1693
* conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
1694
be 0x7C00 instead of 0x8000.
1696
* boot/i386/pc/pxeboot.S: Rewritten.
1698
* kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
1700
(gate_a20_check_state): Read a byte from 0x108000. Invert the
1703
2005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
1705
* kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
1706
robustness. This routine now supports a BIOS call and System
1707
Control Port A to modify the gate A20.
1709
* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
1712
2005-07-12 Hollis Blanchard <hollis@penguinppc.org>
1714
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
1715
device path and resulting ihandle.
1716
(grub_ofdisk_close): dprintf the ihandle being closed.
1717
(grub_ofdisk_read): dprintf function parameters.
1718
* kern/mm.c (grub_mm_init_region): Likewise.
1719
* loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
1720
(grub_linux_boot): dprintf the Linux entry point, initrd address and
1721
size, and boot arguments.
1722
(grub_rescue_cmd_linux): dprintf each ELF segment's address and size
1723
before loading into memory.
1724
(grub_rescue_cmd_initrd): dprintf the initrd's address and size
1725
before loading into memory.
1727
2005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
1729
* kern/mm.c: Added much documentation.
1730
(GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
1731
8, set to 5 instead of 8.
1733
2005-07-10 Yoshinori Okuji <okuji@enbug.org>
1735
* DISTLIST: Added util/i386/pc/grub-mkimage.c.
1737
* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
1738
(grub_mkdevicemap_SOURCES): New variable.
1740
* util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
1741
lib/device.c of GRUB Legacy.
1743
2005-07-10 Yoshinori Okuji <okuji@enbug.org>
1745
* commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
1746
instead of PATH is NULL.
1748
2005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
1750
* commands/cmp.c (BUFFER_SIZE): New macro.
1751
(grub_cmd_cmp): Close the right file at the right time. Compare
1752
only data just read. Don't report files of different size as
1753
identical. Dynamically allocate buffers. Move variable
1754
declarations at the beginning of function.
1756
2005-07-09 Yoshinori Okuji <okuji@enbug.org>
1758
* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
1761
2004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
1763
* normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
1764
when backspace is pressed at beginning of line.
1766
2005-07-03 Yoshinori Okuji <okuji@enbug.org>
1768
* DISTLIST: Added genfslist.sh.
1770
* normal/main.c (fs_module_list): New variable.
1771
(autoload_fs_module): New function.
1772
(read_fs_list): Likewise.
1773
(grub_normal_execute): Call read_fs_list.
1775
* kern/fs.c (grub_fs_autoload_hook): New variable.
1776
(grub_fs_probe): Added support for auto-loading.
1778
* include/grub/normal.h (struct grub_fs_module_list): New struct.
1779
(grub_fs_module_list_t): New type.
1781
* include/grub/fs.h (grub_fs_autoload_hook_t): New type.
1782
(grub_fs_autoload_hook): New prototype.
1784
* genfslist.sh: New file.
1786
* genmk.rb: Added a rule to generate a filesystem list.
1788
2005-06-30 Marco Gerards <metgerards@student.han.nl>
1790
* configure.ac: Fix the test for cross-compiling.
1792
* genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
1793
define GRUB_UTIL anymore.
1795
* util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
1796
so this function works on other systems than just big endian.
1797
(load_modules): Likewise.
1798
(add_segments): Likewise.
1800
2005-06-23 Hollis Blanchard <hollis@penguinppc.org>
1802
* kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
1803
contains `l' modifier, get a long from va_arg().
1805
2005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
1807
* kern/mm.c (grub_free): If the next free block which is being
1808
merged is the first free block, set the first block to the block
1810
Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
1812
2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1814
* boot/powerpc/ieee1275/cmain.c (cmain): Initialize
1815
`grub_ieee1275_chosen'.
1817
2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1819
* boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
1820
(grub_ieee1275_chosen): New variable.
1821
(cmain): Initialize and use `grub_ieee1275_chosen' instead of
1823
* boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
1824
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
1825
Rename first argument to `phandle' for consistency.
1826
(grub_ieee1275_get_property_length): Likewise.
1827
(grub_ieee1275_next_property): Likewise. Change type of first argument
1828
to grub_ieee1275_phandle_t.
1829
* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
1830
Move export next to declaration.
1831
(grub_ieee1275_chosen): New variable.
1832
* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
1833
Correct cosmetic typo.
1834
* kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
1835
`grub_ieee1275_chosen'.
1836
* kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
1837
* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
1838
(grub_rescue_cmd_linux): Set `initrd_addr' to 0.
1839
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
1840
`grub_ieee1275_chosen'.
1842
2005-05-10 Hollis Blanchard <hollis@penguinppc.org>
1844
* boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
1846
* kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
1847
/chosen/bootargs as "variable=value" pairs.
1849
2005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
1851
* include/grub/misc.h (grub_dprintf): New macro.
1852
(grub_real_dprintf): New prototype.
1853
(grub_strword): Likewise.
1854
(grub_iswordseparator): Likewise.
1855
* kern/misc.c (grub_real_dprintf): New function.
1856
(grub_strword): Likewise.
1857
(grub_iswordseparator): Likewise.
1859
2005-04-30 Hollis Blanchard <hollis@penguinppc.org>
1861
* boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
1862
(roundup): Remove macro.
1863
(grub_ieee1275_flags): Make static.
1864
(grub_ieee1275_realmode): Remove.
1865
(grub_ieee1275_test_flag): New function.
1866
(grub_ieee1275_set_flag): Likewise.
1867
(find_options): Rename to `grub_ieee1275_find_options'; update
1868
callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
1869
GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
1870
(cmain): New prototype.
1871
(cmain): Use `grub_ieee1275_set_flag' instead of accessing
1872
`grub_ieee1275_flags' directly.
1873
* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
1875
* disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
1876
Don't include grub/machine/init.h.
1877
(grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
1878
* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
1880
(grub_ieee1275_realmode): Likewise.
1881
(grub_ieee1275_flag): New enum.
1882
(grub_ieee1275_test_flag): New prototype.
1883
(grub_ieee1275_set_flag): New prototype.
1884
* include/grub/powerpc/ieee1275/init.h: Remove file.
1885
* include/grub/powerpc/ieee1275/ofdisk.h: New file.
1886
* kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
1887
Include grub/machine/console.h. Include grub/machine/ofdisk.h.
1888
(grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
1890
* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
1891
`grub_ieee1275_test_flag'.
1892
(grub_ieee1275_encode_devname): Likewise.
1894
2005-04-21 Hollis Blanchard <hollis@penguinppc.org>
1896
* include/grub/powerpc/ieee1275/ieee1275.h
1897
(grub_ieee1275_encode_devname): New prototype.
1898
(grub_ieee1275_get_filename): Likewise.
1899
* kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
1901
(grub_set_prefix): Likewise.
1902
(grub_machine_init): Call grub_set_prefix.
1903
* kern/powerpc/ieee1275/openfw.c: Fix typos.
1904
(grub_parse_type): New enum.
1905
(grub_ieee1275_get_devargs): New function.
1906
(grub_ieee1275_get_devname): Likewise.
1907
(grub_ieee1275_parse_args): Likewise.
1908
(grub_ieee1275_get_filename): Likewise.
1909
(grub_ieee1275_encode_devname): Likewise.
1911
2005-03-30 Marco Gerards <metgerards@student.han.nl>
1913
* kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
1914
`grub_loader_unset'.
1916
2005-03-26 Hollis Blanchard <hollis@penguinppc.org>
1918
* commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
1919
instead of grub_ieee1275_interpret.
1920
(grub_halt_init): New function.
1921
(grub_halt_fini): Likewise.
1922
(GRUB_MOD_INIT): Correct message grammar.
1923
* commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
1924
instead of grub_ieee1275_interpret.
1925
(grub_reboot_init): New function.
1926
(grub_reboot_fini): Likewise.
1927
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
1928
commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
1929
util/i386/pc/misc.c with commands/ieee1275/halt.c,
1930
commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
1931
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
1933
* include/grub/powerpc/ieee1275/console.h (grub_console_fini):
1935
* include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
1937
(grub_halt): Likewise.
1938
* include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
1939
(cmain): Remove __attribute__((unused)).
1940
* kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
1941
(grub_heap_len): Likewise.
1942
(grub_machine_fini): New function.
1943
* kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
1944
(grub_halt): Likewise.
1945
* term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
1947
* util/powerpc/ieee1275/misc.c: New file.
1949
2005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
1951
* DISTLIST: New file.
1952
* gendistlist.sh: Likewise.
1954
* Makefile.in (COMMON_DISTFILES): Removed.
1955
(BOOT_DISTFILES): Likewise.
1956
(CONF_DISTFILES): Likewise.
1957
(DISK_DISTFILES): Likewise.
1958
(FS_DISTFILES): Likewise.
1959
(INCLUDE_DISTFILES): Likewise.
1960
(KERN_DISTFILES): Likewise.
1961
(LOADER_DISTFILES): Likewise.
1962
(TERM_DISTFILES): Likewise.
1963
(UTIL_DISTFILES): Likewise.
1964
(DISTFILES): Likewise.
1965
(uninstall): Uninstall files in $(pkgdata_DATA).
1966
(DISTLIST): New target.
1967
(distdir): Use the contents of the file DISTLIST to get a list of
1970
2005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
1972
* fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
1973
descriptor. This is ported from GRUB Legacy.
1975
* gencmdlist.sh: Added an extra semicolon to make it work with
1976
old sed versions. Reported by Robert Bihlmeyer
1977
<robbe@orcus.priv.at>.
1979
2005-03-08 Yoshinori Okuji <okuji@enbug.org>
1981
Automatic loading of commands is supported.
1983
* normal/main.c (read_command_list): New function.
1984
(grub_normal_execute): Call read_command_list.
1986
* normal/command.c (grub_register_command): Return zero or CMD.
1987
Allocate CMD->NAME from the heap.
1988
Initialize CMD->MODULE_NAME to zero.
1989
Find the same name as well. If the same command is found and it is
1990
a dummy command, overwrite members. If it is not a dummy command,
1992
(grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
1993
(grub_command_find): If a dummy command is found, load a module
1994
and retry to find a command only once.
1996
* normal/cmdline.c (grub_tab_complete): Call grub_command_find to
1997
make sure that each command is loaded.
1999
* include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
2001
(struct grub_command): Remove const from the member `name'.
2002
Add a new member `module_name'.
2003
(grub_register_command): Return grub_command_t.
2005
* commands/help.c (grub_cmd_help): Call grub_command_find to make
2006
sure that each command is loaded.
2008
* genmk.rb (PModule::rule): Specify a module name without the
2009
suffix ".mod" to gencmdlist.sh.
2011
2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
2013
* gencmdlist.sh: New file.
2015
* genmk.rb (PModule::rule): Generate a rule for a command list.
2017
Generate command.lst from $(COMMANDFILES).
2019
* Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
2020
(DATA): Added $(pkgdata_DATA).
2021
(install-local): Install files in $(pkgdata_DATA).
2023
2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
2025
* term/i386/pc/vga.c (debug_command): Removed.
2026
(GRUB_MOD_INIT): Do not register the command "debug".
2028
From Hollis Blanchard:
2029
* commands/configfile.c: New file.
2030
* conf/i386-pc.rmk (grub_emu_SOURCES): Added
2031
commands/configfile.c.
2032
(pkgdata_MODULES): Added configfile.mod.
2033
(configfile_mod_SOURCES): New variable.
2034
(configfile_mod_CFLAGS): Likewise.
2035
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
2036
commands/configfile.c.
2037
(pkgdata_MODULES): Added configfile.mod.
2038
(configfile_mod_SOURCES): New variable.
2039
(configfile_mod_CFLAGS): Likewise.
2040
* util/grub-emu.c (main): Call grub_configfile_init and
2041
grub_configfile_fini.
2042
* include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
2044
[GRUB_UTIL] (grub_configfile_fini): Likewise.
2046
2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
2048
* normal/arg.c (grub_arg_show_help): Do not show the bug report
2051
* commands/help.c (grub_cmd_help): Do not print newlines after
2052
the last command in print_command_help.
2054
2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
2056
* commands/default.h: New file.
2057
* commands/timeout.h: Likewise.
2058
* normal/context.c: Likewise.
2060
* util/misc.c: Do not include sys/times.h.
2061
Include sys/time.h and grub/machine/time.h.
2062
(grub_get_rtc): Rewritten with gettimeofday.
2064
* util/grub-emu.c (main): Call grub_default_init and
2065
grub_timeout_init before grub_normal_init, and call
2066
grub_timeout_fini and grub_default_fini after grub_main.
2068
* util/console.c (grub_ncurses_checkkey): Return the read
2071
* normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
2074
* normal/main.c (read_config_file): Push MENU. If this fails,
2075
print an error and wait for a user input.
2076
Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
2077
If a menu is empty or an error occurs, pop MENU.
2078
(grub_normal_execute): Pop and free MENU after grub_menu_run
2081
* kern/loader.c (grub_loader_boot): Call grub_machine_fini.
2083
* include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
2085
[GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
2087
* include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
2089
[GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
2092
* include/grub/normal.h (struct grub_menu_list): New struct.
2093
(grub_menu_list_t): New type.
2094
(struct grub_context): New struct.
2095
(grub_context_t): New type.
2096
(grub_register_command): Got rid of EXPORT_FUNC.
2097
(grub_unregister_command): Likewise.
2098
(grub_context_get): New prototype.
2099
(grub_context_get_current_menu): Likewise.
2100
(grub_context_push_menu): Likewise.
2101
(grub_context_pop_menu): Likewise.
2102
[GRUB_UTIL] (grub_default_init): Likewise.
2103
[GRUB_UTIL] (grub_default_fini): Likewise.
2104
[GRUB_UTIL] (grub_timeout_init): Likewise.
2105
[GRUB_UTIL] (grub_timeout_fini): Likewise.
2107
* conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
2108
commands/timeout.c and normal/context.c.
2109
(pkgdata_MODULES): Added default.mod and timeout.mod.
2110
(normal_mod_SOURCES): Added normal/context.c.
2111
(default_mod_SOURCES): New variable.
2112
(default_mod_CFLAGS): Likewise.
2113
(timeout_mod_SOURCES): Likewise.
2114
(timeout_mod_CFLAGS): Likewise.
2115
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
2117
(pkgdata_MODULES): Added default.mod and timeout.mod.
2118
(normal_mod_SOURCES): Added normal/context.c.
2119
(default_mod_SOURCES): New variable.
2120
(default_mod_CFLAGS): Likewise.
2121
(timeout_mod_SOURCES): Likewise.
2122
(timeout_mod_CFLAGS): Likewise.
2124
* Makefile.in (all-local): Added $(MKFILES).
2126
2005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
2128
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
2129
(grub_emu_SOURCES): Likewise.
2130
(pkgdata_MODULES): Add `sun.mod'.
2131
(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
2132
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2134
(pkgdata_MODULES): Add `sun.mod'.
2135
(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
2136
* include/grub/partition.h (grub_sun_partition_map_init): New
2138
(grub_sun_partition_map_fini): Likewise.
2139
* partmap/sun.c: New file.
2140
* util/grub-emu.c (main): Initialize and de-initialize the sun
2141
partitionmap support.
2143
2005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
2145
This implements an Emacs-like menu entry editor.
2147
* normal/menu_entry.c: New file.
2149
* util/console.c (grub_ncurses_putchar): Translate some Unicode
2150
characters to ASCII.
2151
(saved_char): New variable.
2152
(grub_ncurses_checkkey): Rewritten completely.
2153
(grub_ncurses_getkey): Likewise.
2154
(grub_ncurses_init): Call raw instead of cbreak.
2156
* normal/menu.c (print_entry): Do not put a space.
2157
(init_page): Renamed to ...
2158
(grub_menu_init_page): ... this. All callers changed.
2159
(edit_menu_entry): Removed.
2160
(run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
2162
* normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
2164
* kern/misc.c (grub_vprintf): Call grub_refresh.
2166
* normal/menu.c (DISP_LEFT): Renamed to ...
2167
* include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
2168
* normal/menu.c (DISP_UP): Renamed to ...
2169
* include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
2170
* normal/menu.c (DISP_RIGHT): Renamed to ...
2171
* include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
2172
* normal/menu.c (DISP_DOWN): Renamed to ...
2173
* include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
2174
* normal/menu.c (DISP_HLINE): Renamed to ...
2175
* include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
2176
* normal/menu.c (DISP_VLINE): Renamed to ...
2177
* include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
2178
* normal/menu.c (DISP_UL): Renamed to ...
2179
* include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
2180
* normal/menu.c (DISP_UR): Renamed to ...
2181
* include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
2182
* normal/menu.c (DISP_LL): Renamed to ...
2183
* include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
2184
* normal/menu.c (DISP_LR): Renamed to ...
2185
* include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
2186
* normal/menu.c (TERM_WIDTH): Renamed to ...
2187
* include/grub/term.h (GRUB_TERM_WIDTH): ... this.
2188
* normal/menu.c (TERM_HEIGHT): Renamed to ...
2189
* include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
2190
* normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
2191
* include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
2192
* normal/menu.c (TERM_MARGIN): Renamed to ...
2193
* include/grub/term.h (GRUB_TERM_MARGIN): ... this.
2194
* normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
2195
* include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
2196
* normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
2197
* include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
2198
* normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
2199
* include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
2200
* normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
2201
* include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
2202
* normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
2203
* include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
2204
* normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
2205
* include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
2206
* normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
2207
* include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
2208
* normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
2209
* include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
2210
* normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
2211
* include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
2212
* normal/menu.c (TERM_CURSOR_X): Renamed to ...
2213
* include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
2214
All callers changed.
2216
* include/grub/normal.h: New prototype.
2218
* conf/i386-pc.rmk (grub_emu_SOURCES): Added
2219
normal/menu_entry.c.
2220
(normal_mod_SOURCES): Likewise.
2221
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2222
(normal_mod_SOURCES): Likewise.
2224
2005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
2226
* include/grub/normal.h (grub_halt_init): New prototype.
2227
(grub_halt_fini): Likewise.
2228
(grub_reboot_init): Likewise.
2229
(grub_reboot_fini): Likewise.
2231
* util/grub-emu.c: Include signal.h.
2232
(main_env): New global variable.
2233
(grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
2235
(grub_machine_fini): New function.
2236
(main): Call grub_halt_init and grub_reboot_init before
2237
grub_main, and grub_reboot_fini and grub_halt_fini after it.
2238
Call setjmp with MAIN_ENV to go back afterwards.
2239
Call grub_machine_fini right before return.
2241
* include/grub/util/misc.h: Include setjmp.h.
2242
(main_env): New prototype.
2244
* include/grub/kernel.h (grub_machine_fini): New prototype.
2245
* include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
2246
* include/grub/i386/pc/console.h (grub_console_fini): Likewise.
2248
* disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
2249
* kern/i386/pc/init.c (grub_machine_fini): Likewise.
2250
* term/i386/pc/console.c (grub_console_fini): Likewise.
2252
* util/i386/pc/misc.c: New file.
2254
* conf/i386-pc.rmk (grub_emu_SOURCES): Added
2255
util/i386/pc/misc.c, commands/i386/pc/halt.c and
2256
commands/i386/pc/reboot.c.
2258
2005-02-14 Guillem Jover <guillem@hadrons.org>
2260
* include/grub/dl.h (grub_dl_check_header): New prototype.
2261
(grub_arch_dl_check_header): Change return type to grub_err_t,
2262
remove size parameter and export function. Update all callers.
2263
* kern/dl.c (grub_dl_check_header): New function.
2264
(grub_dl_load_core): Use `grub_dl_check_header' instead of
2265
`grub_arch_dl_check_header'. Check ELF type. Check if sections
2266
are inside the core.
2267
* kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
2268
independent ELF header checks.
2269
* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
2270
* loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
2271
`grub_dl_check_header' instead of explicit checks. Check for the
2273
* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
2274
`grub_dl_check_header' instead of explicit checks. Remove arch
2275
specific ELF header checks.
2277
* util/grub-emu.c (grub_arch_dl_check_header): Remove the
2280
2005-02-13 Hollis Blanchard <hollis@penguinppc.org>
2282
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
2283
* include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
2285
2005-02-12 Hollis Blanchard <hollis@penguinppc.org>
2287
* kern/partition.c (grub_partition_probe): Clear `grub_errno' and
2288
return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
2289
(part_map_iterate): Clear `grub_errno' and return 0 if
2290
`partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
2291
* partmap/amiga.c (amiga_partition_map_iterate): Return
2292
GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
2293
* partmap/apple.c (apple_partition_map_iterate): Likewise.
2295
2005-02-01 Guillem Jover <guillem@hadrons.org>
2297
* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
2300
2005-01-31 Marco Gerards <metgerards@student.han.nl>
2302
* include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
2304
(grub_rescue_cmd_linux): New prototype.
2305
(grub_rescue_cmd_initrd): Likewise.
2306
* powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
2308
(grub_linux_release_mem): Release the memory for the initrd.
2309
(grub_load_linux): Renamed from this...
2310
(grub_rescue_cmd_linux): ...To this. Changed all callers.
2311
Changed `entry' not to be static. Loop over memory regions to
2312
find another one when the default fails.
2313
(grub_rescue_cmd_initrd): New function.
2314
(grub_linux_init): Remove function.
2315
(grub_linux_fini): Likewise.
2316
(GRUB_MOD_INIT): Register `initrd'.
2317
(GRUB_MOD_FINI): Unregister `initrd'.
2318
* powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
2320
(grub_linux_normal_fini): Likewise.
2321
(GRUB_MOD_INIT): Register `initrd'.
2322
(GRUB_MOD_FINI): Unregister `initrd'.
2324
2005-01-31 Marco Gerards <metgerards@student.han.nl>
2326
* commands/help.c: New file.
2327
* normal/arg.c (show_help): Renamed to...
2328
(grub_arg_show_help): ... this.
2329
* commands/i386/pc/halt.c: New file.
2330
* commands/i386/pc/reboot.c: Likewise.
2331
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
2332
(pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
2333
(help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
2334
(reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
2336
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2338
(pkgdata_MODULES): Add `help.mod'.
2339
(help_mod_SOURCES, help_mod_CFLAGS): New variables.
2340
* grub/i386/pc/init.h (grub_reboot): New prototype.
2341
(grub_halt): Likewise.
2342
* include/grub/normal.h (grub_arg_show_help): New prototype.
2343
(grub_help_init): Likewise.
2344
(grub_help_fini): Likewise.
2345
* util/grub-emu.c (main): Initialize and deinitialize the help
2348
* normal/cmdline.c (grub_cmdline_get): Doc fix.
2350
* normal/command.c (grub_command_init): Fixed the description of
2351
the `set' and `unset' commands.
2353
2005-01-31 Marco Gerards <metgerards@student.han.nl>
2355
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
2357
* commands/ieee1275/halt.c: New file.
2358
* commands/ieee1275/reboot.c: Likewise.
2359
* commands/ieee1275/suspend.c (grub_cmd_suspend): Use
2360
`__attribute__ ((unused))'. Some GCS related fixed.
2361
(grub_suspend_init) [GRUB_UTIL]: Function removed.
2362
(grub_suspend_fini): Likewise.
2363
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
2365
(reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
2366
(halt_mod_CFLAGS): New variables.
2367
* include/grub/powerpc/ieee1275/ieee1275.h
2368
(grub_ieee1275_interpret): New prototype.
2370
2005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
2372
* include/grub/misc.h (memmove): New prototype.
2375
2005-01-22 Hollis Blanchard <hollis@penguinppc.org>
2377
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
2378
`devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
2380
2005-01-22 Marco Gerards <metgerards@student.han.nl>
2382
* kern/misc.c (grub_strndup): Function rewritten.
2384
2005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
2386
* normal/menu.c (TERM_WIDTH): Macro redefined.
2387
(TERM_TOP_BORDER_Y): Likewise.
2388
(draw_border): Replaced while-loop by a for-loop. Make the number
2389
of lines consistent with the number of lines displayed in
2390
print_entries. Added a margin below the rectangle.
2391
(print_entry): Make the entry fit in the rectangle.
2392
(print_entries): Display the scroll arrows next to the right
2395
2005-01-21 Marco Gerards <metgerards@student.han.nl>
2397
* fs/minix.c (grub_minix_find_file): Reserve more space for
2398
`fpath' so the \0 can be stored. Use `grub_strcpy' instead of
2399
`grub_strncpy' to copy `path' into it.
2401
2005-01-21 Marco Gerards <metgerards@student.han.nl>
2403
Add the loopback device, a device via which files can be accessed
2406
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
2407
(pkgdata_MODULES): Add loopback.mod.
2408
(loopback_mod_SOURCES): New variable.
2409
(loopback_mod_CFLAGS): Likewise.
2410
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2412
(pkgdata_MODULES): Add loopback.mod.
2413
(loopback_mod_SOURCES): New variable.
2414
(loopback_mod_CFLAGS): Likewise.
2415
* disk/loopback.c: new file.
2416
* include/grub/normal.h (grub_loop_init): New prototype.
2417
(grub_loop_fini): New prototype.
2418
* util/grub-emu.c (main): Initialize and de-initialize loopback
2420
* include/grub/disk.h (grub_disk_dev_id): Add
2421
`GRUB_DISK_DEVICE_LOOPBACK_ID'.
2423
2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
2425
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
2427
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
2428
(suspend_mod_SOURCES): New variable.
2429
(suspend_mod_CFLAGS): Likewise.
2430
* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
2432
* commands/ieee1275/suspend.c: New file.
2434
2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
2436
* include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
2437
((unused))' to `__attribute__ ((used))'.
2438
(GRUB_MOD_FINI): Likewise.
2439
* kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
2440
* genmk.rb (PModule): Assign space to common symbols when linking
2443
2005-01-20 Marco Gerards <metgerards@student.han.nl>
2445
* include/grub/mm.h (grub_mm_init_region): Change the type of the
2446
`unsigned' arguments to `grub_size_t'.
2447
(grub_malloc): Likewise.
2448
(grub_realloc): Likewise.
2449
(grub_memalign): Likewise.
2450
* kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
2451
* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
2452
* util/misc.c (grub_malloc): Likewise.
2453
(grub_realloc): Likewise.
2454
* kern/mm.c (get_header_from_pointer): Change the casts to
2455
`unsigned' into a cast to `grub_size_t'.
2457
* fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
2458
point to `currnode' when `currnode' is changed.
2460
* util/grub-emu.c (main): Initialize `progname'. Reported by Nico
2461
Schottelius <nico-linux@schottelius.org>.
2463
2005-01-09 Hollis Blanchard <hollis@penguinppc.org>
2465
* util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
2466
(note_path): Remove variable.
2467
(GRUB_IEEE1275_NOTE_NAME): New macro.
2468
(GRUB_IEEE1275_NOTE_TYPE): Likewise.
2469
(grub_ieee1275_note_hdr): New structure.
2470
(grub_ieee1275_note_desc): Likewise.
2471
(grub_ieee1275_note): Likewise.
2472
(load_note): Remove `dir' argument. All callers updated. Remove
2473
`note_img' and `path'. Do not load a file from `note_path'.
2474
Initialize a struct grub_ieee1275_note and write that to `out'.
2475
Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
2477
2005-01-05 Marco Gerards <metgerards@student.han.nl>
2479
* util/misc.c (grub_util_read_image): Revert last change. It
2480
called `grub_util_read_at', which seeks from the beginning of the
2483
2005-01-04 Hollis Blanchard <hollis@penguinppc.org>
2485
* TODO: Add note about endianness in grub-mkimage.
2486
* boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
2488
* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
2489
(grub_mkimage_SOURCES): New target.
2490
* include/grub/kernel.h (grub_start_addr): Remove variable.
2491
(grub_end_addr): Likewise.
2492
(grub_total_module_size): Likewise.
2493
(grub_kernel_image_size): Likewise.
2494
(GRUB_MODULE_MAGIC): New constant.
2495
(grub_module_info): New structure.
2496
(grub_arch_modules_addr): New prototype.
2497
(grub_get_end_addr): Remove prototype.
2498
* include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
2499
* include/grub/powerpc/ieee1275/kernel.h: New file.
2500
* include/grub/util/misc.h (grub_util_get_fp_size): New
2502
(grub_util_read_at): Likewise.
2503
(grub_util_write_image_at): Likewise.
2504
* kern/main.c (grub_get_end_addr): Remove function.
2505
(grub_load_modules): Call grub_arch_modules_addr instead of using
2506
grub_end_addr. Look for a grub_module_info struct in memory. Use
2507
the grub_module_info fields instead of calling grub_get_end_addr
2508
as loop conditions. Move grub_add_unused_region code here.
2509
(grub_add_unused_region): Remove function.
2510
* kern/i386/pc/init.c: Include grub/cache.h.
2511
(grub_machine_init): Remove call to grub_get_end_addr. Remove
2512
one call to add_mem_region.
2513
(grub_arch_modules_addr): New function.
2514
* kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
2515
(grub_total_module_size): Likewise.
2516
Include grub/machine/kernel.h.
2517
(grub_arch_modules_addr): New function.
2518
* util/grub-emu.c (grub_end_addr): Remove variable.
2519
(grub_total_module_size): Likewise.
2520
(grub_arch_modules_addr): New function.
2521
* util/misc.c: Include unistd.h.
2522
(grub_util_get_fp_size): New function.
2523
(grub_util_read_at): Likewise.
2524
(grub_util_write_image_at): Likewise.
2525
(grub_util_read_image): Call grub_util_read_at.
2526
(grub_util_write_image): Call grub_util_write_image_at.
2527
* util/i386/pc/grub-mkimage.c (generate_image): Allocate
2528
additional memory in kernel_img for a struct grub_module_info.
2529
Fill in that grub_module_info.
2530
* util/powerpc/ieee1275/grub-mkimage.c: New file.
2532
2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
2534
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
2536
* include/grub/powerpc/ieee1275/ieee1275.h
2537
(grub_ieee1275_milliseconds): New prototype.
2538
* include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
2540
* kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
2541
grub_ieee1275_milliseconds.
2543
2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
2545
* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
2547
(find_options): New function.
2548
(cmain): Call find_options.
2549
* include/grub/powerpc/ieee1275/ieee1275.h
2550
(grub_ieee1275_realmode): New extern variable.
2551
* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
2552
grub_map if grub_ieee1275_realmode is false.
2554
2004-12-29 Marco Gerards <metgerards@student.han.nl>
2556
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
2557
lines are inserted and make it work like readline. Reported by
2558
Vincent Pelletier <subdino2004@yahoo.fr>.
2560
2004-12-28 Marco Gerards <metgerards@student.han.nl>
2562
* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
2564
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
2565
`kern/powerpc/cache.S'.
2567
2004-12-27 Marco Gerards <metgerards@student.han.nl>
2569
* genmk.rb: Handle the `Program' class in the main loop. Written
2570
by Johan Rydberg <jrydberg@gnu.org>.
2571
(Program): New class.
2572
(programs): New variable.
2573
* boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
2574
instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
2575
instead of "grub/kernel.h". Include <grub/machine/init.h>.
2576
(help_arch): Function removed.
2577
* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
2578
`powerpc/libgcc.h' and `loader.h'.
2579
(pkgdata_PROGRAMS): New variable.
2580
(sbin_UTILITIES): Variable removed.
2581
(grub_emu_SOURCES): Added kern/powerpc/cache.S.
2582
(grubof_SOURCES): Variable re-defined so it only includes the
2584
(grubof_CFLAGS): Remove `-DGRUBOF'.
2585
(pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
2586
(fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
2587
(ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
2588
(minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
2589
(hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
2590
(iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
2591
(_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
2592
(normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
2593
(hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
2594
(boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
2595
(ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
2596
(cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
2597
(font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
2598
(apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
2599
(pc_mod_CFLAGS): New variables.
2600
* disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
2601
(grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
2602
* include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
2603
* include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
2605
* include/grub/i386/pc/init.h (grub_os_area_addr)
2606
(rub_os_area_size): ... to here.
2607
* include/grub/powerpc/ieee1275/ieee1275.h
2608
(grub_ieee1275_entry_fn): Export symbol.
2609
* include/grub/powerpc/ieee1275/init.h: New file.
2610
* include/grub/powerpc/libgcc.h: Likewise.
2611
* include/grub/cache.h: Likewise.
2612
* kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
2613
<hollis@penguinppc.org>.
2614
* kern/dl.c: Include <grub/cache.h>.
2615
(grub_dl_flush_cache): New function.
2616
(grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
2618
* kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
2619
(grub_console_init): Removed prototypes.
2620
(grub_machine_init): Don't initialize the modules anymore.
2621
* kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
2623
* include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
2624
Macro undef removed.
2625
(GRUB_HOST_WORDS_BIGENDIAN): New macro.
2626
* kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
2627
relocation `R_PPC_REL32'. Return an error when the relocation is
2629
* Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
2630
* kern/i386/pc/init.c (grub_arch_sync_caches): New function.
2631
* util/misc.c (grub_arch_sync_caches): Likewise.
2633
2004-12-19 Marco Gerards <metgerards@student.han.nl>
2635
* conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
2636
`symlist.c', add `grubof_symlist.c'.
2637
(symlist.c): Variable removed.
2638
(grubof_HEADERS): Variable added.
2639
(grubof_symlist.c): New target.
2640
(kernel_syms.lst): Use `grubof_HEADERS' instead of
2641
`kernel_img_HEADERS'.
2642
(grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
2643
* kern/powerpc/dl.c: New file.
2644
* kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
2646
(grub_arch_dl_relocate_symbols): Likewise.
2647
(grub_register_exported_symbols): Likewise.
2649
2004-12-13 Marco Gerards <metgerards@student.han.nl>
2651
* fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
2652
(grub_ext2_dir): Likewise. Don't return in case of an error, jump
2653
to fail instead. Reported by Vincent Pelletier
2654
<subdino2004@yahoo.fr>.
2656
* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
2657
it is not allocated. Reported by Vincent Pelletier
2658
<subdino2004@yahoo.fr>.
2660
* normal/cmdline.c (grub_tab_complete): Add a blank line to the
2661
output so the output looks better.
2663
2004-12-04 Marco Gerards <metgerards@student.han.nl>
2665
Modulize the partition map support and add support for the amiga
2668
* commands/ls.c: Include <grub/partition.h> instead of
2669
<grub/machine/partition.h>.
2670
* kern/disk.c: Likewise.
2671
* kern/rescue.c: Likewise.
2672
* loader/i386/pc/chainloader.c: Likewise.
2673
* normal/cmdline.c: Likewise.
2674
* kern/powerpc/ieee1275/init.c: Likewise.
2675
(grub_machine_init): Call `grub_pc_partition_map_init',
2676
`grub_amiga_partition_map_init' and
2677
`grub_apple_partition_map_init'.
2678
* conf/i386-pc.rmk (kernel_img_SOURCES): Remove
2679
`disk/i386/pc/partition.c'. Add `kern/partition.c'.
2680
(kernel_img_HEADERS): Remove `machine/partition.h'. Add
2681
`partition.h' and `pc_partition.h'.
2682
(grub_setup_SOURCES): Remove
2683
`disk/i386/pc/partition.c'. Add `kern/partition.c',
2684
`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
2685
(grub_emu_SOURCES): Likewise.
2686
(pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
2687
(amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
2688
(apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
2689
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
2690
`disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
2691
`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
2692
(grubof_SOURCES): Likewise.
2693
* disk/i386/pc/partition.c: File removed.
2694
* disk/powerpc/ieee1275/partition.c: Likewise.
2695
* include/grub/powerpc/ieee1275/partition.h: Likewise.
2696
* include/grub/i386/pc/partition.h: Likewise.
2697
* kern/partition.c: New file.
2698
* partmap/amiga.c: Likewise.
2699
* partmap/apple.c: Likewise.
2700
* partmap/pc.c: Likewise.
2701
* include/grub/partition.h: Likewise..
2702
* include/grub/pc_partition.h: Likewise.
2703
* util/grub-emu.c: Include <grub/partition.h> instead of
2704
<grub/machine/partition.h>.
2705
(main): Call `grub_pc_partition_map_init',
2706
`grub_amiga_partition_map_init' and
2707
`grub_apple_partition_map_init' and deinitialize afterwards.
2708
* util/i386/pc/biosdisk.c: Include `#include
2709
<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
2710
`<grub/machine/partition.h>'.
2711
* util/i386/pc/grub-setup.c: Likewise.
2712
* util/i386/pc/biosdisk.c: Likewise.
2713
(grub_util_biosdisk_get_grub_dev): Only access the PC specific
2714
partition information in case of a PC partition.
2715
* util/i386/pc/grub-setup.c: Include `#include
2716
<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
2717
`<grub/machine/partition.h>'.
2718
(setup): Only access the PC specific partition information in case
2721
2004-11-17 Hollis Blanchard <hollis@penguinppc.org>
2723
* kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
2724
(grub_longjmp): Likewise.
2725
* include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
2727
* normal/powerpc/setjmp.S: New file.
2728
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
2729
`normal/powerpc/setjmp.S'.
2730
(grubof_CFLAGS): Add `-DGRUBOF'.
2731
* include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
2732
[GRUB_UTIL && !GRUBOF].
2734
2004-11-16 Marco Gerards <metgerards@student.han.nl>
2736
* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
2737
property named `name'. Correctly handle the error returned by
2738
`grub_ieee1275_finddevice' if a device can not be opened.
2740
2004-11-02 Hollis Blanchard <hollis@penguinppc.org>
2742
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
2743
`actual' for negativity.
2744
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
2747
2004-11-01 Marco Gerards <metgerards@student.han.nl>
2749
* term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
2750
(PAGE_OFFSET): New macro.
2751
(CRTC_ADDR_PORT): Likewise.
2752
(CRTC_DATA_PORT): Likewise.
2753
(START_ADDR_HIGH_REGISTER): Likewise.
2754
(START_ADDR_LOW_REGISTER): Likewise.
2755
(GRAPHICS_ADDR_PORT): Likewise.
2756
(GRAPHICS_DATA_PORT): Likewise.
2757
(READ_MAP_REGISTER): Likewise.
2758
(INPUT_STATUS1_REGISTER): Likewise.
2759
(INPUT_STATUS1_VERTR_BIT): Likewise.
2760
(page): New variable.
2761
(wait_vretrace): New function.
2762
(set_read_map): Likewise.
2763
(set_start_address): Likewise.
2764
(grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
2766
(check_vga_mem): Take the page into account.
2767
(write_char): Likewise.
2768
(write_cursor): Likewise.
2769
(scroll_up): Likewise. Copy the page to the page that is not
2770
shown and switch between both pages.
2771
(grub_vga_putchar): Fix off by one error.
2772
(grub_vga_cls): Wait for the vertical retrace. Take the page into
2775
2004-11-01 Marco Gerards <metgerards@student.han.nl>
2777
Add support for iso9660 (including rockridge).
2779
* conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
2780
(iso9660_mod_SOURCES): New variable.
2781
(iso9660_mod_CFLAGS): Likewise.
2782
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
2783
* include/grub/fs.h (grub_iso9660_init): New prototype.
2784
* util/grub-emu.c (main): Call `grub_iso9660_init'.
2785
* fs/iso9660.c: New file.
2787
* include/grub/misc.h (grub_strncat): New prototype.
2788
* kern/misc.c (grub_strncat): New function.
2790
* fs/hfs.c (grub_hfs_mount): Translate the error
2791
`GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
2792
* fs/jfs.c (grub_jfs_mount): Likewise.
2793
* fs/ufs.c (grub_ufs_mount): Likewise.
2795
2004-10-28 Hollis Blanchard <hollis@penguinppc.org>
2797
* boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
2798
which initialized BAT registers.
2799
* boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
2800
grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
2802
* include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
2803
grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
2805
* kern/powerpc/ieee1275/openfw.c (grub_map): New function.
2806
(grub_mapclaim): Likewise.
2807
* loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
2808
grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
2811
2004-10-19 Hollis Blanchard <hollis@penguinppc.org>
2813
* conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
2814
(COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
2815
-ffreestanding and -msoft-float.
2817
2004-10-15 Hollis Blanchard <hollis@penguinppc.org>
2819
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
2820
append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
2821
set in grub_ieee1275_flags.
2823
2004-10-14 Hollis Blanchard <hollis@penguinppc.org>
2825
* include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
2827
* kern/powerpc/ieee1275/init.c (grub_machine_init): Call
2828
grub_console_init first.
2829
Change the memory range used for grub_ieee1275_claim and
2830
grub_mm_init_region.
2831
Print an error message if the claim fails.
2832
Include <grub/misc.h>.
2834
2004-10-13 Hollis Blanchard <hollis@penguinppc.org>
2836
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
2837
Call grub_children_iterate for device nodes of type `scsi',
2839
(grub_ofdisk_open): Remove manual device alias resolution.
2840
Fix memory leak when device cannot be opened.
2841
* include/grub/powerpc/ieee1275/ieee1275.h
2842
(grub_children_iterate): New prototype.
2843
* kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
2845
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2846
Return -1 if args.size was -1.
2848
2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2850
* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
2851
(cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
2852
World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
2853
Open Firmware's memory for it; claim memory from _start to _end.
2854
* boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
2856
(_start): Zero BSS from __bss_start to _end.
2857
* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
2859
(GRUB_IEEE1275_NO_PARTITION_0): New #define.
2861
2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2863
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
2864
-1 if args.base was -1.
2866
2004-10-08 Hollis Blanchard <hollis@penguinppc.org>
2868
* term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
2869
escape sequence instead of a literal ^L. Also call
2870
grub_ofconsole_gotoxy.
2872
2004-10-03 Hollis Blanchard <hollis@penguinppc.org>
2874
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
2875
void * arguments to grub_addr_t. All callers updated. Also make
2876
the `result' argument optional.
2877
(grub_ieee1275_release): change void * arguments to grub_addr_t.
2878
All callers updated.
2880
2004-09-22 Hollis Blanchard <hollis@penguinppc.org>
2882
* commands/ls.c (grub_ls_list_files): Use the string following the
2883
initial ')', if present, as the filesystem path.
2884
* kern/rescue.c (grub_rescue_cmd_ls): Likewise.
2886
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
2888
2004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
2890
Make the source code of the menu interface more readable.
2892
* normal/menu.c: Include grub/mm.h.
2893
(TERM_WIDTH): New macro.
2894
(TERM_HEIGHT): Likewise.
2895
(TERM_INFO_HEIGHT): Likewise.
2896
(TERM_MARGIN): Likewise.
2897
(TERM_SCROLL_WIDTH): Likewise.
2898
(TERM_TOP_BORDER_Y): Likewise.
2899
(TERM_LEFT_BORDER_X): Likewise.
2900
(TERM_BORDER_WIDTH): Likewise.
2901
(TERM_MESSAGE_HEIGHT): Likewise.
2902
(TERM_BORDER_HEIGHT): Likewise.
2903
(TERM_NUM_ENTRIES): Likewise.
2904
(TERM_FIRST_ENTRY_Y): Likewise.
2905
(TERM_ENTRY_WIDTH): Likewise.
2906
(TERM_CURSOR_X): Likewise.
2907
(draw_border): Use macros instead of magic numbers.
2908
(print_entry): Likewise.
2909
(print_entries): Likewise.
2910
(run_menu): Likewise. Also, handle the key 'e'.
2911
(run_menu_entry): Ignore empty command lines.
2912
(print_message): Added a new argument EDIT. If EDIT is true,
2913
print a different message.
2914
(init_page): Likewise.
2915
(edit_menu_entry): New function. Not implemented yet.
2917
2004-09-17 Marco Gerards <metgerards@student.han.nl>
2919
Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
2920
can be loaded from normal mode.
2922
* conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
2924
(linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
2925
(multiboot_mod_CFLAGS): New variables.
2926
* loader/i386/pc/linux_normal.c: New file.
2927
* loader/i386/pc/multiboot_normal.c: Likewise.
2929
* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
2932
* fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
2933
`fdiro' to read the mode information from instead of `diro'.
2935
* fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
2936
looking up a symlink.
2938
* include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
2940
* normal/command.c (grub_command_execute): Don't parse the
2941
arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
2942
flags of the command.
2944
* normal/menu.c (grub_menu_run): Fix typo.
2946
2004-09-14 Hollis Blanchard <hollis@penguinppc.org>
2948
* kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
2950
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
2951
`y + 1' instead of `y - 1'.
2953
* conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
2955
2004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
2957
From Hollis Blanchard <hollis@penguinppc.org>:
2958
* kern/misc.c (memmove): New alias for grub_memmove.
2959
(memcmp): New alias for grub_memcmp.
2960
(memset): New alias for grub_memset.
2961
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2962
Change "int handle" to "grub_ieee1275_phandle_t handle".
2963
* include/grub/powerpc/ieee1275/ieee1275.h
2964
(grub_ieee1275_get_property): Likewise.
2966
2004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
2968
Added normal mode command `chainloader' as module chain.mod, which
2969
depends on normal.mod and _chain.mod.
2971
* conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
2972
(chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
2973
* include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
2975
* loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
2976
but arguments parsing moved to ...
2977
(grub_chainloader_cmd): ... here. New function.
2978
* include/grub/i386/pc/chainloader.h: New file.
2979
* loader/i386/pc/chainloader_normal.c: Likewise.
2981
2004-09-11 Marco Gerards <metgerards@student.han.nl>
2983
* conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
2984
(grub_mkimage_LDFLAGS): Likewise.
2985
(grub_emu_SOURCES): Likewise.
2986
(kernel_img_HEADERS): Added fshelp.h.
2987
* fs/ext2.c: Include <grub/fshelp.h>.
2988
(FILETYPE_REG): New macro.
2989
(FILETYPE_INO_REG): Likewise.
2990
(grub_ext_sblock): Renamed to `grub_ext2_sblock'.
2992
(ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
2994
(grub_fshelp_node): New struct.
2995
(grub_ext2_data): Added member `diropen'. Changed member `inode'
2997
(grub_ext2_get_file_block): Removed function.
2998
(grub_ext2_read_block): New function.
2999
(grub_ext2_read_file): Replaced parameter `data' by `node'.
3000
This function was written.
3001
(grub_ext2_mount): Read the root inode. Create a diropen struct.
3002
(grub_ext2_find_file): Removed function.
3003
(grub_ext2_read_symlink): New function.
3004
(grub_ext2_iterate_dir): Likewise.
3005
(grub_ext2_open): Rewritten.
3006
(grub_ext2_dir): Rewritten.
3007
* include/grub/fshelp.h: New file.
3008
* fs/fshelp.c: Likewise.
3010
2004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
3012
* normal/menu.c: Include grub/loader.h and grub/machine/time.h.
3013
(print_message): Add a missing newline.
3014
(run_menu): Added timeout support.
3015
(run_menu_entry): New local function.
3016
(grub_menu_run): Added support for booting.
3018
* kern/loader.c (grub_loader_is_loaded): New function.
3020
* include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
3021
(grub_get_rtc): Exported.
3023
* include/grub/i386/pc/time.h: Include grub/symbol.h.
3024
(grub_get_rtc): Exported.
3026
* include/grub/normal.h (struct grub_command_list): Remove
3027
constant from the member `command'.
3029
* include/grub/loader.h (grub_loader_is_loaded): Declared.
3031
* include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
3033
* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
3035
2004-08-28 Marco Gerards <metgerards@student.han.nl>
3037
Add support for the JFS filesystem.
3039
* fs/jfs.c: New file.
3040
* include/grub/fs.h (grub_jfs_init): New prototype.
3041
(grub_jfs_fini): New prototype.
3042
* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
3043
(grub_emu_SOURCES): Likewise.
3044
(pkgdata_MODULES): Add jfs.mod.
3045
(jfs_mod_SOURCES): New variable.
3046
(jfs_mod_CFLAGS): Likewise.
3047
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
3048
(grubof_SOURCES): Likewise.
3049
* util/grub-emu.c (main): Initialize and deinitialize JFS support.
3051
* fs/fat.c (grub_fat_find_dir): Convert the filename little
3052
endian to the host endian.
3053
(grub_fat_utf16_to_utf8): Move function from there...
3054
* kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
3055
the endianess of the source string anymore.
3056
* include/grub/misc.h (grub_utf16_to_utf8): New prototype.
3058
2004-08-24 Marco Gerards <metgerards@student.han.nl>
3060
* commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
3061
(grub_boot_fini) [GRUB_UTIL]: Likewise.
3062
(GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
3063
(GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
3065
* fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
3066
(grub_hfs_iterate_dir): Make the function static. Add prototypes
3067
for `node_found' and `it_dir'.
3068
(grub_hfs_dir): Add prototype for `dir_hook'.
3070
* fs/minix.c (grub_minix_get_file_block): Add prototype for
3071
`grub_get_indir'. Rename `indir' in two blocks to `indir16'
3072
and `indir32' to silence a gcc warning.
3074
* include/grub/fs.h (grub_hfs_init): New prototype.
3075
(grub_hfs_fini): Likewise.
3078
2004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
3080
Each disk device has its own id now. This is useful to make use
3081
of multiple disk devices.
3083
* include/grub/disk.h (grub_disk_dev_id): New enum.
3084
(GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
3085
(GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
3087
* disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
3088
GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
3090
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
3091
GRUB_DISK_DEVICE_OFDISK_ID as an id.
3093
* util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
3094
GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
3096
* include/grub/disk.h (struct grub_disk_dev): Added a new member
3097
"id" which is used by the cache manager.
3099
* normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
3102
2004-08-18 Marco Gerards <metgerards@student.han.nl>
3104
* fs/hfs.c: New file.
3105
* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
3106
(grub_emu_SOURCES): Likewise.
3107
(pkgdata_MODULES): Add hfs.mod.
3108
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
3109
(grubof_SOURCES): Likewise.
3110
* util/grub-emu.c (main): Initialize and deinitialize HFS support.
3112
* include/grub/misc.h (grub_strncasecmp): Add prototype.
3113
* kern/misc.c (grub_strncasecmp): Add function.
3115
2004-08-14 Marco Gerards <metgerards@student.han.nl>
3117
* include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
3120
* fs/ext2.c (FILETYPE_UNKNOWN): New macro.
3121
(grub_ext2_dir): In case the directory entry type is unknown, read
3124
2004-08-02 Peter Bruin <pjbruin@dds.nl>
3126
* loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
3127
grub_load_linux instead of grub_rescue_cmd_linux as second
3128
argument of grub_rescue_register_command.
3130
* Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
3132
2004-07-27 Marco Gerards <metgerards@student.han.nl>
3134
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
3136
* commands/boot.c: Remove the check for `GRUB_UTIL'.
3137
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
3138
`loader/powerpc/ieee1275/linux.c',
3139
`loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
3140
* include/grub/powerpc/ieee1275/ieee1275.h
3141
(grub_ieee1275_release): New prototype.
3142
* include/grub/powerpc/ieee1275/loader.h: Rewritten.
3143
* kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
3144
normal, boot, linux and linux_normal.
3145
* loader/powerpc/ieee1275/linux.c: New file.
3146
* loader/powerpc/ieee1275/linux_normal.c: Likewise.
3148
2004-07-12 Marco Gerards <metgerards@student.han.nl>
3150
* normal/arg.c (grub_arg_parse): Correct error handling after
3151
reallocating the argumentlist (check if `argl' is not null instead
3152
of checking if `args' is not null).
3153
* kern/mm.c (grub_realloc): Return the same pointer when using the
3154
same region, instead of returning the header address.
3156
2004-07-11 Marco Gerards <metgerards@student.han.nl>
3158
* disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
3159
one block instead of two when looking for the initial partition.
3160
(grub_partition_probe): Initialize the local variable `p' with 0.
3161
Use base 10 for the grub_strtoul call.
3162
* kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
3163
need for one local variable.
3164
(grub_strtoul): Don't add the new value to `num', instead of that
3167
2004-07-11 Marco Gerards <metgerards@student.han.nl>
3169
* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
3170
(pxeboot_img_SOURCES): New variable.
3171
(pxeboot_img_ASFLAGS): Likewise.
3172
(pxeboot_img_LDFLAGS): Likewise.
3173
* boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
3174
GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
3175
<lode_leroy@hotmail.com>.
3177
2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3179
* kern/rescue.c (grub_enter_rescue_mode): Don't continue when
3182
2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3184
* normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
3185
the history buffer logic.
3187
2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
3189
* fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
3190
(FILETYPE_INO_SYMLINK): New macros.
3191
(grub_ext2_find_file): Check if the node is a directory using the
3192
inode stat information instead of using the filetype in the
3193
dirent. Exclude the first character of an absolute symlink.
3194
(grub_ext2_dir): Mask out the filetype part of the mode member of
3197
2004-05-24 Marco Gerards <metgerards@student.han.nl>
3199
Add support for UFS version 1 and 2. Add support for the minix
3200
filesystem version 1 and 2, both the variants with 14 and 30 long
3203
* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
3205
(grub_emu_SOURCES): Likewise.
3206
(pkgdata_MODULES): Add ufs.mod and minix.mod.
3207
(ufs_mod_SOURCES): New variable.
3208
(ufs_mod_CFLAGS): Likewise.
3209
(minix_mod_SOURCES): Likewise.
3210
(minix_mod_CFLAGS): Likewise.
3211
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
3213
(grubof_SOURCES): Likewise.
3214
* fs/ufs.c: New file.
3215
* fs/minix.c: New file.
3216
* include/grub/fs.h (grub_ufs_init): New prototype.
3217
(grub_ufs_fini): Likewise.
3218
(grub_minix_init): Likewise.
3219
(grub_minix_fini): Likewise.
3220
* util/grub-emu.c (main): Initialize and deinitialize UFS and
3223
2004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
3225
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
3226
commands/ls.c, commands/terminal.c, commands/boot.c,
3227
commands/cmp.c and commands/cat.c.
3228
(grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
3230
* kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
3233
2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
3235
All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
3236
and grub_, respectively. Because the conversion is trivial and
3237
mechanical, I omit the details here. Please refer to the CVS
3238
if you need more information.
3240
2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
3242
* include/pupa: Renamed to ...
3243
* include/grub: ... this.
3244
* util/i386/pc/pupa-mkimage.c: Renamed to ...
3245
* util/i386/pc/grub-mkimage.c: ... this.
3246
* util/i386/pc/pupa-setup.c: Renamed to ...
3247
* util/i386/pc/grub-setup.c: ... this.
3248
* util/pupa-emu.c: Renamed to ...
3249
* util/grub-emu.c: ... this.
3251
2004-03-29 Marco Gerards <metgerards@student.han.nl>
3253
Add support for the newworld apple macintosh (PPC). This has been
3254
tested on the powerbook 2000 only. It only adds support for
3255
generic ieee1275 functions, console and disk support. This should
3256
be easy to port to other architectures with support for Open
3259
* configure.ac: Accept the powerpc as host_cpu. In the case of
3260
the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
3261
specific tests are only executed while building for the i386.
3262
Inverse test for crosscompile.
3263
* genmk.rb (Utility): Allow assembler files.
3264
* normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
3265
* conf/powerpc-ieee1275.rmk: New file.
3266
* disk/powerpc/ieee1275/ofdisk.c: Likewise.
3267
* disk/powerpc/ieee1275/partition.c: Likewise.
3268
* include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
3269
* include/pupa/powerpc/ieee1275/console.h: Likewise.
3270
* include/pupa/powerpc/ieee1275/partition.h: Likewise.
3271
* include/pupa/powerpc/ieee1275/time.h: Likewise.
3272
* include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
3273
* include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
3274
* include/pupa/powerpc/ieee1275/loader.h
3275
* include/pupa/powerpc/setjmp.h: Likewise.
3276
* include/pupa/powerpc/types.h: Likewise.
3277
* kern/powerpc/ieee1275/init.c: Likewise.
3278
* kern/powerpc/ieee1275/openfw.c: Likewise.
3279
* term/powerpc/ieee1275/ofconsole.c: Likewise.
3281
These files were written by Johan Rydberg
3282
(jrydberg@night.trouble.net) and I only modified them slightly.
3284
* boot/powerpc/ieee1275/cmain.c: New file.
3285
* boot/powerpc/ieee1275/crt0.S: Likewise.
3286
* boot/powerpc/ieee1275/ieee1275.c: Likewise.
3287
* include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
3289
2004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
3291
* Makefile.in: Update copyright.
3292
* genmodsrc.sh: Likewise.
3293
* gensymlist.sh: Likewise.
3294
* term/i386/pc/vga.c: Indent correctly.
3296
* util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
3297
bugreporting address.
3298
* util/i386/pc/pupa-setup.c (usage): Likewise,
3299
(main): Call pupa_ext2_init and pupa_ext2_fini.
3301
* fs/fat.c (log2): Renamed to ...
3302
(fat_log2): ... this.
3303
All callers changed.
3304
* kern/misc.c (memcpy): Alias to pupa_memmove.
3305
* loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
3307
* util/console.c (pupa_ncurses_fini): Return 0.
3309
* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
3310
Move fail label here.
3311
[__GNU__]: Don't warn when using stat.
3312
(open_device)[!__linux__]: Check if FD < 0 instead of !FD.
3313
(pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
3314
long int. Use strtol instead of strtoul.
3316
2004-03-14 Marco Gerards <metgerards@student.han.nl>
3318
* commands/boot.c: New file.
3319
* commands/cat.c: Likewise.
3320
* commands/cmp.c: Likewise.
3321
* commands/ls.c: Likewise.
3322
* commands/terminal.c: Likewise.
3323
* normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
3324
(pupa_register_command): Changed interface to match the new
3326
(pupa_command_execute): Changed (almost rewritten) so it uses
3327
pupa_split_command. Added support for setting variables using the
3329
(rescue_command): Changed to work with the new argument parser.
3330
(terminal_command): Moved from here to commands/terminal.c.
3331
(set_command): New function.
3332
(unset_command): New function.
3333
(insmod_command): New function.
3334
(rmmod_command): New function.
3335
(lsmod_command): New function.
3336
(pupa_command_init): Don't initialize the command terminal
3337
anymore. Initialize the commands set, unset, insmod, rmmod and
3339
* conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
3340
(kernel_img_HEADERS): Add arg.h and env.h.
3341
(pupa_mkimage_LDFLAGS): Add kern/env.c.
3342
(pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
3343
commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
3345
(pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
3347
(normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
3348
(boot_mod_SOURCES): New variable.
3349
(terminal_mod_SOURCES): Likewise.
3350
(ls_mod_SOURCES): Likewise.
3351
(cmp_mod_SOURCES): Likewise.
3352
(cat_mod_SOURCES): Likewise.
3354
* normal/arg.c: New file.
3355
* kern/env.c: Likewise.
3356
* include/pupa/arg.h: Likewise.
3357
* include/pupa/env.h: Likewise.
3358
* font/manager.c (font_command): Changed to match argument parsing
3360
(PUPA_MOD_INIT): Likewise.
3361
* hello/hello.c (pupa_cmd_hello): Likewise.
3362
(PUPA_MOD_INIT): Likewise.
3363
* include/pupa/disk.h: Include <pupa/device.h>.
3364
(pupa_print_partinfo): New prototype.
3365
* include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
3366
(pupa_dl_get_prefix): Likewise.
3367
* include/pupa/misc.h: Include <pupa/err.h>.
3368
(pupa_isgraph): New prototype.
3369
(pupa_isdigit): Likewise.
3370
(pupa_split_cmdline): Likewise.
3371
* include/pupa/normal.h: Include <pupa/arg.h>.
3372
(pupa_command): Changed the prototype of the member `func' to
3373
match the argument parsing interface. Added member `options'.
3374
(pupa_register_command): Updated to match function.
3375
(pupa_arg_parse): New prototype.
3376
(pupa_hello_init) [PUPA_UTIL]: New prototype.
3377
(pupa_hello_fini) [PUPA_UTIL]: Likewise.
3378
(pupa_ls_init) [PUPA_UTIL]: Likewise.
3379
(pupa_ls_fini) [PUPA_UTIL]: Likewise.
3380
(pupa_cat_init) [PUPA_UTIL]: Likewise.
3381
(pupa_cat_fini) [PUPA_UTIL]: Likewise.
3382
(pupa_boot_init) [PUPA_UTIL]: Likewise.
3383
(pupa_boot_fini) [PUPA_UTIL]: Likewise.
3384
(pupa_cmp_init) [PUPA_UTIL]: Likewise.
3385
(pupa_cmp_fini) [PUPA_UTIL]: Likewise.
3386
(pupa_terminal_init) [PUPA_UTIL]: Likewise.
3387
(pupa_terminal_fini) [PUPA_UTIL]: Likewise.
3388
* kern/disk.c: Include <pupa/file.h>.
3389
(pupa_print_partinfo): New function.
3390
* kern/dl.c: Include <pupa/env.h>.
3391
(pupa_dl_dir): Variable removed.
3392
(pupa_dl_load): Use the environment variable `prefix' instead of
3393
the variable pupa_dl_dir.
3394
(pupa_dl_set_prefix): Function removed.
3395
(pupa_dl_get_prefix): Likewise.
3396
* kern/i386/pc/init.c: Include <pupa/env.h>.
3397
(pupa_machine_init): Use the environment variable `prefix' instead of
3398
using pupa_dl_set_prefix to set the prefix.
3399
* kern/main.c: Include <pupa/env.h>.
3400
(pupa_set_root_dev): Use the environment variable `prefix' instead of
3401
using pupa_dl_get_prefix to get the prefix.
3402
* kern/misc.c: Include <pupa/env.h>.
3403
(pupa_isdigit): New function.
3404
(pupa_isgraph): Likewise.
3405
(pupa_ftoa): Likewise.
3406
(pupa_vsprintf): Added support for printing values of the type
3407
`double'. Make it possible to format variable output when using
3408
formatting like `%1.2%f'.
3409
(pupa_split_cmdline): New function.
3410
* kern/rescue.c: Include <pupa/env.h>.
3411
(next_word): Removed function.
3412
(pupa_rescue_cmd_prefix): Likewise.
3413
(pupa_rescue_cmd_set): New function.
3414
(pupa_rescue_cmd_unset): New function.
3415
(pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
3416
split the command line instead of splitting it here. Added
3417
support for setting variables using the syntax `foo=bar'. Don't
3418
initialize the prefix command anymore. Initialized the set and
3420
* normal/cmdline.c: Include <pupa/env.h>.
3421
(pupa_tab_complete): Added prototypes for print_simple_completion,
3422
print_partition_completion, add_completion, iterate_commands,
3423
iterate_dev, iterate_part and iterate_dir. Moved code to print
3424
partition information from here to kern/disk.c.
3425
(pupa_cmdline_run): Don't check if the funtion exists anymore.
3426
* normal/main.c: Include <pupa/env.h>.
3427
(pupa_rescue_cmd_normal): Use the environment variable `prefix'
3428
instead of using pupa_dl_get_prefix to get the prefix.
3429
* term/i386/pc/vga.c: Include <pupa/arg.h>.
3430
(check_vga_mem): Cast pointers to `void *' to silence a gcc
3432
(pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
3433
(pupa_vga_setcolor): Declare unused variables with `__attribute__
3434
((unused))' to silence a gcc warning.
3435
(pupa_vga_setcolor): Likewise.
3436
(debug_command): Changed to match argument parsing
3438
* util/pupa-emu.c: Include <pupa/env.h>.
3439
(options): Added 0's for unused fields to silence a gcc warning.
3441
(main): Use the environment variable `prefix' instead of using
3442
pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
3443
boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
3446
* util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
3447
* util/misc.c: Include <malloc.h>.
3448
(pupa_malloc): Rewritten so errors are correctly reported.
3449
(pupa_realloc): Likewise.
3450
(pupa_memalign): Likewise.
3451
(pupa_mm_init_region): Declare unused variables with
3452
`__attribute__ ((unused))' to silence a gcc warning.
3453
* normal/i386/setjmp.S: Remove tab at the end of the file to
3454
silence a gcc warning.
3455
* loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
3456
variables with `__attribute__ ((unused))' to silence a gcc
3458
* loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
3459
local variable i unsigned to silence a gcc warning.
3461
* kern/term.c: Include <pupa/misc.h>.
3462
(pupa_more_lines): New variable.
3463
(pupa_more): Likewise.
3464
(pupa_putcode): When the pager is active pause at the end of every
3466
(pupa_set_more): New function.
3467
* include/pupa/term.h (pupa_set_more): New prototype.
3470
2004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
3472
Now this project is GRUB 2 rather than PUPA. The location of
3473
the CVS repository was moved to GRUB's.
3475
* configure.ac: Use bug-grub as the reporting address.
3476
Use GRUB instead of PUPA.
3477
Change the version number to 1.90.
3479
2004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
3481
* genkernsyms.sh: Updated copyright information.
3482
* genmk.rb: Likewise.
3483
* genmodsrc.sh: Likewise.
3484
* gensymlist.sh: Likewise.
3485
* boot/i386/pc/boot.S: Likewise.
3486
* boot/i386/pc/diskboot.S: Likewise.
3487
* disk/i386/pc/biosdisk.c: Likewise.
3488
* disk/i386/pc/partition.c: Likewise.
3489
* font/manager.c: Likewise.
3490
* fs/ext2.c: Likewise.
3491
* fs/fat.c: Likewise.
3492
* include/pupa/boot.h: Likewise.
3493
* include/pupa/device.h: Likewise.
3494
* include/pupa/disk.h: Likewise.
3495
* include/pupa/dl.h: Likewise.
3496
* include/pupa/elf.h: Likewise.
3497
* include/pupa/err.h: Likewise.
3498
* include/pupa/file.h: Likewise.
3499
* include/pupa/font.h: Likewise.
3500
* include/pupa/fs.h: Likewise.
3501
* include/pupa/kernel.h: Likewise.
3502
* include/pupa/loader.h: Likewise.
3503
* include/pupa/misc.h: Likewise.
3504
* include/pupa/mm.h: Likewise.
3505
* include/pupa/net.h: Likewise.
3506
* include/pupa/normal.h: Likewise.
3507
* include/pupa/rescue.h: Likewise.
3508
* include/pupa/setjmp.h: Likewise.
3509
* include/pupa/symbol.h: Likewise.
3510
* include/pupa/term.h: Likewise.
3511
* include/pupa/types.h: Likewise.
3512
* include/pupa/i386/setjmp.h: Likewise.
3513
* include/pupa/i386/types.h: Likewise.
3514
* include/pupa/i386/pc/biosdisk.h: Likewise.
3515
* include/pupa/i386/pc/boot.h: Likewise.
3516
* include/pupa/i386/pc/console.h: Likewise.
3517
* include/pupa/i386/pc/init.h: Likewise.
3518
* include/pupa/i386/pc/kernel.h: Likewise.
3519
* include/pupa/i386/pc/linux.h: Likewise.
3520
* include/pupa/i386/pc/loader.h: Likewise.
3521
* include/pupa/i386/pc/memory.h: Likewise.
3522
* include/pupa/i386/pc/multiboot.h: Likewise.
3523
* include/pupa/i386/pc/partition.h: Likewise.
3524
* include/pupa/i386/pc/time.h: Likewise.
3525
* include/pupa/i386/pc/vga.h: Likewise.
3526
* include/pupa/i386/pc/util/biosdisk.h: Likewise.
3527
* include/pupa/util/getroot.h: Likewise.
3528
* include/pupa/util/misc.h: Likewise.
3529
* include/pupa/util/resolve.h: Likewise.
3530
* kern/device.c: Likewise.
3531
* kern/disk.c: Likewise.
3532
* kern/dl.c: Likewise.
3533
* kern/err.c: Likewise.
3534
* kern/file.c: Likewise.
3535
* kern/fs.c: Likewise.
3536
* kern/loader.c: Likewise.
3537
* kern/main.c: Likewise.
3538
* kern/misc.c: Likewise.
3539
* kern/mm.c: Likewise.
3540
* kern/rescue.c: Likewise.
3541
* kern/term.c: Likewise.
3542
* kern/i386/dl.c: Likewise.
3543
* kern/i386/pc/init.c: Likewise.
3544
* kern/i386/pc/lzo1x.S: Likewise.
3545
* kern/i386/pc/startup.S: Likewise.
3546
* loader/i386/pc/chainloader.c: Likewise.
3547
* loader/i386/pc/linux.c: Likewise.
3548
* loader/i386/pc/multiboot.c: Likewise.
3549
* normal/cmdline.c: Likewise.
3550
* normal/command.c: Likewise.
3551
* normal/main.c: Likewise.
3552
* normal/menu.c: Likewise.
3553
* normal/i386/setjmp.S: Likewise.
3554
* term/i386/pc/console.c: Likewise.
3555
* term/i386/pc/vga.c: Likewise.
3556
* util/console.c: Likewise.
3557
* util/genmoddep.c: Likewise.
3558
* util/misc.c: Likewise.
3559
* util/pupa-emu.c: Likewise.
3560
* util/resolve.c: Likewise.
3561
* util/unifont2pff.rb: Likewise.
3562
* util/i386/pc/biosdisk.c: Likewise.
3563
* util/i386/pc/getroot.c: Likewise.
3564
* util/i386/pc/pupa-mkimage.c: Likewise.
3565
* util/i386/pc/pupa-setup.c: Likewise.
3567
2004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
3569
* fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
3570
when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
3571
callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
3572
reading and reset it after reading.
3573
(pupa_ext2_close): Return PUPA_ERR_NONE.
3575
* include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
3577
(struct linux_kernel_header): Add kernel_version and
3579
* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
3580
pupa_file_read succeeds.
3581
(pupa_rescue_cmd_initrd): Implement.
3583
2003-12-03 Marco Gerards <metgerards@student.han.nl>
3585
* fs/ext2.c (pupa_ext2_label): New function.
3586
(pupa_ext2_fs): Added label.
3587
* fs/fat.c (pupa_fat_label): New function.
3588
(pupa_fat_fs): Added label.
3589
* include/pupa/fs.h (struct pupa_fs): Added prototype label.
3591
* kern/misc.c (pupa_strndup): New function.
3592
* include/pupa/misc.h (pupa_strndup): New prototype.
3594
* include/pupa/normal.h: Include <pupa/err.h>.
3595
(pupa_set_history): New prototype.
3596
(pupa_iterate_commands): New prototype.
3597
* normal/cmdline.c: Include <pupa/machine/partition.h>,
3598
<pupa/disk.h>, <pupa/file.h>.
3599
(hist_size): New variable.
3600
(hist_lines): Likewise.
3601
(hist_end): Likewise.
3602
(hist_used): Likewise.
3603
(pupa_set_history): New function.
3604
(pupa_history_get): Likewise.
3605
(pupa_history_add): Likewise.
3606
(pupa_history_replace): Likewise.
3607
(pupa_tab_complete): Likewise.
3608
(pupa_cmdline_run): Added tab completion and history buffer. Tab
3609
completion shows partitionnames while completing partitions, this
3610
feature was suggested by Jeff Bailey.
3611
* normal/command.c (pupa_iterate_commands): New function.
3612
* normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
3613
(pupa_normal_init): Initialize history buffer.
3614
(PUPA_MOD_INIT): Likewise.
3615
(pupa_normal_fini): Free the history buffer.
3616
(PUPA_MOD_FINI): Likewise.
3618
* util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
3621
* aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
3622
* configure.ac [i386]: Check for regparam bug.
3623
(NESTED_FUNC_ATTR) [! i386]: Defined.
3625
2003-11-17 Marco Gerards <metgerards@student.han.nl>
3627
* conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
3628
(pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
3629
(pupa_emu_SOURCES): New variable.
3630
(pupa_emu_LDFLAGS): Likewise.
3631
* include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
3632
(pupa_ext2_fini) [PUPA_UTIL]: Likewise.
3633
* include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
3634
(pupa_normal_fini) [PUPA_UTIL]: Likewise.
3635
* include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
3636
(pupa_jmp_buf): New typedef.
3637
(pupa_setjmp) [PUPA_UTIL]: New macro.
3638
(pupa_longjmp) [PUPA_UTIL]: Likewise.
3639
* include/pupa/term.h (struct pupa_term): New member `refresh'.
3640
(pupa_refresh): New prototype.
3641
* include/pupa/util/getroot.h: New file.
3642
* kern/misc.c (pupa_vsprintf): Refresh the screen after updating
3644
* kern/rescue.c (pupa_rescue_get_command_line): Likewise.
3645
(pupa_rescue_cmd_cat): Likewise.
3646
(pupa_rescue_cmd_ls): Likewise.
3647
(pupa_rescue_cmd_testload): Likewise.
3648
(pupa_rescue_cmd_lsmod): Likewise.
3649
* normal/cmdline.c (pupa_cmdline_get): Likewise.
3650
* normal/menu.c (run_menu): Likewise.
3651
* kern/term.c (pupa_cls): Likewise.
3652
(pupa_refresh): New function.
3653
* normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
3654
(pupa_normal_fini) [PUPA_UTIL]: Likewise.
3655
* util/console.c: New file.
3657
* util/i386/pc/getroot.c: New file.
3658
* util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
3659
(pupa_putchar): New function.
3660
(pupa_refresh): Likewise.
3661
(xgetcwd): Function moved to ...
3662
(strip_extra_slashes): Likewise.
3663
(get_prefix): Likewise.
3664
* util/i386/pc/getroot.c: ... here.
3665
(find_root_device): Function moved and renamed to...
3666
* util/i386/pc/getroot.c (pupa_find_root_device): ... here.
3667
Changed all callers.
3668
* util/i386/pc/pupa-setup.c (guess_root_device): Function moved
3670
* util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
3671
Changed all callers.
3672
* util/misc.c (pupa_memalign): New function.
3673
(pupa_mm_init_region): Likewise.
3674
(pupa_register_exported_symbols): Likewise.
3675
(pupa_putchar): Function removed.
3676
* util/pupa-emu.c: New file.
3678
2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
3680
* conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
3681
(_multiboot_mod_SOURCES): New variable.
3682
(_multiboot_mod_CFLAGS): Likewise.
3683
* loader/i386/pc/multiboot.c: New file.
3684
* include/pupa/i386/pc/multiboot.h: Likewise.
3685
* kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
3686
(pupa_multiboot_real_boot): New function.
3687
* include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
3688
(pupa_multiboot_real_boot): New prototype.
3689
(pupa_rescue_cmd_multiboot): Likewise
3690
(pupa_rescue_cmd_module): Likewise.
3692
* kern/loader.c (pupa_loader_set): Continue when
3693
pupa_loader_unload_func() fails.
3694
(pupa_loader_unset): New function.
3695
* include/pupa/loader.h (pupa_loader_unset): New prototype.
3697
* kern/misc.c (pupa_stpcpy): New function.
3698
* include/pupa/misc.h (pupa_stpcpy): New prototype.
3700
2003-11-12 Marco Gerards <metgerards@student.han.nl>
3702
* disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
3703
for available extensions.
3705
* include/pupa/i386/pc/time.h: New file.
3706
* kern/disk.c: Include <pupa/machine/time.h>.
3707
(PUPA_CACHE_TIMEOUT): New macro.
3708
(pupa_last_time): New variable.
3709
(pupa_disk_open): Flush the cache when there was a timeout.
3710
(pupa_disk_close): Reset the timer.
3711
* kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
3713
* util/misc.c: Include <sys/times.h>
3714
(pupa_get_rtc): New function.
3716
2003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
3718
* fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
3720
(pupa_ext2_get_file_block): Use blocks member.
3722
* fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
3723
first block. Return -1 instead of pupa_errno on error.
3725
2003-10-27 Marco Gerards <metgerards@student.han.nl>
3727
* README: In the pupa-mkimage example use _chain instead of chain
3728
and ext2 instead of fat.
3729
* TODO: Replace ext2fs with jfs as an example. Add an item for
3730
adding journal playback for ext2fs.
3731
* conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
3732
(pkgdata_MODULES): Added ext2.mod.
3733
(ext2_mod_SOURCES): New variable.
3734
(ext2_mod_CFLAGS): Likewise.
3735
* include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
3736
* include/pupa/misc.h (pupa_strncpy): New prototype.
3737
(pupa_strcat): Likewise.
3738
(pupa_strncmp): Likewise.
3739
* kern/misc.c (pupa_strcat): Enable function.
3740
(pupa_strncpy): New function.
3741
(pupa_strncmp): Likewise.
3742
* fs/ext2.c: New file.
3744
* kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
3745
when the read failed before retrying.
3746
* util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
3747
(_FILE_OFFSET_BITS): Likewise.
3748
* configure.ac: Added AC_SYS_LARGEFILE.
3750
2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
3752
* genmk.rb (PModule#rule): Make sure to get only symbol names
3753
from the output of nm.
3754
Reported by Robert Millan <zeratul2@wanadoo.es>.
3756
2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
3758
I forgot to check in these changes for a long time. This adds
3759
incomplete support for VGA console, and this is still very
3760
buggy. Also, a lot of consideration is required for I18N,
3761
UNICODE, and VGA font issues. Therefore, assume that this is
3762
such that "better than nothing".
3764
* font/manager.c: New file.
3765
* include/pupa/font.h: Likewise.
3766
* include/pupa/i386/pc/vga.h: Likewise.
3767
* term/i386/pc/vga.c: Likewise.
3768
* util/unifont2pff.rb: Likewise.
3770
* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
3771
(pkgdata_MODULES): Added vga.mod and font.mod.
3772
(vga_mod_SOURCES): New variables.
3773
(vga_mod_CFLAGS): Likewise.
3774
(font_mod_SOURCES): Likewise.
3775
(font_mod_CFLAGS): Likewise.
3777
* include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
3779
* include/pupa/term.h: Include pupa/err.h.
3780
(struct pupa_term): Added init and fini.
3781
Changed the argument of putchar to pupa_uint32_t.
3783
* include/pupa/i386/pc/console.h: Include pupa/symbol.h.
3784
(pupa_console_real_putchar): New prototype.
3785
(pupa_console_putchar): Removed.
3786
(pupa_console_checkkey): Exported.
3787
(pupa_console_getkey): Likewise.
3789
* kern/misc.c (pupa_vsprintf): Add support for UNICODE
3792
* kern/term.c (pupa_term_set_current): Rewritten.
3793
(pupa_putchar): Likewise.
3794
(pupa_putcode): New function.
3796
* kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
3797
(pupa_console_real_putchar): ... this.
3798
(pupa_vga_set_mode): New function.
3799
(pupa_vga_get_font): Likewise.
3801
* normal/command.c: Include pupa/term.h.
3802
(terminal_command): New function.
3803
(pupa_command_init): Register the command "terminal".
3805
* normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
3806
(DISP_UP): Likewise.
3807
(DISP_RIGHT): Likewise.
3808
(DISP_DOWN): Likewise.
3809
(DISP_HLINE): Likewise.
3810
(DISP_VLINE): Likewise.
3811
(DISP_UL): Likewise.
3812
(DISP_UR): Likewise.
3813
(DISP_LL): Likewise.
3814
(DISP_LR): Likewise.
3816
* term/i386/pc/console.c (pupa_console_putchar): New function.
3818
2003-02-08 NIIBE Yutaka <gniibe@m17n.org>
3820
* util/resolve.c (pupa_util_resolve_dependencies): BUG
3821
FIX. Reverse the path_list.
3823
* include/pupa/normal.h: Export pupa_register_command and
3824
pupa_unregister_command.
3826
* hello/hello.c (pupa_cmd_hello): New module.
3827
* conf/i386-pc.rmk: Added hello.mod.
3829
2003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
3831
* kern/i386/pc/lzo1x.S: New file.
3833
* util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
3834
(compress_kernel): New variable.
3835
(generate_image): Heavily modified to support compressing a
3836
large part of the core image.
3838
* util/misc.c (pupa_util_read_image): Fix a file descriptor
3840
(pupa_util_load_image): New function.
3842
* kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
3843
(pupa_compressed_size): New variable.
3844
(codestart): Enable Gate A20 here.
3845
Decompress the compressed part of the core image.
3846
Rearrange the code to put functions and variables which are
3847
required for initialization in the non-compressed part.
3850
* kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
3853
* include/pupa/util/misc.h (pupa_util_write_image): Declared.
3855
* include/pupa/i386/pc/kernel.h
3856
(PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
3857
(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
3858
(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
3859
(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
3860
(PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
3862
* conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
3864
* genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
3865
(Utility#rule): Likewise.
3867
* configure.ac: Check if LZO is available.
3869
2003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
3871
* include/pupa/normal.h: New file.
3872
* include/pupa/setjmp.h: Likewise.
3873
* include/pupa/i386/setjmp.h: Likewise.
3874
* normal/cmdline.c: Likewise.
3875
* normal/command.c: Likewise.
3876
* normal/main.c: Likewise.
3877
* normal/menu.c: Likewise.
3878
* normal/i386/setjmp.S: Likewise.
3880
* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
3881
(pupa_rescue_cmd_initrd): Likewise.
3883
* loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
3886
* kern/i386/pc/startup.S (translation_table): New variable.
3887
(translate_keycode): New function.
3888
(pupa_console_getkey): Call translate_keycode.
3890
* kern/rescue.c (attempt_normal_mode): New function.
3891
(pupa_enter_rescue_mode): Attempt to execute the normal mode. If
3892
it failed, print a message.
3894
* kern/mm.c (pupa_real_malloc): Print more information when a
3895
free magic is broken.
3896
(pupa_free): If the first free header is not free actually, set
3899
* kern/main.c (pupa_load_normal_mode): Just load the module
3901
(pupa_main): Don't print the message
3902
"Entering into rescue mode..." here.
3904
* include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
3906
(pupa_rescue_cmd_initrd): Likewise.
3907
(pupa_rescue_cmd_initrd): Likewise.
3909
* include/pupa/symbol.h (FUNCTION): Specify the type.
3910
(VARIABLE): Likewise.
3912
* include/pupa/err.h (pupa_err_t): Added
3913
PUPA_ERR_UNKNOWN_COMMAND.
3915
* include/pupa/dl.h (pupa_dl_set_prefix): Exported.
3916
(pupa_dl_get_prefix): Likewise.
3918
* conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
3919
Added _chain.mod and _linux.mod instead of chain.mod and
3921
(chain_mod_SOURCES): Renamed to ...
3922
(_chain_mod_SOURCES): ... this.
3923
(chain_mod_CFLAGS): Renamed to ...
3924
(_chain_mod_CFLAGS): ... this.
3925
(linux_mod_SOURCES): Renamed to ...
3926
(_linux_mod_SOURCES): ... this.
3927
(linux_mod_CFLAGS): Renamed to ...
3928
(_linux_mod_CFLAGS): ... this.
3929
(normal_mod_SOURCES): New variable.
3930
(normal_mod_CFLAGS): Likewise.
3931
(normal_mod_ASFLAGS): Likewise.
3933
2003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
3935
* kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
3938
* kern/dl.c (pupa_dl_ref): Refer dependending modules
3940
(pupa_dl_unref): Unrefer depending modules recursively.
3941
Don't call pupa_dl_unload implicitly, because PUPA can crash if
3942
a module is unloaded before one depending on that module is
3944
(pupa_dl_unload): Unload depending modules explicitly,
3947
2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
3949
* include/pupa/i386/pc/linux.h: New file.
3950
* loader/i386/pc/linux.c: Likewise.
3952
* loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
3954
(pupa_chainloader_unload): Return PUPA_ERR_NONE.
3955
(pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
3956
of PUPA_CHAINLOADER_BOOT_SECTOR.
3958
* kern/i386/pc/startup.S: Include pupa/machine/linux.h.
3959
(pupa_linux_prot_size): New variable.
3960
(pupa_linux_tmp_addr): Likewise.
3961
(pupa_linux_real_addr): Likewise.
3962
(pupa_linux_boot_zimage): New function.
3963
(pupa_linux_boot_bzimage): Likewise.
3965
* kern/i386/pc/init.c (struct mem_region): New structure.
3966
(MAX_REGIONS): New macro.
3967
(mem_regions): New variable.
3968
(num_regions): Likewise.
3969
(pupa_os_area_addr): Likewise.
3970
(pupa_os_area_size): Likewise.
3971
(pupa_lower_mem): Likewise.
3972
(pupa_upper_mem): Likewise.
3973
(add_mem_region): New function.
3974
(compact_mem_regions): Likewise.
3975
(pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
3976
the size of the conventional memory and that of so-called upper
3977
memory (before the first memory hole).
3978
Instead of adding each found region to free memory, use
3979
add_mem_region and add them after removing overlaps.
3980
Also, add only 1/4 of the upper memory to free memory. The rest
3981
is used for loading OS images. Maybe this is ad hoc, but this
3982
makes it much easier to relocate OS images when booting.
3984
* kern/rescue.c (pupa_rescue_cmd_module): Removed.
3985
(pupa_enter_rescue_mode): Don't register initrd and module.
3987
* kern/mm.c: Include pupa/dl.h.
3989
* kern/main.c: Include pupa/file.h and pupa/device.h.
3991
* kern/loader.c (pupa_loader_load_module_func): Removed.
3992
(pupa_loader_load_module): Likewise.
3994
* kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
3997
* include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
3998
(pupa_linux_tmp_addr): Likewise.
3999
(pupa_linux_real_addr): Likewise.
4000
(pupa_linux_boot_zimage): Likewise.
4001
(pupa_linux_boot_bzimage): Likewise.
4003
* include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
4004
(pupa_upper_mem): Likewise.
4005
(pupa_gate_a20): Don't export, because turning off Gate A20 in a
4006
module is too dangerous.
4008
* include/pupa/loader.h (pupa_os_area_addr): Declared.
4009
(pupa_os_area_size): Likewise.
4010
(pupa_loader_set): Remove the first argument. Loader doesn't
4011
manage modules or initrd any longer.
4012
(pupa_loader_load_module): Removed.
4014
* conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
4015
(linux_mod_SOURCES): New variable.
4016
(linux_mod_CFLAGS): Likewise.
4018
2003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
4020
* util/i386/pc/pupa-setup.c (setup): Convert the endianness of
4021
the length of a blocklist correctly.
4023
* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
4024
Use ioctl only if the OS file is a block device.
4025
(pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
4026
not very useful for normal files.
4028
* kern/main.c (pupa_set_root_dev): New function.
4029
(pupa_load_normal_mode): Likewise.
4030
(pupa_main): Call those above.
4032
* include/pupa/types.h (pupa_swap_bytes16): Cast the result to
4035
* include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
4037
2003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
4039
* util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
4040
(setup): Configure the installed partition information and the
4043
* loader/i386/pc/chainloader.c (my_mod): New variable.
4044
(pupa_chainloader_unload): New function.
4045
(pupa_rescue_cmd_chainloader): Refer itself.
4046
(PUPA_MOD_INIT): Save its own module in MY_MOD.
4048
* kern/i386/pc/startup.S (install_partition): Removed.
4049
(version_string): Likewise.
4050
(config_file): Likewise.
4051
(pupa_install_dos_part): New variable.
4052
(pupa_install_bsd_part): Likewise.
4053
(pupa_prefix): Likewise.
4054
(pupa_chainloader_real_boot): Call pupa_dl_unload_all.
4056
* kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
4058
(make_install_device): New function.
4059
(pupa_machine_init): Set the dl prefix.
4061
* kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
4062
(buf): Renamed to ...
4063
(linebuf): ... this.
4064
(pupa_rescue_cmd_prefix): New function.
4065
(pupa_rescue_cmd_insmod): Likewise.
4066
(pupa_rescue_cmd_rmmod): Likewise.
4067
(pupa_rescue_cmd_lsmod): Likewise.
4068
(pupa_enter_rescue_mode): Register new commands: prefix, insmod,
4071
* kern/mm.c (pupa_memalign): If failed even after invalidating
4072
disk caches, unload unneeded modules and retry.
4074
* kern/misc.c (pupa_memmove): New function.
4075
(pupa_memcpy): Removed.
4076
(pupa_strcpy): New function.
4077
(pupa_itoa): Made static.
4079
* kern/dl.c (pupa_dl_iterate): New function.
4080
(pupa_dl_ref): Likewise.
4081
(pupa_dl_unref): Likewise.
4082
(pupa_dl_unload): Return if succeeded or not.
4083
(pupa_dl_unload_unneeded): New function.
4084
(pupa_dl_unload_all): Likewise.
4085
(pupa_dl_init): Renamed to ...
4086
(pupa_dl_set_prefix): ... this.
4087
(pupa_dl_get_prefix): New function.
4089
* include/pupa/i386/pc/kernel.h: Include pupa/types.h.
4090
(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
4091
(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
4092
(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
4093
(pupa_install_dos_part): Declared.
4094
(pupa_install_bsd_part): Likewise.
4095
(pupa_prefix): Likewise.
4096
(pupa_boot_drive): Likewise.
4098
* include/pupa/types.h: Fix a typo.
4100
* include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
4102
(pupa_memmove): Declared.
4103
(pupa_strcpy): Likewise.
4105
* include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
4106
pupa_mod_init takes one argument, its own module.
4107
(pupa_dl_unload_unneeded): Declared.
4108
(pupa_dl_unload_all): Likewise.
4109
(pupa_dl_ref): Likewise.
4110
(pupa_dl_unref): Likewise.
4111
(pupa_dl_iterate): Likewise.
4112
(pupa_dl_init): Renamed to ...
4113
(pupa_dl_set_prefix): ... this.
4114
(pupa_dl_get_prefix): Declared.
4116
* fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
4117
(pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
4119
(pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
4120
(pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
4122
* configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
4123
-Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
4125
2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
4127
* util/i386/pc/pupa-setup.c (setup): Define the internal
4128
function find_first_partition_start at the top level, because GCC
4129
3.0.x cannot compile internal functions in deeper scopes
4131
(find_root_device): Use lstat instead of stat.
4132
Don't follow symbolic links.
4133
Fix the path-constructing code.
4135
* util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
4136
(pupa_util_biosdisk_open) [__linux__]: Get the size of a device
4137
by a BLKGETSIZE ioctl first, because block devices don't fill
4138
the member st_mode of the structure stat on Linux.
4139
[__linux__] (linux_find_partition): Use a temporary buffer
4140
REAL_DEV for the working space. Copy it to DEV before returning.
4141
(open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
4142
buffer cache consistent.
4143
(get_os_disk) [__linux__]: Use the length 5 instead of 4 for
4144
strncmp. The previous value was merely wrong.
4145
(pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
4147
* fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
4148
FAT size is 12. The previous value was merely wrong.
4150
* kern/main.c (pupa_main): Don't split the starting message from
4153
* kern/term.c (pupa_putchar): Put CR after LF instead of before
4154
LF, because BIOS goes crazy about character attributes in this
4157
2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
4159
* include/i386/pc/util/biosdisk.h: New file.
4160
* util/i386/pc/biosdisk.c: Likewise.
4161
* util/i386/pc/pupa-setup.c: Likewise.
4163
* Makefile.in (INCLUDE_DISTFILES): Added
4164
include/pupa/i386/pc/util/biosdisk.h.
4165
(UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
4166
directory util/i386/pc.
4167
(install-local): Added a rule for sbin_UTILITIES.
4168
(uninstall): Likewise.
4170
* util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
4172
* util/misc.c (xrealloc): New function.
4173
(pupa_malloc): Likewise.
4174
(pupa_free): Likewise.
4175
(pupa_realloc): Likewise.
4176
(pupa_stop): Likewise.
4177
(pupa_putchar): Likewise.
4179
* kern/disk.c (pupa_disk_read): Prevent L from underflowing.
4181
* include/pupa/util/misc.h (xrealloc): Declared.
4183
* include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
4185
(PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
4186
(PUPA_BOOT_MACHINE_BPB_END): ... this.
4188
* include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
4189
[PUPA_UTIL] (pupa_fat_fini): Likewise.
4191
* fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
4192
way should be implemented.
4193
[PUPA_UTIL] (pupa_fat_fini): Likewise.
4195
* disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
4196
the size of NAME for safety.
4197
(pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
4200
* conf/i386-pc.rmk (sbin_UTILITIES): New variable.
4201
(pupa_setup_SOURCES): Likewise.
4203
* genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
4205
2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
4207
* kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
4208
bunch of pushl's from pusha, because this destroys the return
4211
2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
4213
Use -mrtd and -mregparm=3 to reduce the generated code sizes.
4214
This means that any missing prototypes could be fatal. Also, you
4215
must take care when writing assembly code. See the comments at
4216
the beginning of startup.S, for more details.
4218
* kern/i386/pc/startup.S (pupa_halt): Modified for the new
4219
compilation mechanism.
4220
(pupa_chainloader_real_boot): Likewise.
4221
(pupa_biosdisk_rw_int13_extensions): Likewise.
4222
(pupa_biosdisk_rw_standard): Likewise.
4223
(pupa_biosdisk_check_int13_extensions): Likewise.
4224
(pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
4225
(pupa_biosdisk_get_diskinfo_standard): Likewise.
4226
(pupa_get_memsize): Likewise.
4227
(pupa_get_mmap_entry): Likewise.
4228
(pupa_console_putchar): Likewise.
4229
(pupa_console_setcursor): Likewise.
4230
(pupa_getrtsecs): Use pushl instead of push.
4232
* kern/i386/pc/init.c (pupa_machine_init): Use the scratch
4233
memory instead of the stack for a mmap entry, because some
4234
BIOSes may ignore the maximum size and overflow.
4236
* conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
4238
* genmk.rb (PModule#rule): Compile automatically generated
4239
sources with module-specific CFLAGS as well as other sources.
4241
2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4243
* configure.ac: Check ld.
4244
Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
4245
respectively, before checking endianness and sizes.
4247
* Makefile.in (LD): New variable.
4249
2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4251
* Makefile.in (BUILD_CC): CC -> BUILD_CC.
4253
2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
4255
* Changelog: New file.