summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1996-08-19 19:22:26 +0000
committerjulian <julian@FreeBSD.org>1996-08-19 19:22:26 +0000
commit52457c88af4b55e2d3987cc4fbb0fdf89b1d080d (patch)
tree636c59428deeb462e9a07634efc1bf8d11fefd37 /sys
parent172fa553334216531fb11dc69e4bb176fd510943 (diff)
downloadFreeBSD-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.c22
-rw-r--r--sys/kern/uipc_sockbuf.c4
-rw-r--r--sys/kern/uipc_socket2.c4
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");
OpenPOWER on IntegriCloud