Lines Matching refs:last_used_idx

186 	u16 last_used_idx;  member
401 vq->last_used_idx = 0 | (1 << VRING_PACKED_EVENT_F_WRAP_CTR); in virtqueue_init()
403 vq->last_used_idx = 0; in virtqueue_init()
783 return vq->last_used_idx != virtio16_to_cpu(vq->vq.vdev, in more_used_split()
812 last_used = (vq->last_used_idx & (vq->split.vring.num - 1)); in virtqueue_get_buf_ctx_split()
830 vq->last_used_idx++; in virtqueue_get_buf_ctx_split()
837 cpu_to_virtio16(_vq->vdev, vq->last_used_idx)); in virtqueue_get_buf_ctx_split()
864 u16 last_used_idx; in virtqueue_enable_cb_prepare_split() local
881 last_used_idx = vq->last_used_idx); in virtqueue_enable_cb_prepare_split()
883 return last_used_idx; in virtqueue_enable_cb_prepare_split()
886 static bool virtqueue_poll_split(struct virtqueue *_vq, unsigned int last_used_idx) in virtqueue_poll_split() argument
890 return (u16)last_used_idx != virtio16_to_cpu(_vq->vdev, in virtqueue_poll_split()
914 bufs = (u16)(vq->split.avail_idx_shadow - vq->last_used_idx) * 3 / 4; in virtqueue_enable_cb_delayed_split()
918 cpu_to_virtio16(_vq->vdev, vq->last_used_idx + bufs)); in virtqueue_enable_cb_delayed_split()
921 - vq->last_used_idx) > bufs)) { in virtqueue_enable_cb_delayed_split()
1163 static inline bool packed_used_wrap_counter(u16 last_used_idx) in packed_used_wrap_counter() argument
1165 return !!(last_used_idx & (1 << VRING_PACKED_EVENT_F_WRAP_CTR)); in packed_used_wrap_counter()
1168 static inline u16 packed_last_used(u16 last_used_idx) in packed_last_used() argument
1170 return last_used_idx & ~(-(1 << VRING_PACKED_EVENT_F_WRAP_CTR)); in packed_last_used()
1606 u16 last_used_idx; in more_used_packed() local
1609 last_used_idx = READ_ONCE(vq->last_used_idx); in more_used_packed()
1610 last_used = packed_last_used(last_used_idx); in more_used_packed()
1611 used_wrap_counter = packed_used_wrap_counter(last_used_idx); in more_used_packed()
1620 u16 last_used, id, last_used_idx; in virtqueue_get_buf_ctx_packed() local
1640 last_used_idx = READ_ONCE(vq->last_used_idx); in virtqueue_get_buf_ctx_packed()
1641 used_wrap_counter = packed_used_wrap_counter(last_used_idx); in virtqueue_get_buf_ctx_packed()
1642 last_used = packed_last_used(last_used_idx); in virtqueue_get_buf_ctx_packed()
1666 WRITE_ONCE(vq->last_used_idx, last_used); in virtqueue_get_buf_ctx_packed()
1676 cpu_to_le16(vq->last_used_idx)); in virtqueue_get_buf_ctx_packed()
1708 cpu_to_le16(vq->last_used_idx); in virtqueue_enable_cb_prepare_packed()
1725 return vq->last_used_idx; in virtqueue_enable_cb_prepare_packed()
1743 u16 used_idx, wrap_counter, last_used_idx; in virtqueue_enable_cb_delayed_packed() local
1756 last_used_idx = READ_ONCE(vq->last_used_idx); in virtqueue_enable_cb_delayed_packed()
1757 wrap_counter = packed_used_wrap_counter(last_used_idx); in virtqueue_enable_cb_delayed_packed()
1759 used_idx = packed_last_used(last_used_idx) + bufs; in virtqueue_enable_cb_delayed_packed()
1789 last_used_idx = READ_ONCE(vq->last_used_idx); in virtqueue_enable_cb_delayed_packed()
1790 wrap_counter = packed_used_wrap_counter(last_used_idx); in virtqueue_enable_cb_delayed_packed()
1791 used_idx = packed_last_used(last_used_idx); in virtqueue_enable_cb_delayed_packed()
2358 bool virtqueue_poll(struct virtqueue *_vq, unsigned int last_used_idx) in virtqueue_poll() argument
2366 return vq->packed_ring ? virtqueue_poll_packed(_vq, last_used_idx) : in virtqueue_poll()
2367 virtqueue_poll_split(_vq, last_used_idx); in virtqueue_poll()
2384 unsigned int last_used_idx = virtqueue_enable_cb_prepare(_vq); in virtqueue_enable_cb() local
2386 return !virtqueue_poll(_vq, last_used_idx); in virtqueue_enable_cb()