Device layer rollup commit.
[dragonfly.git] / sys / dev / misc / spic / spic.c
index 51aa6ca..01492f8 100644 (file)
@@ -48,7 +48,7 @@
  * also provided sample code upon which this driver was based.
  *
  * $FreeBSD: src/sys/i386/isa/spic.c,v 1.4.2.1 2002/04/15 00:52:12 will Exp $
- * $DragonFly: src/sys/dev/misc/spic/spic.c,v 1.3 2003/07/19 21:14:34 dillon Exp $
+ * $DragonFly: src/sys/dev/misc/spic/spic.c,v 1.8 2004/05/19 22:52:44 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -58,7 +58,7 @@
 #include <machine/bus.h>
 #include <sys/rman.h>
 #include <machine/resource.h>
-#include <isa/isavar.h>
+#include <bus/isa/isavar.h>
 #include <sys/poll.h>
 #include <machine/pci_cfgreg.h>
 #include <machine/clock.h>
@@ -71,7 +71,7 @@
 #include <sys/uio.h>
 #include <sys/proc.h>
 
-#include <i386/isa/spicreg.h>
+#include "spicreg.h"
 
 static int spic_pollrate;
 
@@ -87,6 +87,12 @@ static d_ioctl_t     spicioctl;
 static d_poll_t                spicpoll;
 
 static struct cdevsw spic_cdevsw = {
+        /* name */      "spic",
+        /* maj */       CDEV_MAJOR,
+        /* flags */     0,
+       /* port */      NULL,
+       /* clone */     NULL,
+
         /* open */      spicopen,
         /* close */     spicclose,
         /* read */      spicread,
@@ -95,11 +101,8 @@ static struct cdevsw spic_cdevsw = {
         /* poll */      spicpoll,
         /* mmap */      nommap,
         /* strategy */  nostrategy,
-        /* name */      "spic",
-        /* maj */       CDEV_MAJOR,
         /* dump */      nodump,
-        /* psize */     nopsize,
-        /* flags */     0,
+        /* psize */     nopsize
 };
 
 #define SCBUFLEN 128
@@ -352,7 +355,8 @@ spic_attach(device_t dev)
        spic_call1(sc, 0x92);
 
        /* There can be only one */
-       make_dev(&spic_cdevsw, 0, 0, 0, 0600, "jogdial");
+       cdevsw_add(&spic_cdevsw, -1, device_get_unit(dev));
+       make_dev(&spic_cdevsw, device_get_unit(deV), 0, 0, 0600, "jogdial");
 
        return 0;
 }
@@ -447,7 +451,7 @@ spictimeout(void *arg)
 }
 
 static int
-spicopen(dev_t dev, int flag, int fmt, struct proc *p)
+spicopen(dev_t dev, int flag, int fmt, struct thread *td)
 {
        struct spic_softc *sc;
 
@@ -465,7 +469,7 @@ spicopen(dev_t dev, int flag, int fmt, struct proc *p)
 }
 
 static int
-spicclose(dev_t dev, int flag, int fmt, struct proc *p)
+spicclose(dev_t dev, int flag, int fmt, struct thread *td)
 {
        struct spic_softc *sc;
 
@@ -512,7 +516,7 @@ spicread(dev_t dev, struct uio *uio, int flag)
 }
 
 static int
-spicioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
+spicioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct thread *td)
 {
        struct spic_softc *sc;
 
@@ -522,12 +526,16 @@ spicioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
 }
 
 static int
-spicpoll(dev_t dev, int events, struct proc *p)
+spicpoll(dev_t dev, int events, struct thread *td)
 {
        struct spic_softc *sc;
+       struct proc *p;
        struct proc *p1;
        int revents = 0, s;
 
+       p = td->td_proc;
+       KKASSERT(p);
+
        sc = devclass_get_softc(spic_devclass, 0);
        s = spltty();
        if (events & (POLLIN | POLLRDNORM)) {