> +#define BITWRAP(nr) (1UL << ((nr) % BITS_PER_LONG))
>
> & make the whole input subsystem use it
> The change is huge, more than 125 files using input.h
> & almost all use the BIT macro.
It is as a big of change, but have you dismissed the "BIT(nr %
BITS_PER_LONG)" approach?
I really think this has to be broken down into a patch-set.yes
> -#define BIT(i) (1UL << ((i)&(__NFDBITS-1)))yes...no users in this file
Are you sure you can just delete this one?
<snip>
> diff --git a/include/linux/input.h b/include/linux/input.h
> index bde65c8..e4203d1 100644
> --- a/include/linux/input.h
> +++ b/include/linux/input.h
> @@ -908,9 +908,11 @@ struct ff_effect {
> #include <linux/fs.h>
> #include <linux/timer.h>
> #include <linux/mod_devicetable.h>
> +//#include <linux/bitops.h>
You added and commented it out?
> #define NBITS(x) (((x)/BITS_PER_LONG)+1)just messed it up while testing
> -#define BIT(x) (1UL<<((x)%BITS_PER_LONG))
> +#undef BIT
> +#define BIT(nr) (1UL << ((nr) % BITS_PER_LONG))
Why did you change x to nr? The other defines seems to use x.
> -#define BIT(x) (1ul<<(x))yes
> #define POW2(x) (1ul<<(x))
Maybe you can clean up POW2 as well (or define it as "#define POW2(x)
BIT(x)")
attaching the patch file
Also, it seems your mail-client swapped the tabs to spaces (aka not able
to apply).
Attachment:
BIT-macro-cleanup.patch
Description: Binary data