Message ID | 20201126112915.525285-12-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Series | Remove GCC < 4.8 checks | expand |
On Thu, 26 Nov 2020 at 11:30, <marcandre.lureau@redhat.com> wrote: > > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > QEMU requires Clang or GCC, that define and support __GNUC__ extensions > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > include/hw/xen/interface/io/ring.h | 9 --------- > 1 file changed, 9 deletions(-) From QEMU's POV this change is good, but this header seems to have originally been an import from the Xen public headers -- are we happy to diverge from that original or do we prefer to stay as close as possible to the upstream header? Cc'ing the Xen maintainers for their opinion. > diff --git a/include/hw/xen/interface/io/ring.h b/include/hw/xen/interface/io/ring.h > index 5d048b335c..115705f3f4 100644 > --- a/include/hw/xen/interface/io/ring.h > +++ b/include/hw/xen/interface/io/ring.h > @@ -206,21 +206,12 @@ typedef struct __name##_back_ring __name##_back_ring_t > #define RING_HAS_UNCONSUMED_RESPONSES(_r) \ > ((_r)->sring->rsp_prod - (_r)->rsp_cons) > > -#ifdef __GNUC__ > #define RING_HAS_UNCONSUMED_REQUESTS(_r) ({ \ > unsigned int req = (_r)->sring->req_prod - (_r)->req_cons; \ > unsigned int rsp = RING_SIZE(_r) - \ > ((_r)->req_cons - (_r)->rsp_prod_pvt); \ > req < rsp ? req : rsp; \ > }) > -#else > -/* Same as above, but without the nice GCC ({ ... }) syntax. */ > -#define RING_HAS_UNCONSUMED_REQUESTS(_r) \ > - ((((_r)->sring->req_prod - (_r)->req_cons) < \ > - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ? \ > - ((_r)->sring->req_prod - (_r)->req_cons) : \ > - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) > -#endif > > /* Direct access to individual ring elements, by index. */ > #define RING_GET_REQUEST(_r, _idx) \ > -- thanks -- PMM
On Thu, 26 Nov 2020, Peter Maydell wrote: > On Thu, 26 Nov 2020 at 11:30, <marcandre.lureau@redhat.com> wrote: > > > > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > > > QEMU requires Clang or GCC, that define and support __GNUC__ extensions > > > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > > --- > > include/hw/xen/interface/io/ring.h | 9 --------- > > 1 file changed, 9 deletions(-) > > >From QEMU's POV this change is good, but this header seems to have > originally been an import from the Xen public headers -- are we > happy to diverge from that original or do we prefer to stay as > close as possible to the upstream header? Cc'ing the Xen maintainers > for their opinion. Small divergences are not a problem. I think this is OK. > > diff --git a/include/hw/xen/interface/io/ring.h b/include/hw/xen/interface/io/ring.h > > index 5d048b335c..115705f3f4 100644 > > --- a/include/hw/xen/interface/io/ring.h > > +++ b/include/hw/xen/interface/io/ring.h > > @@ -206,21 +206,12 @@ typedef struct __name##_back_ring __name##_back_ring_t > > #define RING_HAS_UNCONSUMED_RESPONSES(_r) \ > > ((_r)->sring->rsp_prod - (_r)->rsp_cons) > > > > -#ifdef __GNUC__ > > #define RING_HAS_UNCONSUMED_REQUESTS(_r) ({ \ > > unsigned int req = (_r)->sring->req_prod - (_r)->req_cons; \ > > unsigned int rsp = RING_SIZE(_r) - \ > > ((_r)->req_cons - (_r)->rsp_prod_pvt); \ > > req < rsp ? req : rsp; \ > > }) > > -#else > > -/* Same as above, but without the nice GCC ({ ... }) syntax. */ > > -#define RING_HAS_UNCONSUMED_REQUESTS(_r) \ > > - ((((_r)->sring->req_prod - (_r)->req_cons) < \ > > - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ? \ > > - ((_r)->sring->req_prod - (_r)->req_cons) : \ > > - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) > > -#endif > > > > /* Direct access to individual ring elements, by index. */ > > #define RING_GET_REQUEST(_r, _idx) \
diff --git a/include/hw/xen/interface/io/ring.h b/include/hw/xen/interface/io/ring.h index 5d048b335c..115705f3f4 100644 --- a/include/hw/xen/interface/io/ring.h +++ b/include/hw/xen/interface/io/ring.h @@ -206,21 +206,12 @@ typedef struct __name##_back_ring __name##_back_ring_t #define RING_HAS_UNCONSUMED_RESPONSES(_r) \ ((_r)->sring->rsp_prod - (_r)->rsp_cons) -#ifdef __GNUC__ #define RING_HAS_UNCONSUMED_REQUESTS(_r) ({ \ unsigned int req = (_r)->sring->req_prod - (_r)->req_cons; \ unsigned int rsp = RING_SIZE(_r) - \ ((_r)->req_cons - (_r)->rsp_prod_pvt); \ req < rsp ? req : rsp; \ }) -#else -/* Same as above, but without the nice GCC ({ ... }) syntax. */ -#define RING_HAS_UNCONSUMED_REQUESTS(_r) \ - ((((_r)->sring->req_prod - (_r)->req_cons) < \ - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ? \ - ((_r)->sring->req_prod - (_r)->req_cons) : \ - (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) -#endif /* Direct access to individual ring elements, by index. */ #define RING_GET_REQUEST(_r, _idx) \