[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 16/30] hw/intc/sh_intc: Turn some defines into an enum
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v6 16/30] hw/intc/sh_intc: Turn some defines into an enum |
Date: |
Sat, 30 Oct 2021 12:42:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
On 10/29/21 23:02, BALATON Zoltan wrote:
> Turn the INTC_MODE defines into an enum and clean up the function
> returning these to make it clearer by removing nested ifs and
> superfluous parenthesis. The one remaining #define is a flag which is
> moved further apart by changing its value from 8 to 0x80 to leave some
> spare bits as this is or-ed with the enum value at some places.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
> hw/intc/sh_intc.c | 43 +++++++++++++++++++------------------------
> 1 file changed, 19 insertions(+), 24 deletions(-)
>
> diff --git a/hw/intc/sh_intc.c b/hw/intc/sh_intc.c
> index ac47b7f905..16d94458d4 100644
> --- a/hw/intc/sh_intc.c
> +++ b/hw/intc/sh_intc.c
> @@ -100,33 +100,27 @@ int sh_intc_get_pending_vector(struct intc_desc *desc,
> int imask)
> abort();
> }
>
> -#define INTC_MODE_NONE 0
> -#define INTC_MODE_DUAL_SET 1
> -#define INTC_MODE_DUAL_CLR 2
> -#define INTC_MODE_ENABLE_REG 3
> -#define INTC_MODE_MASK_REG 4
> -#define INTC_MODE_IS_PRIO 8
> -
> -static unsigned int sh_intc_mode(unsigned long address,
> - unsigned long set_reg, unsigned long
> clr_reg)
> +#define INTC_MODE_IS_PRIO 0x80
> +typedef enum {
> + INTC_MODE_NONE,
> + INTC_MODE_DUAL_SET,
> + INTC_MODE_DUAL_CLR,
> + INTC_MODE_ENABLE_REG,
> + INTC_MODE_MASK_REG,
> +} SHIntCMode;
This doesn't seem clearer, because sh_intc_write() does:
switch (mode) {
case INTC_MODE_ENABLE_REG | INTC_MODE_IS_PRIO:
break;
case INTC_MODE_DUAL_SET:
value |= *valuep;
break;
case INTC_MODE_DUAL_CLR:
value = *valuep & ~value;
break;
default:
g_assert_not_reached();
}
Anyway I expect this whole file to be rewritten by Yoshinori,
so I don't mind much.
- Re: [PATCH v6 11/30] hw/char/sh_serial: Embed QEMUTimer in state struct, (continued)
- [PATCH v6 13/30] hw/char/sh_serial: QOM-ify, BALATON Zoltan, 2021/10/29
- [PATCH v6 17/30] hw/intc/sh_intc: Rename iomem region, BALATON Zoltan, 2021/10/29
- [PATCH v6 19/30] hw/intc/sh_intc: Move sh_intc_register() closer to its only user, BALATON Zoltan, 2021/10/29
- [PATCH v6 15/30] hw/intc/sh_intc: Use existing macro instead of local one, BALATON Zoltan, 2021/10/29
- [PATCH v6 03/30] hw/sh4: Coding style: White space fixes, BALATON Zoltan, 2021/10/29
- [PATCH v6 20/30] hw/intc/sh_intc: Remove excessive parenthesis, BALATON Zoltan, 2021/10/29
- [PATCH v6 16/30] hw/intc/sh_intc: Turn some defines into an enum, BALATON Zoltan, 2021/10/29
- Re: [PATCH v6 16/30] hw/intc/sh_intc: Turn some defines into an enum,
Philippe Mathieu-Daudé <=
- [PATCH v6 18/30] hw/intc/sh_intc: Drop another useless macro, BALATON Zoltan, 2021/10/29
- [PATCH v6 14/30] hw/char/sh_serial: Add device id to trace output, BALATON Zoltan, 2021/10/29
- [PATCH v6 23/30] hw/intc/sh_intc: Replace abort() with g_assert_not_reached(), BALATON Zoltan, 2021/10/29
- [PATCH v6 24/30] hw/intc/sh_intc: Avoid using continue in loops, BALATON Zoltan, 2021/10/29
- [PATCH v6 28/30] hw/timer/sh_timer: Do not wrap lines that are not too long, BALATON Zoltan, 2021/10/29
- [PATCH v6 25/30] hw/intc/sh_intc: Simplify allocating sources array, BALATON Zoltan, 2021/10/29
- [PATCH v6 26/30] hw/intc/sh_intc: Remove unneeded local variable initialisers, BALATON Zoltan, 2021/10/29
- [PATCH v6 27/30] hw/timer/sh_timer: Rename sh_timer_state to SHTimerState, BALATON Zoltan, 2021/10/29