X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/blobdiff_plain/377d4740c43c7aa42f7d3ec7a4d4f6426009547d..e4c9c0c82658e0eca11c3e516c41021ba48b0093:/sys/dev/misc/spic/spic.c diff --git a/sys/dev/misc/spic/spic.c b/sys/dev/misc/spic/spic.c index 51aa6caa96..01492f80d9 100644 --- a/sys/dev/misc/spic/spic.c +++ b/sys/dev/misc/spic/spic.c @@ -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 @@ -58,7 +58,7 @@ #include #include #include -#include +#include #include #include #include @@ -71,7 +71,7 @@ #include #include -#include +#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)) {