#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/dma-mapping.h>
#include <linux/delay.h>
#include <linux/rio.h>
#include <linux/rio_drv.h>
#include <linux/slab.h>
#include <linux/rio_ids.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/crc32.h>
#include <linux/ethtool.h>
#include <linux/reboot.h>
#define DRV_NAME …
#define DRV_VERSION …
#define DRV_AUTHOR …
#define DRV_DESC …
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;
#define RIONET_DEFAULT_MSGLEVEL …
#define RIONET_DOORBELL_JOIN …
#define RIONET_DOORBELL_LEAVE …
#define RIONET_MAILBOX …
#define RIONET_TX_RING_SIZE …
#define RIONET_RX_RING_SIZE …
#define RIONET_MAX_NETS …
#define RIONET_MSG_SIZE …
#define RIONET_MAX_MTU …
struct rionet_private { … };
struct rionet_peer { … };
struct rionet_net { … };
static struct rionet_net nets[RIONET_MAX_NETS];
#define is_rionet_capable(src_ops, dst_ops) …
#define dev_rionet_capable(dev) …
#define RIONET_MAC_MATCH(x) …
#define RIONET_GET_DESTID(x) …
static int rionet_rx_clean(struct net_device *ndev)
{ … }
static void rionet_rx_fill(struct net_device *ndev, int end)
{ … }
static int rionet_queue_tx_msg(struct sk_buff *skb, struct net_device *ndev,
struct rio_dev *rdev)
{ … }
static netdev_tx_t rionet_start_xmit(struct sk_buff *skb,
struct net_device *ndev)
{ … }
static void rionet_dbell_event(struct rio_mport *mport, void *dev_id, u16 sid, u16 tid,
u16 info)
{ … }
static void rionet_inb_msg_event(struct rio_mport *mport, void *dev_id, int mbox, int slot)
{ … }
static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int mbox, int slot)
{ … }
static int rionet_open(struct net_device *ndev)
{ … }
static int rionet_close(struct net_device *ndev)
{ … }
static void rionet_remove_dev(struct device *dev, struct subsys_interface *sif)
{ … }
static void rionet_get_drvinfo(struct net_device *ndev,
struct ethtool_drvinfo *info)
{ … }
static u32 rionet_get_msglevel(struct net_device *ndev)
{ … }
static void rionet_set_msglevel(struct net_device *ndev, u32 value)
{ … }
static const struct ethtool_ops rionet_ethtool_ops = …;
static const struct net_device_ops rionet_netdev_ops = …;
static int rionet_setup_netdev(struct rio_mport *mport, struct net_device *ndev)
{ … }
static int rionet_add_dev(struct device *dev, struct subsys_interface *sif)
{ … }
static int rionet_shutdown(struct notifier_block *nb, unsigned long code,
void *unused)
{ … }
static void rionet_remove_mport(struct device *dev)
{ … }
#ifdef MODULE
static struct rio_device_id rionet_id_table[] = {
{RIO_DEVICE(RIO_ANY_ID, RIO_ANY_ID)},
{ 0, }
};
MODULE_DEVICE_TABLE(rapidio, rionet_id_table);
#endif
static struct subsys_interface rionet_interface = …;
static struct notifier_block rionet_notifier = …;
static struct class_interface rio_mport_interface __refdata = …;
static int __init rionet_init(void)
{ … }
static void __exit rionet_exit(void)
{ … }
late_initcall(rionet_init);
module_exit(rionet_exit);