2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>

* include/i386/pc/util/biosdisk.h: New file.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.

	* Makefile.in (INCLUDE_DISTFILES): Added
	include/pupa/i386/pc/util/biosdisk.h.
	(UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
	directory util/i386/pc.
	(install-local): Added a rule for sbin_UTILITIES.
	(uninstall): Likewise.

	* util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.

	* util/misc.c (xrealloc): New function.
	(pupa_malloc): Likewise.
	(pupa_free): Likewise.
	(pupa_realloc): Likewise.
	(pupa_stop): Likewise.
	(pupa_putchar): Likewise.

	* kern/disk.c (pupa_disk_read): Prevent L from underflowing.

	* include/pupa/util/misc.h (xrealloc): Declared.

	* include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
	macro.
	(PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
	(PUPA_BOOT_MACHINE_BPB_END): ... this.

	* include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
	way should be implemented.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
	the size of NAME for safety.
	(pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
	0x88.

	* conf/i386-pc.rmk (sbin_UTILITIES): New variable.
	(pupa_setup_SOURCES): Likewise.

	* genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
This commit is contained in:
okuji 2003-01-02 20:12:33 +00:00
parent 08b70fe8eb
commit 1cc73a62da
17 changed files with 1809 additions and 18 deletions

View file

@ -92,7 +92,7 @@ pupa_biosdisk_get_drive (const char *name)
static int
pupa_biosdisk_call_hook (int (*hook) (const char *name), int drive)
{
char name[4];
char name[10];
pupa_sprintf (name, (drive & 0x80) ? "hd%d" : "fd%d", drive & (~0x80));
return hook (name);
@ -111,7 +111,7 @@ pupa_biosdisk_iterate (int (*hook) (const char *name))
return 1;
/* For hard disks, attempt to read the MBR. */
for (drive = 0x80; drive < 0x88; drive++)
for (drive = 0x80; drive < 0x90; drive++)
{
if (pupa_biosdisk_rw_standard (0x02, drive, 0, 0, 1, 1,
PUPA_MEMORY_MACHINE_SCRATCH_SEG) != 0)