From 723f970b1f0f70fad78c2aaaa7f13f07d1c8a0ad Mon Sep 17 00:00:00 2001 From: phk Date: Wed, 25 Feb 2004 13:43:17 +0000 Subject: Set size field correctly, it is number of sectors on the device, not number of 512 bytes sectors. Recognize size == -1 as meaning "auto". --- usr.sbin/fdread/fdutil.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/usr.sbin/fdread/fdutil.c b/usr.sbin/fdread/fdutil.c index 9990790..9b81cad 100644 --- a/usr.sbin/fdread/fdutil.c +++ b/usr.sbin/fdread/fdutil.c @@ -85,6 +85,8 @@ printstatus(struct fdc_status *fdcsp, int terse) fputs(msgbuf, stderr); } +static struct fd_type fd_types_auto[1]; + static struct fd_type fd_types_288m[] = { #if 0 @@ -321,8 +323,7 @@ parse_fmt(const char *s, enum fd_drivetype type, free(s1); } - out->size = out->tracks * out->heads * out->sectrac * - (128 << out->secsize) / 512; + out->size = out->tracks * out->heads * out->sectrac; } /* @@ -398,6 +399,9 @@ get_fmt(int size, enum fd_drivetype type) break; } + if (size == -1) + return fd_types_auto; + for (i = 0; i < n; i++, fdtp++) if (fdtp->size / 2 == size) return (fdtp); -- cgit v1.1