Deleted Added
full compact
30c30
< * $FreeBSD: head/sys/dev/cs/if_cs.c 67164 2000-10-15 14:19:01Z phk $
---
> * $FreeBSD: head/sys/dev/cs/if_cs.c 71316 2001-01-21 04:56:12Z imp $
60d59
<
63,65d61
< #include <isa/isavar.h>
<
<
66a63
> #include <dev/cs/if_csvar.h>
74,109d70
< /*
< * cs_softc: per line info and status
< */
< struct cs_softc {
<
< /* Ethernet common code */
< struct arpcom arpcom;
<
< /* Configuration words from EEPROM */
< int auto_neg_cnf; /* AutoNegotitation configuration */
< int adapter_cnf; /* Adapter configuration */
< int isa_config; /* ISA configuration */
< int chip_type; /* Type of chip */
<
< struct ifmedia media; /* Media information */
<
< int port_rid; /* resource id for port range */
< int port_used; /* nonzero if ports used */
< struct resource* port_res; /* resource for port range */
< int mem_rid; /* resource id for memory range */
< int mem_used; /* nonzero if memory used */
< struct resource* mem_res; /* resource for memory range */
< int irq_rid; /* resource id for irq */
< struct resource* irq_res; /* resource for irq */
< void* irq_handle; /* handle for irq handler */
<
< int nic_addr; /* Base IO address of card */
< int send_cmd;
< int line_ctl; /* */
< int send_underrun;
< void *recv_ring;
<
< unsigned char *buffer;
< int buf_len;
< };
<
113,114c74,79
< static int cs_isa_probe __P((device_t dev));
< static int cs_isa_attach __P((device_t dev));
---
> static void cs_init (void *);
> static int cs_ioctl (struct ifnet *, u_long, caddr_t);
> static void cs_start (struct ifnet *);
> static void cs_stop (struct cs_softc *);
> static void cs_reset (struct cs_softc *);
> static void cs_watchdog (struct ifnet *);
116c81,83
< static int cs_cs89x0_probe __P((device_t dev));
---
> static int cs_mediachange (struct ifnet *);
> static void cs_mediastatus (struct ifnet *, struct ifmediareq *);
> static int cs_mediaset (struct cs_softc *, int);
118,137d84
< driver_intr_t csintr;
<
< static int cs_attach __P((struct cs_softc *, int, int));
<
< static void cs_init __P((void *));
< static int cs_ioctl __P((struct ifnet *, u_long, caddr_t));
< static void cs_start __P((struct ifnet *));
< static void cs_stop __P((struct cs_softc *));
< static void cs_reset __P((struct cs_softc *));
< static void cs_watchdog __P((struct ifnet *));
<
< static int cs_alloc_port(device_t dev, int rid, int size);
< static int cs_alloc_memory(device_t dev, int rid, int size);
< static int cs_alloc_irq(device_t dev, int rid, int flags);
< static void cs_release_resources(device_t dev);
<
< static int cs_mediachange __P((struct ifnet *));
< static void cs_mediastatus __P((struct ifnet *, struct ifmediareq *));
< static int cs_mediaset __P((struct cs_softc *, int));
<
153,158c100
< static device_method_t cs_methods[] = {
< /* Device interface */
< DEVMETHOD(device_probe, cs_isa_probe),
< DEVMETHOD(device_attach, cs_isa_attach),
< { 0, 0 }
< };
---
> devclass_t cs_devclass;
160,169d101
< static driver_t cs_driver = {
< "cs",
< cs_methods,
< sizeof(struct cs_softc)
< };
<
< static devclass_t cs_devclass;
<
< DRIVER_MODULE(cs, isa, cs_driver, cs_devclass, 0, 0);
<
361c293
< static int
---
> int
646,651d577
< static struct isa_pnp_id cs_ids[] = {
< { 0x4060630e, NULL }, /* CSC6040 */
< { 0x10104d24, NULL }, /* IBM EtherJet */
< { 0, NULL }
< };
<
653,709d578
< * Determine if the device is present
< */
< static int
< cs_isa_probe(device_t dev)
< {
< int error = 0;
<
< struct cs_softc *sc = device_get_softc(dev);
<
< bzero(sc, sizeof(struct cs_softc));
<
< /* Check isapnp ids */
< error = ISA_PNP_PROBE(device_get_parent(dev), dev, cs_ids);
<
< /* If the card had a PnP ID that didn't match any we know about */
< if (error == ENXIO) {
< goto end;
< }
<
< /* If we had some other problem. */
< if (!(error == 0 || error == ENOENT)) {
< goto end;
< }
<
< error=cs_cs89x0_probe(dev);
<
< end:
< if (error == 0)
< error = cs_alloc_irq(dev, 0, 0);
<
< cs_release_resources(dev);
< return (error);
< }
<
< static int cs_isa_attach(device_t dev)
< {
< struct cs_softc *sc = device_get_softc(dev);
< int flags = device_get_flags(dev);
< int error;
<
< if (sc->port_used > 0)
< cs_alloc_port(dev, sc->port_rid, sc->port_used);
< if (sc->mem_used)
< cs_alloc_memory(dev, sc->mem_rid, sc->mem_used);
< cs_alloc_irq(dev, sc->irq_rid, 0);
<
< error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET,
< csintr, sc, &sc->irq_handle);
< if (error) {
< cs_release_resources(dev);
< return (error);
< }
<
< return cs_attach(sc, device_get_unit(dev), flags);
< }
<
< /*
712c581
< static int
---
> int