~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/virtio/linux/virtio.h

Version: ~ [ linux-5.10-rc1 ] ~ [ linux-5.9.1 ] ~ [ linux-5.8.16 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.72 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.152 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.202 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.240 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.240 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 
  7 struct device {
  8         void *parent;
  9 };
 10 
 11 struct virtio_device {
 12         struct device dev;
 13         u64 features;
 14 };
 15 
 16 struct virtqueue {
 17         /* TODO: commented as list macros are empty stubs for now.
 18          * Broken but enough for virtio_ring.c
 19          * struct list_head list; */
 20         void (*callback)(struct virtqueue *vq);
 21         const char *name;
 22         struct virtio_device *vdev;
 23         unsigned int index;
 24         unsigned int num_free;
 25         void *priv;
 26 };
 27 
 28 /* Interfaces exported by virtio_ring. */
 29 int virtqueue_add_sgs(struct virtqueue *vq,
 30                       struct scatterlist *sgs[],
 31                       unsigned int out_sgs,
 32                       unsigned int in_sgs,
 33                       void *data,
 34                       gfp_t gfp);
 35 
 36 int virtqueue_add_outbuf(struct virtqueue *vq,
 37                          struct scatterlist sg[], unsigned int num,
 38                          void *data,
 39                          gfp_t gfp);
 40 
 41 int virtqueue_add_inbuf(struct virtqueue *vq,
 42                         struct scatterlist sg[], unsigned int num,
 43                         void *data,
 44                         gfp_t gfp);
 45 
 46 bool virtqueue_kick(struct virtqueue *vq);
 47 
 48 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len);
 49 
 50 void virtqueue_disable_cb(struct virtqueue *vq);
 51 
 52 bool virtqueue_enable_cb(struct virtqueue *vq);
 53 bool virtqueue_enable_cb_delayed(struct virtqueue *vq);
 54 
 55 void *virtqueue_detach_unused_buf(struct virtqueue *vq);
 56 struct virtqueue *vring_new_virtqueue(unsigned int index,
 57                                       unsigned int num,
 58                                       unsigned int vring_align,
 59                                       struct virtio_device *vdev,
 60                                       bool weak_barriers,
 61                                       bool ctx,
 62                                       void *pages,
 63                                       bool (*notify)(struct virtqueue *vq),
 64                                       void (*callback)(struct virtqueue *vq),
 65                                       const char *name);
 66 void vring_del_virtqueue(struct virtqueue *vq);
 67 
 68 #endif
 69 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp