Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-5]: src/sys/dev/isa Pull up revisions 1.11-1.12 (requested by f...
details: https://anonhg.NetBSD.org/src/rev/03242ab2b3c7
branches: netbsd-1-5
changeset: 491528:03242ab2b3c7
user: he <he%NetBSD.org@localhost>
date: Tue May 01 12:27:14 2001 +0000
description:
Pull up revisions 1.11-1.12 (requested by fvdl):
Increase the number of BSD disklabel partitions on i386 to 16.
diffstat:
sys/dev/isa/fd.c | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
diffs (71 lines):
diff -r 97c3816ae2cf -r 03242ab2b3c7 sys/dev/isa/fd.c
--- a/sys/dev/isa/fd.c Tue May 01 12:27:11 2001 +0000
+++ b/sys/dev/isa/fd.c Tue May 01 12:27:14 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fd.c,v 1.5 2000/05/11 15:42:00 jdolecek Exp $ */
+/* $NetBSD: fd.c,v 1.5.4.1 2001/05/01 12:27:14 he Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -1281,9 +1281,15 @@
unsigned int scratch;
int il[FD_MAX_NSEC + 1];
register int i, j;
+#ifdef __HAVE_OLD_DISKLABEL
+ struct disklabel newlabel;
+#endif
switch (cmd) {
case DIOCGDINFO:
+#ifdef __HAVE_OLD_DISKLABEL
+ case ODIOCGDINFO:
+#endif
memset(&buffer, 0, sizeof(buffer));
buffer.d_secpercyl = fd->sc_type->seccyl;
@@ -1293,6 +1299,13 @@
if (readdisklabel(dev, fdstrategy, &buffer, NULL) != NULL)
return EINVAL;
+#ifdef __HAVE_OLD_DISKLABEL
+ if (cmd == ODIOCGDINFO) {
+ if (buffer.d_npartitions > OLDMAXPARTITIONS)
+ return ENOTTY;
+ memcpy(addr, &buffer, sizeof (struct olddisklabel));
+ } else
+#endif
*(struct disklabel *)addr = buffer;
return 0;
@@ -1303,15 +1316,30 @@
return 0;
case DIOCWDINFO:
+#ifdef __HAVE_OLD_DISKLABEL
+ case ODIOCWDINFO:
+#endif
+ {
+ struct disklabel *lp;
+
if ((flag & FWRITE) == 0)
return EBADF;
+#ifdef __HAVE_OLD_DISKLABEL
+ if (cmd == ODIOCWDINFO) {
+ memset(&newlabel, 0, sizeof newlabel);
+ memcpy(&newlabel, addr, sizeof (struct olddisklabel));
+ lp = &newlabel;
+ } else
+#endif
+ lp = (struct disklabel *)addr;
- error = setdisklabel(&buffer, (struct disklabel *)addr, 0, NULL);
+ error = setdisklabel(&buffer, lp, 0, NULL);
if (error)
return error;
error = writedisklabel(dev, fdstrategy, &buffer, NULL);
return error;
+ }
case FDIOCGETFORMAT:
form_parms = (struct fdformat_parms *)addr;
Home |
Main Index |
Thread Index |
Old Index