Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 2008 11:27:19 GMT
From:      Ed Schouten <ed@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 146763 for review
Message-ID:  <200808061127.m76BRJFX016556@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=146763

Change 146763 by ed@ed_flippo on 2008/08/06 11:26:38

	Minor fixes to nmdm(4):
	
	- Also hook up the wakeup routine to the input side.
	
	- Don't pass privileges for now. This makes nmdm(4) root-only,
	  like it originally works.
	
	- Don't depend on vnode_if.h.
	
	Right now nmdm(4) supports no actual hotplugging. I tried to add
	this, but it's harder than it seems. One of the problems I was
	dealing with, is when the task is queued again right after the
	taskqueue is unlocked and the task is being executed.
	
	There's no rush.

Affected files ...

.. //depot/projects/mpsafetty/sys/dev/nmdm/nmdm.c#6 edit
.. //depot/projects/mpsafetty/sys/modules/nmdm/Makefile#3 edit

Differences ...

==== //depot/projects/mpsafetty/sys/dev/nmdm/nmdm.c#6 (text+ko) ====

@@ -54,13 +54,14 @@
 
 MALLOC_DEFINE(M_NMDM, "nullmodem", "nullmodem data structures");
 
-static tsw_outwakeup_t	nmdm_outwakeup;
+static void		nmdm_wakeup(struct tty *);
 static tsw_param_t	nmdm_param;
 static tsw_modem_t	nmdm_modem;
 
 static struct ttydevsw nmdm_class = {
 	.tsw_flags	= TF_NOPREFIX,
-	.tsw_outwakeup	= nmdm_outwakeup,
+	.tsw_inwakeup	= nmdm_wakeup,
+	.tsw_outwakeup	= nmdm_wakeup,
 	.tsw_param	= nmdm_param,
 	.tsw_modem	= nmdm_modem,
 };
@@ -93,7 +94,7 @@
 static int nmdm_count = 0;
 
 static struct nmdmsoftc *
-nmdm_alloc(unsigned long unit, struct ucred *cr)
+nmdm_alloc(unsigned long unit)
 {
 	struct nmdmsoftc *ns;
 	struct tty *tp;
@@ -117,11 +118,11 @@
 	/* Create device nodes */
 	tp = ns->ns_part1.np_tty = tty_alloc(&nmdm_class, &ns->ns_part1,
 	    &ns->ns_mtx);
-	tty_makedev(tp, cr, "nmdm%luA", unit);
+	tty_makedev(tp, NULL, "nmdm%luA", unit);
 
 	tp = ns->ns_part2.np_tty = tty_alloc(&nmdm_class, &ns->ns_part2,
 	    &ns->ns_mtx);
-	tty_makedev(tp, cr, "nmdm%luB", unit);
+	tty_makedev(tp, NULL, "nmdm%luB", unit);
 
 	return (ns);
 }
@@ -147,7 +148,8 @@
 	if ((end[0] != 'A' && end[0] != 'B') || end[1] != '\0')
 		return;
 
-	ns = nmdm_alloc(unit, cred);
+	/* XXX: pass privileges? */
+	ns = nmdm_alloc(unit);
 
 	if (end[0] == 'A')
 		*dev = ns->ns_part1.np_tty->t_dev;
@@ -318,11 +320,10 @@
 }
 
 static void
-nmdm_outwakeup(struct tty *tp)
+nmdm_wakeup(struct tty *tp)
 {
 	struct nmdmpart *np = tty_softc(tp);
 
-	np = tty_softc(tp);
 	taskqueue_enqueue(taskqueue_swi, &np->np_task);
 }
 

==== //depot/projects/mpsafetty/sys/modules/nmdm/Makefile#3 (text+ko) ====

@@ -4,6 +4,5 @@
 
 KMOD=	nmdm
 SRCS=	nmdm.c
-SRCS+=	vnode_if.h
 
 .include <bsd.kmod.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808061127.m76BRJFX016556>