Regarding module init function

Tobias Boege tobias at gambas-buch.de
Thu Jan 10 03:47:47 EST 2013


On Tue, 08 Jan 2013, anish kumar wrote:
> On Tue, 2013-01-08 at 14:51 +0100, Tobias Boege wrote:
> > On Tue, 08 Jan 2013, Rahul Bedarkar wrote:
> > > Ok. in init/main.c we call do_basic_setup(). Where do_initcalls call each
> > > of init functions from __early_initcall_end to __initcall_end. But I don't
> > > know from where these values gets initialized.
> > > 
> > 
> > Take a look at include/linux/init.h. There you can find the macros for
> > declaring various init functions. They all go into special sections. The
> > rest is linker magic (e.g. arch/x86/kernel/vmlinux.lds{,.S}).
> > 
> > > I want to know when one of auxdriver (selected in from menuconfig) is built
> > > as built-in module. When and Who calls it's init function ?
> > 
> > It's, too, in the init.h. There are two definitions of module_init()
> > depending on whether MODULE is declared or not. The first definition is
> How does the individual driver define this MODULE?I think some macro
> magic works here.

I suppose that this is done through the invocation of the preprocessor,
using -DMODULE depending on whether the target is built-in or a module.

Regards,
Tobi




More information about the Kernelnewbies mailing list