3. Android Binder 驱动启动过程
2016-03-05 17:14:46 0 举报
Android Binder driver 初始化过程
作者其他创作
大纲/内容
binder_init()初始化binder设备binder_open()打开binder设备文件2.1 初始化binder_proc结构体2.2 将其加入到全局hash队列binder_procs中2.3 创建/proc/binder/proc/binder_mmap()进行内存映射3.1 分配内核缓冲区3.2 分配物理页面3.3 将分配的内核缓冲区加入到进程的空闲内核缓冲区红黑树中 当Binder驱动程序需要将一块数据传输给进程时,可以先将数据保存在为该进程分配的一块内核缓冲区中 然后在把这块内核缓冲区的用户空间地址告诉进程 最后进程便可以访问到里面的数据了binder内核缓冲区管理4.1 分配内核缓冲区binder_alloc_buf()4.2 释放内核缓冲区binder_free_buf()
在Linux内核启动过程中,会调用到do_initcalls()函数循环地调用.initcall段位的每个函数,于是就会调用到通过device_initcall()宏把自己编译到.initcall段位的binder_init()函数。
misc_register(&binder_miscdev);
debugfs_create_dir(\"binder\"
do_basic_setup()
binder_init()初始化binder设备
kernel_init()
start_kernel()
do_initcalls()
rest_init()
0 条评论
下一页