#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>
Go to the source code of this file.
|
| 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) |
| |
◆ module_virtio_driver
| #define module_virtio_driver |
( |
|
drv | ) |
|
Value: static int __init drv##_init(
void) \
{ \
} \
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 + \
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 |
◆ register_virtio_driver()
◆ unregister_virtio_driver()
◆ virtio_break_device()
◆ virtio_del_vqs()
◆ virtio_device_ready()
◆ virtio_device_register()
◆ virtio_find_single_vq()
◆ virtio_find_vqs()
◆ 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()
◆ virtio_rng_detect()
| void virtio_rng_detect |
( |
void |
| ) |
|
◆ virtqueue_add_inbuf()
◆ 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()
◆ 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()
◆ 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()
◆ virtqueue_kick()
◆ virtqueue_kick_prepare()
◆ virtqueue_notify()
| void virtqueue_notify |
( |
struct virtqueue * |
vq | ) |
|