Re: kernel coding style for if ... else which cross #ifdef
From: Jeremy Fitzhardinge
Date: Sat May 24 2008 - 16:52:30 EST
H. Peter Anvin wrote:
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.
Yes, I'd agree if we were starting from scratch. But given that we
can't get rid of CONFIG_* and their dubious semantics, we just have to
make do.
But typo-detection *would* be very nice: I can never remember if its
CONFIG_MEMORY_HOTPLUG or CONFIG_HOTPLUG_MEMORY.
J
--
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/