#include <linux/module.h>
#include <net/addrconf.h>
#include <rdma/erdma-abi.h>
#include "erdma.h"
#include "erdma_cm.h"
#include "erdma_verbs.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int erdma_netdev_event(struct notifier_block *nb, unsigned long event,
void *arg)
{ … }
static int erdma_enum_and_get_netdev(struct erdma_dev *dev)
{ … }
static int erdma_device_register(struct erdma_dev *dev)
{ … }
static irqreturn_t erdma_comm_irq_handler(int irq, void *data)
{ … }
static int erdma_request_vectors(struct erdma_dev *dev)
{ … }
static int erdma_comm_irq_init(struct erdma_dev *dev)
{ … }
static void erdma_comm_irq_uninit(struct erdma_dev *dev)
{ … }
static int erdma_device_init(struct erdma_dev *dev, struct pci_dev *pdev)
{ … }
static void erdma_device_uninit(struct erdma_dev *dev)
{ … }
static void erdma_hw_reset(struct erdma_dev *dev)
{ … }
static int erdma_wait_hw_init_done(struct erdma_dev *dev)
{ … }
static const struct pci_device_id erdma_pci_tbl[] = …;
static int erdma_probe_dev(struct pci_dev *pdev)
{ … }
static void erdma_remove_dev(struct pci_dev *pdev)
{ … }
#define ERDMA_GET_CAP(name, cap) …
static int erdma_dev_attrs_init(struct erdma_dev *dev)
{ … }
static int erdma_device_config(struct erdma_dev *dev)
{ … }
static int erdma_res_cb_init(struct erdma_dev *dev)
{ … }
static void erdma_res_cb_free(struct erdma_dev *dev)
{ … }
static const struct ib_device_ops erdma_device_ops = …;
static int erdma_ib_device_add(struct pci_dev *pdev)
{ … }
static void erdma_ib_device_remove(struct pci_dev *pdev)
{ … }
static int erdma_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static void erdma_remove(struct pci_dev *pdev)
{ … }
static struct pci_driver erdma_pci_driver = …;
MODULE_DEVICE_TABLE(pci, erdma_pci_tbl);
static __init int erdma_init_module(void)
{ … }
static void __exit erdma_exit_module(void)
{ … }
module_init(…) …;
module_exit(erdma_exit_module);