[PATCH -mm2] CardServices compatibility layer
akpm at osdl.org
Mon Dec 29 13:26:50 GMT 2003
Russell King <rmk+pcmcia at arm.linux.org.uk> wrote:
> On Mon, Dec 29, 2003 at 12:10:47PM -0800, Andrew Morton wrote:
> > Dominik Brodowski <linux at dominikbrodowski.de> wrote:
> > >
> > > From -mm2 changelog:
> > > > Complete the removal of the usage of the CardServices API from drivers.
> > > > It's a bit late for this, but apparantly the varargs usage in the API
> > > > cannot work correctly on x86_64 (at least).
> > >
> > > ... as it's so late, let's add a compatibility layer which allows for
> > > CardServices usage as long as !x86_64.
> > >
> > That seems like a good idea, but I'll need help from rmk, dhinds, etc on
> > understanding whether it is a desirable thing.
> There are two solutions to this problem:
> - keep the old CardServices() as is with all its broken quirks
> - use the preprocessor to convert the old API to something better.
> #define CardServices(x,args...) __pcmcia_##x(args)
> #define __pcmcia_RegisterClient pcmcia_register_client
> and so forth. I think the latter is preferable than the former from a
> correctness point of view if we have to keep the old calling convention,
> even though it means a fairly disgusting set of #defines.
Well there's the third way, which is what Dominik did: implement a real
CardServices() function which has a big switch statement, calls out to the
new API. Seems reasonable, doesn't it?
More information about the linux-pcmcia