您的位置:首页 > 运维架构 > Linux

linux之device_init()

2016-01-27 13:45 846 查看
Main.c(L_5.0_04210\kernel\init):start_kernel();

Main.c(L_5.0_04210\kernel\init):reset_init();

Main.c(L_5.0_04210\kernel\init):kernel_init();

Main.c(L_5.0_04210\kernel\init):kernel_init_freeable();

Main.c(L_5.0_04210\kernel\init):do_basic_setup();

Main.c(L_5.0_04210\kernel\init):driver_init();

bus.c(L_5.0_04210\kernel\drivers\base):device_init();

static void __init do_basic_setup(void)

{

cpuset_init_smp();

usermodehelper_init();

shmem_init();

driver_init();

init_irq_proc();

do_ctors();

usermodehelper_enable();

do_initcalls();

random_int_secret_init();

}

由上面函数可以知道,device注册在module_init执行之前

void __initdriver_init(void)

{

/* These are the core pieces */

devtmpfs_init();

devices_init();//---------sys/devices

buses_init();//---------sys/bus

classes_init();//---------sys/class

firmware_init();//---------sys/firmware

hypervisor_init();

/* These are also core pieces, but mustcome after the

* core core pieces.

*/

platform_bus_init();//---------sys/bus/platform

cpu_dev_init();

memory_dev_init();

}

由上面函数可以知道,sys/device注册在sys/bus执行之前
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: