[Midnightbsd-cvs] src: nmdm.c: let's make it tick

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Mar 29 12:33:38 EDT 2009


Log Message:
-----------
let's make it tick

Modified Files:
--------------
    src/sys/dev/nmdm:
        nmdm.c (r1.1.1.1 -> r1.2)

-------------- next part --------------
Index: nmdm.c
===================================================================
RCS file: /home/cvs/src/sys/dev/nmdm/nmdm.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L sys/dev/nmdm/nmdm.c -L sys/dev/nmdm/nmdm.c -u -r1.1.1.1 -r1.2
--- sys/dev/nmdm/nmdm.c
+++ sys/dev/nmdm/nmdm.c
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/nmdm/nmdm.c,v 1.35.2.1 2005/08/13 21:24:15 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/nmdm/nmdm.c,v 1.39 2007/08/01 21:38:11 emax Exp $");
 
 /*
  * Pseudo-nulmodem driver
@@ -41,6 +41,7 @@
 
 #include <sys/param.h>
 #include <sys/systm.h>
+#include <sys/priv.h>
 #include <sys/proc.h>
 #include <sys/tty.h>
 #include <sys/conf.h>
@@ -62,9 +63,6 @@
 static t_param_t	nmdmparam;
 static t_stop_t		nmdmstop;
 
-static void 	nmdminit(struct cdev *dev);
-
-
 static struct cdevsw nmdm_cdevsw = {
 	.d_version =	D_VERSION,
 	.d_open =	nmdmopen,
@@ -235,7 +233,7 @@
 	pt->part1.dev = dev1;
 	pt->part2.dev = dev2;
 
-	pt->part1.nm_tty = ttymalloc(pt->part1.nm_tty);
+	pt->part1.nm_tty = ttyalloc();
 	pt->part1.nm_tty->t_oproc = nmdmoproc;
 	pt->part1.nm_tty->t_stop = nmdmstop;
 	pt->part1.nm_tty->t_modem = nmdmmodem;
@@ -245,7 +243,7 @@
 	TASK_INIT(&pt->part1.pt_task, 0, nmdm_task_tty, pt->part1.nm_tty);
 	callout_init(&pt->part1.co, 0);
 
-	pt->part2.nm_tty = ttymalloc(pt->part2.nm_tty);
+	pt->part2.nm_tty = ttyalloc();
 	pt->part2.nm_tty->t_oproc = nmdmoproc;
 	pt->part2.nm_tty->t_stop = nmdmstop;
 	pt->part2.nm_tty->t_modem = nmdmmodem;
@@ -289,7 +287,8 @@
 	if ((tp->t_state & TS_ISOPEN) == 0) {
 		ttyinitmode(tp, 0, 0);
 		ttsetwater(tp); /* XXX ? */
-	} else if (tp->t_state & TS_XCLUDE && suser(td)) {
+	} else if (tp->t_state & TS_XCLUDE &&
+	    priv_check(td, PRIV_TTY_EXCLUSIVE)) {
 		return (EBUSY);
 	}
 
@@ -402,8 +401,13 @@
 static int
 nmdmclose(struct cdev *dev, int flag, int mode, struct thread *td)
 {
+	struct tty *tp = dev->si_tty;
+	int error;
 
-	return (tty_close(dev->si_tty));
+	error = ttyld_close(tp, flag);
+	(void) tty_close(dev->si_tty);
+
+	return (error);
 }
 
 static void


More information about the Midnightbsd-cvs mailing list