diff options
author | dg <dg@FreeBSD.org> | 1998-02-22 10:11:23 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1998-02-22 10:11:23 +0000 |
commit | 59689f1f05493a8789b2a31a81091f52611d1879 (patch) | |
tree | cd2cb25fc42abfef2fdd958009030f106c5188a7 | |
parent | b3147e8cdbf90187ece6de9d36ab264d9f429134 (diff) | |
download | FreeBSD-src-59689f1f05493a8789b2a31a81091f52611d1879.zip FreeBSD-src-59689f1f05493a8789b2a31a81091f52611d1879.tar.gz |
The changes I had made long ago to support >32 disk-type units was
incomplete; dkmakeminor was broken for >32. I noticed this when trying
to use more than 32 ccd units on wcarchive.
Reviewed by: bde
-rw-r--r-- | sys/sys/disklabel.h | 5 | ||||
-rw-r--r-- | sys/sys/diskmbr.h | 5 | ||||
-rw-r--r-- | sys/sys/diskpc98.h | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/sys/sys/disklabel.h b/sys/sys/disklabel.h index 2d21452..58ad909 100644 --- a/sys/sys/disklabel.h +++ b/sys/sys/disklabel.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)disklabel.h 8.2 (Berkeley) 7/10/94 - * $Id: disklabel.h,v 1.29 1998/02/01 20:08:36 bde Exp $ + * $Id: disklabel.h,v 1.30 1998/02/17 10:50:20 jkh Exp $ */ #ifndef _SYS_DISKLABEL_H_ @@ -414,7 +414,8 @@ struct dos_partition { ----------------------------------------------------------------- */ #define dkmakeminor(unit, slice, part) \ - (((slice) << 16) | ((unit) << 3) | (part)) + (((slice) << 16) | (((unit) & 0x1e0) << 16) | \ + (((unit) & 0x1f) << 3) | (part)) #define dkmodpart(dev, part) (((dev) & ~(dev_t)7) | (part)) #define dkmodslice(dev, slice) (((dev) & ~(dev_t)0x1f0000) | ((slice) << 16)) #define dkpart(dev) (minor(dev) & 7) diff --git a/sys/sys/diskmbr.h b/sys/sys/diskmbr.h index 2d21452..58ad909 100644 --- a/sys/sys/diskmbr.h +++ b/sys/sys/diskmbr.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)disklabel.h 8.2 (Berkeley) 7/10/94 - * $Id: disklabel.h,v 1.29 1998/02/01 20:08:36 bde Exp $ + * $Id: disklabel.h,v 1.30 1998/02/17 10:50:20 jkh Exp $ */ #ifndef _SYS_DISKLABEL_H_ @@ -414,7 +414,8 @@ struct dos_partition { ----------------------------------------------------------------- */ #define dkmakeminor(unit, slice, part) \ - (((slice) << 16) | ((unit) << 3) | (part)) + (((slice) << 16) | (((unit) & 0x1e0) << 16) | \ + (((unit) & 0x1f) << 3) | (part)) #define dkmodpart(dev, part) (((dev) & ~(dev_t)7) | (part)) #define dkmodslice(dev, slice) (((dev) & ~(dev_t)0x1f0000) | ((slice) << 16)) #define dkpart(dev) (minor(dev) & 7) diff --git a/sys/sys/diskpc98.h b/sys/sys/diskpc98.h index 2d21452..58ad909 100644 --- a/sys/sys/diskpc98.h +++ b/sys/sys/diskpc98.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)disklabel.h 8.2 (Berkeley) 7/10/94 - * $Id: disklabel.h,v 1.29 1998/02/01 20:08:36 bde Exp $ + * $Id: disklabel.h,v 1.30 1998/02/17 10:50:20 jkh Exp $ */ #ifndef _SYS_DISKLABEL_H_ @@ -414,7 +414,8 @@ struct dos_partition { ----------------------------------------------------------------- */ #define dkmakeminor(unit, slice, part) \ - (((slice) << 16) | ((unit) << 3) | (part)) + (((slice) << 16) | (((unit) & 0x1e0) << 16) | \ + (((unit) & 0x1f) << 3) | (part)) #define dkmodpart(dev, part) (((dev) & ~(dev_t)7) | (part)) #define dkmodslice(dev, slice) (((dev) & ~(dev_t)0x1f0000) | ((slice) << 16)) #define dkpart(dev) (minor(dev) & 7) |