do_initcalls

Tobias Boege tobias at gambas-buch.de
Sun Mar 17 11:11:54 EDT 2013


On Sun, 17 Mar 2013, ishare wrote:
> 
>  for (call = &__initcall_start; call < &__initcall_end; call++)
>    (*call)();
> 
>  I want to know where are these  function point assigned by specified function ?
> 
>  thanks!

As per include/asm-generic/vmlinux.lds.h and your arch's vmlinux.lds.S (I
actually only looked at x86's), the __initcall_{start,end} variables are the
start and end of the __initcall ELF section which contains all the sub-level
sections.

Functions can be put into these sections when they are given to one
of the *_initcall macros from include/linux/init.h.

Regards,
Tobi




More information about the Kernelnewbies mailing list