#endif /* WIRELESS_EXT */ 
static dev_link_t *netwave_attach(void){    client_reg_t client_reg;    dev_link_t *link;    struct net_device *dev;    netwave_private *priv;    int ret;        DEBUG(0, "netwave_attach()\n");        /* Initialize the dev_link_t structure */    dev = alloc_etherdev(sizeof(netwave_private));    if (!dev)	return NULL;    priv = netdev_priv(dev);    link = &priv->link;    link->priv = dev;    /* The io structure describes IO port mapping */    link->io.NumPorts1 = 16;    link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;    /* link->io.NumPorts2 = 16;        link->io.Attributes2 = IO_DATA_PATH_WIDTH_16; */    link->io.IOAddrLines = 5;        /* Interrupt setup */    link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;    link->irq.IRQInfo1 = IRQ_LEVEL_ID;    link->irq.Handler = &netwave_interrupt;        /* General socket configuration */    link->conf.Attributes = CONF_ENABLE_IRQ;    link->conf.Vcc = 50;    link->conf.IntType = INT_MEMORY_AND_IO;    link->conf.ConfigIndex = 1;    link->conf.Present = PRESENT_OPTION;    /* Netwave private struct init. link/dev/node already taken care of,     * other stuff zero'd - Jean II */    spin_lock_init(&priv->spinlock);    /* Netwave specific entries in the device structure */    SET_MODULE_OWNER(dev);    dev->hard_start_xmit = &netwave_start_xmit;    dev->get_stats  = &netwave_get_stats;    dev->set_multicast_list = &set_multicast_list;    /* wireless extensions */#ifdef WIRELESS_EXT    dev->get_wireless_stats = &netwave_get_wireless_stats;#if WIRELESS_EXT > 12    dev->wireless_handlers = (struct iw_handler_def *)&netwave_handler_def;#endif /* WIRELESS_EXT > 12 */#endif /* WIRELESS_EXT */    dev->do_ioctl = &netwave_ioctl;    dev->tx_timeout = &netwave_watchdog;    dev->watchdog_timeo = TX_TIMEOUT;    dev->open = &netwave_open;    dev->stop = &netwave_close;    link->irq.Instance = dev;        /* Register with Card Services */    link->next = dev_list;    dev_list = link;    client_reg.dev_info = &dev_info;    client_reg.Version = 0x0210;    client_reg.event_callback_args.client_data = link;    ret = pcmcia_register_client(&link->handle, &client_reg);    if (ret != 0) {	cs_error(link->handle, RegisterClient, ret);	netwave_detach(link);	return NULL;    }    return link;} /* netwave_attach */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/62337dd54bad660258d44c89754721f60283ea84/netwave_cs.c/clean/drivers/net/wireless/netwave_cs.c