Lines Matching defs:vring
111 len = sizeof(virtqueue->vring.used->ring[idx]);
129 len = sizeof(virtqueue->vring.used->idx);
142 struct rte_vhost_vring *vring = &virtqueue->vring;
143 struct vring_avail *avail = vring->avail;
144 uint16_t size_mask = vring->size - 1;
153 /* Read to clear vring's kickfd */
154 rc = read(vring->kickfd, &u64_value, sizeof(u64_value));
166 if (spdk_unlikely(count > vring->size)) {
183 /* Write to notify vring's kickfd */
184 rc = write(vring->kickfd, &u64_value, sizeof(u64_value));
186 SPDK_ERRLOG("failed to kick vring: %s.\n", spdk_strerror(errno));
193 reqs[i] = vring->avail->ring[(last_idx + i) & size_mask];
226 if (spdk_unlikely(req_idx >= virtqueue->vring.size)) {
230 *desc = &virtqueue->vring.desc[req_idx];
244 *desc_table = virtqueue->vring.desc;
245 *desc_table_size = virtqueue->vring.size;
272 *desc = &virtqueue->vring.desc_packed[req_idx];
388 if (vq->vring.driver_event->flags & VRING_PACKED_EVENT_FLAG_DISABLE) {
392 if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) {
407 if (virtqueue->vring.desc == NULL) {
447 struct rte_vhost_vring *vring = &virtqueue->vring;
448 struct vring_used *used = vring->used;
449 uint16_t last_idx = virtqueue->last_used_idx & (vring->size - 1);
476 if (virtqueue->vring.desc == NULL || vhost_vq_event_is_suppressed(virtqueue)) {
490 struct vring_packed_desc *desc = &virtqueue->vring.desc_packed[virtqueue->last_used_idx];
544 if (virtqueue->last_used_idx >= virtqueue->vring.size) {
545 virtqueue->last_used_idx -= virtqueue->vring.size;
555 uint16_t flags = virtqueue->vring.desc_packed[virtqueue->last_avail_idx].flags;
604 *req_idx = (*req_idx + 1) % vq->vring.size;
605 *desc = &vq->vring.desc_packed[*req_idx];
668 desc = &vq->vring.desc_packed[req_idx];
671 req_idx = (req_idx + 1) % vq->vring.size;
672 desc = &vq->vring.desc_packed[req_idx];
679 * the value is valid(0 ~ vring.size - 1)
681 vq->last_avail_idx = (req_idx + 1) % vq->vring.size;
856 /* vring.desc and vring.desc_packed are in a union struct
857 * so q->vring.desc can replace q->vring.desc_packed.
859 if (q->vring.desc == NULL) {
874 q->vring.desc = NULL;
1004 /* vring.desc and vring.desc_packed are in a union struct
1005 * so q->vring.desc can replace q->vring.desc_packed.
1007 if (q->vring.desc == NULL || q->vring.size == 0) {
1047 if (rte_vhost_get_vhost_vring(vsession->vid, qid, &q->vring)) {
1053 /* vring.desc and vring.desc_packed are in a union struct
1054 * so q->vring.desc can replace q->vring.desc_packed.
1056 if (q->vring.desc == NULL || q->vring.size == 0) {
1061 q->vring.desc = NULL;
1100 q->vring.device_event->flags = VRING_PACKED_EVENT_FLAG_DISABLE;
1103 q->vring.device_event->flags = VRING_PACKED_EVENT_FLAG_ENABLE;
1108 q->vring.used->flags = VRING_USED_F_NO_NOTIFY;
1111 q->vring.used->flags = 0;
1424 /* vring.desc and vring.desc_packed are in a union struct
1425 * so q->vring.desc can replace q->vring.desc_packed.
1427 if (q->vring.desc == NULL || q->vring.size == 0) {
1433 /* In case of race condition, always kick vring when switch to intr */
1434 rc = write(q->vring.kickfd, &num_events, sizeof(num_events));
1436 SPDK_ERRLOG("failed to kick vring: %s.\n", spdk_strerror(errno));