summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall/floppy.c
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2000-06-05 13:17:23 +0000
committernyan <nyan@FreeBSD.org>2000-06-05 13:17:23 +0000
commit6a7aa7f3d9d42126138b256ce2a6fe01ecd4d3a4 (patch)
treed4ae9bd04b53f4b71a4f6c8597f6153ee9c613e0 /usr.sbin/sysinstall/floppy.c
parent2957ed6969367453170ee419e165102e862b1ecb (diff)
downloadFreeBSD-src-6a7aa7f3d9d42126138b256ce2a6fe01ecd4d3a4.zip
FreeBSD-src-6a7aa7f3d9d42126138b256ce2a6fe01ecd4d3a4.tar.gz
- Remove obsolete PC-card boot.flp hack. It was for making both PC-card
boot.flp and plain boot.flp. - Clean up crunchgen related routine. - Add PC-98 support. TODO: o Documentation o Fix some messages for PC-98 o Decrease the size of fixit.flp to 1.2MB o I18N (See: http://www.jp.FreeBSD.org/BootAsia/index.html) No response from jkh
Diffstat (limited to 'usr.sbin/sysinstall/floppy.c')
-rw-r--r--usr.sbin/sysinstall/floppy.c50
1 files changed, 42 insertions, 8 deletions
diff --git a/usr.sbin/sysinstall/floppy.c b/usr.sbin/sysinstall/floppy.c
index 576361e..b37f513 100644
--- a/usr.sbin/sysinstall/floppy.c
+++ b/usr.sbin/sysinstall/floppy.c
@@ -64,6 +64,9 @@ mediaInitFloppy(Device *dev)
struct msdosfs_args dosargs;
struct ufs_args u_args;
char *mp;
+#ifdef PC98
+ char fddev[24];
+#endif
if (floppyMounted)
return TRUE;
@@ -85,20 +88,51 @@ mediaInitFloppy(Device *dev)
}
memset(&dosargs, 0, sizeof dosargs);
+#ifdef PC98
+ dosargs.fspec = fddev;
+#else
dosargs.fspec = dev->devname;
+#endif
dosargs.uid = dosargs.gid = 0;
dosargs.mask = 0777;
memset(&u_args, 0, sizeof(u_args));
+#ifdef PC98
+ u_args.fspec = fddev;
+#else
u_args.fspec = dev->devname;
-
- if (mount("msdos", mp, MNT_RDONLY, (caddr_t)&dosargs) == -1) {
- if (mount("ufs", mp, MNT_RDONLY, (caddr_t)&u_args) == -1) {
- msgConfirm("Error mounting floppy %s (%s) on %s : %s",
- dev->name, dev->devname, mp, strerror(errno));
- return FALSE;
- }
- }
+#endif
+
+#ifdef PC98
+ sprintf(fddev, "%s.1200", dev->devname);
+ if (mount("msdos", mp, MNT_RDONLY, (caddr_t)&dosargs) != -1)
+ goto success;
+ if (mount("ufs", mp, MNT_RDONLY, (caddr_t)&u_args) != -1)
+ goto success;
+
+ sprintf(fddev, "%s.1232", dev->devname);
+ if (mount("msdos", mp, MNT_RDONLY, (caddr_t)&dosargs) != -1)
+ goto success;
+ if (mount("ufs", mp, MNT_RDONLY, (caddr_t)&u_args) != -1)
+ goto success;
+
+ sprintf(fddev, "%s.1440", dev->devname);
+ if (mount("msdos", mp, MNT_RDONLY, (caddr_t)&dosargs) != -1)
+ goto success;
+ if (mount("ufs", mp, MNT_RDONLY, (caddr_t)&u_args) != -1)
+ goto success;
+#else
+ if (mount("msdos", mp, MNT_RDONLY, (caddr_t)&dosargs) != -1)
+ goto success;
+ if (mount("ufs", mp, MNT_RDONLY, (caddr_t)&u_args) != -1)
+ goto success;
+#endif /* PC98 */
+
+ msgConfirm("Error mounting floppy %s (%s) on %s : %s",
+ dev->name, dev->devname, mp, strerror(errno));
+ return FALSE;
+
+success:
floppyMounted = TRUE;
distWanted = NULL;
return TRUE;
OpenPOWER on IntegriCloud