Re: idea on how to break the static dependencies on demodulator modules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday 26 April 2006 22:59, Trent Piepho wrote:
> On Tue, 25 Apr 2006, Andrew de Quincey wrote:
> > This has had the various feedbacks from various people applied - let me
> > know what you think.
>
> I haven't tested this, but what about using this for dvb_attach:
>
> #define dvb_attach(FUNCTION, ARGS...) ({ \
>     struct dvb_frontend *__r = NULL; \
>     typeof(&FUNCTION) __a = symbol_request(FUNCTION); \
>     if (__a) { \
>         if (!(__r = __a(ARGS))) symbol_put(FUNCTION); \
>     } else printk(KERN_ERR "DVB: Unable to get function "#FUNCTION"()\n");
> \ __r; \
> })
>
> The idea is to use symbol_request, which will try to get the symbol, and if
> it's not there and module loading is enabled, it will try to load the
> module it is in.  You don't need to specify the module name manually,
> modprobe knows which module exports which symbols.  Modules can be renamed,
> split, combined, etc. without having to fix all the module names in the
> card drivers.  It also doesn't call request_module() if it's not necessary.

Oooh, that looks good! Thanks!

I just need to figure out a nice way to solve the problem Johannes raised 
about the symbol_puts now.

_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux