XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions
virtio.h File Reference
#include <stdint.h>
#include <stddef.h>
#include <linux/kernel.h>
#include <linux/scatterlist.h>
#include <linux/string.h>
#include <linux/completion.h>
#include <linux/pm.h>
#include <linux/idr.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/device/driver.h>
#include <linux/list.h>
#include <Drivers/virtio.h>
#include <uapi/linux/virtio_config.h>
Include dependency graph for virtio.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  virtqueue_info
 
struct  virtio_config_ops
 
struct  virtio_device_id
 
struct  virtio_device
 
struct  virtio_driver
 
struct  virtqueue
 

Macros

#define VIRTIO_F_NOTIFY_ON_EMPTY   24
 
#define VIRTIO_RING_F_INDIRECT_DESC   28
 
#define VIRTIO_RING_F_EVENT_IDX   29
 
#define VIRTIO_DEV_ANY_ID   ((unsigned int)-1)
 
#define VRING_DESC_F_NEXT   1
 
#define VRING_DESC_F_WRITE   2
 
#define VRING_DESC_F_INDIRECT   4
 
#define module_virtio_driver(drv)
 
#define virtio_cread(vdev, type, field, ptr)
 

Functions

int register_virtio_driver (struct virtio_driver *driver)
 
void unregister_virtio_driver (struct virtio_driver *driver)
 
void virtio_poll_vqs (void)
 
void virtio_poll_input_vqs (void)
 
struct virtqueue * virtio_find_single_vq (struct virtio_device *vdev, void(*cb)(struct virtqueue *vq), const char *name)
 
void virtio_device_ready (struct virtio_device *vdev)
 
void virtio_reset_device (struct virtio_device *dev)
 
void virtio_rng_detect (void)
 
int virtio_input_detect (void)
 
int virtio_find_vqs (struct virtio_device *vdev, unsigned nvqs, struct virtqueue **vqs, struct virtqueue_info *vqs_info, void *desc)
 
void virtio_del_vqs (struct virtio_device *vdev)
 
int virtqueue_add_inbuf (struct virtqueue *vq, struct scatterlist *sg, unsigned int num_in, void *data, gfp_t gfp)
 
int virtqueue_add_inbuf_cache_clean (struct virtqueue *vq, struct scatterlist *sg, unsigned int num_in, void *data, gfp_t gfp)
 
unsigned int virtqueue_get_vring_size (const struct virtqueue *vq)
 
int virtqueue_add_sgs (struct virtqueue *vq, struct scatterlist *sgs[], unsigned int out_cnt, unsigned int in_cnt, void *data, gfp_t gfp)
 
bool virtqueue_kick (struct virtqueue *vq)
 
bool virtqueue_kick_prepare (struct virtqueue *vq)
 
void virtqueue_notify (struct virtqueue *vq)
 
void * virtqueue_get_buf (struct virtqueue *vq, unsigned int *len)
 
int virtqueue_add_outbuf (struct virtqueue *vq, struct scatterlist sg[], unsigned int num, void *data, gfp_t gfp)
 
void virtqueue_disable_cb (struct virtqueue *vq)
 
bool virtqueue_enable_cb (struct virtqueue *vq)
 
void * virtqueue_detach_unused_buf (struct virtqueue *vq)
 
bool virtqueue_is_broken (const struct virtqueue *vq)
 
void virtio_break_device (struct virtio_device *dev)
 
void virtio_device_register (struct virtio_device *vdev, struct VirtioPCIDevice *au_dev, int dev_index)
 

Macro Definition Documentation

◆ module_virtio_driver

#define module_virtio_driver (   drv)
Value:
static int __init drv##_init(void) \
{ \
return register_virtio_driver(&(drv)); \
} \
module_init(drv##_init)
#define __init
Definition aclinux.h:309
void register_virtio_driver(void)

◆ virtio_cread

#define virtio_cread (   vdev,
  type,
  field,
  ptr 
)
Value:
do { \
memcpy((ptr), \
(char*)(vdev)->config->device_config_base + \
offsetof(type, field), \
sizeof(*(ptr))); \
} while (0)
#define offsetof(type, member)
Definition kernel.h:177

◆ VIRTIO_DEV_ANY_ID

