#include <linux/kernel.h> | |
#include <linux/init.h> | |
#include <asm/x86_init_fn.h> | |
#include <asm/x86.h> | |
DEFINE_LINKTABLE_INIT_DATA(initcall_t, init_calls); | |
int do_one_initcall(initcall_t fn) | |
{ | |
int ret; | |
ret = fn(); | |
return ret; | |
} | |
static void do_initcalls(void) | |
{ | |
initcall_t *fn; | |
LINKTABLE_FOR_EACH(fn, init_calls) | |
do_one_initcall(*fn); | |
} | |
void start_kernel(void) | |
{ | |
pr_info("Calling start_kernel()...\n"); | |
setup_arch(); | |
late_init(); | |
do_initcalls(); | |
} |