Message ID | 1506492816-25954-2-git-send-email-bhupinder.thakur@linaro.org |
---|---|
State | Accepted |
Commit | af8d9356417cb617b635c5ace782388ebfe86e3a |
Headers | show |
Series | SBSA UART emulation support in Xen | expand |
On Wed, 27 Sep 2017, Bhupinder Thakur wrote: > DEFINE_XEN_FLEX_RING(xencons) defines common helper functions such as > xencons_queued() to tell the current size of the ring buffer, > xencons_mask() to mask off the index, which are useful helper functions. > pl011 emulation code will use these helper functions. > > io/console.h includes io/ring.h which defines DEFINE_XEN_FLEX_RING. > > In console/daemon/io.c, string.h had to be included before io/console.h > because ring.h uses string functions. > > Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > Acked-by: Wei Liu <wei.liu2@citrix.com> > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> With the changes you should have probably removed my old reviewed-by. But that's OK: Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> If it's OK for everybody, I'll go ahead and commit the series on Monday. Jan, shout if you disagree on something. Cheers, Stefano > --- > CC: Ian Jackson <ian.jackson@eu.citrix.com> > CC: Wei Liu <wei.liu2@citrix.com> > CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Julien Grall <julien.grall@arm.com> > > Changes since v10: > - Fix for the headers.chk/headers++.chk compilation failures when code is compiled natively. > 1) Inclusion of DEFINE_XEN_FLEX_RING in console.h had to be put under > !defined(__STRICT_ANSI__) check as console.h is __STRICT_ANSI__ > currently since it is part of headers.chk. > 2) Also string header file had to be added as a pre-req for headers++.chk to pass > the compilation because c++ does not define __STRICT_ANSI__ and thus > expands DEFINE_XEN_FLEX_RING, which looks for memcpy(), size_t declarations. > To satify that requirement string header file had to be added a pre-req > for header++.chk. > > Changes since v4: > - Split this change in a separate patch. > > tools/console/daemon/io.c | 2 +- > xen/include/public/io/console.h | 4 ++++ > 2 files changed, 5 insertions(+), 1 deletion(-) > > tools/console/daemon/io.c | 2 +- > xen/include/Makefile | 1 + > xen/include/public/io/console.h | 6 ++++++ > 3 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c > index 7e474bb..e8033d2 100644 > --- a/tools/console/daemon/io.c > +++ b/tools/console/daemon/io.c > @@ -21,6 +21,7 @@ > > #include "utils.h" > #include "io.h" > +#include <string.h> > #include <xenevtchn.h> > #include <xengnttab.h> > #include <xenstore.h> > @@ -29,7 +30,6 @@ > > #include <stdlib.h> > #include <errno.h> > -#include <string.h> > #include <poll.h> > #include <fcntl.h> > #include <unistd.h> > diff --git a/xen/include/Makefile b/xen/include/Makefile > index 1299b19..c90fdee 100644 > --- a/xen/include/Makefile > +++ b/xen/include/Makefile > @@ -98,6 +98,7 @@ PUBLIC_C99_HEADERS := public/io/9pfs.h public/io/pvcalls.h > PUBLIC_ANSI_HEADERS := $(filter-out public/%ctl.h public/xsm/% public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS)) > > public/io/9pfs.h-prereq := string > +public/io/console.h-prereq := string > public/io/pvcalls.h-prereq := string > > headers.chk: $(PUBLIC_ANSI_HEADERS) Makefile > diff --git a/xen/include/public/io/console.h b/xen/include/public/io/console.h > index e2cd97f..0f0711f 100644 > --- a/xen/include/public/io/console.h > +++ b/xen/include/public/io/console.h > @@ -27,6 +27,8 @@ > #ifndef __XEN_PUBLIC_IO_CONSOLE_H__ > #define __XEN_PUBLIC_IO_CONSOLE_H__ > > +#include "ring.h" > + > typedef uint32_t XENCONS_RING_IDX; > > #define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1)) > @@ -38,6 +40,10 @@ struct xencons_interface { > XENCONS_RING_IDX out_cons, out_prod; > }; > > +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) > +DEFINE_XEN_FLEX_RING(xencons); > +#endif > + > #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */ > > /* > -- > 2.7.4 >
Hi Stefano, On 09/29/2017 09:10 PM, Stefano Stabellini wrote: > On Wed, 27 Sep 2017, Bhupinder Thakur wrote: >> DEFINE_XEN_FLEX_RING(xencons) defines common helper functions such as >> xencons_queued() to tell the current size of the ring buffer, >> xencons_mask() to mask off the index, which are useful helper functions. >> pl011 emulation code will use these helper functions. >> >> io/console.h includes io/ring.h which defines DEFINE_XEN_FLEX_RING. >> >> In console/daemon/io.c, string.h had to be included before io/console.h >> because ring.h uses string functions. >> >> Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org> >> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> >> Acked-by: Wei Liu <wei.liu2@citrix.com> >> Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > > With the changes you should have probably removed my old reviewed-by. > But that's OK: > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > > If it's OK for everybody, I'll go ahead and commit the series on Monday. > Jan, shout if you disagree on something. I'd like to have a look at patch #26 and #27. They can be committed separately from the rest of the series. Cheers,
On Fri, 29 Sep 2017, Julien Grall wrote: > Hi Stefano, > > On 09/29/2017 09:10 PM, Stefano Stabellini wrote: > > On Wed, 27 Sep 2017, Bhupinder Thakur wrote: > > > DEFINE_XEN_FLEX_RING(xencons) defines common helper functions such as > > > xencons_queued() to tell the current size of the ring buffer, > > > xencons_mask() to mask off the index, which are useful helper functions. > > > pl011 emulation code will use these helper functions. > > > > > > io/console.h includes io/ring.h which defines DEFINE_XEN_FLEX_RING. > > > > > > In console/daemon/io.c, string.h had to be included before io/console.h > > > because ring.h uses string functions. > > > > > > Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org> > > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > > > Acked-by: Wei Liu <wei.liu2@citrix.com> > > > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > > > > With the changes you should have probably removed my old reviewed-by. > > But that's OK: > > > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > > > > If it's OK for everybody, I'll go ahead and commit the series on Monday. > > Jan, shout if you disagree on something. > > I'd like to have a look at patch #26 and #27. They can be committed separately > from the rest of the series. Yes, sorry! I meant commit up to #25.
On Fri, 29 Sep 2017, Stefano Stabellini wrote: > On Fri, 29 Sep 2017, Julien Grall wrote: > > Hi Stefano, > > > > On 09/29/2017 09:10 PM, Stefano Stabellini wrote: > > > On Wed, 27 Sep 2017, Bhupinder Thakur wrote: > > > > DEFINE_XEN_FLEX_RING(xencons) defines common helper functions such as > > > > xencons_queued() to tell the current size of the ring buffer, > > > > xencons_mask() to mask off the index, which are useful helper functions. > > > > pl011 emulation code will use these helper functions. > > > > > > > > io/console.h includes io/ring.h which defines DEFINE_XEN_FLEX_RING. > > > > > > > > In console/daemon/io.c, string.h had to be included before io/console.h > > > > because ring.h uses string functions. > > > > > > > > Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org> > > > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > > > > Acked-by: Wei Liu <wei.liu2@citrix.com> > > > > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > > > > > > With the changes you should have probably removed my old reviewed-by. > > > But that's OK: > > > > > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > > > > > > If it's OK for everybody, I'll go ahead and commit the series on Monday. > > > Jan, shout if you disagree on something. > > > > I'd like to have a look at patch #26 and #27. They can be committed separately > > from the rest of the series. > > Yes, sorry! I meant commit up to #25. I committed the first 25 patches
diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index 7e474bb..e8033d2 100644 --- a/tools/console/daemon/io.c +++ b/tools/console/daemon/io.c @@ -21,6 +21,7 @@ #include "utils.h" #include "io.h" +#include <string.h> #include <xenevtchn.h> #include <xengnttab.h> #include <xenstore.h> @@ -29,7 +30,6 @@ #include <stdlib.h> #include <errno.h> -#include <string.h> #include <poll.h> #include <fcntl.h> #include <unistd.h> diff --git a/xen/include/Makefile b/xen/include/Makefile index 1299b19..c90fdee 100644 --- a/xen/include/Makefile +++ b/xen/include/Makefile @@ -98,6 +98,7 @@ PUBLIC_C99_HEADERS := public/io/9pfs.h public/io/pvcalls.h PUBLIC_ANSI_HEADERS := $(filter-out public/%ctl.h public/xsm/% public/%hvm/save.h $(PUBLIC_C99_HEADERS), $(PUBLIC_HEADERS)) public/io/9pfs.h-prereq := string +public/io/console.h-prereq := string public/io/pvcalls.h-prereq := string headers.chk: $(PUBLIC_ANSI_HEADERS) Makefile diff --git a/xen/include/public/io/console.h b/xen/include/public/io/console.h index e2cd97f..0f0711f 100644 --- a/xen/include/public/io/console.h +++ b/xen/include/public/io/console.h @@ -27,6 +27,8 @@ #ifndef __XEN_PUBLIC_IO_CONSOLE_H__ #define __XEN_PUBLIC_IO_CONSOLE_H__ +#include "ring.h" + typedef uint32_t XENCONS_RING_IDX; #define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1)) @@ -38,6 +40,10 @@ struct xencons_interface { XENCONS_RING_IDX out_cons, out_prod; }; +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +DEFINE_XEN_FLEX_RING(xencons); +#endif + #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */ /*