One can name a local variable holding a value as 'v', but it
currently clashes with the registerfields macros. To save others
to debug the same mistake, prefix the macro's local variables
with an underscore.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
include/hw/registerfields.h | 40 ++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h
index 0407edb7ec..93fa4a84c2 100644
--- a/include/hw/registerfields.h
+++ b/include/hw/registerfields.h
@@ -66,35 +66,35 @@
#define FIELD_DP8(storage, reg, field, val) ({ \
struct { \
unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \
- } v = { .v = val }; \
- uint8_t d; \
- d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
- R_ ## reg ## _ ## field ## _LENGTH, v.v); \
- d; })
+ } _v = { .v = val }; \
+ uint8_t _d; \
+ _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH, _v.v); \
+ _d; })
#define FIELD_DP16(storage, reg, field, val) ({ \
struct { \
unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \
- } v = { .v = val }; \
- uint16_t d; \
- d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
- R_ ## reg ## _ ## field ## _LENGTH, v.v); \
- d; })
+ } _v = { .v = val }; \
+ uint16_t _d; \
+ _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH, _v.v); \
+ _d; })
#define FIELD_DP32(storage, reg, field, val) ({ \
struct { \
unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \
- } v = { .v = val }; \
- uint32_t d; \
- d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
- R_ ## reg ## _ ## field ## _LENGTH, v.v); \
- d; })
+ } _v = { .v = val }; \
+ uint32_t _d; \
+ _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH, _v.v); \
+ _d; })
#define FIELD_DP64(storage, reg, field, val) ({ \
struct { \
unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \
- } v = { .v = val }; \
- uint64_t d; \
- d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \
- R_ ## reg ## _ ## field ## _LENGTH, v.v); \
- d; })
+ } _v = { .v = val }; \
+ uint64_t _d; \
+ _d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH, _v.v); \
+ _d; })
/* Deposit a field to array of registers. */
#define ARRAY_FIELD_DP32(regs, reg, field, val) \
--
2.21.3
On Sun, May 10, 2020 at 1:35 PM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > > One can name a local variable holding a value as 'v', but it > currently clashes with the registerfields macros. To save others > to debug the same mistake, prefix the macro's local variables > with an underscore. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > include/hw/registerfields.h | 40 ++++++++++++++++++------------------- > 1 file changed, 20 insertions(+), 20 deletions(-) > > diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h > index 0407edb7ec..93fa4a84c2 100644 > --- a/include/hw/registerfields.h > +++ b/include/hw/registerfields.h > @@ -66,35 +66,35 @@ > #define FIELD_DP8(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint8_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint8_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP16(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint16_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint16_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP32(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint32_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint32_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP64(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint64_t d; \ > - d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint64_t _d; \ > + _d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > > /* Deposit a field to array of registers. */ > #define ARRAY_FIELD_DP32(regs, reg, field, val) \ > -- > 2.21.3 > >
ping? On 5/10/20 10:34 PM, Philippe Mathieu-Daudé wrote: > One can name a local variable holding a value as 'v', but it > currently clashes with the registerfields macros. To save others > to debug the same mistake, prefix the macro's local variables > with an underscore. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > include/hw/registerfields.h | 40 ++++++++++++++++++------------------- > 1 file changed, 20 insertions(+), 20 deletions(-) > > diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h > index 0407edb7ec..93fa4a84c2 100644 > --- a/include/hw/registerfields.h > +++ b/include/hw/registerfields.h > @@ -66,35 +66,35 @@ > #define FIELD_DP8(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint8_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint8_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP16(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint16_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint16_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP32(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint32_t d; \ > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint32_t _d; \ > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > #define FIELD_DP64(storage, reg, field, val) ({ \ > struct { \ > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > - } v = { .v = val }; \ > - uint64_t d; \ > - d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > - d; }) > + } _v = { .v = val }; \ > + uint64_t _d; \ > + _d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > + _d; }) > > /* Deposit a field to array of registers. */ > #define ARRAY_FIELD_DP32(regs, reg, field, val) \ >
On Tue, May 26, 2020 at 9:50 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > > ping? I'll send a PR with this. Alistair > > On 5/10/20 10:34 PM, Philippe Mathieu-Daudé wrote: > > One can name a local variable holding a value as 'v', but it > > currently clashes with the registerfields macros. To save others > > to debug the same mistake, prefix the macro's local variables > > with an underscore. > > > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > --- > > include/hw/registerfields.h | 40 ++++++++++++++++++------------------- > > 1 file changed, 20 insertions(+), 20 deletions(-) > > > > diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h > > index 0407edb7ec..93fa4a84c2 100644 > > --- a/include/hw/registerfields.h > > +++ b/include/hw/registerfields.h > > @@ -66,35 +66,35 @@ > > #define FIELD_DP8(storage, reg, field, val) ({ \ > > struct { \ > > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > > - } v = { .v = val }; \ > > - uint8_t d; \ > > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > > - d; }) > > + } _v = { .v = val }; \ > > + uint8_t _d; \ > > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > > + _d; }) > > #define FIELD_DP16(storage, reg, field, val) ({ \ > > struct { \ > > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > > - } v = { .v = val }; \ > > - uint16_t d; \ > > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > > - d; }) > > + } _v = { .v = val }; \ > > + uint16_t _d; \ > > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > > + _d; }) > > #define FIELD_DP32(storage, reg, field, val) ({ \ > > struct { \ > > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > > - } v = { .v = val }; \ > > - uint32_t d; \ > > - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > > - d; }) > > + } _v = { .v = val }; \ > > + uint32_t _d; \ > > + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > > + _d; }) > > #define FIELD_DP64(storage, reg, field, val) ({ \ > > struct { \ > > unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ > > - } v = { .v = val }; \ > > - uint64_t d; \ > > - d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ > > - d; }) > > + } _v = { .v = val }; \ > > + uint64_t _d; \ > > + _d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ > > + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ > > + _d; }) > > > > /* Deposit a field to array of registers. */ > > #define ARRAY_FIELD_DP32(regs, reg, field, val) \ > > >
Hi Alistair, On 5/27/20 12:49 AM, Alistair Francis wrote: > On Tue, May 26, 2020 at 9:50 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: >> >> ping? > > I'll send a PR with this. Well, this was only a "friendly ping", there is no hurry, I can wait for the next qemu-trivial pull request. Thanks! Phil. > > Alistair > >> >> On 5/10/20 10:34 PM, Philippe Mathieu-Daudé wrote: >>> One can name a local variable holding a value as 'v', but it >>> currently clashes with the registerfields macros. To save others >>> to debug the same mistake, prefix the macro's local variables >>> with an underscore. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >>> --- >>> include/hw/registerfields.h | 40 ++++++++++++++++++------------------- >>> 1 file changed, 20 insertions(+), 20 deletions(-) >>> >>> diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h >>> index 0407edb7ec..93fa4a84c2 100644 >>> --- a/include/hw/registerfields.h >>> +++ b/include/hw/registerfields.h >>> @@ -66,35 +66,35 @@ >>> #define FIELD_DP8(storage, reg, field, val) ({ \ >>> struct { \ >>> unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ >>> - } v = { .v = val }; \ >>> - uint8_t d; \ >>> - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ >>> - d; }) >>> + } _v = { .v = val }; \ >>> + uint8_t _d; \ >>> + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ >>> + _d; }) >>> #define FIELD_DP16(storage, reg, field, val) ({ \ >>> struct { \ >>> unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ >>> - } v = { .v = val }; \ >>> - uint16_t d; \ >>> - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ >>> - d; }) >>> + } _v = { .v = val }; \ >>> + uint16_t _d; \ >>> + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ >>> + _d; }) >>> #define FIELD_DP32(storage, reg, field, val) ({ \ >>> struct { \ >>> unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ >>> - } v = { .v = val }; \ >>> - uint32_t d; \ >>> - d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ >>> - d; }) >>> + } _v = { .v = val }; \ >>> + uint32_t _d; \ >>> + _d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ >>> + _d; }) >>> #define FIELD_DP64(storage, reg, field, val) ({ \ >>> struct { \ >>> unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \ >>> - } v = { .v = val }; \ >>> - uint64_t d; \ >>> - d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> - R_ ## reg ## _ ## field ## _LENGTH, v.v); \ >>> - d; }) >>> + } _v = { .v = val }; \ >>> + uint64_t _d; \ >>> + _d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \ >>> + R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ >>> + _d; }) >>> >>> /* Deposit a field to array of registers. */ >>> #define ARRAY_FIELD_DP32(regs, reg, field, val) \ >>> >> >
© 2016 - 2024 Red Hat, Inc.