]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
[grub2.git] / ChangeLog
CommitLineData
09fc77a7 12005-08-30 Hollis Blanchard <hollis@penguinppc.org>
2
3 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
4 `unused parameter' warning.
5
003789c7 62005-08-30 Hollis Blanchard <hollis@penguinppc.org>
7
8 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
9 function.
10 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
11 getcharwidth.
12
67f44c86 132005-08-28 Marco Gerards <metgerards@student.han.nl>
14
15 * include/grub/normal.h (enum grub_completion_type): Added
16 `GRUB_COMPLETION_TYPE_ARGUMENT'.
17
18 * normal/cmdline.c (print_completion): Handle
19 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
20 * normal/menu_entry.c (store_completion): Likewise.
21
22 * normal/completion.c (complete_arguments): New function.
23 (grub_normal_do_completion): Call `complete_arguments' when the
24 current words start with a dash.
25
0b5abe02 262005-08-27 Marco Gerards <metgerards@student.han.nl>
27
28 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
29 `gzio.mod' instead of `io.mod').
30
d9864ee1 312005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
32
33 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
34 (DISTDIRS): Added io and video.
35 Rewrite the search routine to make an output consistently.
36
37 * DISTLIST: Added conf/sparc64-ieee1275.mk,
38 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
39 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
40 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
41 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
42 util/powerpc/ieee1275/misc.c.
43
44 * include/grub/gzio.h: New file.
45 * io/gzio.c: Likewise.
46
47 * kern/file.c (grub_file_close): Call grub_device_close only if
48 FILE->DEVICE is not NULL.
49
50 * include/grub/mm.h [!NULL] (NULL): New macro.
51
52 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
53
54 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
55 (pkgdata_MODULES): Added gzio.mod.
56 (gzio_mod_SOURCES): New variable.
57 (gzio_mod_CFLAGS): Likewise.
58
59 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
60 (pkgdata_MODULES): Added gzio.mod.
61 (gzio_mod_SOURCES): New variable.
62 (gzio_mod_CFLAGS): Likewise.
63
64 * commands/cat.c: Include grub/gzio.h.
65 (grub_cmd_cat): Use grub_gzfile_open instead of
66 grub_file_open.
67
68 * commands/cmp.c: Include grub/gzio.h.
69 (grub_cmd_cmp): Use grub_gzfile_open instead of
70 grub_file_open.
71
72 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
73 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
74 grub_file_open.
75 (grub_rescue_cmd_module): Likewise.
76
fa46f4b5 772005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
78
79 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
80 kern/sparc64/ieee1275/init.c because it contains _start.
81 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
82
e9211b5d 832005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
84
85 * configure.ac: Add support for sparc64 host with ieee1275
86 firmware.
87 * configure: Generated from configure.ac.
88 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
89 instead of int.
90 (grub_ofdisk_read): Likewise.
91 (grub_ofdisk_open): Use %p to print pointer values, and cast the
92 pointers as (void *) to remove a warning.
93 (grub_ofdisk_close): Likewise.
94 (grub_ofdisk_read): Likewise.
95 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
96 returns, so make it return void to remove a warning.
97 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
98 Corresponding prototype change.
99 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
100 values, and cast the pointers as (void *) to remove a warning.
101 (grub_mm_dump): Likewise.
102 * conf/sparc64-ieee1275.mk: New file.
103 * conf/sparc64-ieee1275.rmk: Likewise.
104 * include/grub/sparc64/setjmp.h: Likewise.
105 * include/grub/sparc64/types.h: Likewise.
106 * include/grub/sparc64/ieee1275/console.h: Likewise.
107 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
108 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
109 * include/grub/sparc64/ieee1275/time.h: Likewise.
110 * kern/sparc64/cache.c: Likewise.
111 * kern/sparc64/dl.c: Likewise.
112 * kern/sparc64/ieee1275/init.c: Likewise.
113 * kern/sparc64/ieee1275/openfw.c: Likewise.
114
385c6a92 1152005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
116
117 * util/console.c (grub_ncurses_putchar): If C is greater than
118 0x7f, set C to a question mark.
119 (grub_ncurses_getcharwidth): New function.
120 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
121 getcharwidth.
122
123 * normal/menu.c (print_entry): Made aware of Unicode. First,
124 convert TITLE to UCS-4, and predict the cursor position by
125 grub_getcharwidth.
126
127 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
128 const to SRC.
129 * kern/misc.c (grub_utf16_to_utf8): Likewise.
130
16ccb8b1 1312005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
132
133 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
134 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
135 grub_strcat.
136
137 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
138 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
139 grub_strcpy and grub_strlen. Take it into account that a space
140 character is inserted as a delimiter.
141
6a85ce79 1422005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
143
144 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
145 invalid magic in thre error.
146
147 * commands/search.c: New file.
148
149 * util/grub-emu.c (main): Call grub_search_init and
150 grub_search_fini.
151
152 * kern/rescue.c (grub_rescue_print_disks): Removed.
153 (grub_rescue_print_devices): New function.
154 (grub_rescue_cmd_ls): Use grub_device_iterate with
155 grub_rescue_print_devices instead of grub_disk_dev_iterate with
156 grub_rescue_print_disks.
157
158 * kern/partition.c (grub_partition_iterate): Return the result of
159 PARTMAP->ITERATE instead of GRUB_ERRNO.
160
161 * kern/device.c: Include grub/partition.h.
162 (grub_device_iterate): New function.
163
164 * include/grub/partition.h (grub_partition_iterate): Return int
165 instead of grub_err_t.
166
167 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
168 prototype.
169 [GRUB_UTIL] (grub_search_fini): Likewise.
170
171 * include/grub/device.h (grub_device_iterate): New prototype.
172
173 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
174 commands/search.c.
175 (pkgdata_MODULES): Added search.mod.
176 (search_mod_SOURCES): New variable.
177 (search_mod_CFLAGS): Likewise.
178
179 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
180 (pkgdata_MODULES): Added search.mod.
181 (search_mod_SOURCES): New variable.
182 (search_mod_CFLAGS): Likewise.
183
184 * commands/ls.c (grub_ls_list_disks): Renamed to ...
185 (grub_ls_list_devices): ... this, and use grub_device_iterate.
186 All callers changed.
187
188 * DISTLIST: Added commands/search.c.
189
ef095434 1902005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
191
192 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
193 conversion.
194 (grub_getcharwidth): New function.
195
196 * kern/misc.c (grub_utf8_to_ucs4): New function.
197
198 * include/grub/term.h (struct grub_term): Added a new member
199 "getcharwidth".
200 (grub_getcharwidth): New prototype.
201
202 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
203
204 * term/i386/pc/console.c (map_char): New function. Segregated from
205 grub_console_putchar.
206 (grub_console_putchar): Use map_char.
207 (grub_console_getcharwidth): New function.
208 (grub_console_term): Specified grub_console_getcharwidth as
209 getcharwidth.
210
211 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
212 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
213
214 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
215 GRUB_ERRNO.
216 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
217 on grub_strtoul completely.
218 (write_char): Declare local variables in the beginning of the
219 function.
220 (grub_vesafb_getcharwidth): New function.
221 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
222 getcharwidth.
223
1f0a95e4 2242005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
225
226 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
227 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
228 commands/i386/pc/vbetest.c.
229
230 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
231 call grub_vbe_get_controller_info again, because the returned
232 information is volatile.
233 (grub_vbe_set_video_mode): Mostly rewritten.
234 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
235 grub_vbe_status_t correctly.
236 (grub_vbe_get_video_mode_info): Likewise.
237 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
238 several if statements.
239
240 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
241 * commands/i386/pc/vbeinfo.c: ... this.
242
243 * commands/i386/pc/vbe_test.c: Renamed to ...
244 * commands/i386/pc/vbetest.c: ... this.
245
246 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
247 ...
248 (grub_cmd_vbeinfo): ... this. Save video modes before
249 iterating. Skip a video mode, if it is not available, not enough
250 information is given or it is monochrome. Show the memory
251 model. Leave the interpretation of MODEVAR to grub_strtoul
252 completely.
253 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
254 (GRUB_MOD_FINI): Likewise.
255
256 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
257 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
258 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
259 duplicated grub_env_get. Leave the interpretation of MODEVAR to
260 grub_strtoul completely.
261 (real2pm): Removed.
262 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
263 (GRUB_MOD_FINI): Likewise.
264
265 * normal/misc.c: Include grub/mm.h.
266
267 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
268 vbe_list_modes with vbetest.mod and vbeinfo.mod.
269 (vbe_list_modes_mod_SOURCES): Removed.
270 (vbe_list_modes_mod_CFLAGS): Likewise.
271 (vbe_test_mod_SOURCES): Likewise.
272 (vbe_test_mod_CFLAGS): Likewise.
273 (vbeinfo_mod_SOURCES): New variable.
274 (vbeinfo_mod_CFLAGS): Likewise.
275 (vbetest_mod_SOURCES): Likewise.
276 (vbetest_mod_CFLAGS): Likewise.
277
992ffbbe 2782005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
279
280 * normal/misc.c: New file.
281
282 * DISTLIST: Added normal/misc.c.
283
284 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
285 DISK to HOOK. Call HOOK with DISK.
286 * partmap/apple.c (apple_partition_map_iterate): Likewise.
287 * partmap/pc.c (pc_partition_map_iterate): Likewise.
288 * partmap/sun.c (sun_partition_map_iterate): Likewise.
289
290 * normal/menu_entry.c (struct screen): Added a new member
291 "completion_shown".
292 (completion_buffer): New global variable.
293 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
294 (store_completion): New function.
295 (complete): Likewise.
296 (clear_completions): Likewise.
297 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
298 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
299 a tab, call complete.
300
301 * normal/completion.c (disk_dev): Removed.
302 (print_simple_completion): Likewise.
303 (print_partition_completion): Likewise.
304 (print_func): New global variable.
305 (add_completion): Do not take the arguments WHAT or PRINT any
306 longer. Added a new argument TYPE. Instead of printing directly,
307 call PRINT_FUNC if not NULL.
308 All callers changed.
309 (complete_device): Use a local variable DEV instead of
310 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
311 (grub_normal_do_completion): Take a new argument HOOK. Do not
312 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
313 empty string, return NULL instead.
314 All callers changed.
315
316 * normal/cmdline.c (print_completion): New function.
317
318 * kern/partition.c (grub_partition_iterate): Add an argument DISK
319 to HOOK.
320 All callers changed.
321
322 * kern/disk.c (grub_print_partinfo): Removed.
323
324 * include/grub/partition.h (struct grub_partition_map): Add a new
325 argument DISK into HOOK of ITERATE.
326 (grub_partition_iterate): Add a new argument DISK to HOOK.
327
328 * include/grub/normal.h (enum grub_completion_type): New enum.
329 (grub_completion_type_t): New type.
330 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
331 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
332 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
333 (GRUB_COMPLETION_TYPE_FILE): Likewise.
334 (grub_normal_do_completion): Added a new argument HOOK.
335 (grub_normal_print_device_info): New prototype.
336
337 * include/grub/disk.h (grub_print_partinfo): Removed.
338
339 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
340 (normal_mod_SOURCES): Likewise.
341 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
342 (normal_mod_SOURCES): Likewise.
343
344 * commands/ls.c (grub_ls_list_disks): Use
345 grub_normal_print_device_info instead of grub_print_partinfo. Free
346 PNAME.
347 (grub_ls_list_files): Use grub_normal_print_device_info instead of
348 duplicating the code.
349
0bd41162 3502005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
351
352 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
353 follow GCS more precisely.
354 * commands/i386/pc/vbe_test.c: Likewise.
355 * include/grub/i386/pc/vbe.h: Likewise.
356 * term/i386/pc/vesafb.c: Likewise.
357 * video/i386/pc/vbe.c: Likewise.
358
6323696a 3592005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
360
361 * DISTLIST: Added term/i386/pc/vesafb.c
362 DISTLIST: Added video/i386/pc/vbe.c
363 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
364 DISTLIST: Added commands/i386/pc/vbe_test.c.
365 * commands/i386/pc/vbe_list_modes.c: New file.
366 * commands/i386/pc/vbe_test.c: Likewise.
367 * term/i386/pc/vesafb.c: Likewise.
368 * video/i386/pc/vbe.c: Likewise.
369 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
370 (grub_vbe_probe) Added prototype.
371 (grub_vbe_set_video_mode) Likewise.
372 (grub_vbe_get_video_mode) Likewise.
373 (grub_vbe_get_video_mode_info) Likewise.
374 (grub_vbe_set_pixel_rgb) Likewise.
375 (grub_vbe_set_pixel_index) Likewise.
376 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
377 (pkgdata_MODULES): Added vesafb.mod.
378 (pkgdata_MODULES): Added vbe_list_modes.mod.
379 (pkgdata_MODULES): Added vbe_test.mod.
380 (vbe_mod_SOURCES): Added.
381 (vbe_mod_CFLAGS): Likewise.
382 (vesafb_mod_SOURCES): Likewise.
383 (vesafb_mod_CFLAGS): Likewise.
384 (vbe_list_modes_mod_SOURCES): Likewise.
385 (vbe_list_modes_mod_CFLAGS): Likewise.
386 (vbe_test_mod_SOURCES): Likewise.
387 (vbe_test_mod_CFLAGS): Likewise.
388
0a74e62f 3892005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
390
0a74e62f 391 * normal/command.c (grub_command_execute): If INTERACTIVE is
392 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
393 CMDLINE. Disable the pager if INTERACTIVE is true.
394 All callers are changed.
395
396 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
397 before reading a config file.
398 * normal/main.c (read_config_file): Even if a command is not
399 found, register it if it is within an entry.
400
401 * util/grub-emu.c: Include sys/types.h and unistd.h.
402 (options): Added --hold.
403 (struct arguments): Added a new member "hold".
404 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
405 missing.
406 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
407 cleared by a debugger, if it is not zero.
408
409 * include/grub/normal.h (grub_command_execute): Add an argument
410 INTERACTIVE.
411
e51f85ae 4122005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
413
414 * DISTLIST: Added include/grub/i386/pc/vbe.h.
415
e9c6f39b 4162005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
417
418 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
419 program with another one, because the old one didn't detect a bug
420 in gcc-3.4. Always use regparm 2, because the new test is still
421 not enough for gcc-4.0. Someone must investigate a simple test
422 case which detects a bug in gcc-4.0.
423
8de3495c 4242005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
425
426 * DISTLIST: Added normal/completion.c.
427
428 * normal/completion.c: New file.
429
430 * term/i386/pc/console.c (grub_console_getwh): New function.
431 (grub_console_term): Assign grub_console_getwh to getwh.
432
433 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
434 function is defined in normal/completion.c as
435 grub_normal_do_completion.
436 (grub_cmdline_get): Use grub_normal_do_completion instead of
437 grub_tab_complete.
438
439 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
440 returns non-zero, otherwise return 0.
441 (grub_partition_iterate): First, probe the partition map. Then,
442 call ITERATE only for this partition map.
443
444 * kern/misc.c (grub_strncmp): Rewritten.
445
446 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
447 returns non-zero. Otherwise return 0.
448
449 * include/grub/partition.h (grub_partition_map_iterate): Return
450 int instead of void.
451
452 * include/grub/normal.h (grub_normal_do_completion): New prototype.
453
454 * include/grub/misc.h (grub_strncmp): Change the type of N to
455 grub_size_t.
456
457 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
458 of void.
459
460 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
461 unsigned explictly before comparing it with I.
462
463 * kern/main.c (grub_env_write_root): Add the attribute unused into
464 VAR.
465
466 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
467 normal/completion.c.
468 (normal_mod_SOURCES): Likewise.
469 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
470 (normal_mod_SOURCES): Likewise.
471
472 * normal/command.c (grub_iterate_commands): If ITERATE returns
473 non-zero, return one immediately.
474
e85e144b 4752005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
476
477 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
478 * kern/i386/pc/startup.S: Updated Global Descriptor table's
479 descriptions.
480 (grub_vbe_get_controller_info): New function.
481 (grub_vbe_get_mode_info): Likewise.
482 (grub_vbe_set_mode): Likewise.
483 (grub_vbe_get_mode): Likewise.
484 (grub_vbe_set_memory_window): Likewise.
485 (grub_vbe_get_memory_window): Likewise.
486 (grub_vbe_set_scanline_length): Likewise.
487 (grub_vbe_get_scanline_length): Likewise.
488 (grub_vbe_set_display_start): Likewise.
489 (grub_vbe_get_display_start): Likewise.
490 (grub_vbe_set_palette_data): Likewise.
491 * include/grub/i386/pc/vbe.h: New file.
492
c46153d2 4932005-08-08 Hollis Blanchard <hollis@penguinppc.org>
494
495 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
496 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
497 * DISTLIST: Likewise.
498 * kern/ieee1275/of.c: Moved to ...
499 * kern/ieee1275/ieee1275.c: ... here.
500
0cb90c45 5012005-08-08 Hollis Blanchard <hollis@penguinppc.org>
502
503 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
504 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
505 Pass 0 as `end' parameter to grub_strtoul().
506
a19fb360 5072005-08-08 Hollis Blanchard <hollis@penguinppc.org>
508
509 * include/grub/powerpc/ieee1275/console.h: Do not include
510 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
511 ifdef.
512 (grub_console_cur_color): Remove i386-specific prototype.
513 (grub_console_real_putchar): Likewise.
514 (grub_console_checkkey): Likewise.
515 (grub_console_getkey): Likewise.
516 (grub_console_getxy): Likewise.
517 (grub_console_gotoxy): Likewise.
518 (grub_console_cls): Likewise.
519 (grub_console_setcursor): Likewise.
520 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
521 Include <grub/machine/console.h>.
522 * term/ieee1275/ofconsole.c: Likewise.
523
4ac9bd04 5242005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
525
526 * Makefile.in (LIBLZO): New variable.
527
528 * configure.ac: Check for LZO version 2.
529
530 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
531 lzo/lzo1x.h instead of lzo1x.h.
532
533 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
534 of -llzo.
535
536 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
537 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
538
539 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
540 copying the data from PARTITION to P.
541
f4917dfd 5422005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
543
544 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
545 negative, unload the module.
546
547 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
548 map is "pc_partition_map" but not "pc".
549 (usage): Fix the description. The options are --boot-image and
550 --core-image but not --boot-file or --core-file.
551 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
552 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
553 DEFAULT_DIRECTORY.
554
555 * util/i386/pc/grub-install.in: Do not specify --boot-file or
556 --core-file. Specify INSTALL_DEVICE as an argument.
557
558 * util/console.c: Include config.h.
559 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
560 [HAVE_NCURSES_H]: Include ncurses.h.
561 [HAVE_CURSES_H]: Include curses.h.
562 [!A_NORMAL] (A_NORMAL): Defined as zero.
563 [!A_STANDOUT] (A_STANDOUT): Likewise.
564
565 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
566 -lncurses.
567 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
568
569 * configure.ac: Check for curses libraries and headers.
570
571 * Makefile.in (LIBCURSES): New variable.
572
573 * genmk.rb (Script::rule): Set the executable bits.
574
575 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
576 name of the PC partition map is "pc_partition_map" but not "pc".
577
0e143073 5782005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
579
580 * util/i386/pc/grub-install.in (grub_probefs): New variable.
581 (modules): Likewise.
582 (usage): Added descriptions for --modules and --grub-probefs.
583 Handle --modules and --grub-probefs. Save the arguments in MODULES
584 and GRUB_PROBEFS, respectively.
585 Auto-detect a filesystem module against GRUBDIR. If the result is
586 empty and modules are not specified explicitly, abort the
587 installation. Add the result to MODULES.
588
589 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
590 disk/powerpc/ieee1275/ofdisk.c,
591 include/grub/powerpc/ieee1275/init.h and
592 term/powerpc/ieee1275/ofconsole.c.
593 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
594 term/ieee1275/ofconsole.c.
595
596 * include/grub/powerpc/ieee1275/console.h: Resurrected.
597
598 * COPYING: Upgraded to the latest version. Only the address of the
599 FSF office has changed.
600
efd6e6d5 6012005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
602
603 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
604 kern/ieee1275.c with kern/ieee1275/of.c.
605
606 * kern/ieee1275.c: Moved to ...
607 * kern/ieee1275/of.c: ... here.
608
8ceafda2 6092005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
610
611 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
612 readablity.
613
614 * config.guess: Updated to the latest version from gnulib.
615 * config.sub: Likewise.
616 * install.sh: Likewise.
617 * mkinstalldirs: Likewise.
618
619 * include/grub/console.h: Removed. This file is arch-specific. Do
620 not put this in include/grub.
621
622 * include/grub/i386/pc/console.h: Resurrected.
623
624 * util/console.c: Include grub/machine/console.h instead of
625 grub/console.h.
626 * util/grub-emu.c: Likewise.
627
267f6cd9 6282005-08-04 Marco Gerards <metgerards@student.han.nl>
629
630 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
631 hardcoded value.
632
633 From Vincent Pelletier <subdino2004@yahoo.fr>
634 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
635 Redefined to use grub_getwh.
636 (grub_term): New member named getwh.
637 (grub_getwh): New prototype.
638 * kern/term.c (grub_getwh): New function.
639 * term/i386/pc/console.c (grub_console_getwh): New function.
640 (grub_console_term): New member `getwh'.
641 * term/i386/pc/vga.c (grub_vga_getwh): New function.
642 (grub_vga_term): New member `getwh'.
0b5abe02 643 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 644 grub_ssize_t.
645 (grub_ofconsole_getw): New function.
646 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
647 (grub_ofconsole_term): New field named getwh and new initial
648 value.
649
3be7266d 6502005-08-03 Hollis Blanchard <hollis@penguinppc.org>
651
652 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
653 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
654 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
655 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
656 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
657 of <grub/machine/ieee1275.h>.
658 * commands/ieee1275/reboot.c: Likewise.
659 * boot/powerpc/ieee1275/ieee1275.c: Move ...
660 * kern/ieee1275.c: ... to here. All users updated. Change all
661 parameter structs to use new type `grub_ieee1275_cell_t'.
662 * term/powerpc/ieee1275/ofconsole.c: Move ...
663 * term/ieee1275/ofconsole.c: ... to here. All users updated.
664 * disk/powerpc/ieee1275/ofdisk.c: Move ...
665 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
666 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
667 to return int.
668 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
669 Remove unused prototypes. All users updated.
670 * include/grub/powerpc/ieee1275/console.h: Removed.
671 * include/grub/powerpc/ieee1275/ieee1275.h: Define
672 `grub_ieee1275_cell_t'.
673 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
674 Cast comparisons with -1 to the correct type.
675 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
676 type to match `grub_ieee1275_entry_fn'.
677
8b5f3938 6782005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
679
680 * DISTLIST: Added util/i386/pc/grub-probefs.c.
681
682 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
683 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
684 partmap/sun.c.
685 (grub_probefs_SOURCES): New variable.
686
687 * util/i386/pc/grub-probefs.c: New file.
688
689 * util/i386/pc/grub-setup.c (main): Call
690 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
691 grub_hfs_init and grub_jfs_init to initialize the system. Call
692 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
693 grub_pc_partition_map_fini to finish the system.
694
ea409713 6952005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
696
697 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
698 function.
699 (grub_multiboot_load_elf32): Likewise.
700 (grub_multiboot_is_elf64): Likewise.
701 (grub_multiboot_load_elf64): Likewise.
702 (grub_multiboot_load_elf): Likewise.
703 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
704 an ELF32 or ELF64 file.
705 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
706
707 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
708 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
709 NULL before calling FS->LABEL.
710 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
711 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
712 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
713 before calling FS->LABEL.
714
141a288b 7152005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
716
717 * util/i386/pc/grub-install.in (datadir): New variable.
718 (libdir): Removed.
719 (pkgdatadir): New variable.
720 (pkglibdir): Removed.
721
0d5f8a54 7222005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
723
724 * DISTLIST: Added util/i386/pc/grub-install.in.
725
726 * util/i386/pc/grub-install.in: New file.
727
728 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
729 (grub_install_SOURCES): Likewise.
730
731 * genmk.rb: Added support for scripts.
732 (Script): New class.
733 (scripts): New variable.
734
735 * Makefile.in (install-local): Install sbin_SCRIPTS by
736 INSTALL_SCRIPT.
737 (uninstall): Remove sbin_SCRIPTS.
738
739 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
740 device, try to get a GRUB device by
741 grub_util_biosdisk_get_grub_dev.
742 Free DEST_DEV.
743
744 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
745 description for --device-map.
746
5f968e1e 7472005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
748
749 Change the semantics of variable hooks. They now return strings
750 instead of error values.
751
752 * util/i386/pc/grub-setup.c: Include grub/env.h.
753 (setup): Use grub_device_set_root instead of grub_env_set.
754
755 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
756 grub_env_get instead of grub_device_set_root and
757 grub_device_get_root, respectively.
758
759 * kern/main.c (grub_env_write_root): New function.
760 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
761 grub_env_set instead of grub_device_set_root.
762
763 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
764 many variables.
765 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
766 rather than calling ENV->WRITE_HOOK afterwards.
767 (grub_env_get): Return the result of ENV->READ_HOOK rather than
768 passing a pointer of a pointer.
769 (grub_register_variable_hook): Change the types of "read_hook" and
770 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
771 respectively.
772 Allocate the default empty string on the heap, because this string
773 may be freed later.
774
775 * kern/device.c: Include grub/env.h.
776 (grub_device_set_root): Removed.
777 (grub_device_get_root): Likewise.
778 (grub_device_open): Use grub_env_get instead of
779 grub_device_get_root.
780
781 * include/grub/env.h (grub_env_read_hook_t): New type.
782 (grub_env_write_hook_t): Likewise.
783 (grub_env_var): Change the types of "read_hook" and "write_hook"
784 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
785 (grub_register_variable_hook): Likewise.
786
787 * include/grub/device.h (grub_device_set_root): Removed.
788 (grub_device_set_root): Likewise.
789
790 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
791 make sure that DIRNAME terminates with '/', so that
792 grub_fat_find_dir will fail if PATH is not a directory.
793
794 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
795 from DIRNAME.
796 Use the qualifier auto for print_files and print_files_long.
797 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
798 as a regular file.
799 Put a newline only if there is no error.
800 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
801 used.
802
896f0afd 8032005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
804
805 * kern/partition.c (grub_partition_probe): Initialize PART to
806 NULL. Otherwise, when no partition map is registered, this returns
807 a garbage.
808
b28b81b2 8092005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
810
811 * partmap/apple.c (apple_partition_map_iterate): Check if POS
812 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
813 valid.
814
5f3607e0 8152005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
816
817 * commands/ls.c (grub_ls_list_disks): Print the filesystem
818 information on each device, if it does not have partitions. Print
819 "Device" instead of "Disk", because this function is not specific
820 to disk devices.
821
822 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
823 static to ensure that it is put on the memory rather than a
824 register.
825
502c87e8 8262005-07-17 Yoshinori Okuji <okuji@enbug.org>
827
828 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
829 (grub_cat_init): Likewise.
830 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
831 (options): Likewise.
832 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
833 (grub_configfile_init): Likewise.
834 * font/manager.c (GRUB_MOD_INIT): Likewise.
835 * commands/help.c (GRUB_MOD_INIT): Likewise.
836 (grub_help_init): Likewise.
837 * normal/command.c (grub_command_init): Likewise.
838 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
839 * disk/loopback.c (grub_loop_init): Likewise.
840 (GRUB_MOD_INIT): Likewise.
841 * commands/ls.c (grub_ls_init): Likewise.
842 (GRUB_MOD_INIT): Likewise.
843 (options): Likewise.
844 * commands/boot.c (grub_boot_init): Likewise.
845 (GRUB_MOD_INIT): Likewise.
846 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
847 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
848 (GRUB_MOD_INIT): Likewise.
849 * commands/cmp.c (grub_cmp_init): Likewise.
850 (GRUB_MOD_INIT): Likewise.
851
852 * normal/arg.c: Use <> instead of "" to include header files.
853 (SHORT_ARG_HELP): New macro.
854 (SHORT_ARG_USAGE): Likewise.
855 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
856 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
857 descriptions.
858 (find_short): Check if C is 'h' or 'u' explicitly.
859 (grub_arg_show_help): Use space characters instead of tabs. Treat
860 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
861 are shown with --help and --usage only if they are not used for
862 the command itself.
863 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
864 'h' and 'u'.
865
866 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
867 const into "longarg". Change the type of "shortarg" to int.
868
f806d18e 8692005-07-17 Yoshinori Okuji <okuji@enbug.org>
870
871 * boot/i386/pc/boot.S (boot_drive_check): New label.
872
873 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
874 macro.
875
876 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
877 which do not pass a boot drive correctly. Copied from GRUB Legacy.
878
e293232b 8792005-07-17 Yoshinori Okuji <okuji@enbug.org>
880
881 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
882 When turning off Gate A20, skip the check and return immediately,
883 because this is not fatal usually.
884
ebedfd00 8852005-07-17 Yoshinori Okuji <okuji@enbug.org>
886
887 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
888 be 0x7C00 instead of 0x8000.
889
890 * boot/i386/pc/pxeboot.S: Rewritten.
891
892 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
893 EXT_C.
894 (gate_a20_check_state): Read a byte from 0x108000. Invert the
895 result.
896
654fc59f 8972005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
898
899 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
900 robustness. This routine now supports a BIOS call and System
901 Control Port A to modify the gate A20.
902
903 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
904 Increased to 0x440.
905
09f9923f 9062005-07-12 Hollis Blanchard <hollis@penguinppc.org>
907
908 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
909 device path and resulting ihandle.
910 (grub_ofdisk_close): dprintf the ihandle being closed.
911 (grub_ofdisk_read): dprintf function parameters.
912 * kern/mm.c (grub_mm_init_region): Likewise.
913 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
914 (grub_linux_boot): dprintf the Linux entry point, initrd address and
915 size, and boot arguments.
916 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
917 before loading into memory.
918 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
919 before loading into memory.
920
7ef504d8 9212005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
922
923 * kern/mm.c: Added much documentation.
924 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
925 8, set to 5 instead of 8.
926
e0f050c2 9272005-07-10 Yoshinori Okuji <okuji@enbug.org>
928
929 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
930
931 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
932 (grub_mkdevicemap_SOURCES): New variable.
933
934 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
935 lib/device.c of GRUB Legacy.
936
7224189a 9372005-07-10 Yoshinori Okuji <okuji@enbug.org>
938
939 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
940 instead of PATH is NULL.
941
68c864eb 9422005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
943
944 * commands/cmp.c (BUFFER_SIZE): New macro.
945 (grub_cmd_cmp): Close the right file at the right time. Compare
946 only data just read. Don't report files of different size as
947 identical. Dynamically allocate buffers. Move variable
948 declarations at the beginning of function.
949
e6f3e614 9502005-07-09 Yoshinori Okuji <okuji@enbug.org>
951
952 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
953 reverse.
954
f8f1559a 9552004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
956
957 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
958 when backspace is pressed at beginning of line.
959
39c9d41d 9602005-07-03 Yoshinori Okuji <okuji@enbug.org>
961
962 * DISTLIST: Added genfslist.sh.
963
964 * normal/main.c (fs_module_list): New variable.
965 (autoload_fs_module): New function.
966 (read_fs_list): Likewise.
967 (grub_normal_execute): Call read_fs_list.
968
969 * kern/fs.c (grub_fs_autoload_hook): New variable.
970 (grub_fs_probe): Added support for auto-loading.
971
972 * include/grub/normal.h (struct grub_fs_module_list): New struct.
973 (grub_fs_module_list_t): New type.
974
975 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
976 (grub_fs_autoload_hook): New prototype.
977
978 * genfslist.sh: New file.
979
980 * genmk.rb: Added a rule to generate a filesystem list.
981
121c1d83 9822005-06-30 Marco Gerards <metgerards@student.han.nl>
983
984 * configure.ac: Fix the test for cross-compiling.
985
986 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
987 define GRUB_UTIL anymore.
988
989 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
990 so this function works on other systems than just big endian.
991 (load_modules): Likewise.
992 (add_segments): Likewise.
993
e75d76e1 9942005-06-23 Hollis Blanchard <hollis@penguinppc.org>
995
996 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
997 contains `l' modifier, get a long from va_arg().
998
50b5a0a7 9992005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
1000
1001 * kern/mm.c (grub_free): If the next free block which is being
1002 merged is the first free block, set the first block to the block
1003 being freed.
1004 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
1005
89371b20 10062005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1007
1008 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
1009 `grub_ieee1275_chosen'.
1010
168d6e58 10112005-05-08 Hollis Blanchard <hollis@penguinppc.org>
1012
1013 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
1014 (grub_ieee1275_chosen): New variable.
1015 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
1016 `chosen'.
1017 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
1018 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
1019 Rename first argument to `phandle' for consistency.
1020 (grub_ieee1275_get_property_length): Likewise.
1021 (grub_ieee1275_next_property): Likewise. Change type of first argument
1022 to grub_ieee1275_phandle_t.
1023 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
1024 Move export next to declaration.
1025 (grub_ieee1275_chosen): New variable.
1026 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
1027 Correct cosmetic typo.
1028 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
1029 `grub_ieee1275_chosen'.
1030 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
1031 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
1032 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
1033 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
1034 `grub_ieee1275_chosen'.
1035
ca5baa3f 10362005-05-10 Hollis Blanchard <hollis@penguinppc.org>
1037
1038 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
1039 /chosen/bootargs.
1040 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
1041 /chosen/bootargs as "variable=value" pairs.
1042
708b345f 10432005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
1044
1045 * include/grub/misc.h (grub_dprintf): New macro.
1046 (grub_real_dprintf): New prototype.
1047 (grub_strword): Likewise.
1048 (grub_iswordseparator): Likewise.
1049 * kern/misc.c (grub_real_dprintf): New function.
1050 (grub_strword): Likewise.
1051 (grub_iswordseparator): Likewise.
1052
f4c5e67c 10532005-04-30 Hollis Blanchard <hollis@penguinppc.org>
1054
1055 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
1056 (roundup): Remove macro.
1057 (grub_ieee1275_flags): Make static.
1058 (grub_ieee1275_realmode): Remove.
1059 (grub_ieee1275_test_flag): New function.
1060 (grub_ieee1275_set_flag): Likewise.
1061 (find_options): Rename to `grub_ieee1275_find_options'; update
1062 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
1063 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
1064 (cmain): New prototype.
1065 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
1066 `grub_ieee1275_flags' directly.
1067 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
1068 machine/biosdisk.h.
1069 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
1070 Don't include grub/machine/init.h.
1071 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
1072 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
1073 Remove prototype.
1074 (grub_ieee1275_realmode): Likewise.
1075 (grub_ieee1275_flag): New enum.
1076 (grub_ieee1275_test_flag): New prototype.
1077 (grub_ieee1275_set_flag): New prototype.
1078 * include/grub/powerpc/ieee1275/init.h: Remove file.
1079 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
1080 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
1081 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
1082 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
1083 comment.
1084 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
1085 `grub_ieee1275_test_flag'.
1086 (grub_ieee1275_encode_devname): Likewise.
1087
ed16607e 10882005-04-21 Hollis Blanchard <hollis@penguinppc.org>
1089
1090 * include/grub/powerpc/ieee1275/ieee1275.h
1091 (grub_ieee1275_encode_devname): New prototype.
1092 (grub_ieee1275_get_filename): Likewise.
1093 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
1094 function.
1095 (grub_set_prefix): Likewise.
1096 (grub_machine_init): Call grub_set_prefix.
1097 * kern/powerpc/ieee1275/openfw.c: Fix typos.
1098 (grub_parse_type): New enum.
1099 (grub_ieee1275_get_devargs): New function.
1100 (grub_ieee1275_get_devname): Likewise.
1101 (grub_ieee1275_parse_args): Likewise.
1102 (grub_ieee1275_get_filename): Likewise.
1103 (grub_ieee1275_encode_devname): Likewise.
1104
be369920 11052005-03-30 Marco Gerards <metgerards@student.han.nl>
1106
1107 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
1108 `grub_loader_unset'.
1109
a5ce3a4a 11102005-03-26 Hollis Blanchard <hollis@penguinppc.org>
1111
1112 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
1113 instead of grub_ieee1275_interpret.
1114 (grub_halt_init): New function.
1115 (grub_halt_fini): Likewise.
1116 (GRUB_MOD_INIT): Correct message grammar.
1117 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
1118 instead of grub_ieee1275_interpret.
1119 (grub_reboot_init): New function.
1120 (grub_reboot_fini): Likewise.
1121 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
1122 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
1123 util/i386/pc/misc.c with commands/ieee1275/halt.c,
1124 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
1125 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
1126 function.
1127 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
1128 Add prototype.
1129 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
1130 prototype.
1131 (grub_halt): Likewise.
1132 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
1133 (cmain): Remove __attribute__((unused)).
1134 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
1135 (grub_heap_len): Likewise.
1136 (grub_machine_fini): New function.
1137 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
1138 (grub_halt): Likewise.
1139 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
1140 function.
1141 * util/powerpc/ieee1275/misc.c: New file.
1142
0058f771 11432005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
1144
1145 * DISTLIST: New file.
1146 * gendistlist.sh: Likewise.
1147
1148 * Makefile.in (COMMON_DISTFILES): Removed.
1149 (BOOT_DISTFILES): Likewise.
1150 (CONF_DISTFILES): Likewise.
1151 (DISK_DISTFILES): Likewise.
1152 (FS_DISTFILES): Likewise.
1153 (INCLUDE_DISTFILES): Likewise.
1154 (KERN_DISTFILES): Likewise.
1155 (LOADER_DISTFILES): Likewise.
1156 (TERM_DISTFILES): Likewise.
1157 (UTIL_DISTFILES): Likewise.
1158 (DISTFILES): Likewise.
1159 (uninstall): Uninstall files in $(pkgdata_DATA).
1160 (DISTLIST): New target.
1161 (distdir): Use the contents of the file DISTLIST to get a list of
1162 distributed files.
1163
46b3b8a5 11642005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
1165
1166 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
1167 descriptor. This is ported from GRUB Legacy.
1168
1169 * gencmdlist.sh: Added an extra semicolon to make it work with
1170 old sed versions. Reported by Robert Bihlmeyer
1171 <robbe@orcus.priv.at>.
1172
5822ff87 11732005-03-08 Yoshinori Okuji <okuji@enbug.org>
1174
1175 Automatic loading of commands is supported.
1176
1177 * normal/main.c (read_command_list): New function.
1178 (grub_normal_execute): Call read_command_list.
1179
1180 * normal/command.c (grub_register_command): Return zero or CMD.
1181 Allocate CMD->NAME from the heap.
1182 Initialize CMD->MODULE_NAME to zero.
1183 Find the same name as well. If the same command is found and it is
1184 a dummy command, overwrite members. If it is not a dummy command,
1185 return zero.
1186 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
1187 (grub_command_find): If a dummy command is found, load a module
1188 and retry to find a command only once.
1189
1190 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
1191 make sure that each command is loaded.
1192
1193 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
1194 macro.
1195 (struct grub_command): Remove const from the member `name'.
1196 Add a new member `module_name'.
1197 (grub_register_command): Return grub_command_t.
1198
1199 * commands/help.c (grub_cmd_help): Call grub_command_find to make
1200 sure that each command is loaded.
1201
1202 * genmk.rb (PModule::rule): Specify a module name without the
1203 suffix ".mod" to gencmdlist.sh.
1204
7b1f4b57 12052005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
1206
1207 * gencmdlist.sh: New file.
1208
1209 * genmk.rb (PModule::rule): Generate a rule for a command list.
1210 Clean command.lst.
1211 Generate command.lst from $(COMMANDFILES).
1212
1213 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
1214 (DATA): Added $(pkgdata_DATA).
1215 (install-local): Install files in $(pkgdata_DATA).
1216
062aaf39 12172005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
1218
1219 * term/i386/pc/vga.c (debug_command): Removed.
1220 (GRUB_MOD_INIT): Do not register the command "debug".
1221
1222 From Hollis Blanchard:
1223 * commands/configfile.c: New file.
1224 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
1225 commands/configfile.c.
1226 (pkgdata_MODULES): Added configfile.mod.
1227 (configfile_mod_SOURCES): New variable.
1228 (configfile_mod_CFLAGS): Likewise.
1229 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
1230 commands/configfile.c.
1231 (pkgdata_MODULES): Added configfile.mod.
1232 (configfile_mod_SOURCES): New variable.
1233 (configfile_mod_CFLAGS): Likewise.
1234 * util/grub-emu.c (main): Call grub_configfile_init and
1235 grub_configfile_fini.
1236 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
1237 prototype.
1238 [GRUB_UTIL] (grub_configfile_fini): Likewise.
1239
cee01aa6 12402005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
1241
1242 * normal/arg.c (grub_arg_show_help): Do not show the bug report
1243 address.
1244
1245 * commands/help.c (grub_cmd_help): Do not print newlines after
1246 the last command in print_command_help.
1247
93f3a1d8 12482005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
1249
1250 * commands/default.h: New file.
1251 * commands/timeout.h: Likewise.
1252 * normal/context.c: Likewise.
1253
1254 * util/misc.c: Do not include sys/times.h.
1255 Include sys/time.h and grub/machine/time.h.
1256 (grub_get_rtc): Rewritten with gettimeofday.
1257
1258 * util/grub-emu.c (main): Call grub_default_init and
1259 grub_timeout_init before grub_normal_init, and call
1260 grub_timeout_fini and grub_default_fini after grub_main.
1261
1262 * util/console.c (grub_ncurses_checkkey): Return the read
1263 character or -1.
1264
1265 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
1266 timeouts.
1267
1268 * normal/main.c (read_config_file): Push MENU. If this fails,
1269 print an error and wait for a user input.
1270 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
1271 If a menu is empty or an error occurs, pop MENU.
1272 (grub_normal_execute): Pop and free MENU after grub_menu_run
1273 returns.
1274
1275 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
1276
1277 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
1278 include time.h.
1279 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
1280 without GRUB_UTIL.
1281 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
1282 time.h.
1283 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
1284 without GRUB_UTIL.
1285
1286 * include/grub/normal.h (struct grub_menu_list): New struct.
1287 (grub_menu_list_t): New type.
1288 (struct grub_context): New struct.
1289 (grub_context_t): New type.
1290 (grub_register_command): Got rid of EXPORT_FUNC.
1291 (grub_unregister_command): Likewise.
1292 (grub_context_get): New prototype.
1293 (grub_context_get_current_menu): Likewise.
1294 (grub_context_push_menu): Likewise.
1295 (grub_context_pop_menu): Likewise.
1296 [GRUB_UTIL] (grub_default_init): Likewise.
1297 [GRUB_UTIL] (grub_default_fini): Likewise.
1298 [GRUB_UTIL] (grub_timeout_init): Likewise.
1299 [GRUB_UTIL] (grub_timeout_fini): Likewise.
1300
1301 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
1302 commands/timeout.c and normal/context.c.
1303 (pkgdata_MODULES): Added default.mod and timeout.mod.
1304 (normal_mod_SOURCES): Added normal/context.c.
1305 (default_mod_SOURCES): New variable.
1306 (default_mod_CFLAGS): Likewise.
1307 (timeout_mod_SOURCES): Likewise.
1308 (timeout_mod_CFLAGS): Likewise.
1309 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
1310 conf/i386-pc.rmk.
1311 (pkgdata_MODULES): Added default.mod and timeout.mod.
1312 (normal_mod_SOURCES): Added normal/context.c.
1313 (default_mod_SOURCES): New variable.
1314 (default_mod_CFLAGS): Likewise.
1315 (timeout_mod_SOURCES): Likewise.
1316 (timeout_mod_CFLAGS): Likewise.
1317
1318 * Makefile.in (all-local): Added $(MKFILES).
1319
4ed2e1dd 13202005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
1321
1322 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
1323 (grub_emu_SOURCES): Likewise.
1324 (pkgdata_MODULES): Add `sun.mod'.
1325 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
1326 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1327 `partmap/sun.c'.
1328 (pkgdata_MODULES): Add `sun.mod'.
1329 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
1330 * include/grub/partition.h (grub_sun_partition_map_init): New
1331 prototype.
1332 (grub_sun_partition_map_fini): Likewise.
1333 * partmap/sun.c: New file.
1334 * util/grub-emu.c (main): Initialize and de-initialize the sun
1335 partitionmap support.
1336
4d4e372e 13372005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
1338
1339 This implements an Emacs-like menu entry editor.
1340
1341 * normal/menu_entry.c: New file.
1342
1343 * util/console.c (grub_ncurses_putchar): Translate some Unicode
1344 characters to ASCII.
1345 (saved_char): New variable.
1346 (grub_ncurses_checkkey): Rewritten completely.
1347 (grub_ncurses_getkey): Likewise.
1348 (grub_ncurses_init): Call raw instead of cbreak.
1349
1350 * normal/menu.c (print_entry): Do not put a space.
1351 (init_page): Renamed to ...
1352 (grub_menu_init_page): ... this. All callers changed.
1353 (edit_menu_entry): Removed.
1354 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
1355
1356 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
1357
1358 * kern/misc.c (grub_vprintf): Call grub_refresh.
1359
1360 * normal/menu.c (DISP_LEFT): Renamed to ...
1361 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
1362 * normal/menu.c (DISP_UP): Renamed to ...
1363 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
1364 * normal/menu.c (DISP_RIGHT): Renamed to ...
1365 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
1366 * normal/menu.c (DISP_DOWN): Renamed to ...
1367 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
1368 * normal/menu.c (DISP_HLINE): Renamed to ...
1369 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
1370 * normal/menu.c (DISP_VLINE): Renamed to ...
1371 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
1372 * normal/menu.c (DISP_UL): Renamed to ...
1373 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
1374 * normal/menu.c (DISP_UR): Renamed to ...
1375 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
1376 * normal/menu.c (DISP_LL): Renamed to ...
1377 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
1378 * normal/menu.c (DISP_LR): Renamed to ...
1379 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
1380 * normal/menu.c (TERM_WIDTH): Renamed to ...
1381 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
1382 * normal/menu.c (TERM_HEIGHT): Renamed to ...
1383 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
1384 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
1385 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
1386 * normal/menu.c (TERM_MARGIN): Renamed to ...
1387 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
1388 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
1389 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
1390 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
1391 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
1392 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
1393 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
1394 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
1395 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
1396 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
1397 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
1398 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
1399 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
1400 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
1401 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
1402 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
1403 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
1404 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
1405 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
1406 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
1407 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
1408 All callers changed.
1409
1410 * include/grub/normal.h: New prototype.
1411
1412 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
1413 normal/menu_entry.c.
1414 (normal_mod_SOURCES): Likewise.
1415 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1416 (normal_mod_SOURCES): Likewise.
1417
e6b92c8a 14182005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
1419
1420 * include/grub/normal.h (grub_halt_init): New prototype.
1421 (grub_halt_fini): Likewise.
1422 (grub_reboot_init): Likewise.
1423 (grub_reboot_fini): Likewise.
1424
1425 * util/grub-emu.c: Include signal.h.
1426 (main_env): New global variable.
1427 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
1428 catch C-c.
1429 (grub_machine_fini): New function.
1430 (main): Call grub_halt_init and grub_reboot_init before
1431 grub_main, and grub_reboot_fini and grub_halt_fini after it.
1432 Call setjmp with MAIN_ENV to go back afterwards.
1433 Call grub_machine_fini right before return.
1434
1435 * include/grub/util/misc.h: Include setjmp.h.
1436 (main_env): New prototype.
1437
1438 * include/grub/kernel.h (grub_machine_fini): New prototype.
1439 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
1440 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
1441
1442 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
1443 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
1444 * term/i386/pc/console.c (grub_console_fini): Likewise.
1445
1446 * util/i386/pc/misc.c: New file.
1447
1448 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
1449 util/i386/pc/misc.c, commands/i386/pc/halt.c and
1450 commands/i386/pc/reboot.c.
1451
c642636f 14522005-02-14 Guillem Jover <guillem@hadrons.org>
1453
1454 * include/grub/dl.h (grub_dl_check_header): New prototype.
1455 (grub_arch_dl_check_header): Change return type to grub_err_t,
1456 remove size parameter and export function. Update all callers.
1457 * kern/dl.c (grub_dl_check_header): New function.
1458 (grub_dl_load_core): Use `grub_dl_check_header' instead of
1459 `grub_arch_dl_check_header'. Check ELF type. Check if sections
1460 are inside the core.
1461 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
1462 independent ELF header checks.
1463 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
1464 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
1465 `grub_dl_check_header' instead of explicit checks. Check for the
1466 ELF type.
1467 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
1468 `grub_dl_check_header' instead of explicit checks. Remove arch
1469 specific ELF header checks.
1470
e6b92c8a 1471 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
1472 argument SIZE.
1473
5eabe94b 14742005-02-13 Hollis Blanchard <hollis@penguinppc.org>
1475
1476 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
1477 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
1478
1b14a681 14792005-02-12 Hollis Blanchard <hollis@penguinppc.org>
1480
1481 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
1482 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1483 (part_map_iterate): Clear `grub_errno' and return 0 if
1484 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1485 * partmap/amiga.c (amiga_partition_map_iterate): Return
1486 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
1487 * partmap/apple.c (apple_partition_map_iterate): Likewise.
1488
aca108aa 14892005-02-01 Guillem Jover <guillem@hadrons.org>
1490
1491 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
1492 help info.
1493
c9f9c556 14942005-01-31 Marco Gerards <metgerards@student.han.nl>
1495
1496 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
1497 Removed prototype.
1498 (grub_rescue_cmd_linux): New prototype.
1499 (grub_rescue_cmd_initrd): Likewise.
1500 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
1501 `bi_rec'.
1502 (grub_linux_release_mem): Release the memory for the initrd.
1503 (grub_load_linux): Renamed from this...
1504 (grub_rescue_cmd_linux): ...To this. Changed all callers.
1505 Changed `entry' not to be static. Loop over memory regions to
1506 find another one when the default fails.
1507 (grub_rescue_cmd_initrd): New function.
1508 (grub_linux_init): Remove function.
1509 (grub_linux_fini): Likewise.
1510 (GRUB_MOD_INIT): Register `initrd'.
1511 (GRUB_MOD_FINI): Unregister `initrd'.
1512 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
1513 Function removed.
1514 (grub_linux_normal_fini): Likewise.
1515 (GRUB_MOD_INIT): Register `initrd'.
1516 (GRUB_MOD_FINI): Unregister `initrd'.
1517
990cf3aa 15182005-01-31 Marco Gerards <metgerards@student.han.nl>
1519
1520 * commands/help.c: New file.
1521 * normal/arg.c (show_help): Renamed to...
1522 (grub_arg_show_help): ... this.
1523 * commands/i386/pc/halt.c: New file.
1524 * commands/i386/pc/reboot.c: Likewise.
1525 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
1526 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
1527 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
1528 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
1529 variables.
1530 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1531 `commands/help.c'.
1532 (pkgdata_MODULES): Add `help.mod'.
1533 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
1534 * grub/i386/pc/init.h (grub_reboot): New prototype.
1535 (grub_halt): Likewise.
1536 * include/grub/normal.h (grub_arg_show_help): New prototype.
1537 (grub_help_init): Likewise.
1538 (grub_help_fini): Likewise.
1539 * util/grub-emu.c (main): Initialize and deinitialize the help
1540 command.
1541
1542 * normal/cmdline.c (grub_cmdline_get): Doc fix.
1543
1544 * normal/command.c (grub_command_init): Fixed the description of
1545 the `set' and `unset' commands.
1546
15472005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 1548
1549 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
1550 function.
1551 * commands/ieee1275/halt.c: New file.
1552 * commands/ieee1275/reboot.c: Likewise.
1553 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
1554 `__attribute__ ((unused))'. Some GCS related fixed.
1555 (grub_suspend_init) [GRUB_UTIL]: Function removed.
1556 (grub_suspend_fini): Likewise.
1557 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
1558 and `halt.mod'.
1559 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
1560 (halt_mod_CFLAGS): New variables.
1561 * include/grub/powerpc/ieee1275/ieee1275.h
1562 (grub_ieee1275_interpret): New prototype.
1563
1ab09cc7 15642005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
1565
1566 * include/grub/misc.h (memmove): New prototype.
1567 (memcpy): Likewise.
1568
8b8cbdb2 15692005-01-22 Hollis Blanchard <hollis@penguinppc.org>
1570
1571 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
1572 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
1573
e3741a27 15742005-01-22 Marco Gerards <metgerards@student.han.nl>
1575
1576 * kern/misc.c (grub_strndup): Function rewritten.
1577
776bd780 15782005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
1579
1580 * normal/menu.c (TERM_WIDTH): Macro redefined.
1581 (TERM_TOP_BORDER_Y): Likewise.
1582 (draw_border): Replaced while-loop by a for-loop. Make the number
1583 of lines consistent with the number of lines displayed in
1584 print_entries. Added a margin below the rectangle.
1585 (print_entry): Make the entry fit in the rectangle.
1586 (print_entries): Display the scroll arrows next to the right
1587 border.
1588
78026bce 15892005-01-21 Marco Gerards <metgerards@student.han.nl>
1590
1591 * fs/minix.c (grub_minix_find_file): Reserve more space for
1592 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
1593 `grub_strncpy' to copy `path' into it.
1594
67bbaf0f 15952005-01-21 Marco Gerards <metgerards@student.han.nl>
1596
1597 Add the loopback device, a device via which files can be accessed
1598 as devices.
1599
1600 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
1601 (pkgdata_MODULES): Add loopback.mod.
1602 (loopback_mod_SOURCES): New variable.
1603 (loopback_mod_CFLAGS): Likewise.
1604 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1605 `disk/loopback.c'.
1606 (pkgdata_MODULES): Add loopback.mod.
1607 (loopback_mod_SOURCES): New variable.
1608 (loopback_mod_CFLAGS): Likewise.
1609 * disk/loopback.c: new file.
1610 * include/grub/normal.h (grub_loop_init): New prototype.
1611 (grub_loop_fini): New prototype.
1612 * util/grub-emu.c (main): Initialize and de-initialize loopback
1613 support.
1614 * include/grub/disk.h (grub_disk_dev_id): Add
1615 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
1616
6f1c18bd 16172005-01-20 Hollis Blanchard <hollis@penguinppc.org>
1618
1619 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
1620 function.
1621 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
1622 (suspend_mod_SOURCES): New variable.
1623 (suspend_mod_CFLAGS): Likewise.
1624 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
1625 New prototype.
1626 * commands/ieee1275/suspend.c: New file.
1627
b38551da 16282005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
1629
1630 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
1631 ((unused))' to `__attribute__ ((used))'.
1632 (GRUB_MOD_FINI): Likewise.
1633 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
1634 * genmk.rb (PModule): Assign space to common symbols when linking
1635 modules.
1636
777aff39 16372005-01-20 Marco Gerards <metgerards@student.han.nl>
1638
1639 * include/grub/mm.h (grub_mm_init_region): Change the type of the
1640 `unsigned' arguments to `grub_size_t'.
1641 (grub_malloc): Likewise.
1642 (grub_realloc): Likewise.
1643 (grub_memalign): Likewise.
1644 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
1645 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
1646 * util/misc.c (grub_malloc): Likewise.
1647 (grub_realloc): Likewise.
1648 * kern/mm.c (get_header_from_pointer): Change the casts to
1649 `unsigned' into a cast to `grub_size_t'.
1650
1651 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
1652 point to `currnode' when `currnode' is changed.
1653
1654 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
1655 Schottelius <nico-linux@schottelius.org>.
1656
d0ff18e1 16572005-01-09 Hollis Blanchard <hollis@penguinppc.org>
1658
1659 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
1660 (note_path): Remove variable.
1661 (GRUB_IEEE1275_NOTE_NAME): New macro.
1662 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
1663 (grub_ieee1275_note_hdr): New structure.
1664 (grub_ieee1275_note_desc): Likewise.
1665 (grub_ieee1275_note): Likewise.
1666 (load_note): Remove `dir' argument. All callers updated. Remove
1667 `note_img' and `path'. Do not load a file from `note_path'.
1668 Initialize a struct grub_ieee1275_note and write that to `out'.
1669 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
1670
4ca7004c 16712005-01-05 Marco Gerards <metgerards@student.han.nl>
1672
1673 * util/misc.c (grub_util_read_image): Revert last change. It
1674 called `grub_util_read_at', which seeks from the beginning of the
1675 file.
1676
0b412211 16772005-01-04 Hollis Blanchard <hollis@penguinppc.org>
1678
1679 * TODO: Add note about endianness in grub-mkimage.
1680 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
1681 section.
1682 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
1683 (grub_mkimage_SOURCES): New target.
1684 * include/grub/kernel.h (grub_start_addr): Remove variable.
1685 (grub_end_addr): Likewise.
1686 (grub_total_module_size): Likewise.
1687 (grub_kernel_image_size): Likewise.
1688 (GRUB_MODULE_MAGIC): New constant.
1689 (grub_module_info): New structure.
1690 (grub_arch_modules_addr): New prototype.
1691 (grub_get_end_addr): Remove prototype.
1692 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
1693 * include/grub/powerpc/ieee1275/kernel.h: New file.
1694 * include/grub/util/misc.h (grub_util_get_fp_size): New
1695 prototype.
1696 (grub_util_read_at): Likewise.
1697 (grub_util_write_image_at): Likewise.
1698 * kern/main.c (grub_get_end_addr): Remove function.
1699 (grub_load_modules): Call grub_arch_modules_addr instead of using
1700 grub_end_addr. Look for a grub_module_info struct in memory. Use
1701 the grub_module_info fields instead of calling grub_get_end_addr
1702 as loop conditions. Move grub_add_unused_region code here.
1703 (grub_add_unused_region): Remove function.
1704 * kern/i386/pc/init.c: Include grub/cache.h.
1705 (grub_machine_init): Remove call to grub_get_end_addr. Remove
1706 one call to add_mem_region.
1707 (grub_arch_modules_addr): New function.
1708 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
1709 (grub_total_module_size): Likewise.
1710 Include grub/machine/kernel.h.
1711 (grub_arch_modules_addr): New function.
1712 * util/grub-emu.c (grub_end_addr): Remove variable.
1713 (grub_total_module_size): Likewise.
1714 (grub_arch_modules_addr): New function.
1715 * util/misc.c: Include unistd.h.
1716 (grub_util_get_fp_size): New function.
1717 (grub_util_read_at): Likewise.
1718 (grub_util_write_image_at): Likewise.
1719 (grub_util_read_image): Call grub_util_read_at.
1720 (grub_util_write_image): Call grub_util_write_image_at.
1721 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
1722 additional memory in kernel_img for a struct grub_module_info.
1723 Fill in that grub_module_info.
1724 * util/powerpc/ieee1275/grub-mkimage.c: New file.
1725
458786f8 17262005-01-03 Hollis Blanchard <hollis@penguinppc.org>
1727
1728 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
1729 New function.
1730 * include/grub/powerpc/ieee1275/ieee1275.h
1731 (grub_ieee1275_milliseconds): New prototype.
1732 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
1733 Change to 1000.
1734 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
1735 grub_ieee1275_milliseconds.
1736
ac507d1b 17372005-01-03 Hollis Blanchard <hollis@penguinppc.org>
1738
1739 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
1740 variable.
1741 (find_options): New function.
1742 (cmain): Call find_options.
1743 * include/grub/powerpc/ieee1275/ieee1275.h
1744 (grub_ieee1275_realmode): New extern variable.
1745 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
1746 grub_map if grub_ieee1275_realmode is false.
1747
6b8fd1c4 17482004-12-29 Marco Gerards <metgerards@student.han.nl>
1749
1750 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
1751 lines are inserted and make it work like readline. Reported by
1752 Vincent Pelletier <subdino2004@yahoo.fr>.
1753
8514a1e0 17542004-12-28 Marco Gerards <metgerards@student.han.nl>
1755
1756 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
1757
1758 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
1759 `kern/powerpc/cache.S'.
1760
924b6140 17612004-12-27 Marco Gerards <metgerards@student.han.nl>
1762
1763 * genmk.rb: Handle the `Program' class in the main loop. Written
1764 by Johan Rydberg <jrydberg@gnu.org>.
1765 (Program): New class.
1766 (programs): New variable.
1767 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
1768 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
1769 instead of "grub/kernel.h". Include <grub/machine/init.h>.
1770 (help_arch): Function removed.
1771 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
1772 `powerpc/libgcc.h' and `loader.h'.
1773 (pkgdata_PROGRAMS): New variable.
1774 (sbin_UTILITIES): Variable removed.
1775 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
1776 (grubof_SOURCES): Variable re-defined so it only includes the
1777 core functionality.
1778 (grubof_CFLAGS): Remove `-DGRUBOF'.
1779 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
1780 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
1781 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
1782 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
1783 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
1784 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
1785 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
1786 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
1787 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
1788 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
1789 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
1790 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
1791 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
1792 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
1793 (pc_mod_CFLAGS): New variables.
1794 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
1795 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
1796 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
1797 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
1798 Moved from here...
1799 * include/grub/i386/pc/init.h (grub_os_area_addr)
1800 (rub_os_area_size): ... to here.
1801 * include/grub/powerpc/ieee1275/ieee1275.h
1802 (grub_ieee1275_entry_fn): Export symbol.
1803 * include/grub/powerpc/ieee1275/init.h: New file.
1804 * include/grub/powerpc/libgcc.h: Likewise.
1805 * include/grub/cache.h: Likewise.
1806 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
1807 <hollis@penguinppc.org>.
1808 * kern/dl.c: Include <grub/cache.h>.
1809 (grub_dl_flush_cache): New function.
1810 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
1811 for this module.
1812 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
1813 (grub_console_init): Removed prototypes.
1814 (grub_machine_init): Don't initialize the modules anymore.
1815 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
1816 static.
1817 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
1818 Macro undef removed.
1819 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
1820 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
1821 relocation `R_PPC_REL32'. Return an error when the relocation is
1822 unknown.
1823 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
1824 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
1825 * util/misc.c (grub_arch_sync_caches): Likewise.
1826
e4b47e0c 18272004-12-19 Marco Gerards <metgerards@student.han.nl>
1828
1829 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
1830 `symlist.c', add `grubof_symlist.c'.
1831 (symlist.c): Variable removed.
1832 (grubof_HEADERS): Variable added.
1833 (grubof_symlist.c): New target.
1834 (kernel_syms.lst): Use `grubof_HEADERS' instead of
1835 `kernel_img_HEADERS'.
1836 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
1837 * kern/powerpc/dl.c: New file.
1838 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
1839 Function removed.
1840 (grub_arch_dl_relocate_symbols): Likewise.
1841 (grub_register_exported_symbols): Likewise.
1842
4ceb3636 18432004-12-13 Marco Gerards <metgerards@student.han.nl>
1844
1845 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
1846 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
1847 to fail instead. Reported by Vincent Pelletier
1848 <subdino2004@yahoo.fr>.
1849
1850 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
1851 it is not allocated. Reported by Vincent Pelletier
1852 <subdino2004@yahoo.fr>.
1853
1854 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
1855 output so the output looks better.
1856
3f1578fe 18572004-12-04 Marco Gerards <metgerards@student.han.nl>
1858
1859 Modulize the partition map support and add support for the amiga
1860 partition map.
1861
1862 * commands/ls.c: Include <grub/partition.h> instead of
1863 <grub/machine/partition.h>.
1864 * kern/disk.c: Likewise.
1865 * kern/rescue.c: Likewise.
1866 * loader/i386/pc/chainloader.c: Likewise.
1867 * normal/cmdline.c: Likewise.
1868 * kern/powerpc/ieee1275/init.c: Likewise.
1869 (grub_machine_init): Call `grub_pc_partition_map_init',
1870 `grub_amiga_partition_map_init' and
1871 `grub_apple_partition_map_init'.
1872 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
1873 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
1874 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
1875 `partition.h' and `pc_partition.h'.
1876 (grub_setup_SOURCES): Remove
1877 `disk/i386/pc/partition.c'. Add `kern/partition.c',
1878 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
1879 (grub_emu_SOURCES): Likewise.
1880 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
1881 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
1882 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
1883 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
1884 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
1885 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
1886 (grubof_SOURCES): Likewise.
1887 * disk/i386/pc/partition.c: File removed.
1888 * disk/powerpc/ieee1275/partition.c: Likewise.
1889 * include/grub/powerpc/ieee1275/partition.h: Likewise.
1890 * include/grub/i386/pc/partition.h: Likewise.
1891 * kern/partition.c: New file.
1892 * partmap/amiga.c: Likewise.
1893 * partmap/apple.c: Likewise.
1894 * partmap/pc.c: Likewise.
1895 * include/grub/partition.h: Likewise..
1896 * include/grub/pc_partition.h: Likewise.
1897 * util/grub-emu.c: Include <grub/partition.h> instead of
1898 <grub/machine/partition.h>.
1899 (main): Call `grub_pc_partition_map_init',
1900 `grub_amiga_partition_map_init' and
1901 `grub_apple_partition_map_init' and deinitialize afterwards.
1902 * util/i386/pc/biosdisk.c: Include `#include
1903 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
1904 `<grub/machine/partition.h>'.
1905 * util/i386/pc/grub-setup.c: Likewise.
1906 * util/i386/pc/biosdisk.c: Likewise.
1907 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
1908 partition information in case of a PC partition.
1909 * util/i386/pc/grub-setup.c: Include `#include
1910 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
1911 `<grub/machine/partition.h>'.
1912 (setup): Only access the PC specific partition information in case
1913 of a PC partition.
1914
0ef4ced9 19152004-11-17 Hollis Blanchard <hollis@penguinppc.org>
1916
1917 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
1918 (grub_longjmp): Likewise.
1919 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
1920 20.
1921 * normal/powerpc/setjmp.S: New file.
1922 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
1923 `normal/powerpc/setjmp.S'.
1924 (grubof_CFLAGS): Add `-DGRUBOF'.
1925 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
1926 [GRUB_UTIL && !GRUBOF].
1927
19950e29 19282004-11-16 Marco Gerards <metgerards@student.han.nl>
1929
1930 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
1931 property named `name'. Correctly handle the error returned by
1932 `grub_ieee1275_finddevice' if a device can not be opened.
1933
a2fea427 19342004-11-02 Hollis Blanchard <hollis@penguinppc.org>
1935
1936 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
1937 `actual' for negativity.
1938 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
1939 kern/fshelp.c.
1940
41ea0ea3 19412004-11-01 Marco Gerards <metgerards@student.han.nl>
1942
1943 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
1944 (PAGE_OFFSET): New macro.
1945 (CRTC_ADDR_PORT): Likewise.
1946 (CRTC_DATA_PORT): Likewise.
1947 (START_ADDR_HIGH_REGISTER): Likewise.
1948 (START_ADDR_LOW_REGISTER): Likewise.
1949 (GRAPHICS_ADDR_PORT): Likewise.
1950 (GRAPHICS_DATA_PORT): Likewise.
1951 (READ_MAP_REGISTER): Likewise.
1952 (INPUT_STATUS1_REGISTER): Likewise.
1953 (INPUT_STATUS1_VERTR_BIT): Likewise.
1954 (page): New variable.
1955 (wait_vretrace): New function.
1956 (set_read_map): Likewise.
1957 (set_start_address): Likewise.
1958 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
1959 the right page.
1960 (check_vga_mem): Take the page into account.
1961 (write_char): Likewise.
1962 (write_cursor): Likewise.
1963 (scroll_up): Likewise. Copy the page to the page that is not
1964 shown and switch between both pages.
1965 (grub_vga_putchar): Fix off by one error.
1966 (grub_vga_cls): Wait for the vertical retrace. Take the page into
1967 account.
1968
ad0bd20b 19692004-11-01 Marco Gerards <metgerards@student.han.nl>
1970
1971 Add support for iso9660 (including rockridge).
1972
1973 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
1974 (iso9660_mod_SOURCES): New variable.
1975 (iso9660_mod_CFLAGS): Likewise.
1976 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
1977 * include/grub/fs.h (grub_iso9660_init): New prototype.
1978 * util/grub-emu.c (main): Call `grub_iso9660_init'.
1979 * fs/iso9660.c: New file.
1980
1981 * include/grub/misc.h (grub_strncat): New prototype.
1982 * kern/misc.c (grub_strncat): New function.
1983
1984 * fs/hfs.c (grub_hfs_mount): Translate the error
1985 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
1986 * fs/jfs.c (grub_jfs_mount): Likewise.
1987 * fs/ufs.c (grub_ufs_mount): Likewise.
1988
a5477a59 19892004-10-28 Hollis Blanchard <hollis@penguinppc.org>
1990
1991 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
1992 which initialized BAT registers.
1993 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
1994 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
1995 Move from here...
1996 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
1997 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
1998 ... to here.
1999 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
2000 (grub_mapclaim): Likewise.
2001 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
2002 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
2003 hand.
2004
9304c1f8 20052004-10-19 Hollis Blanchard <hollis@penguinppc.org>
2006
2007 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
2008 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
2009 -ffreestanding and -msoft-float.
2010
86f4ae25 20112004-10-15 Hollis Blanchard <hollis@penguinppc.org>
2012
2013 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
2014 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
2015 set in grub_ieee1275_flags.
2016
38912228 20172004-10-14 Hollis Blanchard <hollis@penguinppc.org>
2018
2019 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
2020 prototype.
2021 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
2022 grub_console_init first.
2023 Change the memory range used for grub_ieee1275_claim and
2024 grub_mm_init_region.
2025 Print an error message if the claim fails.
2026 Include <grub/misc.h>.
2027
d1923dc8 20282004-10-13 Hollis Blanchard <hollis@penguinppc.org>
2029
2030 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
2031 Call grub_children_iterate for device nodes of type `scsi',
2032 `ide', or `ata'.
2033 (grub_ofdisk_open): Remove manual device alias resolution.
2034 Fix memory leak when device cannot be opened.
2035 * include/grub/powerpc/ieee1275/ieee1275.h
2036 (grub_children_iterate): New prototype.
2037 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
2038 New function.
2039 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2040 Return -1 if args.size was -1.
2041
4512e4f3 20422004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2043
2044 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
2045 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
2046 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
2047 Open Firmware's memory for it; claim memory from _start to _end.
2048 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
2049 (_end): New extern.
2050 (_start): Zero BSS from __bss_start to _end.
2051 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
2052 New extern.
2053 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
2054
4d61feb0 20552004-10-11 Hollis Blanchard <hollis@penguinppc.org>
2056
ad0bd20b 2057 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
2058 -1 if args.base was -1.
4d61feb0 2059
026fa2f9 20602004-10-08 Hollis Blanchard <hollis@penguinppc.org>
2061
2062 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
2063 escape sequence instead of a literal ^L. Also call
2064 grub_ofconsole_gotoxy.
2065
9f2220ef 20662004-10-03 Hollis Blanchard <hollis@penguinppc.org>
2067
2068 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
2069 void * arguments to grub_addr_t. All callers updated. Also make
2070 the `result' argument optional.
2071 (grub_ieee1275_release): change void * arguments to grub_addr_t.
2072 All callers updated.
2073
8a572cd7 20742004-09-22 Hollis Blanchard <hollis@penguinppc.org>
2075
2076 * commands/ls.c (grub_ls_list_files): Use the string following the
2077 initial ')', if present, as the filesystem path.
2078 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
2079
2080 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
2081
18aa81f2 20822004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
2083
2084 Make the source code of the menu interface more readable.
2085
2086 * normal/menu.c: Include grub/mm.h.
2087 (TERM_WIDTH): New macro.
2088 (TERM_HEIGHT): Likewise.
2089 (TERM_INFO_HEIGHT): Likewise.
2090 (TERM_MARGIN): Likewise.
2091 (TERM_SCROLL_WIDTH): Likewise.
2092 (TERM_TOP_BORDER_Y): Likewise.
2093 (TERM_LEFT_BORDER_X): Likewise.
2094 (TERM_BORDER_WIDTH): Likewise.
2095 (TERM_MESSAGE_HEIGHT): Likewise.
2096 (TERM_BORDER_HEIGHT): Likewise.
2097 (TERM_NUM_ENTRIES): Likewise.
2098 (TERM_FIRST_ENTRY_Y): Likewise.
2099 (TERM_ENTRY_WIDTH): Likewise.
2100 (TERM_CURSOR_X): Likewise.
2101 (draw_border): Use macros instead of magic numbers.
2102 (print_entry): Likewise.
2103 (print_entries): Likewise.
2104 (run_menu): Likewise. Also, handle the key 'e'.
2105 (run_menu_entry): Ignore empty command lines.
2106 (print_message): Added a new argument EDIT. If EDIT is true,
2107 print a different message.
2108 (init_page): Likewise.
2109 (edit_menu_entry): New function. Not implemented yet.
2110
b47efe30 21112004-09-17 Marco Gerards <metgerards@student.han.nl>
2112
2113 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
2114 can be loaded from normal mode.
2115
2116 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
2117 `multiboot.mod'.
2118 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
2119 (multiboot_mod_CFLAGS): New variables.
2120 * loader/i386/pc/linux_normal.c: New file.
2121 * loader/i386/pc/multiboot_normal.c: Likewise.
2122
2123 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
2124 attribute `unused'.
2125
2126 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
2127 `fdiro' to read the mode information from instead of `diro'.
2128
2129 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
2130 looking up a symlink.
2131
2132 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
2133 macro.
2134 * normal/command.c (grub_command_execute): Don't parse the
2135 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
2136 flags of the command.
2137
2138 * normal/menu.c (grub_menu_run): Fix typo.
2139
da75ac71 21402004-09-14 Hollis Blanchard <hollis@penguinppc.org>
2141
2142 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
2143
2144 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
2145 `y + 1' instead of `y - 1'.
2146
2147 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
2148
062b24c2 21492004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
2150
2151 From Hollis Blanchard <hollis@penguinppc.org>:
2152 * kern/misc.c (memmove): New alias for grub_memmove.
2153 (memcmp): New alias for grub_memcmp.
2154 (memset): New alias for grub_memset.
2155 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
2156 Change "int handle" to "grub_ieee1275_phandle_t handle".
2157 * include/grub/powerpc/ieee1275/ieee1275.h
2158 (grub_ieee1275_get_property): Likewise.
2159
8ddad845 21602004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
2161
2162 Added normal mode command `chainloader' as module chain.mod, which
2163 depends on normal.mod and _chain.mod.
2164
2165 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
2166 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
2167 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
2168 Deleted prototype.
2169 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
2170 but arguments parsing moved to ...
2171 (grub_chainloader_cmd): ... here. New function.
2172 * include/grub/i386/pc/chainloader.h: New file.
2173 * loader/i386/pc/chainloader_normal.c: Likewise.
2174
2c1f4ce3 21752004-09-11 Marco Gerards <metgerards@student.han.nl>
2176
2177 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
2178 (grub_mkimage_LDFLAGS): Likewise.
2179 (grub_emu_SOURCES): Likewise.
2180 (kernel_img_HEADERS): Added fshelp.h.
2181 * fs/ext2.c: Include <grub/fshelp.h>.
2182 (FILETYPE_REG): New macro.
2183 (FILETYPE_INO_REG): Likewise.
2184 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
2185 Changed all users.
2186 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
2187 all users.
2188 (grub_fshelp_node): New struct.
2189 (grub_ext2_data): Added member `diropen'. Changed member `inode'
2190 to a pointer.
2191 (grub_ext2_get_file_block): Removed function.
2192 (grub_ext2_read_block): New function.
2193 (grub_ext2_read_file): Replaced parameter `data' by `node'.
2194 This function was written.
2195 (grub_ext2_mount): Read the root inode. Create a diropen struct.
2196 (grub_ext2_find_file): Removed function.
2197 (grub_ext2_read_symlink): New function.
2198 (grub_ext2_iterate_dir): Likewise.
2199 (grub_ext2_open): Rewritten.
2200 (grub_ext2_dir): Rewritten.
2201 * include/grub/fshelp.h: New file.
2202 * fs/fshelp.c: Likewise.
2203
3c52136a 22042004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
2205
2206 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
2207 (print_message): Add a missing newline.
2208 (run_menu): Added timeout support.
2209 (run_menu_entry): New local function.
2210 (grub_menu_run): Added support for booting.
2211
2212 * kern/loader.c (grub_loader_is_loaded): New function.
2213
2214 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
2215 (grub_get_rtc): Exported.
2216
2217 * include/grub/i386/pc/time.h: Include grub/symbol.h.
2218 (grub_get_rtc): Exported.
2219
2220 * include/grub/normal.h (struct grub_command_list): Remove
2221 constant from the member `command'.
2222
2223 * include/grub/loader.h (grub_loader_is_loaded): Declared.
2224
2225 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
2226
2227 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
2228
aa033560 22292004-08-28 Marco Gerards <metgerards@student.han.nl>
2230
2231 Add support for the JFS filesystem.
2232
2233 * fs/jfs.c: New file.
2234 * include/grub/fs.h (grub_jfs_init): New prototype.
2235 (grub_jfs_fini): New prototype.
2236 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
2237 (grub_emu_SOURCES): Likewise.
2238 (pkgdata_MODULES): Add jfs.mod.
2239 (jfs_mod_SOURCES): New variable.
2240 (jfs_mod_CFLAGS): Likewise.
2241 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
2242 (grubof_SOURCES): Likewise.
2243 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
2244
2245 * fs/fat.c (grub_fat_find_dir): Convert the filename little
2246 endian to the host endian.
2247 (grub_fat_utf16_to_utf8): Move function from there...
2248 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
2249 the endianess of the source string anymore.
2250 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
2251
94bc45af 22522004-08-24 Marco Gerards <metgerards@student.han.nl>
2253
2254 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
2255 (grub_boot_fini) [GRUB_UTIL]: Likewise.
2256 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
2257 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
2258
2259 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
2260 (grub_hfs_iterate_dir): Make the function static. Add prototypes
2261 for `node_found' and `it_dir'.
2262 (grub_hfs_dir): Add prototype for `dir_hook'.
2263
2264 * fs/minix.c (grub_minix_get_file_block): Add prototype for
2265 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
2266 and `indir32' to silence a gcc warning.
2267
2268 * include/grub/fs.h (grub_hfs_init): New prototype.
2269 (grub_hfs_fini): Likewise.
2270
2271
97543f08 22722004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
2273
2274 Each disk device has its own id now. This is useful to make use
2275 of multiple disk devices.
2276
2277 * include/grub/disk.h (grub_disk_dev_id): New enum.
2278 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
2279 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
2280
2281 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
2282 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
2283
2284 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
2285 GRUB_DISK_DEVICE_OFDISK_ID as an id.
2286
2287 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
2288 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
2289
2290 * include/grub/disk.h (struct grub_disk_dev): Added a new member
2291 "id" which is used by the cache manager.
2292
2293 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
2294 of just "GRUB".
2295
64372eb4 22962004-08-18 Marco Gerards <metgerards@student.han.nl>
2297
2298 * fs/hfs.c: New file.
2299 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
2300 (grub_emu_SOURCES): Likewise.
2301 (pkgdata_MODULES): Add hfs.mod.
2302 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
2303 (grubof_SOURCES): Likewise.
2304 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
2305
2306 * include/grub/misc.h (grub_strncasecmp): Add prototype.
2307 * kern/misc.c (grub_strncasecmp): Add function.
2308
cc61b58f 23092004-08-14 Marco Gerards <metgerards@student.han.nl>
2310
2311 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
2312 with parentheses.
2313
2314 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
2315 (grub_ext2_dir): In case the directory entry type is unknown, read
2316 it from the inode.
2317
0ef123f6 23182004-08-02 Peter Bruin <pjbruin@dds.nl>
2319
2320 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
2321 grub_load_linux instead of grub_rescue_cmd_linux as second
2322 argument of grub_rescue_register_command.
2323
2324 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
2325
a447c5df 23262004-07-27 Marco Gerards <metgerards@student.han.nl>
2327
2328 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
2329 function.
2330 * commands/boot.c: Remove the check for `GRUB_UTIL'.
2331 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
2332 `loader/powerpc/ieee1275/linux.c',
2333 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
2334 * include/grub/powerpc/ieee1275/ieee1275.h
2335 (grub_ieee1275_release): New prototype.
2336 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
2337 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
2338 normal, boot, linux and linux_normal.
2339 * loader/powerpc/ieee1275/linux.c: New file.
2340 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
2341
5a9e3546 23422004-07-12 Marco Gerards <metgerards@student.han.nl>
2343
2344 * normal/arg.c (grub_arg_parse): Correct error handling after
2345 reallocating the argumentlist (check if `argl' is not null instead
2346 of checking if `args' is not null).
2347 * kern/mm.c (grub_realloc): Return the same pointer when using the
2348 same region, instead of returning the header address.
2349
e15199cb 23502004-07-11 Marco Gerards <metgerards@student.han.nl>
2351
2352 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
2353 one block instead of two when looking for the initial partition.
2354 (grub_partition_probe): Initialize the local variable `p' with 0.
2355 Use base 10 for the grub_strtoul call.
2356 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
2357 need for one local variable.
2358 (grub_strtoul): Don't add the new value to `num', instead of that
2359 just assign it.
2360
020616c2 23612004-07-11 Marco Gerards <metgerards@student.han.nl>
2362
2363 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
2364 (pxeboot_img_SOURCES): New variable.
2365 (pxeboot_img_ASFLAGS): Likewise.
2366 (pxeboot_img_LDFLAGS): Likewise.
2367 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
2368 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
2369 <lode_leroy@hotmail.com>.
2370
6c51eb64 23712004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
2372
2373 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
2374 there was no input.
2375
cfb12aff 23762004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
2377
2378 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
2379 the history buffer logic.
2380
6eabba74 23812004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
2382
2383 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
2384 (FILETYPE_INO_SYMLINK): New macros.
2385 (grub_ext2_find_file): Check if the node is a directory using the
2386 inode stat information instead of using the filetype in the
2387 dirent. Exclude the first character of an absolute symlink.
2388 (grub_ext2_dir): Mask out the filetype part of the mode member of
2389 the inode.
2390
66e19ef8 23912004-05-24 Marco Gerards <metgerards@student.han.nl>
2392
2393 Add support for UFS version 1 and 2. Add support for the minix
2394 filesystem version 1 and 2, both the variants with 14 and 30 long
2395 filenames.
2396
2397 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
2398 fs/minix.c.
2399 (grub_emu_SOURCES): Likewise.
2400 (pkgdata_MODULES): Add ufs.mod and minix.mod.
2401 (ufs_mod_SOURCES): New variable.
2402 (ufs_mod_CFLAGS): Likewise.
2403 (minix_mod_SOURCES): Likewise.
2404 (minix_mod_CFLAGS): Likewise.
2405 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
2406 fs/minix.c.
2407 (grubof_SOURCES): Likewise.
2408 * fs/ufs.c: New file.
2409 * fs/minix.c: New file.
2410 * include/grub/fs.h (grub_ufs_init): New prototype.
2411 (grub_ufs_fini): Likewise.
2412 (grub_minix_init): Likewise.
2413 (grub_minix_fini): Likewise.
2414 * util/grub-emu.c (main): Initialize and deinitialize UFS and
2415 minix fs.
2416
cc2e748a 24172004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
2418
2419 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
2420 commands/ls.c, commands/terminal.c, commands/boot.c,
2421 commands/cmp.c and commands/cat.c.
2422 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
2423
2424 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
2425 "env.h"
2426
4b13b216 24272004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
2428
2429 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
2430 and grub_, respectively. Because the conversion is trivial and
2431 mechanical, I omit the details here. Please refer to the CVS
2432 if you need more information.
2433
6a142551 24342004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
2435
2436 * include/pupa: Renamed to ...
2437 * include/grub: ... this.
2438 * util/i386/pc/pupa-mkimage.c: Renamed to ...
2439 * util/i386/pc/grub-mkimage.c: ... this.
2440 * util/i386/pc/pupa-setup.c: Renamed to ...
2441 * util/i386/pc/grub-setup.c: ... this.
2442 * util/pupa-emu.c: Renamed to ...
2443 * util/grub-emu.c: ... this.
2444
e56cdf21 24452004-03-29 Marco Gerards <metgerards@student.han.nl>
2446
2447 Add support for the newworld apple macintosh (PPC). This has been
2448 tested on the powerbook 2000 only. It only adds support for
2449 generic ieee1275 functions, console and disk support. This should
2450 be easy to port to other architectures with support for Open
2451 Firmware.
2452
2453 * configure.ac: Accept the powerpc as host_cpu. In the case of
2454 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
2455 specific tests are only executed while building for the i386.
2456 Inverse test for crosscompile.
2457 * genmk.rb (Utility): Allow assembler files.
2458 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
2459 * conf/powerpc-ieee1275.rmk: New file.
2460 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
2461 * disk/powerpc/ieee1275/partition.c: Likewise.
2462 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
2463 * include/pupa/powerpc/ieee1275/console.h: Likewise.
2464 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
2465 * include/pupa/powerpc/ieee1275/time.h: Likewise.
2466 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
2467 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
2468 * include/pupa/powerpc/ieee1275/loader.h
2469 * include/pupa/powerpc/setjmp.h: Likewise.
2470 * include/pupa/powerpc/types.h: Likewise.
2471 * kern/powerpc/ieee1275/init.c: Likewise.
2472 * kern/powerpc/ieee1275/openfw.c: Likewise.
2473 * term/powerpc/ieee1275/ofconsole.c: Likewise.
2474
2475 These files were written by Johan Rydberg
2476 (jrydberg@night.trouble.net) and I only modified them slightly.
2477
2478 * boot/powerpc/ieee1275/cmain.c: New file.
2479 * boot/powerpc/ieee1275/crt0.S: Likewise.
2480 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
2481 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
2482
8c8cc205 24832004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
2484
2485 * Makefile.in: Update copyright.
2486 * genmodsrc.sh: Likewise.
2487 * gensymlist.sh: Likewise.
2488 * term/i386/pc/vga.c: Indent correctly.
2489
2490 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
2491 bugreporting address.
2492 * util/i386/pc/pupa-setup.c (usage): Likewise,
2493 (main): Call pupa_ext2_init and pupa_ext2_fini.
2494
2495 * fs/fat.c (log2): Renamed to ...
2496 (fat_log2): ... this.
2497 All callers changed.
2498 * kern/misc.c (memcpy): Alias to pupa_memmove.
2499 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
2500 lvalue cast.
2501 * util/console.c (pupa_ncurses_fini): Return 0.
2502
2503 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
2504 Move fail label here.
2505 [__GNU__]: Don't warn when using stat.
2506 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
2507 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
2508 long int. Use strtol instead of strtoul.
2509
db1771cf 25102004-03-14 Marco Gerards <metgerards@student.han.nl>
2511
2512 * commands/boot.c: New file.
2513 * commands/cat.c: Likewise.
2514 * commands/cmp.c: Likewise.
2515 * commands/ls.c: Likewise.
2516 * commands/terminal.c: Likewise.
2517 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
2518 (pupa_register_command): Changed interface to match the new
2519 argument parser.
2520 (pupa_command_execute): Changed (almost rewritten) so it uses
2521 pupa_split_command. Added support for setting variables using the
2522 syntax `foo=bar'.
2523 (rescue_command): Changed to work with the new argument parser.
2524 (terminal_command): Moved from here to commands/terminal.c.
2525 (set_command): New function.
2526 (unset_command): New function.
2527 (insmod_command): New function.
2528 (rmmod_command): New function.
2529 (lsmod_command): New function.
2530 (pupa_command_init): Don't initialize the command terminal
2531 anymore. Initialize the commands set, unset, insmod, rmmod and
2532 lsmod.
2533 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
2534 (kernel_img_HEADERS): Add arg.h and env.h.
2535 (pupa_mkimage_LDFLAGS): Add kern/env.c.
2536 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
2537 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
2538 normal/arg.c.
2539 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
2540 terminal.mod.
2541 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
2542 (boot_mod_SOURCES): New variable.
2543 (terminal_mod_SOURCES): Likewise.
2544 (ls_mod_SOURCES): Likewise.
2545 (cmp_mod_SOURCES): Likewise.
2546 (cat_mod_SOURCES): Likewise.
2547
2548 * normal/arg.c: New file.
2549 * kern/env.c: Likewise.
2550 * include/pupa/arg.h: Likewise.
2551 * include/pupa/env.h: Likewise.
2552 * font/manager.c (font_command): Changed to match argument parsing
2553 interface changes.
2554 (PUPA_MOD_INIT): Likewise.
2555 * hello/hello.c (pupa_cmd_hello): Likewise.
2556 (PUPA_MOD_INIT): Likewise.
2557 * include/pupa/disk.h: Include <pupa/device.h>.
2558 (pupa_print_partinfo): New prototype.
2559 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
2560 (pupa_dl_get_prefix): Likewise.
2561 * include/pupa/misc.h: Include <pupa/err.h>.
2562 (pupa_isgraph): New prototype.
2563 (pupa_isdigit): Likewise.
2564 (pupa_split_cmdline): Likewise.
2565 * include/pupa/normal.h: Include <pupa/arg.h>.
2566 (pupa_command): Changed the prototype of the member `func' to
2567 match the argument parsing interface. Added member `options'.
2568 (pupa_register_command): Updated to match function.
2569 (pupa_arg_parse): New prototype.
2570 (pupa_hello_init) [PUPA_UTIL]: New prototype.
2571 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
2572 (pupa_ls_init) [PUPA_UTIL]: Likewise.
2573 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
2574 (pupa_cat_init) [PUPA_UTIL]: Likewise.
2575 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
2576 (pupa_boot_init) [PUPA_UTIL]: Likewise.
2577 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
2578 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
2579 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
2580 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
2581 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
2582 * kern/disk.c: Include <pupa/file.h>.
2583 (pupa_print_partinfo): New function.
2584 * kern/dl.c: Include <pupa/env.h>.
2585 (pupa_dl_dir): Variable removed.
2586 (pupa_dl_load): Use the environment variable `prefix' instead of
2587 the variable pupa_dl_dir.
2588 (pupa_dl_set_prefix): Function removed.
2589 (pupa_dl_get_prefix): Likewise.
2590 * kern/i386/pc/init.c: Include <pupa/env.h>.
2591 (pupa_machine_init): Use the environment variable `prefix' instead of
2592 using pupa_dl_set_prefix to set the prefix.
2593 * kern/main.c: Include <pupa/env.h>.
2594 (pupa_set_root_dev): Use the environment variable `prefix' instead of
2595 using pupa_dl_get_prefix to get the prefix.
2596 * kern/misc.c: Include <pupa/env.h>.
2597 (pupa_isdigit): New function.
2598 (pupa_isgraph): Likewise.
2599 (pupa_ftoa): Likewise.
2600 (pupa_vsprintf): Added support for printing values of the type
2601 `double'. Make it possible to format variable output when using
2602 formatting like `%1.2%f'.
2603 (pupa_split_cmdline): New function.
2604 * kern/rescue.c: Include <pupa/env.h>.
2605 (next_word): Removed function.
2606 (pupa_rescue_cmd_prefix): Likewise.
2607 (pupa_rescue_cmd_set): New function.
2608 (pupa_rescue_cmd_unset): New function.
2609 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
2610 split the command line instead of splitting it here. Added
2611 support for setting variables using the syntax `foo=bar'. Don't
2612 initialize the prefix command anymore. Initialized the set and
2613 unset commands.
2614 * normal/cmdline.c: Include <pupa/env.h>.
2615 (pupa_tab_complete): Added prototypes for print_simple_completion,
2616 print_partition_completion, add_completion, iterate_commands,
2617 iterate_dev, iterate_part and iterate_dir. Moved code to print
2618 partition information from here to kern/disk.c.
2619 (pupa_cmdline_run): Don't check if the funtion exists anymore.
2620 * normal/main.c: Include <pupa/env.h>.
2621 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
2622 instead of using pupa_dl_get_prefix to get the prefix.
2623 * term/i386/pc/vga.c: Include <pupa/arg.h>.
2624 (check_vga_mem): Cast pointers to `void *' to silence a gcc
2625 warning.
2626 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
2627 (pupa_vga_setcolor): Declare unused variables with `__attribute__
2628 ((unused))' to silence a gcc warning.
2629 (pupa_vga_setcolor): Likewise.
2630 (debug_command): Changed to match argument parsing
2631 interface changes.
2632 * util/pupa-emu.c: Include <pupa/env.h>.
2633 (options): Added 0's for unused fields to silence a gcc warning.
2634 (argp): Likewise.
2635 (main): Use the environment variable `prefix' instead of using
2636 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
2637 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
2638 and terminal.
2639
2640 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
2641 * util/misc.c: Include <malloc.h>.
2642 (pupa_malloc): Rewritten so errors are correctly reported.
2643 (pupa_realloc): Likewise.
2644 (pupa_memalign): Likewise.
2645 (pupa_mm_init_region): Declare unused variables with
2646 `__attribute__ ((unused))' to silence a gcc warning.
2647 * normal/i386/setjmp.S: Remove tab at the end of the file to
2648 silence a gcc warning.
2649 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
2650 variables with `__attribute__ ((unused))' to silence a gcc
2651 warning.
2652 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
2653 local variable i unsigned to silence a gcc warning.
2654
2655 * kern/term.c: Include <pupa/misc.h>.
2656 (pupa_more_lines): New variable.
2657 (pupa_more): Likewise.
2658 (pupa_putcode): When the pager is active pause at the end of every
2659 screen.
2660 (pupa_set_more): New function.
2661 * include/pupa/term.h (pupa_set_more): New prototype.
2662
2663
3b1139cb 26642004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
2665
2666 Now this project is GRUB 2 rather than PUPA. The location of
2667 the CVS repository was moved to GRUB's.
2668
2669 * configure.ac: Use bug-grub as the reporting address.
2670 Use GRUB instead of PUPA.
2671 Change the version number to 1.90.
2672
8367695c 26732004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
2674
2675 * genkernsyms.sh: Updated copyright information.
2676 * genmk.rb: Likewise.
2677 * genmodsrc.sh: Likewise.
2678 * gensymlist.sh: Likewise.
2679 * boot/i386/pc/boot.S: Likewise.
2680 * boot/i386/pc/diskboot.S: Likewise.
2681 * disk/i386/pc/biosdisk.c: Likewise.
2682 * disk/i386/pc/partition.c: Likewise.
2683 * font/manager.c: Likewise.
2684 * fs/ext2.c: Likewise.
2685 * fs/fat.c: Likewise.
2686 * include/pupa/boot.h: Likewise.
2687 * include/pupa/device.h: Likewise.
2688 * include/pupa/disk.h: Likewise.
2689 * include/pupa/dl.h: Likewise.
2690 * include/pupa/elf.h: Likewise.
2691 * include/pupa/err.h: Likewise.
2692 * include/pupa/file.h: Likewise.
2693 * include/pupa/font.h: Likewise.
2694 * include/pupa/fs.h: Likewise.
2695 * include/pupa/kernel.h: Likewise.
2696 * include/pupa/loader.h: Likewise.
2697 * include/pupa/misc.h: Likewise.
2698 * include/pupa/mm.h: Likewise.
2699 * include/pupa/net.h: Likewise.
2700 * include/pupa/normal.h: Likewise.
2701 * include/pupa/rescue.h: Likewise.
2702 * include/pupa/setjmp.h: Likewise.
2703 * include/pupa/symbol.h: Likewise.
2704 * include/pupa/term.h: Likewise.
2705 * include/pupa/types.h: Likewise.
2706 * include/pupa/i386/setjmp.h: Likewise.
2707 * include/pupa/i386/types.h: Likewise.
2708 * include/pupa/i386/pc/biosdisk.h: Likewise.
2709 * include/pupa/i386/pc/boot.h: Likewise.
2710 * include/pupa/i386/pc/console.h: Likewise.
2711 * include/pupa/i386/pc/init.h: Likewise.
2712 * include/pupa/i386/pc/kernel.h: Likewise.
2713 * include/pupa/i386/pc/linux.h: Likewise.
2714 * include/pupa/i386/pc/loader.h: Likewise.
2715 * include/pupa/i386/pc/memory.h: Likewise.
2716 * include/pupa/i386/pc/multiboot.h: Likewise.
2717 * include/pupa/i386/pc/partition.h: Likewise.
2718 * include/pupa/i386/pc/time.h: Likewise.
2719 * include/pupa/i386/pc/vga.h: Likewise.
2720 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
2721 * include/pupa/util/getroot.h: Likewise.
2722 * include/pupa/util/misc.h: Likewise.
2723 * include/pupa/util/resolve.h: Likewise.
2724 * kern/device.c: Likewise.
2725 * kern/disk.c: Likewise.
2726 * kern/dl.c: Likewise.
2727 * kern/err.c: Likewise.
2728 * kern/file.c: Likewise.
2729 * kern/fs.c: Likewise.
2730 * kern/loader.c: Likewise.
2731 * kern/main.c: Likewise.
2732 * kern/misc.c: Likewise.
2733 * kern/mm.c: Likewise.
2734 * kern/rescue.c: Likewise.
2735 * kern/term.c: Likewise.
2736 * kern/i386/dl.c: Likewise.
2737 * kern/i386/pc/init.c: Likewise.
2738 * kern/i386/pc/lzo1x.S: Likewise.
2739 * kern/i386/pc/startup.S: Likewise.
2740 * loader/i386/pc/chainloader.c: Likewise.
2741 * loader/i386/pc/linux.c: Likewise.
2742 * loader/i386/pc/multiboot.c: Likewise.
2743 * normal/cmdline.c: Likewise.
2744 * normal/command.c: Likewise.
2745 * normal/main.c: Likewise.
2746 * normal/menu.c: Likewise.
2747 * normal/i386/setjmp.S: Likewise.
2748 * term/i386/pc/console.c: Likewise.
2749 * term/i386/pc/vga.c: Likewise.
2750 * util/console.c: Likewise.
2751 * util/genmoddep.c: Likewise.
2752 * util/misc.c: Likewise.
2753 * util/pupa-emu.c: Likewise.
2754 * util/resolve.c: Likewise.
2755 * util/unifont2pff.rb: Likewise.
2756 * util/i386/pc/biosdisk.c: Likewise.
2757 * util/i386/pc/getroot.c: Likewise.
2758 * util/i386/pc/pupa-mkimage.c: Likewise.
2759 * util/i386/pc/pupa-setup.c: Likewise.
2760
e6eced71 27612004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
2762
2763 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
2764 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
2765 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
2766 reading and reset it after reading.
2767 (pupa_ext2_close): Return PUPA_ERR_NONE.
2768
2769 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
2770 Correct value.
2771 (struct linux_kernel_header): Add kernel_version and
2772 initrd_addr_max.
2773 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
2774 pupa_file_read succeeds.
2775 (pupa_rescue_cmd_initrd): Implement.
2776
5aded270 27772003-12-03 Marco Gerards <metgerards@student.han.nl>
2778
2779 * fs/ext2.c (pupa_ext2_label): New function.
2780 (pupa_ext2_fs): Added label.
2781 * fs/fat.c (pupa_fat_label): New function.
2782 (pupa_fat_fs): Added label.
2783 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
2784
2785 * kern/misc.c (pupa_strndup): New function.
2786 * include/pupa/misc.h (pupa_strndup): New prototype.
2787
2788 * include/pupa/normal.h: Include <pupa/err.h>.
2789 (pupa_set_history): New prototype.
2790 (pupa_iterate_commands): New prototype.
2791 * normal/cmdline.c: Include <pupa/machine/partition.h>,
2792 <pupa/disk.h>, <pupa/file.h>.
2793 (hist_size): New variable.
2794 (hist_lines): Likewise.
2795 (hist_end): Likewise.
2796 (hist_used): Likewise.
2797 (pupa_set_history): New function.
2798 (pupa_history_get): Likewise.
2799 (pupa_history_add): Likewise.
2800 (pupa_history_replace): Likewise.
2801 (pupa_tab_complete): Likewise.
2802 (pupa_cmdline_run): Added tab completion and history buffer. Tab
2803 completion shows partitionnames while completing partitions, this
2804 feature was suggested by Jeff Bailey.
2805 * normal/command.c (pupa_iterate_commands): New function.
2806 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
2807 (pupa_normal_init): Initialize history buffer.
2808 (PUPA_MOD_INIT): Likewise.
2809 (pupa_normal_fini): Free the history buffer.
2810 (PUPA_MOD_FINI): Likewise.
2811
2812 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
2813 key.
2814
2815 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
2816 * configure.ac [i386]: Check for regparam bug.
2817 (NESTED_FUNC_ATTR) [! i386]: Defined.
2818
1f7315a3 28192003-11-17 Marco Gerards <metgerards@student.han.nl>
2820
2821 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
2822 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
2823 (pupa_emu_SOURCES): New variable.
2824 (pupa_emu_LDFLAGS): Likewise.
2825 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
2826 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
2827 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
2828 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
2829 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
2830 (pupa_jmp_buf): New typedef.
2831 (pupa_setjmp) [PUPA_UTIL]: New macro.
2832 (pupa_longjmp) [PUPA_UTIL]: Likewise.
2833 * include/pupa/term.h (struct pupa_term): New member `refresh'.
2834 (pupa_refresh): New prototype.
2835 * include/pupa/util/getroot.h: New file.
2836 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
2837 it.
2838 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
2839 (pupa_rescue_cmd_cat): Likewise.
2840 (pupa_rescue_cmd_ls): Likewise.
2841 (pupa_rescue_cmd_testload): Likewise.
2842 (pupa_rescue_cmd_lsmod): Likewise.
2843 * normal/cmdline.c (pupa_cmdline_get): Likewise.
2844 * normal/menu.c (run_menu): Likewise.
2845 * kern/term.c (pupa_cls): Likewise.
2846 (pupa_refresh): New function.
2847 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
2848 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
2849 * util/console.c: New file.
2850
2851 * util/i386/pc/getroot.c: New file.
2852 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
2853 (pupa_putchar): New function.
2854 (pupa_refresh): Likewise.
2855 (xgetcwd): Function moved to ...
2856 (strip_extra_slashes): Likewise.
2857 (get_prefix): Likewise.
2858 * util/i386/pc/getroot.c: ... here.
2859 (find_root_device): Function moved and renamed to...
2860 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
2861 Changed all callers.
2862 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
2863 and renamed to...
2864 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
2865 Changed all callers.
2866 * util/misc.c (pupa_memalign): New function.
2867 (pupa_mm_init_region): Likewise.
2868 (pupa_register_exported_symbols): Likewise.
2869 (pupa_putchar): Function removed.
2870 * util/pupa-emu.c: New file.
2871
9a5c1ade 28722003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
2873
2874 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
2875 (_multiboot_mod_SOURCES): New variable.
2876 (_multiboot_mod_CFLAGS): Likewise.
2877 * loader/i386/pc/multiboot.c: New file.
2878 * include/pupa/i386/pc/multiboot.h: Likewise.
2879 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
2880 (pupa_multiboot_real_boot): New function.
2881 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
2882 (pupa_multiboot_real_boot): New prototype.
2883 (pupa_rescue_cmd_multiboot): Likewise
2884 (pupa_rescue_cmd_module): Likewise.
2885
2886 * kern/loader.c (pupa_loader_set): Continue when
2887 pupa_loader_unload_func() fails.
2888 (pupa_loader_unset): New function.
2889 * include/pupa/loader.h (pupa_loader_unset): New prototype.
2890
2891 * kern/misc.c (pupa_stpcpy): New function.
2892 * include/pupa/misc.h (pupa_stpcpy): New prototype.
2893
8e72a9c0 28942003-11-12 Marco Gerards <metgerards@student.han.nl>
2895
2896 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
2897 for available extensions.
2898
2899 * include/pupa/i386/pc/time.h: New file.
2900 * kern/disk.c: Include <pupa/machine/time.h>.
2901 (PUPA_CACHE_TIMEOUT): New macro.
2902 (pupa_last_time): New variable.
2903 (pupa_disk_open): Flush the cache when there was a timeout.
2904 (pupa_disk_close): Reset the timer.
2905 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
2906 pupa_currticks.
2907 * util/misc.c: Include <sys/times.h>
2908 (pupa_get_rtc): New function.
2909
c4adbd32 29102003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
2911
2912 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
2913 as blocks.
2914 (pupa_ext2_get_file_block): Use blocks member.
2915
2916 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
2917 first block. Return -1 instead of pupa_errno on error.
2918
bfd30f06 29192003-10-27 Marco Gerards <metgerards@student.han.nl>
2920
2921 * README: In the pupa-mkimage example use _chain instead of chain
2922 and ext2 instead of fat.
2923 * TODO: Replace ext2fs with jfs as an example. Add an item for
2924 adding journal playback for ext2fs.
2925 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
2926 (pkgdata_MODULES): Added ext2.mod.
2927 (ext2_mod_SOURCES): New variable.
2928 (ext2_mod_CFLAGS): Likewise.
2929 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
2930 * include/pupa/misc.h (pupa_strncpy): New prototype.
2931 (pupa_strcat): Likewise.
2932 (pupa_strncmp): Likewise.
2933 * kern/misc.c (pupa_strcat): Enable function.
2934 (pupa_strncpy): New function.
2935 (pupa_strncmp): Likewise.
2936 * fs/ext2.c: New file.
2937
2938 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
2939 when the read failed before retrying.
2940 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
2941 (_FILE_OFFSET_BITS): Likewise.
2942 * configure.ac: Added AC_SYS_LARGEFILE.
2943
98d15063 29442003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
2945
2946 * genmk.rb (PModule#rule): Make sure to get only symbol names
2947 from the output of nm.
2948 Reported by Robert Millan <zeratul2@wanadoo.es>.
2949
18d9c7cd 29502003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
2951
2952 I forgot to check in these changes for a long time. This adds
2953 incomplete support for VGA console, and this is still very
2954 buggy. Also, a lot of consideration is required for I18N,
2955 UNICODE, and VGA font issues. Therefore, assume that this is
2956 such that "better than nothing".
2957
2958 * font/manager.c: New file.
2959 * include/pupa/font.h: Likewise.
2960 * include/pupa/i386/pc/vga.h: Likewise.
2961 * term/i386/pc/vga.c: Likewise.
2962 * util/unifont2pff.rb: Likewise.
2963
2964 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
2965 (pkgdata_MODULES): Added vga.mod and font.mod.
2966 (vga_mod_SOURCES): New variables.
2967 (vga_mod_CFLAGS): Likewise.
2968 (font_mod_SOURCES): Likewise.
2969 (font_mod_CFLAGS): Likewise.
2970
2971 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
2972
2973 * include/pupa/term.h: Include pupa/err.h.
2974 (struct pupa_term): Added init and fini.
2975 Changed the argument of putchar to pupa_uint32_t.
2976
2977 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
2978 (pupa_console_real_putchar): New prototype.
2979 (pupa_console_putchar): Removed.
2980 (pupa_console_checkkey): Exported.
2981 (pupa_console_getkey): Likewise.
2982
2983 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
2984 characters.
2985
2986 * kern/term.c (pupa_term_set_current): Rewritten.
2987 (pupa_putchar): Likewise.
2988 (pupa_putcode): New function.
2989
2990 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
2991 (pupa_console_real_putchar): ... this.
2992 (pupa_vga_set_mode): New function.
2993 (pupa_vga_get_font): Likewise.
2994
2995 * normal/command.c: Include pupa/term.h.
2996 (terminal_command): New function.
2997 (pupa_command_init): Register the command "terminal".
2998
2999 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
3000 (DISP_UP): Likewise.
3001 (DISP_RIGHT): Likewise.
3002 (DISP_DOWN): Likewise.
3003 (DISP_HLINE): Likewise.
3004 (DISP_VLINE): Likewise.
3005 (DISP_UL): Likewise.
3006 (DISP_UR): Likewise.
3007 (DISP_LL): Likewise.
3008 (DISP_LR): Likewise.
3009
3010 * term/i386/pc/console.c (pupa_console_putchar): New function.
3011
977329f5 30122003-02-08 NIIBE Yutaka <gniibe@m17n.org>
3013
3014 * util/resolve.c (pupa_util_resolve_dependencies): BUG
3015 FIX. Reverse the path_list.
3016
3017 * include/pupa/normal.h: Export pupa_register_command and
3018 pupa_unregister_command.
3019
3020 * hello/hello.c (pupa_cmd_hello): New module.
3021 * conf/i386-pc.rmk: Added hello.mod.
3022
1f5ab428 30232003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
3024
3025 * kern/i386/pc/lzo1x.S: New file.
3026
3027 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
3028 (compress_kernel): New variable.
3029 (generate_image): Heavily modified to support compressing a
3030 large part of the core image.
3031
3032 * util/misc.c (pupa_util_read_image): Fix a file descriptor
3033 leak.
3034 (pupa_util_load_image): New function.
3035
3036 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
3037 (pupa_compressed_size): New variable.
3038 (codestart): Enable Gate A20 here.
3039 Decompress the compressed part of the core image.
3040 Rearrange the code to put functions and variables which are
3041 required for initialization in the non-compressed part.
3042 Include lzo1x.S.
3043
3044 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
3045 here.
3046
3047 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
3048
3049 * include/pupa/i386/pc/kernel.h
3050 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
3051 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
3052 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
3053 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
3054 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
3055
3056 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
3057
3058 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
3059 (Utility#rule): Likewise.
3060
3061 * configure.ac: Check if LZO is available.
3062
ce5bf700 30632003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
3064
3065 * include/pupa/normal.h: New file.
3066 * include/pupa/setjmp.h: Likewise.
3067 * include/pupa/i386/setjmp.h: Likewise.
3068 * normal/cmdline.c: Likewise.
3069 * normal/command.c: Likewise.
3070 * normal/main.c: Likewise.
3071 * normal/menu.c: Likewise.
3072 * normal/i386/setjmp.S: Likewise.
3073
3074 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
3075 (pupa_rescue_cmd_initrd): Likewise.
3076
3077 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
3078 Likewise.
3079
3080 * kern/i386/pc/startup.S (translation_table): New variable.
3081 (translate_keycode): New function.
3082 (pupa_console_getkey): Call translate_keycode.
3083
3084 * kern/rescue.c (attempt_normal_mode): New function.
3085 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
3086 it failed, print a message.
3087
3088 * kern/mm.c (pupa_real_malloc): Print more information when a
3089 free magic is broken.
3090 (pupa_free): If the first free header is not free actually, set
3091 it to P.
3092
3093 * kern/main.c (pupa_load_normal_mode): Just load the module
3094 "normal".
3095 (pupa_main): Don't print the message
3096 "Entering into rescue mode..." here.
3097
3098 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
3099 Declared.
3100 (pupa_rescue_cmd_initrd): Likewise.
3101 (pupa_rescue_cmd_initrd): Likewise.
3102
3103 * include/pupa/symbol.h (FUNCTION): Specify the type.
3104 (VARIABLE): Likewise.
3105
3106 * include/pupa/err.h (pupa_err_t): Added
3107 PUPA_ERR_UNKNOWN_COMMAND.
3108
3109 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
3110 (pupa_dl_get_prefix): Likewise.
3111
3112 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
3113 Added _chain.mod and _linux.mod instead of chain.mod and
3114 linux.mod.
3115 (chain_mod_SOURCES): Renamed to ...
3116 (_chain_mod_SOURCES): ... this.
3117 (chain_mod_CFLAGS): Renamed to ...
3118 (_chain_mod_CFLAGS): ... this.
3119 (linux_mod_SOURCES): Renamed to ...
3120 (_linux_mod_SOURCES): ... this.
3121 (linux_mod_CFLAGS): Renamed to ...
3122 (_linux_mod_CFLAGS): ... this.
3123 (normal_mod_SOURCES): New variable.
3124 (normal_mod_CFLAGS): Likewise.
3125 (normal_mod_ASFLAGS): Likewise.
3126
31272003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
3128
3129 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
3130 possible.
3131
3132 * kern/dl.c (pupa_dl_ref): Refer dependending modules
3133 recursively.
3134 (pupa_dl_unref): Unrefer depending modules recursively.
3135 Don't call pupa_dl_unload implicitly, because PUPA can crash if
3136 a module is unloaded before one depending on that module is
3137 unloaded.
3138 (pupa_dl_unload): Unload depending modules explicitly,
3139 if possible.
3140
c04da074 31412003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
3142
3143 * include/pupa/i386/pc/linux.h: New file.
3144 * loader/i386/pc/linux.c: Likewise.
3145
3146 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
3147 Removed.
3148 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
3149 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
3150 of PUPA_CHAINLOADER_BOOT_SECTOR.
3151
3152 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
3153 (pupa_linux_prot_size): New variable.
3154 (pupa_linux_tmp_addr): Likewise.
3155 (pupa_linux_real_addr): Likewise.
3156 (pupa_linux_boot_zimage): New function.
3157 (pupa_linux_boot_bzimage): Likewise.
3158
3159 * kern/i386/pc/init.c (struct mem_region): New structure.
3160 (MAX_REGIONS): New macro.
3161 (mem_regions): New variable.
3162 (num_regions): Likewise.
3163 (pupa_os_area_addr): Likewise.
3164 (pupa_os_area_size): Likewise.
3165 (pupa_lower_mem): Likewise.
3166 (pupa_upper_mem): Likewise.
3167 (add_mem_region): New function.
3168 (compact_mem_regions): Likewise.
3169 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
3170 the size of the conventional memory and that of so-called upper
3171 memory (before the first memory hole).
3172 Instead of adding each found region to free memory, use
3173 add_mem_region and add them after removing overlaps.
3174 Also, add only 1/4 of the upper memory to free memory. The rest
3175 is used for loading OS images. Maybe this is ad hoc, but this
3176 makes it much easier to relocate OS images when booting.
3177
3178 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
3179 (pupa_enter_rescue_mode): Don't register initrd and module.
3180
3181 * kern/mm.c: Include pupa/dl.h.
3182
3183 * kern/main.c: Include pupa/file.h and pupa/device.h.
3184
3185 * kern/loader.c (pupa_loader_load_module_func): Removed.
3186 (pupa_loader_load_module): Likewise.
3187
3188 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
3189 ``.o''.
3190
3191 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
3192 (pupa_linux_tmp_addr): Likewise.
3193 (pupa_linux_real_addr): Likewise.
3194 (pupa_linux_boot_zimage): Likewise.
3195 (pupa_linux_boot_bzimage): Likewise.
3196
3197 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
3198 (pupa_upper_mem): Likewise.
3199 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
3200 module is too dangerous.
3201
3202 * include/pupa/loader.h (pupa_os_area_addr): Declared.
3203 (pupa_os_area_size): Likewise.
3204 (pupa_loader_set): Remove the first argument. Loader doesn't
3205 manage modules or initrd any longer.
3206 (pupa_loader_load_module): Removed.
3207
3208 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
3209 (linux_mod_SOURCES): New variable.
3210 (linux_mod_CFLAGS): Likewise.
3211
a13f9237 32122003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
3213
3214 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
3215 the length of a blocklist correctly.
3216
3217 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
3218 Use ioctl only if the OS file is a block device.
3219 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
3220 not very useful for normal files.
3221
3222 * kern/main.c (pupa_set_root_dev): New function.
3223 (pupa_load_normal_mode): Likewise.
3224 (pupa_main): Call those above.
3225
3226 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
3227 pupa_uint16_t.
3228
3229 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
3230
a5ffe966 32312003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
3232
3233 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
3234 (setup): Configure the installed partition information and the
3235 dl prefix.
3236
3237 * loader/i386/pc/chainloader.c (my_mod): New variable.
3238 (pupa_chainloader_unload): New function.
3239 (pupa_rescue_cmd_chainloader): Refer itself.
3240 (PUPA_MOD_INIT): Save its own module in MY_MOD.
3241
3242 * kern/i386/pc/startup.S (install_partition): Removed.
3243 (version_string): Likewise.
3244 (config_file): Likewise.
3245 (pupa_install_dos_part): New variable.
3246 (pupa_install_bsd_part): Likewise.
3247 (pupa_prefix): Likewise.
3248 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
3249
3250 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
3251 and pupa/misc.h.
3252 (make_install_device): New function.
3253 (pupa_machine_init): Set the dl prefix.
3254
3255 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
3256 (buf): Renamed to ...
3257 (linebuf): ... this.
3258 (pupa_rescue_cmd_prefix): New function.
3259 (pupa_rescue_cmd_insmod): Likewise.
3260 (pupa_rescue_cmd_rmmod): Likewise.
3261 (pupa_rescue_cmd_lsmod): Likewise.
3262 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
3263 rmmod and lsmod.
3264
3265 * kern/mm.c (pupa_memalign): If failed even after invalidating
3266 disk caches, unload unneeded modules and retry.
3267
3268 * kern/misc.c (pupa_memmove): New function.
3269 (pupa_memcpy): Removed.
3270 (pupa_strcpy): New function.
3271 (pupa_itoa): Made static.
3272
3273 * kern/dl.c (pupa_dl_iterate): New function.
3274 (pupa_dl_ref): Likewise.
3275 (pupa_dl_unref): Likewise.
3276 (pupa_dl_unload): Return if succeeded or not.
3277 (pupa_dl_unload_unneeded): New function.
3278 (pupa_dl_unload_all): Likewise.
3279 (pupa_dl_init): Renamed to ...
3280 (pupa_dl_set_prefix): ... this.
3281 (pupa_dl_get_prefix): New function.
3282
3283 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
3284 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
3285 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
3286 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
3287 (pupa_install_dos_part): Declared.
3288 (pupa_install_bsd_part): Likewise.
3289 (pupa_prefix): Likewise.
3290 (pupa_boot_drive): Likewise.
3291
3292 * include/pupa/types.h: Fix a typo.
3293
3294 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
3295 pupa_memmove.
3296 (pupa_memmove): Declared.
3297 (pupa_strcpy): Likewise.
3298
3299 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
3300 pupa_mod_init takes one argument, its own module.
3301 (pupa_dl_unload_unneeded): Declared.
3302 (pupa_dl_unload_all): Likewise.
3303 (pupa_dl_ref): Likewise.
3304 (pupa_dl_unref): Likewise.
3305 (pupa_dl_iterate): Likewise.
3306 (pupa_dl_init): Renamed to ...
3307 (pupa_dl_set_prefix): ... this.
3308 (pupa_dl_get_prefix): Declared.
3309
3310 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
3311 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
3312 unloaded.
3313 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
3314 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
3315
3316 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
3317 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
3318
012d7999 33192003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
3320
3321 * util/i386/pc/pupa-setup.c (setup): Define the internal
3322 function find_first_partition_start at the top level, because GCC
3323 3.0.x cannot compile internal functions in deeper scopes
3324 correctly.
3325 (find_root_device): Use lstat instead of stat.
3326 Don't follow symbolic links.
3327 Fix the path-constructing code.
3328
3329 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
3330 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
3331 by a BLKGETSIZE ioctl first, because block devices don't fill
3332 the member st_mode of the structure stat on Linux.
3333 [__linux__] (linux_find_partition): Use a temporary buffer
3334 REAL_DEV for the working space. Copy it to DEV before returning.
3335 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
3336 buffer cache consistent.
3337 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
3338 strncmp. The previous value was merely wrong.
3339 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
3340
3341 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
3342 FAT size is 12. The previous value was merely wrong.
3343
3344 * kern/main.c (pupa_main): Don't split the starting message from
3345 newlines.
3346
3347 * kern/term.c (pupa_putchar): Put CR after LF instead of before
3348 LF, because BIOS goes crazy about character attributes in this
3349 case.
3350
1cc73a62 33512003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
3352
3353 * include/i386/pc/util/biosdisk.h: New file.
3354 * util/i386/pc/biosdisk.c: Likewise.
3355 * util/i386/pc/pupa-setup.c: Likewise.
3356
3357 * Makefile.in (INCLUDE_DISTFILES): Added
3358 include/pupa/i386/pc/util/biosdisk.h.
3359 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
3360 directory util/i386/pc.
3361 (install-local): Added a rule for sbin_UTILITIES.
3362 (uninstall): Likewise.
3363
3364 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
3365
3366 * util/misc.c (xrealloc): New function.
3367 (pupa_malloc): Likewise.
3368 (pupa_free): Likewise.
3369 (pupa_realloc): Likewise.
3370 (pupa_stop): Likewise.
3371 (pupa_putchar): Likewise.
3372
3373 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
3374
3375 * include/pupa/util/misc.h (xrealloc): Declared.
3376
3377 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
3378 macro.
3379 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
3380 (PUPA_BOOT_MACHINE_BPB_END): ... this.
3381
3382 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
3383 [PUPA_UTIL] (pupa_fat_fini): Likewise.
3384
3385 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
3386 way should be implemented.
3387 [PUPA_UTIL] (pupa_fat_fini): Likewise.
3388
3389 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
3390 the size of NAME for safety.
3391 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
3392 0x88.
3393
3394 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
3395 (pupa_setup_SOURCES): Likewise.
3396
3397 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
3398
08b70fe8 33992002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
3400
3401 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
3402 bunch of pushl's from pusha, because this destroys the return
3403 value.
3404
62ddcc8f 34052002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
3406
3407 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
3408 This means that any missing prototypes could be fatal. Also, you
3409 must take care when writing assembly code. See the comments at
3410 the beginning of startup.S, for more details.
3411
3412 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
3413 compilation mechanism.
3414 (pupa_chainloader_real_boot): Likewise.
3415 (pupa_biosdisk_rw_int13_extensions): Likewise.
3416 (pupa_biosdisk_rw_standard): Likewise.
3417 (pupa_biosdisk_check_int13_extensions): Likewise.
3418 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
3419 (pupa_biosdisk_get_diskinfo_standard): Likewise.
3420 (pupa_get_memsize): Likewise.
3421 (pupa_get_mmap_entry): Likewise.
3422 (pupa_console_putchar): Likewise.
3423 (pupa_console_setcursor): Likewise.
3424 (pupa_getrtsecs): Use pushl instead of push.
3425
3426 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
3427 memory instead of the stack for a mmap entry, because some
3428 BIOSes may ignore the maximum size and overflow.
3429
3430 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
3431
3432 * genmk.rb (PModule#rule): Compile automatically generated
3433 sources with module-specific CFLAGS as well as other sources.
3434
9962ed99 34352002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
3436
3437 * configure.ac: Check ld.
3438 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
3439 respectively, before checking endianness and sizes.
3440
3441 * Makefile.in (LD): New variable.
3442
abdfc3c5 34432002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
3444
3445 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
3446
6a161fa9 34472002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
3448
3449 * Changelog: New file.
3450