svn commit: r191320 - head/sys/dev/mse

Ed Schouten ed at FreeBSD.org
Mon Apr 20 15:15:25 UTC 2009


Author: ed
Date: Mon Apr 20 15:15:24 2009
New Revision: 191320
URL: http://svn.freebsd.org/changeset/base/191320

Log:
  Make mse(4) use si_drv1, instead of using unit numbers.
  
  Discussed with:	imp

Modified:
  head/sys/dev/mse/mse.c

Modified: head/sys/dev/mse/mse.c
==============================================================================
--- head/sys/dev/mse/mse.c	Mon Apr 20 15:10:03 2009	(r191319)
+++ head/sys/dev/mse/mse.c	Mon Apr 20 15:15:24 2009	(r191320)
@@ -111,8 +111,7 @@ static struct cdevsw mse_cdevsw = {
 static	void		mseintr(void *);
 static	timeout_t	msetimeout;
 
-#define	MSE_UNIT(dev)		(dev2unit(dev) >> 1)
-#define	MSE_NBLOCKIO(dev)	(dev2unit(dev) & 0x1)
+#define	MSE_NBLOCKIO(dev)	dev2unit(dev)
 
 #define	MSEPRI	(PZERO + 3)
 
@@ -143,10 +142,10 @@ mse_common_attach(device_t dev)
 	sc->mode.accelfactor = (flags & MSE_CONFIG_ACCEL) >> 4;
 	callout_handle_init(&sc->sc_callout);
 
-	sc->sc_dev = make_dev(&mse_cdevsw, unit << 1, 0, 0, 0600,
-	  "mse%d", unit);
-	sc->sc_ndev = make_dev(&mse_cdevsw, (unit<<1)+1, 0, 0, 0600,
-	  "nmse%d", unit);
+	sc->sc_dev = make_dev(&mse_cdevsw, 0, 0, 0, 0600, "mse%d", unit);
+	sc->sc_dev->si_drv1 = sc;
+	sc->sc_ndev = make_dev(&mse_cdevsw, 1, 0, 0, 0600, "nmse%d", unit);
+	sc->sc_ndev->si_drv1 = sc;
 	return 0;
 }
 
@@ -156,12 +155,9 @@ mse_common_attach(device_t dev)
 static	int
 mseopen(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
-	mse_softc_t *sc;
+	mse_softc_t *sc = dev->si_drv1;
 	int s;
 
-	sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
-	if (sc == NULL)
-		return (ENXIO);
 	if (sc->sc_mousetype == MSE_NONE)
 		return (ENXIO);
 	if (sc->sc_flags & MSESC_OPEN)
@@ -192,7 +188,7 @@ mseopen(struct cdev *dev, int flags, int
 static	int
 mseclose(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
-	mse_softc_t *sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
+	mse_softc_t *sc = dev->si_drv1;
 	int s;
 
 	untimeout(msetimeout, dev, sc->sc_callout);
@@ -212,7 +208,7 @@ mseclose(struct cdev *dev, int flags, in
 static	int
 mseread(struct cdev *dev, struct uio *uio, int ioflag)
 {
-	mse_softc_t *sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
+	mse_softc_t *sc = dev->si_drv1;
 	int xfer, s, error;
 
 	/*
@@ -276,7 +272,7 @@ mseread(struct cdev *dev, struct uio *ui
 static int
 mseioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td)
 {
-	mse_softc_t *sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
+	mse_softc_t *sc = dev->si_drv1;
 	mousestatus_t status;
 	int err = 0;
 	int s;
@@ -388,7 +384,7 @@ mseioctl(struct cdev *dev, u_long cmd, c
 static	int
 msepoll(struct cdev *dev, int events, struct thread *td)
 {
-	mse_softc_t *sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
+	mse_softc_t *sc = dev->si_drv1;
 	int s;
 	int revents = 0;
 
@@ -420,10 +416,10 @@ msetimeout(void *arg)
 	mse_softc_t *sc;
 
 	dev = (struct cdev *)arg;
-	sc = devclass_get_softc(mse_devclass, MSE_UNIT(dev));
+	sc = dev->si_drv1;
 	if (sc->sc_watchdog) {
 		if (bootverbose)
-			printf("mse%d: lost interrupt?\n", MSE_UNIT(dev));
+			printf("%s: lost interrupt?\n", devtoname(dev));
 		mseintr(sc);
 	}
 	sc->sc_watchdog = TRUE;


More information about the svn-src-head mailing list