Re: kernel coding style for if ... else which cross #ifdef

From: H. Peter Anvin
Date: Sat May 24 2008 - 16:47:00 EST


Jeremy Fitzhardinge wrote:
Tom Spink wrote:
A thought occurred to me that we may be able to used some preprocessor
magic and do this:

#define config_defined(x) CFGVAL_## x

Which means that, if we get Kconfig to produce:

#define CFGVAL_CONFIG_FOO 0
#define CFGVAL_CONFIG_VALUE_BAR 1
#define CFGVAL_CONFIG_VALUE_BAZ_MODULE 1

We can use this:

if (config_defined(CONFIG_FOO) && some_expr) {
panic("Oh no.");
}

Well, in that case you could use Willy's magic hack:

#define config_defined(x) (x - 0)

Which isn't a bad alternative to defining a whole pile of new symbols...


That can *strongly* be argued with.

In particular, the use of #ifdef is crap to begin with. Using #if even for the preprocessor makes it possible to trap misspellings.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/