[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 01/27 v10] xen/arm: vpl011: Define common ring buffer helper functions in console.h
Adding Jan On Fri, 22 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@xxxxxxxxxx> > Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Unfortunately this patch breaks the build on x86. The reason is that DEFINE_XEN_FLEX_RING requires C99, and the current header checks in xen/include/Makefile use ANSI C. The only two headers to use DEFINE_XEN_FLEX_RING so far are pvcalls and 9pfs that are both explicitly marked as c99 in xen/include/Makefile, see PUBLIC_C99_HEADERS. One way to solve this problem would be to mark console.h as one of the c99 headers, but I am guessing that Jan will want to keep it ANSI C. In that case, we could make DEFINE_XEN_FLEX_RING ANSI C, which is ugly but possible. It requires turning the static inline functions in ring.h into macros. Otherwise, we could take DEFINE_XEN_FLEX_RING(xencons) out of io/console.h. We could move it to a new header file, and the new header file could be C99. Jan, do you have other suggestions? > --- > CC: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > CC: Wei Liu <wei.liu2@xxxxxxxxxx> > CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> > CC: Julien Grall <julien.grall@xxxxxxx> > > 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(-) > > 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/public/io/console.h b/xen/include/public/io/console.h > index e2cd97f..5e45e1c 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,8 @@ struct xencons_interface { > XENCONS_RING_IDX out_cons, out_prod; > }; > > +DEFINE_XEN_FLEX_RING(xencons); > + > #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */ > > /* > -- > 2.7.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |