device_t/softc split.

This commit is contained in:
dyoung 2009-12-06 23:05:39 +00:00
parent 903d1910d3
commit 0a9ae61983
5 changed files with 47 additions and 42 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_xi.c,v 1.68 2009/11/13 01:14:35 dyoung Exp $ */
/* $NetBSD: if_xi.c,v 1.69 2009/12/06 23:05:39 dyoung Exp $ */
/* OpenBSD: if_xe.c,v 1.9 1999/09/16 11:28:42 niklas Exp */
/*
@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if_xi.c,v 1.68 2009/11/13 01:14:35 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: if_xi.c,v 1.69 2009/12/06 23:05:39 dyoung Exp $");
#include "opt_inet.h"
#include "opt_ipx.h"
@ -211,11 +211,11 @@ xi_attach(struct xi_softc *sc, u_int8_t *myea)
/* Reset and initialize the card. */
xi_full_reset(sc);
printf("%s: MAC address %s\n", device_xname(&sc->sc_dev), ether_sprintf(myea));
printf("%s: MAC address %s\n", device_xname(sc->sc_dev), ether_sprintf(myea));
ifp = &sc->sc_ethercom.ec_if;
/* Initialize the ifnet structure. */
strlcpy(ifp->if_xname, device_xname(&sc->sc_dev), IFNAMSIZ);
strlcpy(ifp->if_xname, device_xname(sc->sc_dev), IFNAMSIZ);
ifp->if_softc = sc;
ifp->if_start = xi_start;
ifp->if_ioctl = xi_ioctl;
@ -242,9 +242,9 @@ xi_attach(struct xi_softc *sc, u_int8_t *myea)
ifmedia_init(&sc->sc_mii.mii_media, 0, xi_mediachange,
ether_mediastatus);
DPRINTF(XID_MII | XID_CONFIG,
("xi: bmsr %x\n", xi_mdi_read(&sc->sc_dev, 0, 1)));
("xi: bmsr %x\n", xi_mdi_read(sc->sc_dev, 0, 1)));
mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY,
mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY,
MII_OFFSET_ANY, 0);
if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL)
ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER | IFM_AUTO, 0,
@ -252,7 +252,7 @@ xi_attach(struct xi_softc *sc, u_int8_t *myea)
ifmedia_set(&sc->sc_mii.mii_media, IFM_ETHER | IFM_AUTO);
#if NRND > 0
rnd_attach_source(&sc->sc_rnd_source, device_xname(&sc->sc_dev), RND_TYPE_NET, 0);
rnd_attach_source(&sc->sc_rnd_source, device_xname(sc->sc_dev), RND_TYPE_NET, 0);
#endif
}
@ -288,8 +288,7 @@ xi_intr(void *arg)
DPRINTF(XID_CONFIG, ("xi_intr()\n"));
if (sc->sc_enabled == 0 ||
!device_is_active(&sc->sc_dev))
if (sc->sc_enabled == 0 || !device_is_active(sc->sc_dev))
return (0);
ifp->if_timer = 0; /* turn watchdog timer off */
@ -307,7 +306,8 @@ xi_intr(void *arg)
/* Check to see if card has been ejected. */
if (isr == 0xff) {
#ifdef DIAGNOSTIC
printf("%s: interrupt for dead card\n", device_xname(&sc->sc_dev));
printf("%s: interrupt for dead card\n",
device_xname(sc->sc_dev));
#endif
goto end;
}
@ -664,7 +664,7 @@ xi_watchdog(struct ifnet *ifp)
{
struct xi_softc *sc = ifp->if_softc;
printf("%s: device timeout\n", device_xname(&sc->sc_dev));
printf("%s: device timeout\n", device_xname(sc->sc_dev));
++ifp->if_oerrors;
xi_reset(sc);

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_xivar.h,v 1.5 2009/05/12 14:42:18 cegger Exp $ */
/* $NetBSD: if_xivar.h,v 1.6 2009/12/06 23:05:39 dyoung Exp $ */
/*
* Copyright (c) 2004 Charles M. Hannum. All rights reserved.
@ -25,7 +25,7 @@
#endif
struct xi_softc {
struct device sc_dev; /* Generic device info */
device_t sc_dev; /* Generic device info */
struct ethercom sc_ethercom; /* Ethernet common part */
struct mii_data sc_mii; /* MII media information */

View File

@ -1,4 +1,4 @@
/* $NetBSD: mhzc.c,v 1.47 2009/11/13 01:14:35 dyoung Exp $ */
/* $NetBSD: mhzc.c,v 1.48 2009/12/06 23:05:39 dyoung Exp $ */
/*-
* Copyright (c) 1999, 2000, 2004 The NetBSD Foundation, Inc.
@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mhzc.c,v 1.47 2009/11/13 01:14:35 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: mhzc.c,v 1.48 2009/12/06 23:05:39 dyoung Exp $");
#include "opt_inet.h"
#include "bpfilter.h"
@ -95,7 +95,7 @@ __KERNEL_RCSID(0, "$NetBSD: mhzc.c,v 1.47 2009/11/13 01:14:35 dyoung Exp $");
#include "mhzc.h"
struct mhzc_softc {
struct device sc_dev; /* generic device glue */
device_t sc_dev; /* generic device glue */
struct pcmcia_function *sc_pf; /* our PCMCIA function */
void *sc_ih; /* interrupt handle */
@ -132,8 +132,8 @@ void mhzc_attach(device_t, device_t, void *);
void mhzc_childdet(device_t, device_t);
int mhzc_detach(device_t, int);
CFATTACH_DECL(mhzc, sizeof(struct mhzc_softc),
mhzc_match, mhzc_attach, mhzc_detach, NULL);
CFATTACH_DECL2_NEW(mhzc, sizeof(struct mhzc_softc),
mhzc_match, mhzc_attach, mhzc_detach, NULL, NULL, mhzc_childdet);
int mhzc_em3336_enaddr(struct mhzc_softc *, u_int8_t *);
int mhzc_em3336_enable(struct mhzc_softc *);
@ -183,6 +183,7 @@ mhzc_attach(device_t parent, device_t self, void *aux)
struct pcmcia_config_entry *cfe;
int error;
sc->sc_dev = self;
sc->sc_pf = pa->pf;
sc->sc_product = pcmcia_product_lookup(pa, mhzc_products,
@ -232,14 +233,14 @@ mhzc_attach(device_t parent, device_t self, void *aux)
if (pcmcia_io_map(sc->sc_pf, PCMCIA_WIDTH_IO8, &sc->sc_modem_pcioh,
&sc->sc_modem_io_window)) {
aprint_error_dev(&sc->sc_dev, "unable to map I/O space\n");
aprint_error_dev(sc->sc_dev, "unable to map I/O space\n");
goto fail;
}
sc->sc_flags |= MHZC_MODEM_MAPPED;
if (pcmcia_io_map(sc->sc_pf, PCMCIA_WIDTH_AUTO, &sc->sc_ethernet_pcioh,
&sc->sc_ethernet_io_window)) {
aprint_error_dev(&sc->sc_dev, "unable to map I/O space\n");
aprint_error_dev(sc->sc_dev, "unable to map I/O space\n");
goto fail;
}
sc->sc_flags |= MHZC_ETHERNET_MAPPED;
@ -393,7 +394,7 @@ mhzc_enable(struct mhzc_softc *sc, int flag)
int error;
if ((sc->sc_flags & flag) == flag) {
printf("%s: already enabled\n", device_xname(&sc->sc_dev));
printf("%s: already enabled\n", device_xname(sc->sc_dev));
return (0);
}
@ -443,7 +444,7 @@ mhzc_disable(struct mhzc_softc *sc, int flag)
{
if ((sc->sc_flags & flag) == 0) {
printf("%s: already disabled\n", device_xname(&sc->sc_dev));
printf("%s: already disabled\n", device_xname(sc->sc_dev));
return;
}
@ -468,10 +469,10 @@ mhzc_em3336_enaddr(struct mhzc_softc *sc, u_int8_t *myla)
{
/* Get the station address from CIS tuple 0x81. */
if (pcmcia_scan_cis(device_parent(&sc->sc_dev),
if (pcmcia_scan_cis(device_parent(sc->sc_dev),
mhzc_em3336_lannid_ciscallback, myla) != 1) {
printf("%s: unable to get Ethernet address from CIS\n",
device_xname(&sc->sc_dev));
device_xname(sc->sc_dev));
return (0);
}
@ -493,13 +494,13 @@ mhzc_em3336_enable(struct mhzc_softc *sc)
/* Map the ISRPOWEREG. */
if (pcmcia_mem_alloc(sc->sc_pf, 0x1000, &memh) != 0) {
aprint_error_dev(&sc->sc_dev, "unable to allocate memory space\n");
aprint_error_dev(sc->sc_dev, "unable to allocate memory space\n");
return (1);
}
if (pcmcia_mem_map(sc->sc_pf, PCMCIA_MEM_ATTR, 0, 0x1000,
&memh, &memoff, &memwin)) {
aprint_error_dev(&sc->sc_dev, "unable to map memory space\n");
aprint_error_dev(sc->sc_dev, "unable to map memory space\n");
pcmcia_mem_free(sc->sc_pf, &memh);
return (1);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: pcmcom.c,v 1.38 2009/11/12 22:46:47 dyoung Exp $ */
/* $NetBSD: pcmcom.c,v 1.39 2009/12/06 23:05:39 dyoung Exp $ */
/*-
* Copyright (c) 1998, 2000, 2004 The NetBSD Foundation, Inc.
@ -44,7 +44,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pcmcom.c,v 1.38 2009/11/12 22:46:47 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: pcmcom.c,v 1.39 2009/12/06 23:05:39 dyoung Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -68,7 +68,7 @@ __KERNEL_RCSID(0, "$NetBSD: pcmcom.c,v 1.38 2009/11/12 22:46:47 dyoung Exp $");
#include "locators.h"
struct pcmcom_softc {
struct device sc_dev; /* generic device glue */
device_t sc_dev; /* generic device glue */
struct pcmcia_function *sc_pf; /* our PCMCIA function */
void *sc_ih; /* interrupt handle */
@ -144,6 +144,8 @@ pcmcom_attach(device_t parent, device_t self, void *aux)
int error;
int locs[PCMCOMCF_NLOCS];
sc->sc_dev = self;
sc->sc_pf = pa->pf;
error = pcmcia_function_configure(pa->pf, pcmcom_validate_config);
@ -171,7 +173,7 @@ pcmcom_attach(device_t parent, device_t self, void *aux)
locs[PCMCOMCF_SLAVE] = slave;
sc->sc_slaves[slave] = config_found_sm_loc(&sc->sc_dev,
sc->sc_slaves[slave] = config_found_sm_loc(sc->sc_dev,
"pcmcom", locs,
&pca, pcmcom_print, config_stdsubmatch);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: xirc.c,v 1.30 2009/11/13 01:14:35 dyoung Exp $ */
/* $NetBSD: xirc.c,v 1.31 2009/12/06 23:05:39 dyoung Exp $ */
/*-
* Copyright (c) 1999, 2000, 2004 The NetBSD Foundation, Inc.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: xirc.c,v 1.30 2009/11/13 01:14:35 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: xirc.c,v 1.31 2009/12/06 23:05:39 dyoung Exp $");
#include "opt_inet.h"
#include "bpfilter.h"
@ -89,7 +89,7 @@ __KERNEL_RCSID(0, "$NetBSD: xirc.c,v 1.30 2009/11/13 01:14:35 dyoung Exp $");
#include <dev/pcmcia/if_xireg.h>
struct xirc_softc {
struct device sc_dev; /* generic device glue */
device_t sc_dev; /* generic device glue */
struct pcmcia_function *sc_pf; /* our PCMCIA function */
void *sc_ih; /* interrupt handle */
@ -126,8 +126,8 @@ void xirc_attach(device_t, device_t, void *);
int xirc_detach(device_t, int);
void xirc_childdet(device_t, device_t);
CFATTACH_DECL(xirc, sizeof(struct xirc_softc),
xirc_match, xirc_attach, xirc_detach, NULL);
CFATTACH_DECL2_NEW(xirc, sizeof(struct xirc_softc),
xirc_match, xirc_attach, xirc_detach, NULL, NULL, xirc_childdet);
int xirc_print(void *, const char *);
@ -176,6 +176,8 @@ xirc_attach(device_t parent, device_t self, void *aux)
int rv;
int error;
sc->sc_dev = self;
sc->sc_pf = pa->pf;
pcmcia_socket_enable(parent);
@ -454,7 +456,7 @@ xirc_enable(struct xirc_softc *sc, int flag, int media)
int error;
if ((sc->sc_flags & flag) == flag) {
printf("%s: already enabled\n", device_xname(&sc->sc_dev));
printf("%s: already enabled\n", device_xname(sc->sc_dev));
return (0);
}
@ -501,7 +503,7 @@ xirc_disable(struct xirc_softc *sc, int flag, int media)
{
if ((sc->sc_flags & flag) == 0) {
printf("%s: already disabled\n", device_xname(&sc->sc_dev));
printf("%s: already disabled\n", device_xname(sc->sc_dev));
return;
}
@ -629,6 +631,8 @@ xi_xirc_attach(device_t parent, device_t self, void *aux)
struct xirc_softc *msc = device_private(parent);
u_int8_t myla[ETHER_ADDR_LEN];
sc->sc_dev = self;
aprint_normal("\n");
sc->sc_bst = msc->sc_ethernet_pcioh.iot;
@ -639,7 +643,7 @@ xi_xirc_attach(device_t parent, device_t self, void *aux)
sc->sc_enable = xi_xirc_enable;
sc->sc_disable = xi_xirc_disable;
if (!pcmcia_scan_cis(device_parent(&msc->sc_dev),
if (!pcmcia_scan_cis(device_parent(msc->sc_dev),
xi_xirc_lan_nid_ciscallback, myla)) {
aprint_error_dev(self, "can't find MAC address\n");
return;
@ -652,8 +656,7 @@ xi_xirc_attach(device_t parent, device_t self, void *aux)
int
xi_xirc_enable(struct xi_softc *sc)
{
struct xirc_softc *msc =
(struct xirc_softc *)device_parent(&sc->sc_dev);
struct xirc_softc *msc = device_private(device_parent(sc->sc_dev));
return (xirc_enable(msc, XIRC_ETHERNET_ENABLED, XIMEDIA_ETHER));
}
@ -661,8 +664,7 @@ xi_xirc_enable(struct xi_softc *sc)
void
xi_xirc_disable(struct xi_softc *sc)
{
struct xirc_softc *msc =
(struct xirc_softc *)device_parent(&sc->sc_dev);
struct xirc_softc *msc = device_private(device_parent(sc->sc_dev));
xirc_disable(msc, XIRC_ETHERNET_ENABLED, XIMEDIA_ETHER);
}