On Mon, 28 Jan 2008, Jan Engelhardt wrote: > On Jan 28 2008 01:05, Trent Piepho wrote: > > >Maybe the kernel headers should provide a couple macros for testing > >configs, since people get it wrong over and over again? > > > >#define CONFIG_ON(x) (defined(CONFIG_##x) || defined(CONFIG_##x##_MODULE)) > >#define CONFIG_AVAIABLE(x) (defined(CONFIG_##x) || (defined(MODULE) && > >defined(CONFIG_##x##_MODULE))) > ^AVAILABLE(x) > > What's the difference between these two? > > CONFIG_x_MODULE will never be defined if MODULE is not, so defined(MODULE) > seems redundant.
You're probably thinking of CONFIG_MODULES, which indicates the kernel supports module loading. MODULE indicates the current code is being compiled as a module. The idea is that code compiled in the kernel can't call modules. Generally what you would see is: #if CONFIG_ON(x) code that will be _used by_ x probably want x to depend on us in Kconfig #endif #if CONFIG_AVAILABLE(x) code that wants _to use_ x #endif -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/