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执行之前
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执行之前
相关文章推荐
- 20条Linux命令面试问答
- 学习Express之部署express-demo
- Linux系统内存磁盘初始化技术详细解析
- Linux动态库的导出控制
- linux下iptables详细配置
- linux常用命令2
- Linux配置系统
- Linux文件类型
- linux中elif的用法
- linux如何给镜像单独挂载一个盘
- CentOS/Redhat VNC 服务
- linux-find命令用法
- 文章标题
- linux 下安装rar解压
- 解决Centos7编译编译libiconv解决./stdio.h:1010:1: 错误: ‘gets’未声明(不在函数内
- Linux中与DNS相关的内容
- Linux系统环境下关于多进程并发写同一个文件的讨论
- linux把某个文件拷贝到不同的目录下面
- linux安装软件的几种方法
- CentOS开发环境LAMP搭建