Lines Matching +full:- +full:- +full:disable +full:- +full:xen
35 #include "standard-headers/linux/types.h"
36 #include "standard-headers/linux/virtio_types.h"
40 /* This marks a buffer as write-only (otherwise read-only). */
52 /* The Host uses this in used->flags to advise the Guest: don't kick me when
56 /* The Guest uses this in avail->flags to advise the Host: don't interrupt me
63 /* Disable events in packed ring. */
82 * at the end of the avail ring. Host should ignore the avail->flags field. */
84 * at the end of the used ring. Guest should ignore the used->flags field. */
88 * When using pre-virtio 1.0 layout, these fall out naturally.
95 * struct vring_desc - Virtio ring descriptors,
98 * @addr: buffer address (guest-physical)
137 * alignments assumptions. Thus, we might need to decrease the compiler-selected
141 * https://gcc.gnu.org/onlinedocs//gcc/Common-Type-Attributes.html#Common-Type-Attributes
176 * // A ring of available descriptor heads with free-running index.
185 * // A ring of used descriptor heads with free-running index.
194 #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num])
195 #define vring_avail_event(vr) (*(__virtio16 *)&(vr)->used->ring[(vr)->num])
200 vr->num = num; in vring_init()
201 vr->desc = p; in vring_init()
202 vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc)); in vring_init()
203 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16) in vring_init()
204 + align-1) & ~(align - 1)); in vring_init()
210 + align - 1) & ~(align - 1)) in vring_size()
222 /* Note: Xen has similar logic for notification hold-off in vring_need_event()
223 * in include/xen/interface/io/ring.h with req_event and req_prod in vring_need_event()
225 * Note also that req_event and req_prod in Xen start at 1, in vring_need_event()
227 return (uint16_t)(new_idx - event_idx - 1) < (uint16_t)(new_idx - old); in vring_need_event()