Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/emips/ebus Split device_t/softc.
details: https://anonhg.NetBSD.org/src/rev/906d098a2a18
branches: trunk
changeset: 765970:906d098a2a18
user: tsutsui <tsutsui%NetBSD.org@localhost>
date: Sun Jun 12 05:20:54 2011 +0000
description:
Split device_t/softc.
diffstat:
sys/arch/emips/ebus/dz_ebus.c | 47 ++++++++++++++++++++++--------------------
1 files changed, 25 insertions(+), 22 deletions(-)
diffs (164 lines):
diff -r 721c694aa3f7 -r 906d098a2a18 sys/arch/emips/ebus/dz_ebus.c
--- a/sys/arch/emips/ebus/dz_ebus.c Sun Jun 12 05:06:23 2011 +0000
+++ b/sys/arch/emips/ebus/dz_ebus.c Sun Jun 12 05:20:54 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: dz_ebus.c,v 1.3 2011/06/12 05:06:23 tsutsui Exp $ */
+/* $NetBSD: dz_ebus.c,v 1.4 2011/06/12 05:20:54 tsutsui Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dz_ebus.c,v 1.3 2011/06/12 05:06:23 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dz_ebus.c,v 1.4 2011/06/12 05:20:54 tsutsui Exp $");
#include "opt_ddb.h"
@@ -69,7 +69,7 @@
#define DZ_PORT(u) ((u) & 07) /* extract the port # */
struct dz_softc {
- struct device sc_dev; /* Autoconf blaha */
+ device_t sc_dev; /* Autoconf blaha */
struct evcnt sc_rintrcnt; /* recevive interrupt counts */
struct evcnt sc_tintrcnt; /* transmit interrupt counts */
struct _Usart *sc_dr; /* reg pointers */
@@ -124,12 +124,11 @@
int s, error = 0;
unit = DZ_I2C(minor(dev));
+ sc = device_lookup_private(&dz_cd, unit);
+ if (sc == NULL)
+ return ENXIO;
+
line = DZ_PORT(minor(dev));
- if (unit >= dz_cd.cd_ndevs || dz_cd.cd_devs[unit] == NULL)
- return (ENXIO);
-
- sc = (void *)dz_cd.cd_devs[unit];
-
if (line > 0) /* FIXME fo rmore than one line */
return ENXIO;
@@ -181,8 +180,8 @@
int unit, line;
unit = DZ_I2C(minor(dev));
+ sc = device_lookup_private(&dz_cd, unit);
line = DZ_PORT(minor(dev));
- sc = (void *)dz_cd.cd_devs[unit];
tp = sc->sc_dz.dz_tty;
@@ -204,7 +203,7 @@
struct tty *tp;
struct dz_softc *sc;
- sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))];
+ sc = device_lookup_private(&dz_cd, DZ_I2C(minor(dev)));
tp = sc->sc_dz.dz_tty;
return (*tp->t_linesw->l_read)(tp, uio, flag);
@@ -216,7 +215,7 @@
struct tty *tp;
struct dz_softc *sc;
- sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))];
+ sc = device_lookup_private(&dz_cd, DZ_I2C(minor(dev)));
tp = sc->sc_dz.dz_tty;
return (*tp->t_linesw->l_write)(tp, uio, flag);
@@ -233,7 +232,7 @@
unit = DZ_I2C(minor(dev));
line = 0;
- sc = (void *)dz_cd.cd_devs[unit];
+ sc = device_lookup_private(&dz_cd, unit);
tp = sc->sc_dz.dz_tty;
error = (*tp->t_linesw->l_ioctl)(tp, cmd, data, flag, l);
@@ -297,8 +296,11 @@
struct tty *
dztty(dev_t dev)
{
- struct dz_softc *sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))];
- struct tty *tp = sc->sc_dz.dz_tty;
+ struct dz_softc *sc;
+ struct tty *tp;
+
+ sc = device_lookup_private(&dz_cd, DZ_I2C(minor(dev)));
+ tp = sc->sc_dz.dz_tty;
return tp;
}
@@ -309,7 +311,7 @@
struct dz_softc *sc;
struct tty *tp;
- sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))];
+ sc = device_lookup_private(&dz_cd, DZ_I2C(minor(dev)));
tp = sc->sc_dz.dz_tty;
return (*tp->t_linesw->l_poll)(tp, events, l);
@@ -323,7 +325,7 @@
int unit, s;
unit = DZ_I2C(minor(tp->t_dev));
- sc = (void *)dz_cd.cd_devs[unit];
+ sc = device_lookup_private(&dz_cd, unit);
s = spltty();
if (tp->t_state & (TS_TIMEOUT|TS_BUSY|TS_TTSTOP)) {
@@ -384,7 +386,7 @@
unit = DZ_I2C(minor(tp->t_dev));
line = DZ_PORT(minor(tp->t_dev));
- sc = (void *)dz_cd.cd_devs[unit];
+ sc = device_lookup_private(&dz_cd, unit);
/* check requested parameters */
if (t->c_ispeed != t->c_ospeed)
@@ -537,7 +539,7 @@
if (csr & USI_OVRE) {
log(LOG_WARNING, "%s: silo overflow, line %d\n",
- sc->sc_dev.dv_xname, 0);
+ device_xname(sc->sc_dev), 0);
}
if (csr & USI_FRAME)
@@ -604,7 +606,7 @@
static int dz_ebus_getmajor(void);
-CFATTACH_DECL(dz_ebus, sizeof(struct dz_softc),
+CFATTACH_DECL_NEW(dz_ebus, sizeof(struct dz_softc),
dz_ebus_match, dz_ebus_attach, NULL, NULL);
struct consdev dz_ebus_consdev = {
@@ -642,9 +644,10 @@
struct ebus_attach_args *iba;
struct dz_softc *sc;
+ sc = device_private(self);
iba = aux;
- sc = (struct dz_softc *)self;
+ sc->sc_dev = self;
sc->sc_dr = (struct _Usart *)iba->ia_vaddr;
#if DEBUG
printf(" virt=%p ", (void *)sc->sc_dr);
@@ -664,9 +667,9 @@
sc->sc_dz.dz_tty = tty_alloc();
evcnt_attach_dynamic(&sc->sc_rintrcnt, EVCNT_TYPE_INTR, NULL,
- sc->sc_dev.dv_xname, "rintr");
+ device_xname(self), "rintr");
evcnt_attach_dynamic(&sc->sc_tintrcnt, EVCNT_TYPE_INTR, NULL,
- sc->sc_dev.dv_xname, "tintr");
+ device_xname(self), "tintr");
/* Initialize hw regs */
#if 0
Home |
Main Index |
Thread Index |
Old Index