Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
vhost.h File Reference
#include <linux/eventfd.h>
#include <linux/vhost.h>
#include <linux/mm.h>
#include <linux/mutex.h>
#include <linux/poll.h>
#include <linux/file.h>
#include <linux/skbuff.h>
#include <linux/uio.h>
#include <linux/virtio_config.h>
#include <linux/virtio_ring.h>
#include <linux/atomic.h>

Go to the source code of this file.

Data Structures

struct  vhost_work
 
struct  vhost_poll
 
struct  vhost_log
 
struct  vhost_ubuf_ref
 
struct  vhost_virtqueue
 
struct  vhost_dev
 

Macros

#define VHOST_DMA_DONE_LEN   1
 
#define VHOST_DMA_CLEAR_LEN   0
 
#define vq_err(vq, fmt,...)
 

Typedefs

typedef void(* vhost_work_fn_t )(struct vhost_work *work)
 

Enumerations

enum  { VHOST_FEATURES, VHOST_NET_FEATURES }
 

Functions

void vhost_work_init (struct vhost_work *work, vhost_work_fn_t fn)
 
void vhost_work_queue (struct vhost_dev *dev, struct vhost_work *work)
 
void vhost_poll_init (struct vhost_poll *poll, vhost_work_fn_t fn, unsigned long mask, struct vhost_dev *dev)
 
void vhost_poll_start (struct vhost_poll *poll, struct file *file)
 
void vhost_poll_stop (struct vhost_poll *poll)
 
void vhost_poll_flush (struct vhost_poll *poll)
 
void vhost_poll_queue (struct vhost_poll *poll)
 
struct vhost_ubuf_refvhost_ubuf_alloc (struct vhost_virtqueue *, bool zcopy)
 
void vhost_ubuf_put (struct vhost_ubuf_ref *)
 
void vhost_ubuf_put_and_wait (struct vhost_ubuf_ref *)
 
long vhost_dev_init (struct vhost_dev *, struct vhost_virtqueue *vqs, int nvqs)
 
long vhost_dev_check_owner (struct vhost_dev *)
 
long vhost_dev_reset_owner (struct vhost_dev *)
 
void vhost_dev_cleanup (struct vhost_dev *, bool locked)
 
long vhost_dev_ioctl (struct vhost_dev *, unsigned int ioctl, unsigned long arg)
 
int vhost_vq_access_ok (struct vhost_virtqueue *vq)
 
int vhost_log_access_ok (struct vhost_dev *)
 
int vhost_get_vq_desc (struct vhost_dev *, struct vhost_virtqueue *, struct iovec iov[], unsigned int iov_count, unsigned int *out_num, unsigned int *in_num, struct vhost_log *log, unsigned int *log_num)
 
void vhost_discard_vq_desc (struct vhost_virtqueue *, int n)
 
int vhost_init_used (struct vhost_virtqueue *)
 
int vhost_add_used (struct vhost_virtqueue *, unsigned int head, int len)
 
int vhost_add_used_n (struct vhost_virtqueue *, struct vring_used_elem *heads, unsigned count)
 
void vhost_add_used_and_signal (struct vhost_dev *, struct vhost_virtqueue *, unsigned int id, int len)
 
void vhost_add_used_and_signal_n (struct vhost_dev *, struct vhost_virtqueue *, struct vring_used_elem *heads, unsigned count)
 
void vhost_signal (struct vhost_dev *, struct vhost_virtqueue *)
 
void vhost_disable_notify (struct vhost_dev *, struct vhost_virtqueue *)
 
bool vhost_enable_notify (struct vhost_dev *, struct vhost_virtqueue *)
 
int vhost_log_write (struct vhost_virtqueue *vq, struct vhost_log *log, unsigned int log_num, u64 len)
 
void vhost_zerocopy_callback (struct ubuf_info *)
 
int vhost_zerocopy_signal_used (struct vhost_virtqueue *vq)
 
void vhost_enable_zcopy (int vq)
 

Macro Definition Documentation

#define VHOST_DMA_CLEAR_LEN   0

Definition at line 19 of file vhost.h.

#define VHOST_DMA_DONE_LEN   1

Definition at line 18 of file vhost.h.

#define vq_err (   vq,
  fmt,
  ... 
)
Value:
do { \
pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
if ((vq)->error_ctx) \
eventfd_signal((vq)->error_ctx, 1);\
} while (0)

Definition at line 197 of file vhost.h.

Typedef Documentation

typedef void(* vhost_work_fn_t)(struct vhost_work *work)

Definition at line 24 of file vhost.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
VHOST_FEATURES 
VHOST_NET_FEATURES 

Definition at line 203 of file vhost.h.

Function Documentation

int vhost_add_used ( struct vhost_virtqueue ,
unsigned int  head,
int  len 
)

Definition at line 1338 of file vhost.c.

void vhost_add_used_and_signal ( struct vhost_dev ,
struct vhost_virtqueue ,
unsigned int  id,
int  len 
)

Definition at line 1498 of file vhost.c.

void vhost_add_used_and_signal_n ( struct vhost_dev ,
struct vhost_virtqueue ,
struct vring_used_elem heads,
unsigned  count 
)

Definition at line 1507 of file vhost.c.

int vhost_add_used_n ( struct vhost_virtqueue ,
struct vring_used_elem heads,
unsigned  count 
)

Definition at line 1420 of file vhost.c.

long vhost_dev_check_owner ( struct vhost_dev )

Definition at line 326 of file vhost.c.

void vhost_dev_cleanup ( struct vhost_dev ,
bool  locked 
)

Definition at line 442 of file vhost.c.

long vhost_dev_init ( struct vhost_dev ,
struct vhost_virtqueue vqs,
int  nvqs 
)

Definition at line 293 of file vhost.c.

long vhost_dev_ioctl ( struct vhost_dev ,
unsigned int  ioctl,
unsigned long  arg 
)

Definition at line 832 of file vhost.c.

long vhost_dev_reset_owner ( struct vhost_dev )

Definition at line 401 of file vhost.c.

void vhost_disable_notify ( struct vhost_dev ,
struct vhost_virtqueue  
)

Definition at line 1553 of file vhost.c.

void vhost_discard_vq_desc ( struct vhost_virtqueue ,
int  n 
)

Definition at line 1331 of file vhost.c.

bool vhost_enable_notify ( struct vhost_dev ,
struct vhost_virtqueue  
)

Definition at line 1516 of file vhost.c.

void vhost_enable_zcopy ( int  vq)

Definition at line 249 of file vhost.c.

int vhost_get_vq_desc ( struct vhost_dev ,
struct vhost_virtqueue ,
struct iovec  iov[],
unsigned int  iov_count,
unsigned int out_num,
unsigned int in_num,
struct vhost_log log,
unsigned int log_num 
)

Definition at line 1208 of file vhost.c.

int vhost_init_used ( struct vhost_virtqueue )

Definition at line 1041 of file vhost.c.

int vhost_log_access_ok ( struct vhost_dev )

Definition at line 568 of file vhost.c.

int vhost_log_write ( struct vhost_virtqueue vq,
struct vhost_log log,
unsigned int  log_num,
u64  len 
)

Definition at line 979 of file vhost.c.

void vhost_poll_flush ( struct vhost_poll poll)

Definition at line 135 of file vhost.c.

void vhost_poll_init ( struct vhost_poll poll,
vhost_work_fn_t  fn,
unsigned long  mask,
struct vhost_dev dev 
)

Definition at line 77 of file vhost.c.

void vhost_poll_queue ( struct vhost_poll poll)

Definition at line 153 of file vhost.c.

void vhost_poll_start ( struct vhost_poll poll,
struct file file 
)

Definition at line 90 of file vhost.c.

void vhost_poll_stop ( struct vhost_poll poll)

Definition at line 101 of file vhost.c.

void vhost_signal ( struct vhost_dev ,
struct vhost_virtqueue  
)

Definition at line 1490 of file vhost.c.

struct vhost_ubuf_ref* vhost_ubuf_alloc ( struct vhost_virtqueue ,
bool  zcopy 
)
read

Definition at line 1575 of file vhost.c.

void vhost_ubuf_put ( struct vhost_ubuf_ref )

Definition at line 1591 of file vhost.c.

void vhost_ubuf_put_and_wait ( struct vhost_ubuf_ref )

Definition at line 1596 of file vhost.c.

int vhost_vq_access_ok ( struct vhost_virtqueue vq)

Definition at line 596 of file vhost.c.

void vhost_work_init ( struct vhost_work work,
vhost_work_fn_t  fn 
)

Definition at line 67 of file vhost.c.

void vhost_work_queue ( struct vhost_dev dev,
struct vhost_work work 
)

Definition at line 140 of file vhost.c.

void vhost_zerocopy_callback ( struct ubuf_info )

Definition at line 1603 of file vhost.c.

int vhost_zerocopy_signal_used ( struct vhost_virtqueue vq)

Definition at line 422 of file vhost.c.