#define DRV_NAME …
#define DRV_DESCRIPTION …
#define DRV_AUTHOR …
#define DRV_VERSION …
#define DRV_RELDATE …
#define pr_fmt(fmt) …
#define MAX_UNITS …
static int full_duplex[MAX_UNITS];
static int options[MAX_UNITS];
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ethtool.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/io.h>
#include <asm/irq.h>
#include <linux/uaccess.h>
#include "8390.h"
static int ne2k_msg_enable;
static const int default_msg_level = …;
#if defined(__powerpc__)
#define inl_le …
#define inw_le …
#endif
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_VERSION(…);
MODULE_LICENSE(…) …;
module_param_named(msg_enable, ne2k_msg_enable, int, 0444);
module_param_array(…);
module_param_array(…);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
#define USE_LONGIO
#define ne2k_flags …
enum { … };
enum ne2k_pci_chipsets { … };
static struct { … } pci_clone_list[] = …;
static const struct pci_device_id ne2k_pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, ne2k_pci_tbl);
#define NE_BASE …
#define NE_CMD …
#define NE_DATAPORT …
#define NE_RESET …
#define NE_IO_EXTENT …
#define NESM_START_PG …
#define NESM_STOP_PG …
static int ne2k_pci_open(struct net_device *dev);
static int ne2k_pci_close(struct net_device *dev);
static void ne2k_pci_reset_8390(struct net_device *dev);
static void ne2k_pci_get_8390_hdr(struct net_device *dev,
struct e8390_pkt_hdr *hdr, int ring_page);
static void ne2k_pci_block_input(struct net_device *dev, int count,
struct sk_buff *skb, int ring_offset);
static void ne2k_pci_block_output(struct net_device *dev, const int count,
const unsigned char *buf,
const int start_page);
static const struct ethtool_ops ne2k_pci_ethtool_ops;
static const struct net_device_ops ne2k_netdev_ops = …;
static int ne2k_pci_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
{ … }
static inline int set_realtek_fdx(struct net_device *dev)
{ … }
static inline int set_holtek_fdx(struct net_device *dev)
{ … }
static int ne2k_pci_set_fdx(struct net_device *dev)
{ … }
static int ne2k_pci_open(struct net_device *dev)
{ … }
static int ne2k_pci_close(struct net_device *dev)
{ … }
static void ne2k_pci_reset_8390(struct net_device *dev)
{ … }
static void ne2k_pci_get_8390_hdr(struct net_device *dev,
struct e8390_pkt_hdr *hdr, int ring_page)
{ … }
static void ne2k_pci_block_input(struct net_device *dev, int count,
struct sk_buff *skb, int ring_offset)
{ … }
static void ne2k_pci_block_output(struct net_device *dev, int count,
const unsigned char *buf, const int start_page)
{ … }
static void ne2k_pci_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{ … }
static u32 ne2k_pci_get_msglevel(struct net_device *dev)
{ … }
static void ne2k_pci_set_msglevel(struct net_device *dev, u32 v)
{ … }
static const struct ethtool_ops ne2k_pci_ethtool_ops = …;
static void ne2k_pci_remove_one(struct pci_dev *pdev)
{ … }
static int __maybe_unused ne2k_pci_suspend(struct device *dev_d)
{ … }
static int __maybe_unused ne2k_pci_resume(struct device *dev_d)
{ … }
static SIMPLE_DEV_PM_OPS(ne2k_pci_pm_ops, ne2k_pci_suspend, ne2k_pci_resume);
static struct pci_driver ne2k_driver = …;
module_pci_driver(…) …;