#include <linux/module.h>
#include <linux/debugfs.h>
#include <linux/ntb.h>
#include <linux/pci.h>
#include <linux/radix-tree.h>
#include <linux/workqueue.h>
MODULE_LICENSE(…) …;
MODULE_VERSION(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
static int num_irqs = …;
module_param(num_irqs, int, 0644);
MODULE_PARM_DESC(…) …;
struct ntb_msit_ctx { … };
static struct dentry *ntb_msit_dbgfs_topdir;
static irqreturn_t ntb_msit_isr(int irq, void *dev)
{ … }
static void ntb_msit_setup_work(struct work_struct *work)
{ … }
static void ntb_msit_desc_changed(void *ctx)
{ … }
static void ntb_msit_link_event(void *ctx)
{ … }
static void ntb_msit_copy_peer_desc(struct ntb_msit_ctx *nm, int peer)
{ … }
static void ntb_msit_db_event(void *ctx, int vec)
{ … }
static const struct ntb_ctx_ops ntb_msit_ops = …;
static int ntb_msit_dbgfs_trigger(void *data, u64 idx)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int ntb_msit_dbgfs_port_get(void *data, u64 *port)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int ntb_msit_dbgfs_count_get(void *data, u64 *count)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int ntb_msit_dbgfs_ready_get(void *data, u64 *ready)
{ … }
static int ntb_msit_dbgfs_ready_set(void *data, u64 ready)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int ntb_msit_dbgfs_occurrences_get(void *data, u64 *occurrences)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int ntb_msit_dbgfs_local_port_get(void *data, u64 *port)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static void ntb_msit_create_dbgfs(struct ntb_msit_ctx *nm)
{ … }
static void ntb_msit_remove_dbgfs(struct ntb_msit_ctx *nm)
{ … }
static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
{ … }
static void ntb_msit_remove(struct ntb_client *client, struct ntb_dev *ntb)
{ … }
static struct ntb_client ntb_msit_client = …;
static int __init ntb_msit_init(void)
{ … }
module_init(…) …;
static void __exit ntb_msit_exit(void)
{ … }
module_exit(ntb_msit_exit);