Re: [PATCH RFC 1/2] m68k: io_mm.h: conditionalize ISA address translation on Atari

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

 



On Sat, 5 Jun 2021, I wrote:

> 
> Anyway, I see that we can already write this:
> 
> #define IS_MULTI(a,b) __or(IS_ENABLED(a), IS_ENABLED(b))
> 

Oops. The 2-way case would be,
#define IS_MULTI(a,b) __and(IS_ENABLED(a), IS_ENABLED(b))

> So maybe we just need an exclusive-OR macro to go with the other operators 
> defined in include/linux/kconfig.h? Then we could write this:
> 
> #define IS_SINGLE(a,b) __xor(IS_ENABLED(a), IS_ENABLED(b))
> 
> But these only work for a 2-way group. Extending them to N-way groups is 
> beyond my CPP abilities. It probably requires N-way __or() and __xor()...
> 

For the 3 way case, 
#define IS_SINGLE(a,b,c) (__xor(IS_ENABLED(a), IS_ENABLED(b), IS_ENABLED(c)) &&
                          !__and(IS_ENABLED(a), IS_ENABLED(b), IS_ENABLED(c)))
#define IS_MULTI(a,b,c) (!IS_SINGLE(a,b,c) &&
                         __or(IS_ENABLED(a), IS_ENABLED(b), IS_ENABLED(c)))



[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux