#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/netdevice.h>
#include <linux/hdlc.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <linux/delay.h>
#include <asm/io.h>
#include "wanxl.h"
static const char *version = …;
#define PLX_CTL_RESET …
#undef DEBUG_PKT
#undef DEBUG_PCI
#define MBX1_CMD_ABORTJ …
#ifdef __LITTLE_ENDIAN
#define MBX1_CMD_BSWAP …
#else
#define MBX1_CMD_BSWAP …
#endif
#define MBX2_MEMSZ_MASK …
struct port { … };
struct card_status { … };
struct card { … };
static inline struct port *dev_to_port(struct net_device *dev)
{ … }
static inline port_status_t *get_status(struct port *port)
{ … }
#ifdef DEBUG_PCI
static inline dma_addr_t pci_map_single_debug(struct pci_dev *pdev, void *ptr,
size_t size, int direction)
{
dma_addr_t addr = dma_map_single(&pdev->dev, ptr, size, direction);
if (addr + size > 0x100000000LL)
pr_crit("%s: pci_map_single() returned memory at 0x%llx!\n",
pci_name(pdev), (unsigned long long)addr);
return addr;
}
#undef pci_map_single
#define pci_map_single …
#endif
static inline void wanxl_cable_intr(struct port *port)
{ … }
static inline void wanxl_tx_intr(struct port *port)
{ … }
static inline void wanxl_rx_intr(struct card *card)
{ … }
static irqreturn_t wanxl_intr(int irq, void *dev_id)
{ … }
static netdev_tx_t wanxl_xmit(struct sk_buff *skb, struct net_device *dev)
{ … }
static int wanxl_attach(struct net_device *dev, unsigned short encoding,
unsigned short parity)
{ … }
static int wanxl_ioctl(struct net_device *dev, struct if_settings *ifs)
{ … }
static int wanxl_open(struct net_device *dev)
{ … }
static int wanxl_close(struct net_device *dev)
{ … }
static struct net_device_stats *wanxl_get_stats(struct net_device *dev)
{ … }
static int wanxl_puts_command(struct card *card, u32 cmd)
{ … }
static void wanxl_reset(struct card *card)
{ … }
static void wanxl_pci_remove_one(struct pci_dev *pdev)
{ … }
#include "wanxlfw.inc"
static const struct net_device_ops wanxl_ops = …;
static int wanxl_pci_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
{ … }
static const struct pci_device_id wanxl_pci_tbl[] = …;
static struct pci_driver wanxl_pci_driver = …;
static int __init wanxl_init_module(void)
{ … }
static void __exit wanxl_cleanup_module(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_DEVICE_TABLE(pci, wanxl_pci_tbl);
module_init(…) …;
module_exit(wanxl_cleanup_module);