Avoiding #ifdefs
CoDeBrEaKeR
codebreaker28 at yahoo.com
Wed Jan 6 03:38:41 EST 2010
--- On Wed, 1/6/10, Marek Vasut <marek.vasut at gmail.com> wrote:
> From: Marek Vasut <marek.vasut at gmail.com>
> Subject: Re: Avoiding #ifdefs
> To: "CoDeBrEaKeR" <codebreaker28 at yahoo.com>
> Cc: linux-arm at lists.infradead.org
> 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
~A
> >
> > ~A
> >
> > --- On Wed, 1/6/10, Marek Vasut <marek.vasut at gmail.com>
> wrote:
> > > From: Marek Vasut <marek.vasut at gmail.com>
> > > Subject: Re: Avoiding #ifdefs
> > > To: linux-arm at lists.infradead.org
> > > Cc: "CoDeBrEaKeR" <codebreaker28 at yahoo.com>
> > > 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
> > > > linux-arm at lists.infradead.org
> > > > http://lists.infradead.org/mailman/listinfo/linux-arm
> > >
> > > _______________________________________________
> > > linux-arm mailing list
> > > linux-arm at lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-arm
> >
>
More information about the linux-arm
mailing list