On Tue, Nov 4, 2008 at 19:04, David Brownell wrote: > On Tuesday 04 November 2008, Grant Likely wrote: >> At this point, instead of #ifdeffing the function signature, I would >> much rather see this generalized as something like >> 'mdio_gpio_setup()'. Then move the OF and non-OF specific bits into >> two new functions; mdio_ofgpio_probe() and mdio_gpio_probe(). The two >> new functions should be placed with the appropriate bus binding in the >> #ifdef/#else block at the bottom of the file. > > Or if possible something that creates a single #ifdef that > ensures dead code elimination will remove the "other" branch, > but ensures all platforms will build both versions: > > #ifdef OF > #define using_of true > #else > #define using_of false > #endif > > ... > > static int __init mdio_gpio_init(void) > { > if (using_of) > return register mdio_ofgpio driver; > else > return register mdio_gpio driver; > } > subsys_initcall(mdio_gpio_init); > > ... > > That's generally the preferred way to handle #ifdeffery. > But I could imagine OF isn't (yet?) set up to handle it. i agree completely with the inclination to do it all in C as you've suggested and let the compiler do dead code elimination, but that only works if the functions in question are defined everywhere (in other words, there's a linux/ api for it). i dont think that's the case for OF (which is what you were implying?) ... -mike -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html