Regarding module init function
From: Tobias Boege <hidden>
Date: 2013-01-10 08:47:47
On Tue, 08 Jan 2013, anish kumar wrote:
On Tue, 2013-01-08 at 14:51 +0100, Tobias Boege wrote:quoted
On Tue, 08 Jan 2013, Rahul Bedarkar wrote:quoted
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}).quoted
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 isHow 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