|
1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
2 | | -#ifndef LINUX_VIRTIO_H |
3 | | -#define LINUX_VIRTIO_H |
4 | | -#include <linux/scatterlist.h> |
5 | | -#include <linux/kernel.h> |
6 | | -#include <linux/spinlock.h> |
7 | | - |
8 | | -struct device { |
9 | | - void *parent; |
10 | | -}; |
11 | | - |
12 | | -struct virtio_device { |
13 | | - struct device dev; |
14 | | - u64 features; |
15 | | - struct list_head vqs; |
16 | | - spinlock_t vqs_list_lock; |
17 | | - const struct virtio_config_ops *config; |
18 | | -}; |
19 | | - |
20 | | -struct virtqueue { |
21 | | - struct list_head list; |
22 | | - void (*callback)(struct virtqueue *vq); |
23 | | - const char *name; |
24 | | - struct virtio_device *vdev; |
25 | | - unsigned int index; |
26 | | - unsigned int num_free; |
27 | | - unsigned int num_max; |
28 | | - void *priv; |
29 | | - bool reset; |
30 | | -}; |
31 | | - |
32 | | -/* Interfaces exported by virtio_ring. */ |
33 | | -int virtqueue_add_sgs(struct virtqueue *vq, |
34 | | - struct scatterlist *sgs[], |
35 | | - unsigned int out_sgs, |
36 | | - unsigned int in_sgs, |
37 | | - void *data, |
38 | | - gfp_t gfp); |
39 | | - |
40 | | -int virtqueue_add_outbuf(struct virtqueue *vq, |
41 | | - struct scatterlist sg[], unsigned int num, |
42 | | - void *data, |
43 | | - gfp_t gfp); |
44 | | - |
45 | | -int virtqueue_add_inbuf(struct virtqueue *vq, |
46 | | - struct scatterlist sg[], unsigned int num, |
47 | | - void *data, |
48 | | - gfp_t gfp); |
49 | | - |
50 | | -bool virtqueue_kick(struct virtqueue *vq); |
51 | | - |
52 | | -void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); |
53 | | - |
54 | | -void virtqueue_disable_cb(struct virtqueue *vq); |
55 | | - |
56 | | -bool virtqueue_enable_cb(struct virtqueue *vq); |
57 | | -bool virtqueue_enable_cb_delayed(struct virtqueue *vq); |
58 | | - |
59 | | -void *virtqueue_detach_unused_buf(struct virtqueue *vq); |
60 | | -struct virtqueue *vring_new_virtqueue(unsigned int index, |
61 | | - unsigned int num, |
62 | | - unsigned int vring_align, |
63 | | - struct virtio_device *vdev, |
64 | | - bool weak_barriers, |
65 | | - bool ctx, |
66 | | - void *pages, |
67 | | - bool (*notify)(struct virtqueue *vq), |
68 | | - void (*callback)(struct virtqueue *vq), |
69 | | - const char *name); |
70 | | -void vring_del_virtqueue(struct virtqueue *vq); |
71 | | - |
72 | | -#endif |
| 1 | +#include <../../include/linux/virtio.h> |
0 commit comments