[PATCH v3 1/3] drm/xe: Add helpers for manipulating macro arguments
Michal Wajdeczko
michal.wajdeczko at intel.com
Mon May 6 13:17:32 UTC 2024
Hi Andy,
On 03.05.2024 17:59, Andy Shevchenko wrote:
> On Fri, May 03, 2024 at 12:33:11AM +0200, Michal Wajdeczko wrote:
>> Define generic helpers that will replace private definitions used
>> by the RTP code and will allow reuse by the new code.
>>
>> Put them in new xe_args.h file (instead of infamous xe_macros.h)
>> as once we find more potential users outside of the Xe driver we
>> may want to move all of these macros as-is to linux/args.h.
>
> ...
>
>> +#define DROP_FIRST(args...) __DROP_FIRST(args)
>> +#define __DROP_FIRST(a, b...) b
>
>> +#define PICK_FIRST(args...) __PICK_FIRST(args)
>> +#define __PICK_FIRST(a, b...) a
>
>> +#define PICK_LAST(args...) __PICK_ARG(COUNT_ARGS(args), args)
>
> All but these have ARG(S) in the name, I would add it.
but then final names will be IMO little too long
DROP_FIRST_ARG
PICK_FIRST_ARG
PICK_LAST_ARG
maybe
FIRST_ARG and LAST_ARG
would work still have no idea for the replacement for DROP_FIRST
(and likely DROP/PICK FIRST will be more frequently used than LAST)
besides, CONCATENATE also doesn't have ARGS in it's name
>
>> +#define __PICK_ARG(n, args...) CALL_ARGS(CONCATENATE(PICK_ARG, n), args)
>
> Interesting, why FIRST and LAST are not symmetrical. Maybe the first
> counterpart can use the __PICK_ARG()?
>
the PICK_FIRST could be defined without introducing PICK_LAST combo
and PICK_LAST was initially considered less important (but still serves
as a part of the complete solution) and it is implemented based on
simpler (and more likely accepted) PICK_FIRST and DROP_FIRST macros
since series is now already merged to Xe, I guess we can return to this
discussion when we will be promoting these macros to linux/args.h
Michal
More information about the Intel-xe
mailing list