[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



>>> On 23.09.17 at 00:44, <sstabellini@xxxxxxxxxx> wrote:
> 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?

Moving the C99 requiring parts to a separate header is certainly
a reasonable option. Another might be to frame the additions by
a __STRICT_ANSI__ and/or __GNUC__ and/or __STDC_VERSION__
check (we have some examples elsewhere, but they may not be
exact fits for the case here).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.