#define VIRTIO_DEV_ANY_ID   ((unsigned int)-1)

◆ VIRTIO_F_NOTIFY_ON_EMPTY

#define VIRTIO_F_NOTIFY_ON_EMPTY   24

◆ VIRTIO_RING_F_EVENT_IDX

#define VIRTIO_RING_F_EVENT_IDX   29

◆ VIRTIO_RING_F_INDIRECT_DESC

#define VIRTIO_RING_F_INDIRECT_DESC   28

◆ VRING_DESC_F_INDIRECT

#define VRING_DESC_F_INDIRECT   4

◆ VRING_DESC_F_NEXT

#define VRING_DESC_F_NEXT   1

◆ VRING_DESC_F_WRITE

#define VRING_DESC_F_WRITE   2

Function Documentation

◆ register_virtio_driver()

int register_virtio_driver ( struct virtio_driver *  driver)

◆ unregister_virtio_driver()

void unregister_virtio_driver ( struct virtio_driver *  driver)

◆ virtio_break_device()

void virtio_break_device ( struct virtio_device *  dev)

◆ virtio_del_vqs()

void virtio_del_vqs ( struct virtio_device *  vdev)

◆ virtio_device_ready()

void virtio_device_ready ( struct virtio_device *  vdev)

◆ virtio_device_register()

void virtio_device_register ( struct virtio_device *  vdev,
struct VirtioPCIDevice *  au_dev,
int  dev_index 
)

◆ virtio_find_single_vq()

struct virtqueue * virtio_find_single_vq ( struct virtio_device *  vdev,
void(*)(struct virtqueue *vq)  cb,
const char *  name 
)

◆ virtio_find_vqs()

int virtio_find_vqs ( struct virtio_device *  vdev,
unsigned  nvqs,
struct virtqueue **  vqs,
struct virtqueue_info *  vqs_info,
void *  desc 
)

◆ virtio_input_detect()

int virtio_input_detect ( void  )

◆ virtio_poll_input_vqs()

void virtio_poll_input_vqs ( void  )

◆ virtio_poll_vqs()

void virtio_poll_vqs ( void  )

◆ virtio_reset_device()

void virtio_reset_device ( struct virtio_device *  dev)

◆ virtio_rng_detect()

void virtio_rng_detect ( void  )

◆ virtqueue_add_inbuf()

int virtqueue_add_inbuf ( struct virtqueue *  vq,
struct scatterlist *  sg,
unsigned int  num_in,
void *  data,
gfp_t  gfp 
)

◆ virtqueue_add_inbuf_cache_clean()

int virtqueue_add_inbuf_cache_clean ( struct virtqueue *  vq,
struct scatterlist *  sg,
unsigned int  num_in,
void *  data,
gfp_t  gfp 
)

◆ virtqueue_add_outbuf()

int virtqueue_add_outbuf ( struct virtqueue *  vq,
struct scatterlist  sg[],
unsigned int  num,
void *  data,
gfp_t  gfp 
)

◆ virtqueue_add_sgs()

int virtqueue_add_sgs ( struct virtqueue *  vq,
struct scatterlist *  sgs[],
unsigned int  out_cnt,
unsigned int  in_cnt,
void *  data,
gfp_t  gfp 
)

◆ virtqueue_detach_unused_buf()

void * virtqueue_detach_unused_buf ( struct virtqueue *  vq)

◆ virtqueue_disable_cb()

void virtqueue_disable_cb ( struct virtqueue *  vq)

◆ virtqueue_enable_cb()

bool virtqueue_enable_cb ( struct virtqueue *  vq)

◆ virtqueue_get_buf()

void * virtqueue_get_buf ( struct virtqueue *  vq,
unsigned int *  len 
)

◆ virtqueue_get_vring_size()

unsigned int virtqueue_get_vring_size ( const struct virtqueue *  vq)

◆ virtqueue_is_broken()

bool virtqueue_is_broken ( const struct virtqueue *  vq)

◆ virtqueue_kick()

bool virtqueue_kick ( struct virtqueue *  vq)

◆ virtqueue_kick_prepare()

bool virtqueue_kick_prepare ( struct virtqueue *  vq)

◆ virtqueue_notify()

void virtqueue_notify ( struct virtqueue *  vq)