Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/sgimips/hpc Split device_t/softc. Tested on Indy.
details: https://anonhg.NetBSD.org/src/rev/be1439337cf8
branches: trunk
changeset: 761361:be1439337cf8
user: tsutsui <tsutsui%NetBSD.org@localhost>
date: Tue Jan 25 12:43:30 2011 +0000
description:
Split device_t/softc. Tested on Indy.
diffstat:
sys/arch/sgimips/hpc/if_sq.c | 61 +++++++++++++++++++++++--------------------
sys/arch/sgimips/hpc/sqvar.h | 4 +-
2 files changed, 35 insertions(+), 30 deletions(-)
diffs (250 lines):
diff -r 045a64a2d4a0 -r be1439337cf8 sys/arch/sgimips/hpc/if_sq.c
--- a/sys/arch/sgimips/hpc/if_sq.c Tue Jan 25 12:30:32 2011 +0000
+++ b/sys/arch/sgimips/hpc/if_sq.c Tue Jan 25 12:43:30 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sq.c,v 1.38 2011/01/25 12:21:04 tsutsui Exp $ */
+/* $NetBSD: if_sq.c,v 1.39 2011/01/25 12:43:30 tsutsui Exp $ */
/*
* Copyright (c) 2001 Rafal K. Boni
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sq.c,v 1.38 2011/01/25 12:21:04 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sq.c,v 1.39 2011/01/25 12:43:30 tsutsui Exp $");
#include <sys/param.h>
@@ -99,8 +99,8 @@
#define SQ_DPRINTF(x)
#endif
-static int sq_match(struct device *, struct cfdata *, void *);
-static void sq_attach(struct device *, struct device *, void *);
+static int sq_match(device_t, cfdata_t, void *);
+static void sq_attach(device_t, device_t, void *);
static int sq_init(struct ifnet *);
static void sq_start(struct ifnet *);
static void sq_stop(struct ifnet *, int);
@@ -118,7 +118,7 @@
static void sq_dump_buffer(paddr_t addr, psize_t len);
static void sq_trace_dump(struct sq_softc *);
-CFATTACH_DECL(sq, sizeof(struct sq_softc),
+CFATTACH_DECL_NEW(sq, sizeof(struct sq_softc),
sq_match, sq_attach, NULL, NULL);
#define ETHER_PAD_LEN (ETHER_MIN_LEN - ETHER_CRC_LEN)
@@ -141,7 +141,7 @@
#define SGI_OUI_2 0x69
static int
-sq_match(struct device *parent, struct cfdata *cf, void *aux)
+sq_match(device_t parent, cfdata_t cf, void *aux)
{
struct hpc_attach_args *ha = aux;
@@ -171,14 +171,15 @@
}
static void
-sq_attach(struct device *parent, struct device *self, void *aux)
+sq_attach(device_t parent, device_t self, void *aux)
{
int i, err;
const char* macaddr;
- struct sq_softc *sc = (void *)self;
+ struct sq_softc *sc = device_private(self);
struct hpc_attach_args *haa = aux;
struct ifnet *ifp = &sc->sc_ethercom.ec_if;
+ sc->sc_dev = self;
sc->sc_hpct = haa->ha_st;
sc->hpc_regs = haa->hpc_regs; /* HPC register definitions */
@@ -284,7 +285,7 @@
}
evcnt_attach_dynamic(&sc->sq_intrcnt, EVCNT_TYPE_INTR, NULL,
- self->dv_xname, "intr");
+ device_xname(self), "intr");
if ((cpu_intr_establish(haa->ha_irq, IPL_NET, sq_intr, sc)) == NULL) {
printf(": unable to establish interrupt!\n");
@@ -310,10 +311,10 @@
printf(": SGI Seeq %s\n",
sc->sc_type == SQ_TYPE_80C03 ? "80c03" : "8003");
- printf("%s: Ethernet address %s\n", sc->sc_dev.dv_xname,
- ether_sprintf(sc->sc_enaddr));
+ printf("%s: Ethernet address %s\n",
+ device_xname(self), ether_sprintf(sc->sc_enaddr));
- strcpy(ifp->if_xname, sc->sc_dev.dv_xname);
+ strcpy(ifp->if_xname, device_xname(self));
ifp->if_softc = sc;
ifp->if_mtu = ETHERMTU;
ifp->if_init = sq_init;
@@ -575,14 +576,15 @@
MGETHDR(m, M_DONTWAIT, MT_DATA);
if (m == NULL) {
printf("%s: unable to allocate Tx mbuf\n",
- sc->sc_dev.dv_xname);
+ device_xname(sc->sc_dev));
break;
}
if (m0->m_pkthdr.len > MHLEN) {
MCLGET(m, M_DONTWAIT);
if ((m->m_flags & M_EXT) == 0) {
printf("%s: unable to allocate Tx "
- "cluster\n", sc->sc_dev.dv_xname);
+ "cluster\n",
+ device_xname(sc->sc_dev));
m_freem(m);
break;
}
@@ -599,7 +601,8 @@
if ((err = bus_dmamap_load_mbuf(sc->sc_dmat, dmamap,
m, BUS_DMA_NOWAIT)) != 0) {
printf("%s: unable to load Tx buffer, "
- "error = %d\n", sc->sc_dev.dv_xname, err);
+ "error = %d\n",
+ device_xname(sc->sc_dev), err);
break;
}
}
@@ -678,7 +681,8 @@
sc->sc_txdesc[lasttx].hpc1_hdd_ctl |=
HPC1_HDD_CTL_EOPACKET;
- SQ_DPRINTF(("%s: transmit %d-%d, len %d\n", sc->sc_dev.dv_xname,
+ SQ_DPRINTF(("%s: transmit %d-%d, len %d\n",
+ device_xname(sc->sc_dev),
sc->sc_nexttx, lasttx,
totlen));
@@ -720,7 +724,7 @@
if (sc->sc_nfreetx != ofree) {
SQ_DPRINTF(("%s: %d packets enqueued, first %d, INTR on %d\n",
- sc->sc_dev.dv_xname, lasttx - firsttx + 1,
+ device_xname(sc->sc_dev), lasttx - firsttx + 1,
firsttx, lasttx));
/*
@@ -847,7 +851,7 @@
status = sq_hpc_read(sc, sc->hpc_regs->enetx_ctl);
log(LOG_ERR, "%s: device timeout (prev %d, next %d, free %d, "
- "status %08x)\n", sc->sc_dev.dv_xname, sc->sc_prevtx,
+ "status %08x)\n", device_xname(sc->sc_dev), sc->sc_prevtx,
sc->sc_nexttx, sc->sc_nfreetx, status);
sq_trace_dump(sc);
@@ -882,7 +886,7 @@
}
printf("%s: [%03d] action %-16s buf %03d free %03d "
- "status %08x line %d\n", sc->sc_dev.dv_xname, i, act,
+ "status %08x line %d\n", device_xname(sc->sc_dev), i, act,
sc->sq_trace[i].bufno, sc->sq_trace[i].freebuf,
sc->sq_trace[i].status, sc->sq_trace[i].line);
}
@@ -900,7 +904,7 @@
if ((stat & 2) == 0)
SQ_DPRINTF(("%s: Unexpected interrupt!\n",
- sc->sc_dev.dv_xname));
+ device_xname(sc->sc_dev)));
else
sq_hpc_write(sc, sc->hpc_regs->enetr_reset, (stat | 2));
@@ -962,7 +966,7 @@
reg = sq_hpc_read(sc, sc->hpc_regs->enetr_ctl);
SQ_DPRINTF(("%s: rxintr: done at %d (ctl %08x)\n",
- sc->sc_dev.dv_xname, i, reg));
+ device_xname(sc->sc_dev), i, reg));
#endif
break;
}
@@ -989,14 +993,14 @@
if (pktstat & RXSTAT_OFLOW)
printf("%s: receive FIFO overflow\n",
- sc->sc_dev.dv_xname);
+ device_xname(sc->sc_dev));
bus_dmamap_sync(sc->sc_dmat, sc->sc_rxmap[i], 0,
sc->sc_rxmap[i]->dm_mapsize,
BUS_DMASYNC_PREREAD);
SQ_INIT_RXDESC(sc, i);
SQ_DPRINTF(("%s: sq_rxintr: buf %d no RXSTAT_GOOD\n",
- sc->sc_dev.dv_xname, i));
+ device_xname(sc->sc_dev), i));
continue;
}
@@ -1007,7 +1011,7 @@
BUS_DMASYNC_PREREAD);
SQ_INIT_RXDESC(sc, i);
SQ_DPRINTF(("%s: sq_rxintr: buf %d sq_add_rxbuf() "
- "failed\n", sc->sc_dev.dv_xname, i));
+ "failed\n", device_xname(sc->sc_dev), i));
continue;
}
@@ -1019,7 +1023,7 @@
ifp->if_ipackets++;
SQ_DPRINTF(("%s: sq_rxintr: buf %d len %d\n",
- sc->sc_dev.dv_xname, i, framelen));
+ device_xname(sc->sc_dev), i, framelen));
bpf_mtap(ifp, m);
(*ifp->if_input)(ifp, m);
@@ -1082,13 +1086,14 @@
ifp->if_collisions++;
if (status & TXSTAT_UFLOW) {
- printf("%s: transmit underflow\n", sc->sc_dev.dv_xname);
+ printf("%s: transmit underflow\n",
+ device_xname(sc->sc_dev));
ifp->if_oerrors++;
}
if (status & TXSTAT_16COLL) {
printf("%s: max collisions reached\n",
- sc->sc_dev.dv_xname);
+ device_xname(sc->sc_dev));
ifp->if_oerrors++;
ifp->if_collisions += 16;
}
@@ -1299,7 +1304,7 @@
m->m_ext.ext_buf, m->m_ext.ext_size,
NULL, BUS_DMA_NOWAIT)) != 0) {
printf("%s: can't load rx DMA map %d, error = %d\n",
- sc->sc_dev.dv_xname, idx, err);
+ device_xname(sc->sc_dev), idx, err);
panic("sq_add_rxbuf"); /* XXX */
}
diff -r 045a64a2d4a0 -r be1439337cf8 sys/arch/sgimips/hpc/sqvar.h
--- a/sys/arch/sgimips/hpc/sqvar.h Tue Jan 25 12:30:32 2011 +0000
+++ b/sys/arch/sgimips/hpc/sqvar.h Tue Jan 25 12:43:30 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sqvar.h,v 1.10 2011/01/25 12:21:04 tsutsui Exp $ */
+/* $NetBSD: sqvar.h,v 1.11 2011/01/25 12:43:30 tsutsui Exp $ */
/*
* Copyright (c) 2001 Rafal K. Boni
@@ -108,7 +108,7 @@
} while (0)
struct sq_softc {
- struct device sc_dev;
+ device_t sc_dev;
/* HPC registers */
bus_space_tag_t sc_hpct;
Home |
Main Index |
Thread Index |
Old Index