Re: Avoiding #ifdefs
Marek Vasut <[email protected]>
| Newsgroups | gmane.linux.ports.arm.general |
|---|---|
| Organization | Hack&Dev |
| Message-ID | <[email protected]> |
Dne St 6. ledna 2010 09:38:41 CoDeBrEaKeR napsal(a): > --- On Wed, 1/6/10, Marek Vasut <[email protected]> wrote: > > From: Marek Vasut <[email protected]> > > Subject: Re: Avoiding #ifdefs > > To: "CoDeBrEaKeR" <[email protected]> > > Cc: [email protected] > > Date: Wednesday, January 6, 2010, 1:32 PM > > Dne St 6. ledna 2010 07:46:59 > > > > CoDeBrEaKeR napsal(a): > > > Thanks, > > > > > > But the stucture am using is pretty insanely > > > > nested. > > > > So? Why don't you show us the real code? (please also stop > > top-posting). > > sorry about top posting. here's the code(directly pasting it > from the patch) > > +static struct omap_dss_device zoom_tv_device = { > + .name = "tv", > + .driver_name = "venc", > + .type = OMAP_DISPLAY_TYPE_VENC, > +#ifdef CONFIG_MACH_OMAP_3630SDP > + .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, > +#else > + .phy.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE, > +#endif > + .platform_enable = zoom_panel_enable_tv, > + .platform_disable = zoom_panel_disable_tv, > +}; > + > +static struct omap_dss_device *zoom_dss_devices[] = { > + &zoom_lcd_device, > + &zoom_tv_device, > +}; > + > +static struct omap_dss_board_info zoom_dss_data = { > + .num_devices = ARRAY_SIZE(zoom_dss_devices), > + .devices = zoom_dss_devices, > + .default_device = &zoom_lcd_device, > +}; > + > +static struct platform_device zoom_dss_device = { > + .name = "omapdss", > + .id = -1, > + .dev = { > + .platform_data = &zoom_dss_data, > + }, > +}; > > ifdefs here is what i want to avoid. > > +#ifdef CONFIG_MACH_OMAP_3630SDP > + .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, > +#else > + .phy.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE, > +#endif > well in the machine init ... if (machine_is_omap_3630sdp()) zoom_device.phy.venc.type = OMAP_DSS... else DTTO what's the problem ? > > ~A > > > > ~A > > > > > > --- On Wed, 1/6/10, Marek Vasut <[email protected]> > > > > wrote: > > > > From: Marek Vasut <[email protected]> > > > > Subject: Re: Avoiding #ifdefs > > > > To: [email protected] > > > > Cc: "CoDeBrEaKeR" <[email protected]> > > > > Date: Wednesday, January 6, 2010, 11:53 AM > > > > Dne St 6. ledna 2010 07:04:37 > > > > > > > > CoDeBrEaKeR napsal(a): > > > > > Most of the times its is easy to start > > > > having a lot of > > > > > > #ifdef statements in > > > > > > > > > your code. Since this is not a proper > > > > thing to > > > > > > do, placing the #ifdef in a > > > > > > > > > header file would be the usual > > > > suggestion. well, > > > > > > i understand this as far > > > > > > > > > as #ifdefs in functions are concerned. > > > > How about > > > > > > structures? > > > > > > > > > for Ex: > > > > > > > > > > static struct something = { > > > > > .name > > > > > > > > > > = > > > > "xyz", > > > > > > > .driver_name > > > > > > > > > > = "something", > > > > > > > > > #ifdef SOME_ARCH_TYPE > > > > > .bla > > > > > > > > > > > > > > = DO_THIS, > > > > > > > #else > > > > > .bla > > > > > > > > > > > > > > = > > > > > > DO_SOMETHING_ELSE, > > > > > > > > > #endif > > > > > }; > > > > > > > > > > How do i avoid #ifdef here, any idea?? > > > > > > > > If you want to do some run-time detection, then > > > > do so and > > > > > > assign 'bla' at > > > > runtime... > > > > if (x) > > > > something.bla = somefn; > > > > else > > > > ... > > > > > > > > > Thanks. > > > > > > > > > > ~A > > > > _______________________________________________ > > > > > > > linux-arm mailing list > > > > > [email protected] > > > > > http://lists.infradead.org/mailman/listinfo/linux-arm > > > > > > > > _______________________________________________ > > > > linux-arm mailing list > > > > [email protected] > > > > http://lists.infradead.org/mailman/listinfo/linux-arm >