aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/virtio.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2012-01-12 00:14:42 -0500
committerRusty Russell <rusty@rustcorp.com.au>2012-01-12 00:14:42 -0500
commit5dfc17628d57f9e62043ed0cba03a6e3eb019a78 (patch)
treea488dd3ea081166342904224db3cf039758f23d4 /include/linux/virtio.h
parent1e214a5c1a7e901fc8e98ad6ef84f11005f9ee9d (diff)
virtio: document functions better.
The old documentation is left over from when we used a structure with strategy pointers. And move the documentation to the C file as per kernel practice. Though I disagree... Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'include/linux/virtio.h')
-rw-r--r--include/linux/virtio.h47
1 files changed, 0 insertions, 47 deletions
diff --git a/include/linux/virtio.h b/include/linux/virtio.h
index 4c069d8bd740..73ad7243128f 100644
--- a/include/linux/virtio.h
+++ b/include/linux/virtio.h
@@ -25,53 +25,6 @@ struct virtqueue {
25 void *priv; 25 void *priv;
26}; 26};
27 27
28/**
29 * operations for virtqueue
30 * virtqueue_add_buf: expose buffer to other end
31 * vq: the struct virtqueue we're talking about.
32 * sg: the description of the buffer(s).
33 * out_num: the number of sg readable by other side
34 * in_num: the number of sg which are writable (after readable ones)
35 * data: the token identifying the buffer.
36 * gfp: how to do memory allocations (if necessary).
37 * Returns remaining capacity of queue (sg segments) or a negative error.
38 * virtqueue_kick: update after add_buf
39 * vq: the struct virtqueue
40 * After one or more add_buf calls, invoke this to kick the other side.
41 * virtqueue_get_buf: get the next used buffer
42 * vq: the struct virtqueue we're talking about.
43 * len: the length written into the buffer
44 * Returns NULL or the "data" token handed to add_buf.
45 * virtqueue_disable_cb: disable callbacks
46 * vq: the struct virtqueue we're talking about.
47 * Note that this is not necessarily synchronous, hence unreliable and only
48 * useful as an optimization.
49 * virtqueue_enable_cb: restart callbacks after disable_cb.
50 * vq: the struct virtqueue we're talking about.
51 * This re-enables callbacks; it returns "false" if there are pending
52 * buffers in the queue, to detect a possible race between the driver
53 * checking for more work, and enabling callbacks.
54 * virtqueue_enable_cb_delayed: restart callbacks after disable_cb.
55 * vq: the struct virtqueue we're talking about.
56 * This re-enables callbacks but hints to the other side to delay
57 * interrupts until most of the available buffers have been processed;
58 * it returns "false" if there are many pending buffers in the queue,
59 * to detect a possible race between the driver checking for more work,
60 * and enabling callbacks.
61 * virtqueue_detach_unused_buf: detach first unused buffer
62 * vq: the struct virtqueue we're talking about.
63 * Returns NULL or the "data" token handed to add_buf
64 * virtqueue_get_vring_size: return the size of the virtqueue's vring
65 * vq: the struct virtqueue containing the vring of interest.
66 * Returns the size of the vring.
67 *
68 * Locking rules are straightforward: the driver is responsible for
69 * locking. No two operations may be invoked simultaneously, with the exception
70 * of virtqueue_disable_cb.
71 *
72 * All operations can be called in any context.
73 */
74
75int virtqueue_add_buf_gfp(struct virtqueue *vq, 28int virtqueue_add_buf_gfp(struct virtqueue *vq,
76 struct scatterlist sg[], 29 struct scatterlist sg[],
77 unsigned int out_num, 30 unsigned int out_num,