From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id 2665B1CEBD for ; Fri, 6 Apr 2018 11:20:18 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8B4F881902A2; Fri, 6 Apr 2018 09:20:17 +0000 (UTC) Received: from [10.36.112.46] (ovpn-112-46.ams2.redhat.com [10.36.112.46]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2CF1F1251C71; Fri, 6 Apr 2018 09:20:11 +0000 (UTC) To: Jens Freimann , dev@dpdk.org Cc: tiwei.bie@intel.com, yliu@fridaylinux.org, mst@redhat.com References: <20180405101031.26468-1-jfreimann@redhat.com> <20180405101031.26468-14-jfreimann@redhat.com> From: Maxime Coquelin Message-ID: <955ef4fc-eacf-12ed-797b-9d274bbeb054@redhat.com> Date: Fri, 6 Apr 2018 11:20:10 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180405101031.26468-14-jfreimann@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 06 Apr 2018 09:20:17 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 06 Apr 2018 09:20:17 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'maxime.coquelin@redhat.com' RCPT:'' Subject: Re: [dpdk-dev] [PATCH v3 13/21] vhost: add helpers for packed virtqueues X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Apr 2018 09:20:18 -0000 On 04/05/2018 12:10 PM, Jens Freimann wrote: > Add some helper functions to set/check descriptor flags > and toggle the used wrap counter. > > Signed-off-by: Jens Freimann > --- > lib/librte_vhost/virtio-1.1.h | 44 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/lib/librte_vhost/virtio-1.1.h b/lib/librte_vhost/virtio-1.1.h > index 7b48caed7..e77d7aa6c 100644 > --- a/lib/librte_vhost/virtio-1.1.h > +++ b/lib/librte_vhost/virtio-1.1.h Shouldn't the file be named virtio-packed.h? > @@ -15,4 +15,48 @@ struct vring_desc_packed { > uint16_t flags; > }; > > +static inline void > +toggle_wrap_counter(struct vhost_virtqueue *vq) > +{ > + vq->used_wrap_counter ^= 1; > +} > + > +static inline int > +desc_is_avail(struct vhost_virtqueue *vq, struct vring_desc_packed *desc) > +{ > + if (vq->used_wrap_counter == 1) { > + if ((desc->flags & VRING_DESC_F_AVAIL) && > + !(desc->flags & VRING_DESC_F_USED)) > + return 1; > + } > + if (vq->used_wrap_counter == 0) { > + if (!(desc->flags & VRING_DESC_F_AVAIL) && > + (desc->flags & VRING_DESC_F_USED)) > + return 1; > + } > + return 0; > +} > + > +static inline void > +_set_desc_used(struct vring_desc_packed *desc, int wrap_counter) > +{ > + uint16_t flags = desc->flags; > + > + if (wrap_counter == 1) { > + flags |= VRING_DESC_F_USED; > + flags |= VRING_DESC_F_AVAIL; > + } else { > + flags &= ~VRING_DESC_F_USED; > + flags &= ~VRING_DESC_F_AVAIL; > + } > + > + desc->flags = flags; > +} > + > +static inline void > +set_desc_used(struct vhost_virtqueue *vq, struct vring_desc_packed *desc) > +{ > + _set_desc_used(desc, vq->used_wrap_counter); > +} > + Maybe prefix all with vring_ > #endif /* __VIRTIO_PACKED_H */ >