#define pr_fmt(fmt) …
#define DRV_NAME …
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/ptrace.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/in.h>
#include <linux/delay.h>
#include <linux/ethtool.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/if_arp.h>
#include <linux/ioport.h>
#include <linux/bitops.h>
#include <linux/jiffies.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/ciscode.h>
#include <pcmcia/ds.h>
#define EL3_DATA …
#define EL3_TIMER …
#define EL3_CMD …
#define EL3_STATUS …
#define EEPROM_READ …
#define EEPROM_BUSY …
#define EL3WINDOW(win_num) …
enum c509cmd { … };
enum c509status { … };
enum RxFilter { … };
#define TX_FIFO …
#define RX_FIFO …
#define RX_STATUS …
#define TX_STATUS …
#define TX_FREE …
#define WN0_IRQ …
#define WN4_MEDIA …
#define MEDIA_TP …
#define MEDIA_LED …
#define TX_TIMEOUT …
struct el3_private { … };
static const char *if_names[] = …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define INT_MODULE_PARM(n, v) …
INT_MODULE_PARM(if_port, 0);
static int tc589_config(struct pcmcia_device *link);
static void tc589_release(struct pcmcia_device *link);
static u16 read_eeprom(unsigned int ioaddr, int index);
static void tc589_reset(struct net_device *dev);
static void media_check(struct timer_list *t);
static int el3_config(struct net_device *dev, struct ifmap *map);
static int el3_open(struct net_device *dev);
static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
struct net_device *dev);
static irqreturn_t el3_interrupt(int irq, void *dev_id);
static void update_stats(struct net_device *dev);
static struct net_device_stats *el3_get_stats(struct net_device *dev);
static int el3_rx(struct net_device *dev);
static int el3_close(struct net_device *dev);
static void el3_tx_timeout(struct net_device *dev, unsigned int txqueue);
static void set_rx_mode(struct net_device *dev);
static void set_multicast_list(struct net_device *dev);
static const struct ethtool_ops netdev_ethtool_ops;
static void tc589_detach(struct pcmcia_device *p_dev);
static const struct net_device_ops el3_netdev_ops = …;
static int tc589_probe(struct pcmcia_device *link)
{ … }
static void tc589_detach(struct pcmcia_device *link)
{ … }
static int tc589_config(struct pcmcia_device *link)
{ … }
static void tc589_release(struct pcmcia_device *link)
{ … }
static int tc589_suspend(struct pcmcia_device *link)
{ … }
static int tc589_resume(struct pcmcia_device *link)
{ … }
static void tc589_wait_for_completion(struct net_device *dev, int cmd)
{ … }
static u16 read_eeprom(unsigned int ioaddr, int index)
{ … }
static void tc589_set_xcvr(struct net_device *dev, int if_port)
{ … }
static void dump_status(struct net_device *dev)
{ … }
static void tc589_reset(struct net_device *dev)
{ … }
static void netdev_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{ … }
static const struct ethtool_ops netdev_ethtool_ops = …;
static int el3_config(struct net_device *dev, struct ifmap *map)
{ … }
static int el3_open(struct net_device *dev)
{ … }
static void el3_tx_timeout(struct net_device *dev, unsigned int txqueue)
{ … }
static void pop_tx_status(struct net_device *dev)
{ … }
static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ … }
static irqreturn_t el3_interrupt(int irq, void *dev_id)
{ … }
static void media_check(struct timer_list *t)
{ … }
static struct net_device_stats *el3_get_stats(struct net_device *dev)
{ … }
static void update_stats(struct net_device *dev)
{ … }
static int el3_rx(struct net_device *dev)
{ … }
static void set_rx_mode(struct net_device *dev)
{ … }
static void set_multicast_list(struct net_device *dev)
{ … }
static int el3_close(struct net_device *dev)
{ … }
static const struct pcmcia_device_id tc589_ids[] = …;
MODULE_DEVICE_TABLE(pcmcia, tc589_ids);
static struct pcmcia_driver tc589_driver = …;
module_pcmcia_driver(…);