diff options
author | julian <julian@FreeBSD.org> | 1996-08-19 19:22:26 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1996-08-19 19:22:26 +0000 |
commit | 52457c88af4b55e2d3987cc4fbb0fdf89b1d080d (patch) | |
tree | 636c59428deeb462e9a07634efc1bf8d11fefd37 /sys | |
parent | 172fa553334216531fb11dc69e4bb176fd510943 (diff) | |
download | FreeBSD-src-52457c88af4b55e2d3987cc4fbb0fdf89b1d080d.zip FreeBSD-src-52457c88af4b55e2d3987cc4fbb0fdf89b1d080d.tar.gz |
for kern_conf.c, start allocating dynamic major numbers
half way through the range rather than possibly colliding with
fixed elements. Increase the size of the arrays to take this into account..
remember that each element in the array is now only 1 ponter so this
isn't that much..
also note a possible bug in debugging code in uipc_socket2.c (add XXX)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_conf.c | 22 | ||||
-rw-r--r-- | sys/kern/uipc_sockbuf.c | 4 | ||||
-rw-r--r-- | sys/kern/uipc_socket2.c | 4 |
3 files changed, 17 insertions, 13 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index b403dbf..ede49b5 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_conf.c,v 1.9 1995/12/22 15:56:33 phk Exp $ + * $Id: kern_conf.c,v 1.10 1996/07/23 21:52:06 phk Exp $ */ #include <sys/param.h> @@ -39,8 +39,10 @@ #include <sys/conf.h> #include <sys/vnode.h> -#define NUMCDEV 96 -#define NUMBDEV 32 +#define NUMBDEV 128 +#define NUMCDEV 256 +#define bdevsw_ALLOCSTART (NUMBDEV/2) +#define cdevsw_ALLOCSTART (NUMCDEV/2) struct bdevsw *bdevsw[NUMBDEV]; int nblkdev = NUMBDEV; @@ -118,21 +120,21 @@ chrtoblk(dev_t dev) * (re)place an entry in the bdevsw or cdevsw table * return the slot used in major(*descrip) */ -#define ADDENTRY(TTYPE,NXXXDEV) \ +#define ADDENTRY(TTYPE,NXXXDEV,ALLOCSTART) \ int TTYPE##_add(dev_t *descrip, \ struct TTYPE *newentry, \ struct TTYPE **oldentry) \ { \ int i ; \ - if ( (int)*descrip == -1) { /* auto (0 is valid) */ \ + if ( (int)*descrip == NODEV) { /* auto (0 is valid) */ \ /* \ * Search the table looking for a slot... \ */ \ - for (i = 0; i < NXXXDEV; i++) \ + for (i = ALLOCSTART; i < NXXXDEV; i++) \ if (TTYPE[i] == NULL) \ break; /* found one! */ \ /* out of allocable slots? */ \ - if (i == NXXXDEV) { \ + if (i >= NXXXDEV) { \ return ENFILE; \ } \ } else { /* assign */ \ @@ -155,8 +157,10 @@ int TTYPE##_add(dev_t *descrip, \ return 0; \ } \ -ADDENTRY(bdevsw, nblkdev) -ADDENTRY(cdevsw, nchrdev) +ADDENTRY(bdevsw, nblkdev,bdevsw_ALLOCSTART) +ADDENTRY(cdevsw, nchrdev,cdevsw_ALLOCSTART) + +/* Maybe the author might indicate what the f*@# tehis is for? */ void cdevsw_make(struct bdevsw *from) diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index a178e02..1a79d87 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)uipc_socket2.c 8.1 (Berkeley) 6/10/93 - * $Id: uipc_socket2.c,v 1.10 1996/06/12 05:07:35 gpalmer Exp $ + * $Id: uipc_socket2.c,v 1.12 1996/07/11 16:31:59 wollman Exp $ */ #include <sys/param.h> @@ -446,7 +446,7 @@ sbcheck(sb) for (m = sb->sb_mb; m; m = m->m_next) { len += m->m_len; mbcnt += MSIZE; - if (m->m_flags & M_EXT) + if (m->m_flags & M_EXT) /*XXX*/ /* pretty sure this is bogus */ mbcnt += m->m_ext.ext_size; if (m->m_nextpkt) panic("sbcheck nextpkt"); diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index a178e02..1a79d87 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)uipc_socket2.c 8.1 (Berkeley) 6/10/93 - * $Id: uipc_socket2.c,v 1.10 1996/06/12 05:07:35 gpalmer Exp $ + * $Id: uipc_socket2.c,v 1.12 1996/07/11 16:31:59 wollman Exp $ */ #include <sys/param.h> @@ -446,7 +446,7 @@ sbcheck(sb) for (m = sb->sb_mb; m; m = m->m_next) { len += m->m_len; mbcnt += MSIZE; - if (m->m_flags & M_EXT) + if (m->m_flags & M_EXT) /*XXX*/ /* pretty sure this is bogus */ mbcnt += m->m_ext.ext_size; if (m->m_nextpkt) panic("sbcheck nextpkt"); |