qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v9 05/14] hw/arm/smmuv3: Wired IRQ and GERROR he


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH v9 05/14] hw/arm/smmuv3: Wired IRQ and GERROR helpers
Date: Fri, 9 Mar 2018 14:18:54 +0000

On 9 March 2018 at 14:03, Auger Eric <address@hidden> wrote:
> On 08/03/18 18:49, Peter Maydell wrote:
>>> +#define smmuv3_eventq_irq_enabled(s)                   \
>>> +    (FIELD_EX32(s->irq_ctrl, IRQ_CTRL, EVENTQ_IRQEN))
>>> +#define smmuv3_gerror_irq_enabled(s)                  \
>>> +    (FIELD_EX32(s->irq_ctrl, IRQ_CTRL, GERROR_IRQEN))
>>
>> These are only ever used in smmuv3.c, so you can just move them
>> to there (and make them inline functions, ideally).
> smmuv3-internal.h contains helpers, macros which are only used by
> smmuv3.c . I though this could avoid putting too much code in smmuv3.c
> and would help in the readability.
>
> what is the exact benefit of transforming those into inline functions
> instead of macros. Not meaning I don't want to take this into account
> but to improve my coding style ;-)

You get the benefit of type checking (and it self-documents that
the macros want to be passed an SMMUv3State*). You don't have to
worry about trying to write your macro to not evaluate arguments multiple
times. These are one-liners so they're fairly easy to read,
but when you get to 3 or 4 lines you end up with a lot of '\'
lines and the inline function is I think more clearly better.
I prefer to save macros for cases where you really need a macro
and can't get the same effect with a function.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]