| 129 | #define vring_avail_event(vr) (*(uint16_t *)&(vr)->used->ring[(vr)->num]) |
| 130 | |
| 131 | static inline size_t |
| 132 | vring_size(struct virtio_hw *hw, unsigned int num, unsigned long align) |
| 133 | { |
| 134 | size_t size; |
| 135 | |
| 136 | if (virtio_with_packed_queue(hw)) { |
| 137 | size = num * sizeof(struct vring_packed_desc); |
| 138 | size += sizeof(struct vring_packed_desc_event); |
| 139 | size = RTE_ALIGN_CEIL(size, align); |
| 140 | size += sizeof(struct vring_packed_desc_event); |
| 141 | return size; |
| 142 | } |
| 143 | |
| 144 | size = num * sizeof(struct vring_desc); |
| 145 | size += sizeof(struct vring_avail) + (num * sizeof(uint16_t)); |
| 146 | size = RTE_ALIGN_CEIL(size, align); |
| 147 | size += sizeof(struct vring_used) + |
| 148 | (num * sizeof(struct vring_used_elem)); |
| 149 | return size; |
| 150 | } |
| 151 | static inline void |
| 152 | vring_init_split(struct vring *vr, uint8_t *p, unsigned long align, |
| 153 | unsigned int num) |
no test coverage detected