From mboxrd@z Thu Jan 1 00:00:00 1970 From: tobias@gambas-buch.de (Tobias Boege) Date: Tue, 8 Jan 2013 14:51:07 +0100 Subject: Regarding module init function In-Reply-To: References: <20130104132213.GB526@aurora> Message-ID: <20130108135107.GA560@aurora> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org 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 accompanied by a useful comment about where the init function is called in either case. Regards, Tobi