diff mbox series

[Xen-devel,01/27,v11] xen/arm: vpl011: Define common ring buffer helper functions in console.h

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

Commit Message

Bhupinder Thakur Sept. 27, 2017, 6:13 a.m. UTC
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>
---
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(-)

Comments

Stefano Stabellini Sept. 29, 2017, 8:10 p.m. UTC | #1
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
>
Julien Grall Sept. 29, 2017, 9:35 p.m. UTC | #2
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,
Stefano Stabellini Sept. 29, 2017, 9:46 p.m. UTC | #3
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.
Stefano Stabellini Oct. 3, 2017, 10:27 p.m. UTC | #4
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 mbox series

Patch

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__ */
 
 /*