xen/include/public/io/ring.h | 5 +++++ 1 file changed, 5 insertions(+)
For the initialization of a ring page by the frontend two macros are
available in ring.h: SHARED_RING_INIT() and FRONT_RING_INIT().
All known users use always both of them in direct sequence.
Add another macro XEN_FRONT_RING_INIT() combining the two macros.
Signed-off-by: Juergen Gross <jgross@suse.com>
---
xen/include/public/io/ring.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/xen/include/public/io/ring.h b/xen/include/public/io/ring.h
index 277af36e61..3925d6ad95 100644
--- a/xen/include/public/io/ring.h
+++ b/xen/include/public/io/ring.h
@@ -184,6 +184,11 @@ typedef struct __name##_back_ring __name##_back_ring_t
#define FRONT_RING_INIT(_r, _s, __size) FRONT_RING_ATTACH(_r, _s, 0, __size)
+#define XEN_FRONT_RING_INIT(_r, _s, __size) do { \
+ SHARED_RING_INIT(_s); \
+ FRONT_RING_INIT(_r, _s, __size); \
+} while (0)
+
#define BACK_RING_ATTACH(_r, _s, _i, __size) do { \
(_r)->rsp_prod_pvt = (_i); \
(_r)->req_cons = (_i); \
--
2.34.1
On 26.04.2022 11:08, Juergen Gross wrote: > --- a/xen/include/public/io/ring.h > +++ b/xen/include/public/io/ring.h > @@ -184,6 +184,11 @@ typedef struct __name##_back_ring __name##_back_ring_t > > #define FRONT_RING_INIT(_r, _s, __size) FRONT_RING_ATTACH(_r, _s, 0, __size) > > +#define XEN_FRONT_RING_INIT(_r, _s, __size) do { \ > + SHARED_RING_INIT(_s); \ > + FRONT_RING_INIT(_r, _s, __size); \ > +} while (0) I think it would be good for the comment around line 100 to also have a reference to this. As to style: Could I talk you into not further proliferating the inappropriate use of underscore-prefixed names as macro parameters? Even more so one with a double underscore? As to functionality: I take it that it is not viewed as an issue that many of the macros here evaluate their arguments multiple times? Jan
On 26.04.22 11:43, Jan Beulich wrote: > On 26.04.2022 11:08, Juergen Gross wrote: >> --- a/xen/include/public/io/ring.h >> +++ b/xen/include/public/io/ring.h >> @@ -184,6 +184,11 @@ typedef struct __name##_back_ring __name##_back_ring_t >> >> #define FRONT_RING_INIT(_r, _s, __size) FRONT_RING_ATTACH(_r, _s, 0, __size) >> >> +#define XEN_FRONT_RING_INIT(_r, _s, __size) do { \ >> + SHARED_RING_INIT(_s); \ >> + FRONT_RING_INIT(_r, _s, __size); \ >> +} while (0) > > I think it would be good for the comment around line 100 to also > have a reference to this. Okay. > As to style: Could I talk you into not further proliferating the > inappropriate use of underscore-prefixed names as macro parameters? > Even more so one with a double underscore? Okay. > As to functionality: I take it that it is not viewed as an issue > that many of the macros here evaluate their arguments multiple > times? I don't think this is problematic. Juergen
© 2016 - 2024 Red Hat, Inc.