]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2004-12-13 Marco Gerards <metgerards@student.han.nl>
[grub2.git] / ChangeLog
CommitLineData
4ceb3636 12004-12-13 Marco Gerards <metgerards@student.han.nl>
2
3 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
4 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
5 to fail instead. Reported by Vincent Pelletier
6 <subdino2004@yahoo.fr>.
7
8 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
9 it is not allocated. Reported by Vincent Pelletier
10 <subdino2004@yahoo.fr>.
11
12 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
13 output so the output looks better.
14
3f1578fe 152004-12-04 Marco Gerards <metgerards@student.han.nl>
16
17 Modulize the partition map support and add support for the amiga
18 partition map.
19
20 * commands/ls.c: Include <grub/partition.h> instead of
21 <grub/machine/partition.h>.
22 * kern/disk.c: Likewise.
23 * kern/rescue.c: Likewise.
24 * loader/i386/pc/chainloader.c: Likewise.
25 * normal/cmdline.c: Likewise.
26 * kern/powerpc/ieee1275/init.c: Likewise.
27 (grub_machine_init): Call `grub_pc_partition_map_init',
28 `grub_amiga_partition_map_init' and
29 `grub_apple_partition_map_init'.
30 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
31 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
32 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
33 `partition.h' and `pc_partition.h'.
34 (grub_setup_SOURCES): Remove
35 `disk/i386/pc/partition.c'. Add `kern/partition.c',
36 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
37 (grub_emu_SOURCES): Likewise.
38 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
39 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
40 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
41 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
42 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
43 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
44 (grubof_SOURCES): Likewise.
45 * disk/i386/pc/partition.c: File removed.
46 * disk/powerpc/ieee1275/partition.c: Likewise.
47 * include/grub/powerpc/ieee1275/partition.h: Likewise.
48 * include/grub/i386/pc/partition.h: Likewise.
49 * kern/partition.c: New file.
50 * partmap/amiga.c: Likewise.
51 * partmap/apple.c: Likewise.
52 * partmap/pc.c: Likewise.
53 * include/grub/partition.h: Likewise..
54 * include/grub/pc_partition.h: Likewise.
55 * util/grub-emu.c: Include <grub/partition.h> instead of
56 <grub/machine/partition.h>.
57 (main): Call `grub_pc_partition_map_init',
58 `grub_amiga_partition_map_init' and
59 `grub_apple_partition_map_init' and deinitialize afterwards.
60 * util/i386/pc/biosdisk.c: Include `#include
61 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
62 `<grub/machine/partition.h>'.
63 * util/i386/pc/grub-setup.c: Likewise.
64 * util/i386/pc/biosdisk.c: Likewise.
65 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
66 partition information in case of a PC partition.
67 * util/i386/pc/grub-setup.c: Include `#include
68 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
69 `<grub/machine/partition.h>'.
70 (setup): Only access the PC specific partition information in case
71 of a PC partition.
72
0ef4ced9 732004-11-17 Hollis Blanchard <hollis@penguinppc.org>
74
75 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
76 (grub_longjmp): Likewise.
77 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
78 20.
79 * normal/powerpc/setjmp.S: New file.
80 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
81 `normal/powerpc/setjmp.S'.
82 (grubof_CFLAGS): Add `-DGRUBOF'.
83 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
84 [GRUB_UTIL && !GRUBOF].
85
19950e29 862004-11-16 Marco Gerards <metgerards@student.han.nl>
87
88 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
89 property named `name'. Correctly handle the error returned by
90 `grub_ieee1275_finddevice' if a device can not be opened.
91
a2fea427 922004-11-02 Hollis Blanchard <hollis@penguinppc.org>
93
94 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
95 `actual' for negativity.
96 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
97 kern/fshelp.c.
98
41ea0ea3 992004-11-01 Marco Gerards <metgerards@student.han.nl>
100
101 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
102 (PAGE_OFFSET): New macro.
103 (CRTC_ADDR_PORT): Likewise.
104 (CRTC_DATA_PORT): Likewise.
105 (START_ADDR_HIGH_REGISTER): Likewise.
106 (START_ADDR_LOW_REGISTER): Likewise.
107 (GRAPHICS_ADDR_PORT): Likewise.
108 (GRAPHICS_DATA_PORT): Likewise.
109 (READ_MAP_REGISTER): Likewise.
110 (INPUT_STATUS1_REGISTER): Likewise.
111 (INPUT_STATUS1_VERTR_BIT): Likewise.
112 (page): New variable.
113 (wait_vretrace): New function.
114 (set_read_map): Likewise.
115 (set_start_address): Likewise.
116 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
117 the right page.
118 (check_vga_mem): Take the page into account.
119 (write_char): Likewise.
120 (write_cursor): Likewise.
121 (scroll_up): Likewise. Copy the page to the page that is not
122 shown and switch between both pages.
123 (grub_vga_putchar): Fix off by one error.
124 (grub_vga_cls): Wait for the vertical retrace. Take the page into
125 account.
126
ad0bd20b 1272004-11-01 Marco Gerards <metgerards@student.han.nl>
128
129 Add support for iso9660 (including rockridge).
130
131 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
132 (iso9660_mod_SOURCES): New variable.
133 (iso9660_mod_CFLAGS): Likewise.
134 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
135 * include/grub/fs.h (grub_iso9660_init): New prototype.
136 * util/grub-emu.c (main): Call `grub_iso9660_init'.
137 * fs/iso9660.c: New file.
138
139 * include/grub/misc.h (grub_strncat): New prototype.
140 * kern/misc.c (grub_strncat): New function.
141
142 * fs/hfs.c (grub_hfs_mount): Translate the error
143 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
144 * fs/jfs.c (grub_jfs_mount): Likewise.
145 * fs/ufs.c (grub_ufs_mount): Likewise.
146
a5477a59 1472004-10-28 Hollis Blanchard <hollis@penguinppc.org>
148
149 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
150 which initialized BAT registers.
151 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
152 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
153 Move from here...
154 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
155 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
156 ... to here.
157 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
158 (grub_mapclaim): Likewise.
159 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
160 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
161 hand.
162
9304c1f8 1632004-10-19 Hollis Blanchard <hollis@penguinppc.org>
164
165 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
166 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
167 -ffreestanding and -msoft-float.
168
86f4ae25 1692004-10-15 Hollis Blanchard <hollis@penguinppc.org>
170
171 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
172 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
173 set in grub_ieee1275_flags.
174
38912228 1752004-10-14 Hollis Blanchard <hollis@penguinppc.org>
176
177 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
178 prototype.
179 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
180 grub_console_init first.
181 Change the memory range used for grub_ieee1275_claim and
182 grub_mm_init_region.
183 Print an error message if the claim fails.
184 Include <grub/misc.h>.
185
d1923dc8 1862004-10-13 Hollis Blanchard <hollis@penguinppc.org>
187
188 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
189 Call grub_children_iterate for device nodes of type `scsi',
190 `ide', or `ata'.
191 (grub_ofdisk_open): Remove manual device alias resolution.
192 Fix memory leak when device cannot be opened.
193 * include/grub/powerpc/ieee1275/ieee1275.h
194 (grub_children_iterate): New prototype.
195 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
196 New function.
197 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
198 Return -1 if args.size was -1.
199
4512e4f3 2002004-10-11 Hollis Blanchard <hollis@penguinppc.org>
201
202 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
203 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
204 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
205 Open Firmware's memory for it; claim memory from _start to _end.
206 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
207 (_end): New extern.
208 (_start): Zero BSS from __bss_start to _end.
209 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
210 New extern.
211 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
212
4d61feb0 2132004-10-11 Hollis Blanchard <hollis@penguinppc.org>
214
ad0bd20b 215 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
216 -1 if args.base was -1.
4d61feb0 217
026fa2f9 2182004-10-08 Hollis Blanchard <hollis@penguinppc.org>
219
220 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
221 escape sequence instead of a literal ^L. Also call
222 grub_ofconsole_gotoxy.
223
9f2220ef 2242004-10-03 Hollis Blanchard <hollis@penguinppc.org>
225
226 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
227 void * arguments to grub_addr_t. All callers updated. Also make
228 the `result' argument optional.
229 (grub_ieee1275_release): change void * arguments to grub_addr_t.
230 All callers updated.
231
8a572cd7 2322004-09-22 Hollis Blanchard <hollis@penguinppc.org>
233
234 * commands/ls.c (grub_ls_list_files): Use the string following the
235 initial ')', if present, as the filesystem path.
236 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
237
238 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
239
18aa81f2 2402004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
241
242 Make the source code of the menu interface more readable.
243
244 * normal/menu.c: Include grub/mm.h.
245 (TERM_WIDTH): New macro.
246 (TERM_HEIGHT): Likewise.
247 (TERM_INFO_HEIGHT): Likewise.
248 (TERM_MARGIN): Likewise.
249 (TERM_SCROLL_WIDTH): Likewise.
250 (TERM_TOP_BORDER_Y): Likewise.
251 (TERM_LEFT_BORDER_X): Likewise.
252 (TERM_BORDER_WIDTH): Likewise.
253 (TERM_MESSAGE_HEIGHT): Likewise.
254 (TERM_BORDER_HEIGHT): Likewise.
255 (TERM_NUM_ENTRIES): Likewise.
256 (TERM_FIRST_ENTRY_Y): Likewise.
257 (TERM_ENTRY_WIDTH): Likewise.
258 (TERM_CURSOR_X): Likewise.
259 (draw_border): Use macros instead of magic numbers.
260 (print_entry): Likewise.
261 (print_entries): Likewise.
262 (run_menu): Likewise. Also, handle the key 'e'.
263 (run_menu_entry): Ignore empty command lines.
264 (print_message): Added a new argument EDIT. If EDIT is true,
265 print a different message.
266 (init_page): Likewise.
267 (edit_menu_entry): New function. Not implemented yet.
268
b47efe30 2692004-09-17 Marco Gerards <metgerards@student.han.nl>
270
271 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
272 can be loaded from normal mode.
273
274 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
275 `multiboot.mod'.
276 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
277 (multiboot_mod_CFLAGS): New variables.
278 * loader/i386/pc/linux_normal.c: New file.
279 * loader/i386/pc/multiboot_normal.c: Likewise.
280
281 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
282 attribute `unused'.
283
284 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
285 `fdiro' to read the mode information from instead of `diro'.
286
287 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
288 looking up a symlink.
289
290 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
291 macro.
292 * normal/command.c (grub_command_execute): Don't parse the
293 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
294 flags of the command.
295
296 * normal/menu.c (grub_menu_run): Fix typo.
297
da75ac71 2982004-09-14 Hollis Blanchard <hollis@penguinppc.org>
299
300 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
301
302 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
303 `y + 1' instead of `y - 1'.
304
305 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
306
062b24c2 3072004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
308
309 From Hollis Blanchard <hollis@penguinppc.org>:
310 * kern/misc.c (memmove): New alias for grub_memmove.
311 (memcmp): New alias for grub_memcmp.
312 (memset): New alias for grub_memset.
313 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
314 Change "int handle" to "grub_ieee1275_phandle_t handle".
315 * include/grub/powerpc/ieee1275/ieee1275.h
316 (grub_ieee1275_get_property): Likewise.
317
8ddad845 3182004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
319
320 Added normal mode command `chainloader' as module chain.mod, which
321 depends on normal.mod and _chain.mod.
322
323 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
324 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
325 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
326 Deleted prototype.
327 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
328 but arguments parsing moved to ...
329 (grub_chainloader_cmd): ... here. New function.
330 * include/grub/i386/pc/chainloader.h: New file.
331 * loader/i386/pc/chainloader_normal.c: Likewise.
332
2c1f4ce3 3332004-09-11 Marco Gerards <metgerards@student.han.nl>
334
335 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
336 (grub_mkimage_LDFLAGS): Likewise.
337 (grub_emu_SOURCES): Likewise.
338 (kernel_img_HEADERS): Added fshelp.h.
339 * fs/ext2.c: Include <grub/fshelp.h>.
340 (FILETYPE_REG): New macro.
341 (FILETYPE_INO_REG): Likewise.
342 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
343 Changed all users.
344 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
345 all users.
346 (grub_fshelp_node): New struct.
347 (grub_ext2_data): Added member `diropen'. Changed member `inode'
348 to a pointer.
349 (grub_ext2_get_file_block): Removed function.
350 (grub_ext2_read_block): New function.
351 (grub_ext2_read_file): Replaced parameter `data' by `node'.
352 This function was written.
353 (grub_ext2_mount): Read the root inode. Create a diropen struct.
354 (grub_ext2_find_file): Removed function.
355 (grub_ext2_read_symlink): New function.
356 (grub_ext2_iterate_dir): Likewise.
357 (grub_ext2_open): Rewritten.
358 (grub_ext2_dir): Rewritten.
359 * include/grub/fshelp.h: New file.
360 * fs/fshelp.c: Likewise.
361
3c52136a 3622004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
363
364 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
365 (print_message): Add a missing newline.
366 (run_menu): Added timeout support.
367 (run_menu_entry): New local function.
368 (grub_menu_run): Added support for booting.
369
370 * kern/loader.c (grub_loader_is_loaded): New function.
371
372 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
373 (grub_get_rtc): Exported.
374
375 * include/grub/i386/pc/time.h: Include grub/symbol.h.
376 (grub_get_rtc): Exported.
377
378 * include/grub/normal.h (struct grub_command_list): Remove
379 constant from the member `command'.
380
381 * include/grub/loader.h (grub_loader_is_loaded): Declared.
382
383 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
384
385 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
386
aa033560 3872004-08-28 Marco Gerards <metgerards@student.han.nl>
388
389 Add support for the JFS filesystem.
390
391 * fs/jfs.c: New file.
392 * include/grub/fs.h (grub_jfs_init): New prototype.
393 (grub_jfs_fini): New prototype.
394 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
395 (grub_emu_SOURCES): Likewise.
396 (pkgdata_MODULES): Add jfs.mod.
397 (jfs_mod_SOURCES): New variable.
398 (jfs_mod_CFLAGS): Likewise.
399 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
400 (grubof_SOURCES): Likewise.
401 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
402
403 * fs/fat.c (grub_fat_find_dir): Convert the filename little
404 endian to the host endian.
405 (grub_fat_utf16_to_utf8): Move function from there...
406 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
407 the endianess of the source string anymore.
408 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
409
94bc45af 4102004-08-24 Marco Gerards <metgerards@student.han.nl>
411
412 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
413 (grub_boot_fini) [GRUB_UTIL]: Likewise.
414 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
415 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
416
417 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
418 (grub_hfs_iterate_dir): Make the function static. Add prototypes
419 for `node_found' and `it_dir'.
420 (grub_hfs_dir): Add prototype for `dir_hook'.
421
422 * fs/minix.c (grub_minix_get_file_block): Add prototype for
423 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
424 and `indir32' to silence a gcc warning.
425
426 * include/grub/fs.h (grub_hfs_init): New prototype.
427 (grub_hfs_fini): Likewise.
428
429
97543f08 4302004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
431
432 Each disk device has its own id now. This is useful to make use
433 of multiple disk devices.
434
435 * include/grub/disk.h (grub_disk_dev_id): New enum.
436 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
437 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
438
439 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
440 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
441
442 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
443 GRUB_DISK_DEVICE_OFDISK_ID as an id.
444
445 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
446 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
447
448 * include/grub/disk.h (struct grub_disk_dev): Added a new member
449 "id" which is used by the cache manager.
450
451 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
452 of just "GRUB".
453
64372eb4 4542004-08-18 Marco Gerards <metgerards@student.han.nl>
455
456 * fs/hfs.c: New file.
457 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
458 (grub_emu_SOURCES): Likewise.
459 (pkgdata_MODULES): Add hfs.mod.
460 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
461 (grubof_SOURCES): Likewise.
462 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
463
464 * include/grub/misc.h (grub_strncasecmp): Add prototype.
465 * kern/misc.c (grub_strncasecmp): Add function.
466
cc61b58f 4672004-08-14 Marco Gerards <metgerards@student.han.nl>
468
469 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
470 with parentheses.
471
472 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
473 (grub_ext2_dir): In case the directory entry type is unknown, read
474 it from the inode.
475
0ef123f6 4762004-08-02 Peter Bruin <pjbruin@dds.nl>
477
478 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
479 grub_load_linux instead of grub_rescue_cmd_linux as second
480 argument of grub_rescue_register_command.
481
482 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
483
a447c5df 4842004-07-27 Marco Gerards <metgerards@student.han.nl>
485
486 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
487 function.
488 * commands/boot.c: Remove the check for `GRUB_UTIL'.
489 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
490 `loader/powerpc/ieee1275/linux.c',
491 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
492 * include/grub/powerpc/ieee1275/ieee1275.h
493 (grub_ieee1275_release): New prototype.
494 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
495 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
496 normal, boot, linux and linux_normal.
497 * loader/powerpc/ieee1275/linux.c: New file.
498 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
499
5a9e3546 5002004-07-12 Marco Gerards <metgerards@student.han.nl>
501
502 * normal/arg.c (grub_arg_parse): Correct error handling after
503 reallocating the argumentlist (check if `argl' is not null instead
504 of checking if `args' is not null).
505 * kern/mm.c (grub_realloc): Return the same pointer when using the
506 same region, instead of returning the header address.
507
e15199cb 5082004-07-11 Marco Gerards <metgerards@student.han.nl>
509
510 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
511 one block instead of two when looking for the initial partition.
512 (grub_partition_probe): Initialize the local variable `p' with 0.
513 Use base 10 for the grub_strtoul call.
514 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
515 need for one local variable.
516 (grub_strtoul): Don't add the new value to `num', instead of that
517 just assign it.
518
020616c2 5192004-07-11 Marco Gerards <metgerards@student.han.nl>
520
521 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
522 (pxeboot_img_SOURCES): New variable.
523 (pxeboot_img_ASFLAGS): Likewise.
524 (pxeboot_img_LDFLAGS): Likewise.
525 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
526 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
527 <lode_leroy@hotmail.com>.
528
6c51eb64 5292004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
530
531 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
532 there was no input.
533
cfb12aff 5342004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
535
536 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
537 the history buffer logic.
538
6eabba74 5392004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
540
541 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
542 (FILETYPE_INO_SYMLINK): New macros.
543 (grub_ext2_find_file): Check if the node is a directory using the
544 inode stat information instead of using the filetype in the
545 dirent. Exclude the first character of an absolute symlink.
546 (grub_ext2_dir): Mask out the filetype part of the mode member of
547 the inode.
548
66e19ef8 5492004-05-24 Marco Gerards <metgerards@student.han.nl>
550
551 Add support for UFS version 1 and 2. Add support for the minix
552 filesystem version 1 and 2, both the variants with 14 and 30 long
553 filenames.
554
555 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
556 fs/minix.c.
557 (grub_emu_SOURCES): Likewise.
558 (pkgdata_MODULES): Add ufs.mod and minix.mod.
559 (ufs_mod_SOURCES): New variable.
560 (ufs_mod_CFLAGS): Likewise.
561 (minix_mod_SOURCES): Likewise.
562 (minix_mod_CFLAGS): Likewise.
563 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
564 fs/minix.c.
565 (grubof_SOURCES): Likewise.
566 * fs/ufs.c: New file.
567 * fs/minix.c: New file.
568 * include/grub/fs.h (grub_ufs_init): New prototype.
569 (grub_ufs_fini): Likewise.
570 (grub_minix_init): Likewise.
571 (grub_minix_fini): Likewise.
572 * util/grub-emu.c (main): Initialize and deinitialize UFS and
573 minix fs.
574
cc2e748a 5752004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
576
577 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
578 commands/ls.c, commands/terminal.c, commands/boot.c,
579 commands/cmp.c and commands/cat.c.
580 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
581
582 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
583 "env.h"
584
4b13b216 5852004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
586
587 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
588 and grub_, respectively. Because the conversion is trivial and
589 mechanical, I omit the details here. Please refer to the CVS
590 if you need more information.
591
6a142551 5922004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
593
594 * include/pupa: Renamed to ...
595 * include/grub: ... this.
596 * util/i386/pc/pupa-mkimage.c: Renamed to ...
597 * util/i386/pc/grub-mkimage.c: ... this.
598 * util/i386/pc/pupa-setup.c: Renamed to ...
599 * util/i386/pc/grub-setup.c: ... this.
600 * util/pupa-emu.c: Renamed to ...
601 * util/grub-emu.c: ... this.
602
e56cdf21 6032004-03-29 Marco Gerards <metgerards@student.han.nl>
604
605 Add support for the newworld apple macintosh (PPC). This has been
606 tested on the powerbook 2000 only. It only adds support for
607 generic ieee1275 functions, console and disk support. This should
608 be easy to port to other architectures with support for Open
609 Firmware.
610
611 * configure.ac: Accept the powerpc as host_cpu. In the case of
612 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
613 specific tests are only executed while building for the i386.
614 Inverse test for crosscompile.
615 * genmk.rb (Utility): Allow assembler files.
616 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
617 * conf/powerpc-ieee1275.rmk: New file.
618 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
619 * disk/powerpc/ieee1275/partition.c: Likewise.
620 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
621 * include/pupa/powerpc/ieee1275/console.h: Likewise.
622 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
623 * include/pupa/powerpc/ieee1275/time.h: Likewise.
624 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
625 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
626 * include/pupa/powerpc/ieee1275/loader.h
627 * include/pupa/powerpc/setjmp.h: Likewise.
628 * include/pupa/powerpc/types.h: Likewise.
629 * kern/powerpc/ieee1275/init.c: Likewise.
630 * kern/powerpc/ieee1275/openfw.c: Likewise.
631 * term/powerpc/ieee1275/ofconsole.c: Likewise.
632
633 These files were written by Johan Rydberg
634 (jrydberg@night.trouble.net) and I only modified them slightly.
635
636 * boot/powerpc/ieee1275/cmain.c: New file.
637 * boot/powerpc/ieee1275/crt0.S: Likewise.
638 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
639 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
640
8c8cc205 6412004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
642
643 * Makefile.in: Update copyright.
644 * genmodsrc.sh: Likewise.
645 * gensymlist.sh: Likewise.
646 * term/i386/pc/vga.c: Indent correctly.
647
648 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
649 bugreporting address.
650 * util/i386/pc/pupa-setup.c (usage): Likewise,
651 (main): Call pupa_ext2_init and pupa_ext2_fini.
652
653 * fs/fat.c (log2): Renamed to ...
654 (fat_log2): ... this.
655 All callers changed.
656 * kern/misc.c (memcpy): Alias to pupa_memmove.
657 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
658 lvalue cast.
659 * util/console.c (pupa_ncurses_fini): Return 0.
660
661 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
662 Move fail label here.
663 [__GNU__]: Don't warn when using stat.
664 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
665 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
666 long int. Use strtol instead of strtoul.
667
db1771cf 6682004-03-14 Marco Gerards <metgerards@student.han.nl>
669
670 * commands/boot.c: New file.
671 * commands/cat.c: Likewise.
672 * commands/cmp.c: Likewise.
673 * commands/ls.c: Likewise.
674 * commands/terminal.c: Likewise.
675 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
676 (pupa_register_command): Changed interface to match the new
677 argument parser.
678 (pupa_command_execute): Changed (almost rewritten) so it uses
679 pupa_split_command. Added support for setting variables using the
680 syntax `foo=bar'.
681 (rescue_command): Changed to work with the new argument parser.
682 (terminal_command): Moved from here to commands/terminal.c.
683 (set_command): New function.
684 (unset_command): New function.
685 (insmod_command): New function.
686 (rmmod_command): New function.
687 (lsmod_command): New function.
688 (pupa_command_init): Don't initialize the command terminal
689 anymore. Initialize the commands set, unset, insmod, rmmod and
690 lsmod.
691 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
692 (kernel_img_HEADERS): Add arg.h and env.h.
693 (pupa_mkimage_LDFLAGS): Add kern/env.c.
694 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
695 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
696 normal/arg.c.
697 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
698 terminal.mod.
699 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
700 (boot_mod_SOURCES): New variable.
701 (terminal_mod_SOURCES): Likewise.
702 (ls_mod_SOURCES): Likewise.
703 (cmp_mod_SOURCES): Likewise.
704 (cat_mod_SOURCES): Likewise.
705
706 * normal/arg.c: New file.
707 * kern/env.c: Likewise.
708 * include/pupa/arg.h: Likewise.
709 * include/pupa/env.h: Likewise.
710 * font/manager.c (font_command): Changed to match argument parsing
711 interface changes.
712 (PUPA_MOD_INIT): Likewise.
713 * hello/hello.c (pupa_cmd_hello): Likewise.
714 (PUPA_MOD_INIT): Likewise.
715 * include/pupa/disk.h: Include <pupa/device.h>.
716 (pupa_print_partinfo): New prototype.
717 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
718 (pupa_dl_get_prefix): Likewise.
719 * include/pupa/misc.h: Include <pupa/err.h>.
720 (pupa_isgraph): New prototype.
721 (pupa_isdigit): Likewise.
722 (pupa_split_cmdline): Likewise.
723 * include/pupa/normal.h: Include <pupa/arg.h>.
724 (pupa_command): Changed the prototype of the member `func' to
725 match the argument parsing interface. Added member `options'.
726 (pupa_register_command): Updated to match function.
727 (pupa_arg_parse): New prototype.
728 (pupa_hello_init) [PUPA_UTIL]: New prototype.
729 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
730 (pupa_ls_init) [PUPA_UTIL]: Likewise.
731 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
732 (pupa_cat_init) [PUPA_UTIL]: Likewise.
733 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
734 (pupa_boot_init) [PUPA_UTIL]: Likewise.
735 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
736 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
737 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
738 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
739 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
740 * kern/disk.c: Include <pupa/file.h>.
741 (pupa_print_partinfo): New function.
742 * kern/dl.c: Include <pupa/env.h>.
743 (pupa_dl_dir): Variable removed.
744 (pupa_dl_load): Use the environment variable `prefix' instead of
745 the variable pupa_dl_dir.
746 (pupa_dl_set_prefix): Function removed.
747 (pupa_dl_get_prefix): Likewise.
748 * kern/i386/pc/init.c: Include <pupa/env.h>.
749 (pupa_machine_init): Use the environment variable `prefix' instead of
750 using pupa_dl_set_prefix to set the prefix.
751 * kern/main.c: Include <pupa/env.h>.
752 (pupa_set_root_dev): Use the environment variable `prefix' instead of
753 using pupa_dl_get_prefix to get the prefix.
754 * kern/misc.c: Include <pupa/env.h>.
755 (pupa_isdigit): New function.
756 (pupa_isgraph): Likewise.
757 (pupa_ftoa): Likewise.
758 (pupa_vsprintf): Added support for printing values of the type
759 `double'. Make it possible to format variable output when using
760 formatting like `%1.2%f'.
761 (pupa_split_cmdline): New function.
762 * kern/rescue.c: Include <pupa/env.h>.
763 (next_word): Removed function.
764 (pupa_rescue_cmd_prefix): Likewise.
765 (pupa_rescue_cmd_set): New function.
766 (pupa_rescue_cmd_unset): New function.
767 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
768 split the command line instead of splitting it here. Added
769 support for setting variables using the syntax `foo=bar'. Don't
770 initialize the prefix command anymore. Initialized the set and
771 unset commands.
772 * normal/cmdline.c: Include <pupa/env.h>.
773 (pupa_tab_complete): Added prototypes for print_simple_completion,
774 print_partition_completion, add_completion, iterate_commands,
775 iterate_dev, iterate_part and iterate_dir. Moved code to print
776 partition information from here to kern/disk.c.
777 (pupa_cmdline_run): Don't check if the funtion exists anymore.
778 * normal/main.c: Include <pupa/env.h>.
779 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
780 instead of using pupa_dl_get_prefix to get the prefix.
781 * term/i386/pc/vga.c: Include <pupa/arg.h>.
782 (check_vga_mem): Cast pointers to `void *' to silence a gcc
783 warning.
784 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
785 (pupa_vga_setcolor): Declare unused variables with `__attribute__
786 ((unused))' to silence a gcc warning.
787 (pupa_vga_setcolor): Likewise.
788 (debug_command): Changed to match argument parsing
789 interface changes.
790 * util/pupa-emu.c: Include <pupa/env.h>.
791 (options): Added 0's for unused fields to silence a gcc warning.
792 (argp): Likewise.
793 (main): Use the environment variable `prefix' instead of using
794 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
795 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
796 and terminal.
797
798 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
799 * util/misc.c: Include <malloc.h>.
800 (pupa_malloc): Rewritten so errors are correctly reported.
801 (pupa_realloc): Likewise.
802 (pupa_memalign): Likewise.
803 (pupa_mm_init_region): Declare unused variables with
804 `__attribute__ ((unused))' to silence a gcc warning.
805 * normal/i386/setjmp.S: Remove tab at the end of the file to
806 silence a gcc warning.
807 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
808 variables with `__attribute__ ((unused))' to silence a gcc
809 warning.
810 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
811 local variable i unsigned to silence a gcc warning.
812
813 * kern/term.c: Include <pupa/misc.h>.
814 (pupa_more_lines): New variable.
815 (pupa_more): Likewise.
816 (pupa_putcode): When the pager is active pause at the end of every
817 screen.
818 (pupa_set_more): New function.
819 * include/pupa/term.h (pupa_set_more): New prototype.
820
821
3b1139cb 8222004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
823
824 Now this project is GRUB 2 rather than PUPA. The location of
825 the CVS repository was moved to GRUB's.
826
827 * configure.ac: Use bug-grub as the reporting address.
828 Use GRUB instead of PUPA.
829 Change the version number to 1.90.
830
8367695c 8312004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
832
833 * genkernsyms.sh: Updated copyright information.
834 * genmk.rb: Likewise.
835 * genmodsrc.sh: Likewise.
836 * gensymlist.sh: Likewise.
837 * boot/i386/pc/boot.S: Likewise.
838 * boot/i386/pc/diskboot.S: Likewise.
839 * disk/i386/pc/biosdisk.c: Likewise.
840 * disk/i386/pc/partition.c: Likewise.
841 * font/manager.c: Likewise.
842 * fs/ext2.c: Likewise.
843 * fs/fat.c: Likewise.
844 * include/pupa/boot.h: Likewise.
845 * include/pupa/device.h: Likewise.
846 * include/pupa/disk.h: Likewise.
847 * include/pupa/dl.h: Likewise.
848 * include/pupa/elf.h: Likewise.
849 * include/pupa/err.h: Likewise.
850 * include/pupa/file.h: Likewise.
851 * include/pupa/font.h: Likewise.
852 * include/pupa/fs.h: Likewise.
853 * include/pupa/kernel.h: Likewise.
854 * include/pupa/loader.h: Likewise.
855 * include/pupa/misc.h: Likewise.
856 * include/pupa/mm.h: Likewise.
857 * include/pupa/net.h: Likewise.
858 * include/pupa/normal.h: Likewise.
859 * include/pupa/rescue.h: Likewise.
860 * include/pupa/setjmp.h: Likewise.
861 * include/pupa/symbol.h: Likewise.
862 * include/pupa/term.h: Likewise.
863 * include/pupa/types.h: Likewise.
864 * include/pupa/i386/setjmp.h: Likewise.
865 * include/pupa/i386/types.h: Likewise.
866 * include/pupa/i386/pc/biosdisk.h: Likewise.
867 * include/pupa/i386/pc/boot.h: Likewise.
868 * include/pupa/i386/pc/console.h: Likewise.
869 * include/pupa/i386/pc/init.h: Likewise.
870 * include/pupa/i386/pc/kernel.h: Likewise.
871 * include/pupa/i386/pc/linux.h: Likewise.
872 * include/pupa/i386/pc/loader.h: Likewise.
873 * include/pupa/i386/pc/memory.h: Likewise.
874 * include/pupa/i386/pc/multiboot.h: Likewise.
875 * include/pupa/i386/pc/partition.h: Likewise.
876 * include/pupa/i386/pc/time.h: Likewise.
877 * include/pupa/i386/pc/vga.h: Likewise.
878 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
879 * include/pupa/util/getroot.h: Likewise.
880 * include/pupa/util/misc.h: Likewise.
881 * include/pupa/util/resolve.h: Likewise.
882 * kern/device.c: Likewise.
883 * kern/disk.c: Likewise.
884 * kern/dl.c: Likewise.
885 * kern/err.c: Likewise.
886 * kern/file.c: Likewise.
887 * kern/fs.c: Likewise.
888 * kern/loader.c: Likewise.
889 * kern/main.c: Likewise.
890 * kern/misc.c: Likewise.
891 * kern/mm.c: Likewise.
892 * kern/rescue.c: Likewise.
893 * kern/term.c: Likewise.
894 * kern/i386/dl.c: Likewise.
895 * kern/i386/pc/init.c: Likewise.
896 * kern/i386/pc/lzo1x.S: Likewise.
897 * kern/i386/pc/startup.S: Likewise.
898 * loader/i386/pc/chainloader.c: Likewise.
899 * loader/i386/pc/linux.c: Likewise.
900 * loader/i386/pc/multiboot.c: Likewise.
901 * normal/cmdline.c: Likewise.
902 * normal/command.c: Likewise.
903 * normal/main.c: Likewise.
904 * normal/menu.c: Likewise.
905 * normal/i386/setjmp.S: Likewise.
906 * term/i386/pc/console.c: Likewise.
907 * term/i386/pc/vga.c: Likewise.
908 * util/console.c: Likewise.
909 * util/genmoddep.c: Likewise.
910 * util/misc.c: Likewise.
911 * util/pupa-emu.c: Likewise.
912 * util/resolve.c: Likewise.
913 * util/unifont2pff.rb: Likewise.
914 * util/i386/pc/biosdisk.c: Likewise.
915 * util/i386/pc/getroot.c: Likewise.
916 * util/i386/pc/pupa-mkimage.c: Likewise.
917 * util/i386/pc/pupa-setup.c: Likewise.
918
e6eced71 9192004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
920
921 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
922 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
923 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
924 reading and reset it after reading.
925 (pupa_ext2_close): Return PUPA_ERR_NONE.
926
927 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
928 Correct value.
929 (struct linux_kernel_header): Add kernel_version and
930 initrd_addr_max.
931 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
932 pupa_file_read succeeds.
933 (pupa_rescue_cmd_initrd): Implement.
934
5aded270 9352003-12-03 Marco Gerards <metgerards@student.han.nl>
936
937 * fs/ext2.c (pupa_ext2_label): New function.
938 (pupa_ext2_fs): Added label.
939 * fs/fat.c (pupa_fat_label): New function.
940 (pupa_fat_fs): Added label.
941 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
942
943 * kern/misc.c (pupa_strndup): New function.
944 * include/pupa/misc.h (pupa_strndup): New prototype.
945
946 * include/pupa/normal.h: Include <pupa/err.h>.
947 (pupa_set_history): New prototype.
948 (pupa_iterate_commands): New prototype.
949 * normal/cmdline.c: Include <pupa/machine/partition.h>,
950 <pupa/disk.h>, <pupa/file.h>.
951 (hist_size): New variable.
952 (hist_lines): Likewise.
953 (hist_end): Likewise.
954 (hist_used): Likewise.
955 (pupa_set_history): New function.
956 (pupa_history_get): Likewise.
957 (pupa_history_add): Likewise.
958 (pupa_history_replace): Likewise.
959 (pupa_tab_complete): Likewise.
960 (pupa_cmdline_run): Added tab completion and history buffer. Tab
961 completion shows partitionnames while completing partitions, this
962 feature was suggested by Jeff Bailey.
963 * normal/command.c (pupa_iterate_commands): New function.
964 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
965 (pupa_normal_init): Initialize history buffer.
966 (PUPA_MOD_INIT): Likewise.
967 (pupa_normal_fini): Free the history buffer.
968 (PUPA_MOD_FINI): Likewise.
969
970 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
971 key.
972
973 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
974 * configure.ac [i386]: Check for regparam bug.
975 (NESTED_FUNC_ATTR) [! i386]: Defined.
976
1f7315a3 9772003-11-17 Marco Gerards <metgerards@student.han.nl>
978
979 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
980 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
981 (pupa_emu_SOURCES): New variable.
982 (pupa_emu_LDFLAGS): Likewise.
983 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
984 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
985 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
986 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
987 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
988 (pupa_jmp_buf): New typedef.
989 (pupa_setjmp) [PUPA_UTIL]: New macro.
990 (pupa_longjmp) [PUPA_UTIL]: Likewise.
991 * include/pupa/term.h (struct pupa_term): New member `refresh'.
992 (pupa_refresh): New prototype.
993 * include/pupa/util/getroot.h: New file.
994 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
995 it.
996 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
997 (pupa_rescue_cmd_cat): Likewise.
998 (pupa_rescue_cmd_ls): Likewise.
999 (pupa_rescue_cmd_testload): Likewise.
1000 (pupa_rescue_cmd_lsmod): Likewise.
1001 * normal/cmdline.c (pupa_cmdline_get): Likewise.
1002 * normal/menu.c (run_menu): Likewise.
1003 * kern/term.c (pupa_cls): Likewise.
1004 (pupa_refresh): New function.
1005 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
1006 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
1007 * util/console.c: New file.
1008
1009 * util/i386/pc/getroot.c: New file.
1010 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
1011 (pupa_putchar): New function.
1012 (pupa_refresh): Likewise.
1013 (xgetcwd): Function moved to ...
1014 (strip_extra_slashes): Likewise.
1015 (get_prefix): Likewise.
1016 * util/i386/pc/getroot.c: ... here.
1017 (find_root_device): Function moved and renamed to...
1018 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
1019 Changed all callers.
1020 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
1021 and renamed to...
1022 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
1023 Changed all callers.
1024 * util/misc.c (pupa_memalign): New function.
1025 (pupa_mm_init_region): Likewise.
1026 (pupa_register_exported_symbols): Likewise.
1027 (pupa_putchar): Function removed.
1028 * util/pupa-emu.c: New file.
1029
9a5c1ade 10302003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
1031
1032 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
1033 (_multiboot_mod_SOURCES): New variable.
1034 (_multiboot_mod_CFLAGS): Likewise.
1035 * loader/i386/pc/multiboot.c: New file.
1036 * include/pupa/i386/pc/multiboot.h: Likewise.
1037 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
1038 (pupa_multiboot_real_boot): New function.
1039 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
1040 (pupa_multiboot_real_boot): New prototype.
1041 (pupa_rescue_cmd_multiboot): Likewise
1042 (pupa_rescue_cmd_module): Likewise.
1043
1044 * kern/loader.c (pupa_loader_set): Continue when
1045 pupa_loader_unload_func() fails.
1046 (pupa_loader_unset): New function.
1047 * include/pupa/loader.h (pupa_loader_unset): New prototype.
1048
1049 * kern/misc.c (pupa_stpcpy): New function.
1050 * include/pupa/misc.h (pupa_stpcpy): New prototype.
1051
8e72a9c0 10522003-11-12 Marco Gerards <metgerards@student.han.nl>
1053
1054 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
1055 for available extensions.
1056
1057 * include/pupa/i386/pc/time.h: New file.
1058 * kern/disk.c: Include <pupa/machine/time.h>.
1059 (PUPA_CACHE_TIMEOUT): New macro.
1060 (pupa_last_time): New variable.
1061 (pupa_disk_open): Flush the cache when there was a timeout.
1062 (pupa_disk_close): Reset the timer.
1063 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
1064 pupa_currticks.
1065 * util/misc.c: Include <sys/times.h>
1066 (pupa_get_rtc): New function.
1067
c4adbd32 10682003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
1069
1070 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
1071 as blocks.
1072 (pupa_ext2_get_file_block): Use blocks member.
1073
1074 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
1075 first block. Return -1 instead of pupa_errno on error.
1076
bfd30f06 10772003-10-27 Marco Gerards <metgerards@student.han.nl>
1078
1079 * README: In the pupa-mkimage example use _chain instead of chain
1080 and ext2 instead of fat.
1081 * TODO: Replace ext2fs with jfs as an example. Add an item for
1082 adding journal playback for ext2fs.
1083 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
1084 (pkgdata_MODULES): Added ext2.mod.
1085 (ext2_mod_SOURCES): New variable.
1086 (ext2_mod_CFLAGS): Likewise.
1087 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
1088 * include/pupa/misc.h (pupa_strncpy): New prototype.
1089 (pupa_strcat): Likewise.
1090 (pupa_strncmp): Likewise.
1091 * kern/misc.c (pupa_strcat): Enable function.
1092 (pupa_strncpy): New function.
1093 (pupa_strncmp): Likewise.
1094 * fs/ext2.c: New file.
1095
1096 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
1097 when the read failed before retrying.
1098 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
1099 (_FILE_OFFSET_BITS): Likewise.
1100 * configure.ac: Added AC_SYS_LARGEFILE.
1101
98d15063 11022003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
1103
1104 * genmk.rb (PModule#rule): Make sure to get only symbol names
1105 from the output of nm.
1106 Reported by Robert Millan <zeratul2@wanadoo.es>.
1107
18d9c7cd 11082003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
1109
1110 I forgot to check in these changes for a long time. This adds
1111 incomplete support for VGA console, and this is still very
1112 buggy. Also, a lot of consideration is required for I18N,
1113 UNICODE, and VGA font issues. Therefore, assume that this is
1114 such that "better than nothing".
1115
1116 * font/manager.c: New file.
1117 * include/pupa/font.h: Likewise.
1118 * include/pupa/i386/pc/vga.h: Likewise.
1119 * term/i386/pc/vga.c: Likewise.
1120 * util/unifont2pff.rb: Likewise.
1121
1122 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
1123 (pkgdata_MODULES): Added vga.mod and font.mod.
1124 (vga_mod_SOURCES): New variables.
1125 (vga_mod_CFLAGS): Likewise.
1126 (font_mod_SOURCES): Likewise.
1127 (font_mod_CFLAGS): Likewise.
1128
1129 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
1130
1131 * include/pupa/term.h: Include pupa/err.h.
1132 (struct pupa_term): Added init and fini.
1133 Changed the argument of putchar to pupa_uint32_t.
1134
1135 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
1136 (pupa_console_real_putchar): New prototype.
1137 (pupa_console_putchar): Removed.
1138 (pupa_console_checkkey): Exported.
1139 (pupa_console_getkey): Likewise.
1140
1141 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
1142 characters.
1143
1144 * kern/term.c (pupa_term_set_current): Rewritten.
1145 (pupa_putchar): Likewise.
1146 (pupa_putcode): New function.
1147
1148 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
1149 (pupa_console_real_putchar): ... this.
1150 (pupa_vga_set_mode): New function.
1151 (pupa_vga_get_font): Likewise.
1152
1153 * normal/command.c: Include pupa/term.h.
1154 (terminal_command): New function.
1155 (pupa_command_init): Register the command "terminal".
1156
1157 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
1158 (DISP_UP): Likewise.
1159 (DISP_RIGHT): Likewise.
1160 (DISP_DOWN): Likewise.
1161 (DISP_HLINE): Likewise.
1162 (DISP_VLINE): Likewise.
1163 (DISP_UL): Likewise.
1164 (DISP_UR): Likewise.
1165 (DISP_LL): Likewise.
1166 (DISP_LR): Likewise.
1167
1168 * term/i386/pc/console.c (pupa_console_putchar): New function.
1169
977329f5 11702003-02-08 NIIBE Yutaka <gniibe@m17n.org>
1171
1172 * util/resolve.c (pupa_util_resolve_dependencies): BUG
1173 FIX. Reverse the path_list.
1174
1175 * include/pupa/normal.h: Export pupa_register_command and
1176 pupa_unregister_command.
1177
1178 * hello/hello.c (pupa_cmd_hello): New module.
1179 * conf/i386-pc.rmk: Added hello.mod.
1180
1f5ab428 11812003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
1182
1183 * kern/i386/pc/lzo1x.S: New file.
1184
1185 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
1186 (compress_kernel): New variable.
1187 (generate_image): Heavily modified to support compressing a
1188 large part of the core image.
1189
1190 * util/misc.c (pupa_util_read_image): Fix a file descriptor
1191 leak.
1192 (pupa_util_load_image): New function.
1193
1194 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
1195 (pupa_compressed_size): New variable.
1196 (codestart): Enable Gate A20 here.
1197 Decompress the compressed part of the core image.
1198 Rearrange the code to put functions and variables which are
1199 required for initialization in the non-compressed part.
1200 Include lzo1x.S.
1201
1202 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
1203 here.
1204
1205 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
1206
1207 * include/pupa/i386/pc/kernel.h
1208 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
1209 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
1210 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
1211 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
1212 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
1213
1214 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
1215
1216 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
1217 (Utility#rule): Likewise.
1218
1219 * configure.ac: Check if LZO is available.
1220
ce5bf700 12212003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
1222
1223 * include/pupa/normal.h: New file.
1224 * include/pupa/setjmp.h: Likewise.
1225 * include/pupa/i386/setjmp.h: Likewise.
1226 * normal/cmdline.c: Likewise.
1227 * normal/command.c: Likewise.
1228 * normal/main.c: Likewise.
1229 * normal/menu.c: Likewise.
1230 * normal/i386/setjmp.S: Likewise.
1231
1232 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
1233 (pupa_rescue_cmd_initrd): Likewise.
1234
1235 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
1236 Likewise.
1237
1238 * kern/i386/pc/startup.S (translation_table): New variable.
1239 (translate_keycode): New function.
1240 (pupa_console_getkey): Call translate_keycode.
1241
1242 * kern/rescue.c (attempt_normal_mode): New function.
1243 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
1244 it failed, print a message.
1245
1246 * kern/mm.c (pupa_real_malloc): Print more information when a
1247 free magic is broken.
1248 (pupa_free): If the first free header is not free actually, set
1249 it to P.
1250
1251 * kern/main.c (pupa_load_normal_mode): Just load the module
1252 "normal".
1253 (pupa_main): Don't print the message
1254 "Entering into rescue mode..." here.
1255
1256 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
1257 Declared.
1258 (pupa_rescue_cmd_initrd): Likewise.
1259 (pupa_rescue_cmd_initrd): Likewise.
1260
1261 * include/pupa/symbol.h (FUNCTION): Specify the type.
1262 (VARIABLE): Likewise.
1263
1264 * include/pupa/err.h (pupa_err_t): Added
1265 PUPA_ERR_UNKNOWN_COMMAND.
1266
1267 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
1268 (pupa_dl_get_prefix): Likewise.
1269
1270 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
1271 Added _chain.mod and _linux.mod instead of chain.mod and
1272 linux.mod.
1273 (chain_mod_SOURCES): Renamed to ...
1274 (_chain_mod_SOURCES): ... this.
1275 (chain_mod_CFLAGS): Renamed to ...
1276 (_chain_mod_CFLAGS): ... this.
1277 (linux_mod_SOURCES): Renamed to ...
1278 (_linux_mod_SOURCES): ... this.
1279 (linux_mod_CFLAGS): Renamed to ...
1280 (_linux_mod_CFLAGS): ... this.
1281 (normal_mod_SOURCES): New variable.
1282 (normal_mod_CFLAGS): Likewise.
1283 (normal_mod_ASFLAGS): Likewise.
1284
12852003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
1286
1287 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
1288 possible.
1289
1290 * kern/dl.c (pupa_dl_ref): Refer dependending modules
1291 recursively.
1292 (pupa_dl_unref): Unrefer depending modules recursively.
1293 Don't call pupa_dl_unload implicitly, because PUPA can crash if
1294 a module is unloaded before one depending on that module is
1295 unloaded.
1296 (pupa_dl_unload): Unload depending modules explicitly,
1297 if possible.
1298
c04da074 12992003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
1300
1301 * include/pupa/i386/pc/linux.h: New file.
1302 * loader/i386/pc/linux.c: Likewise.
1303
1304 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
1305 Removed.
1306 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
1307 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
1308 of PUPA_CHAINLOADER_BOOT_SECTOR.
1309
1310 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
1311 (pupa_linux_prot_size): New variable.
1312 (pupa_linux_tmp_addr): Likewise.
1313 (pupa_linux_real_addr): Likewise.
1314 (pupa_linux_boot_zimage): New function.
1315 (pupa_linux_boot_bzimage): Likewise.
1316
1317 * kern/i386/pc/init.c (struct mem_region): New structure.
1318 (MAX_REGIONS): New macro.
1319 (mem_regions): New variable.
1320 (num_regions): Likewise.
1321 (pupa_os_area_addr): Likewise.
1322 (pupa_os_area_size): Likewise.
1323 (pupa_lower_mem): Likewise.
1324 (pupa_upper_mem): Likewise.
1325 (add_mem_region): New function.
1326 (compact_mem_regions): Likewise.
1327 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
1328 the size of the conventional memory and that of so-called upper
1329 memory (before the first memory hole).
1330 Instead of adding each found region to free memory, use
1331 add_mem_region and add them after removing overlaps.
1332 Also, add only 1/4 of the upper memory to free memory. The rest
1333 is used for loading OS images. Maybe this is ad hoc, but this
1334 makes it much easier to relocate OS images when booting.
1335
1336 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
1337 (pupa_enter_rescue_mode): Don't register initrd and module.
1338
1339 * kern/mm.c: Include pupa/dl.h.
1340
1341 * kern/main.c: Include pupa/file.h and pupa/device.h.
1342
1343 * kern/loader.c (pupa_loader_load_module_func): Removed.
1344 (pupa_loader_load_module): Likewise.
1345
1346 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
1347 ``.o''.
1348
1349 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
1350 (pupa_linux_tmp_addr): Likewise.
1351 (pupa_linux_real_addr): Likewise.
1352 (pupa_linux_boot_zimage): Likewise.
1353 (pupa_linux_boot_bzimage): Likewise.
1354
1355 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
1356 (pupa_upper_mem): Likewise.
1357 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
1358 module is too dangerous.
1359
1360 * include/pupa/loader.h (pupa_os_area_addr): Declared.
1361 (pupa_os_area_size): Likewise.
1362 (pupa_loader_set): Remove the first argument. Loader doesn't
1363 manage modules or initrd any longer.
1364 (pupa_loader_load_module): Removed.
1365
1366 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
1367 (linux_mod_SOURCES): New variable.
1368 (linux_mod_CFLAGS): Likewise.
1369
a13f9237 13702003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
1371
1372 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
1373 the length of a blocklist correctly.
1374
1375 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
1376 Use ioctl only if the OS file is a block device.
1377 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
1378 not very useful for normal files.
1379
1380 * kern/main.c (pupa_set_root_dev): New function.
1381 (pupa_load_normal_mode): Likewise.
1382 (pupa_main): Call those above.
1383
1384 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
1385 pupa_uint16_t.
1386
1387 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
1388
a5ffe966 13892003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
1390
1391 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
1392 (setup): Configure the installed partition information and the
1393 dl prefix.
1394
1395 * loader/i386/pc/chainloader.c (my_mod): New variable.
1396 (pupa_chainloader_unload): New function.
1397 (pupa_rescue_cmd_chainloader): Refer itself.
1398 (PUPA_MOD_INIT): Save its own module in MY_MOD.
1399
1400 * kern/i386/pc/startup.S (install_partition): Removed.
1401 (version_string): Likewise.
1402 (config_file): Likewise.
1403 (pupa_install_dos_part): New variable.
1404 (pupa_install_bsd_part): Likewise.
1405 (pupa_prefix): Likewise.
1406 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
1407
1408 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
1409 and pupa/misc.h.
1410 (make_install_device): New function.
1411 (pupa_machine_init): Set the dl prefix.
1412
1413 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
1414 (buf): Renamed to ...
1415 (linebuf): ... this.
1416 (pupa_rescue_cmd_prefix): New function.
1417 (pupa_rescue_cmd_insmod): Likewise.
1418 (pupa_rescue_cmd_rmmod): Likewise.
1419 (pupa_rescue_cmd_lsmod): Likewise.
1420 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
1421 rmmod and lsmod.
1422
1423 * kern/mm.c (pupa_memalign): If failed even after invalidating
1424 disk caches, unload unneeded modules and retry.
1425
1426 * kern/misc.c (pupa_memmove): New function.
1427 (pupa_memcpy): Removed.
1428 (pupa_strcpy): New function.
1429 (pupa_itoa): Made static.
1430
1431 * kern/dl.c (pupa_dl_iterate): New function.
1432 (pupa_dl_ref): Likewise.
1433 (pupa_dl_unref): Likewise.
1434 (pupa_dl_unload): Return if succeeded or not.
1435 (pupa_dl_unload_unneeded): New function.
1436 (pupa_dl_unload_all): Likewise.
1437 (pupa_dl_init): Renamed to ...
1438 (pupa_dl_set_prefix): ... this.
1439 (pupa_dl_get_prefix): New function.
1440
1441 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
1442 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
1443 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
1444 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
1445 (pupa_install_dos_part): Declared.
1446 (pupa_install_bsd_part): Likewise.
1447 (pupa_prefix): Likewise.
1448 (pupa_boot_drive): Likewise.
1449
1450 * include/pupa/types.h: Fix a typo.
1451
1452 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
1453 pupa_memmove.
1454 (pupa_memmove): Declared.
1455 (pupa_strcpy): Likewise.
1456
1457 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
1458 pupa_mod_init takes one argument, its own module.
1459 (pupa_dl_unload_unneeded): Declared.
1460 (pupa_dl_unload_all): Likewise.
1461 (pupa_dl_ref): Likewise.
1462 (pupa_dl_unref): Likewise.
1463 (pupa_dl_iterate): Likewise.
1464 (pupa_dl_init): Renamed to ...
1465 (pupa_dl_set_prefix): ... this.
1466 (pupa_dl_get_prefix): Declared.
1467
1468 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
1469 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
1470 unloaded.
1471 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
1472 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
1473
1474 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
1475 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
1476
012d7999 14772003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
1478
1479 * util/i386/pc/pupa-setup.c (setup): Define the internal
1480 function find_first_partition_start at the top level, because GCC
1481 3.0.x cannot compile internal functions in deeper scopes
1482 correctly.
1483 (find_root_device): Use lstat instead of stat.
1484 Don't follow symbolic links.
1485 Fix the path-constructing code.
1486
1487 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
1488 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
1489 by a BLKGETSIZE ioctl first, because block devices don't fill
1490 the member st_mode of the structure stat on Linux.
1491 [__linux__] (linux_find_partition): Use a temporary buffer
1492 REAL_DEV for the working space. Copy it to DEV before returning.
1493 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
1494 buffer cache consistent.
1495 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
1496 strncmp. The previous value was merely wrong.
1497 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
1498
1499 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
1500 FAT size is 12. The previous value was merely wrong.
1501
1502 * kern/main.c (pupa_main): Don't split the starting message from
1503 newlines.
1504
1505 * kern/term.c (pupa_putchar): Put CR after LF instead of before
1506 LF, because BIOS goes crazy about character attributes in this
1507 case.
1508
1cc73a62 15092003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
1510
1511 * include/i386/pc/util/biosdisk.h: New file.
1512 * util/i386/pc/biosdisk.c: Likewise.
1513 * util/i386/pc/pupa-setup.c: Likewise.
1514
1515 * Makefile.in (INCLUDE_DISTFILES): Added
1516 include/pupa/i386/pc/util/biosdisk.h.
1517 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
1518 directory util/i386/pc.
1519 (install-local): Added a rule for sbin_UTILITIES.
1520 (uninstall): Likewise.
1521
1522 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
1523
1524 * util/misc.c (xrealloc): New function.
1525 (pupa_malloc): Likewise.
1526 (pupa_free): Likewise.
1527 (pupa_realloc): Likewise.
1528 (pupa_stop): Likewise.
1529 (pupa_putchar): Likewise.
1530
1531 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
1532
1533 * include/pupa/util/misc.h (xrealloc): Declared.
1534
1535 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
1536 macro.
1537 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
1538 (PUPA_BOOT_MACHINE_BPB_END): ... this.
1539
1540 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
1541 [PUPA_UTIL] (pupa_fat_fini): Likewise.
1542
1543 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
1544 way should be implemented.
1545 [PUPA_UTIL] (pupa_fat_fini): Likewise.
1546
1547 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
1548 the size of NAME for safety.
1549 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
1550 0x88.
1551
1552 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
1553 (pupa_setup_SOURCES): Likewise.
1554
1555 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
1556
08b70fe8 15572002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
1558
1559 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
1560 bunch of pushl's from pusha, because this destroys the return
1561 value.
1562
62ddcc8f 15632002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
1564
1565 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
1566 This means that any missing prototypes could be fatal. Also, you
1567 must take care when writing assembly code. See the comments at
1568 the beginning of startup.S, for more details.
1569
1570 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
1571 compilation mechanism.
1572 (pupa_chainloader_real_boot): Likewise.
1573 (pupa_biosdisk_rw_int13_extensions): Likewise.
1574 (pupa_biosdisk_rw_standard): Likewise.
1575 (pupa_biosdisk_check_int13_extensions): Likewise.
1576 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
1577 (pupa_biosdisk_get_diskinfo_standard): Likewise.
1578 (pupa_get_memsize): Likewise.
1579 (pupa_get_mmap_entry): Likewise.
1580 (pupa_console_putchar): Likewise.
1581 (pupa_console_setcursor): Likewise.
1582 (pupa_getrtsecs): Use pushl instead of push.
1583
1584 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
1585 memory instead of the stack for a mmap entry, because some
1586 BIOSes may ignore the maximum size and overflow.
1587
1588 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
1589
1590 * genmk.rb (PModule#rule): Compile automatically generated
1591 sources with module-specific CFLAGS as well as other sources.
1592
9962ed99 15932002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
1594
1595 * configure.ac: Check ld.
1596 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
1597 respectively, before checking endianness and sizes.
1598
1599 * Makefile.in (LD): New variable.
1600
abdfc3c5 16012002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
1602
1603 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
1604
6a161fa9 16052002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
1606
1607 * Changelog: New file.
1608