#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/poll.h>
#include "hyperv_vmbus.h"
#include "hv_utils_transport.h"
static DEFINE_SPINLOCK(hvt_list_lock);
static LIST_HEAD(hvt_list);
static void hvt_reset(struct hvutil_transport *hvt)
{ … }
static ssize_t hvt_op_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{ … }
static ssize_t hvt_op_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{ … }
static __poll_t hvt_op_poll(struct file *file, poll_table *wait)
{ … }
static int hvt_op_open(struct inode *inode, struct file *file)
{ … }
static void hvt_transport_free(struct hvutil_transport *hvt)
{ … }
static int hvt_op_release(struct inode *inode, struct file *file)
{ … }
static void hvt_cn_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
{ … }
int hvutil_transport_send(struct hvutil_transport *hvt, void *msg, int len,
void (*on_read_cb)(void))
{ … }
struct hvutil_transport *hvutil_transport_init(const char *name,
u32 cn_idx, u32 cn_val,
int (*on_msg)(void *, int),
void (*on_reset)(void))
{ … }
void hvutil_transport_destroy(struct hvutil_transport *hvt)
{ … }