Android binder驱动中用到的关键结构体

1.binder_work  结构体binder_work用来描述待处理的工作项,这些工作项有可能属于一个进程,也有可能属于一个进程的某一个线程。

2.binder_node 结构体binder_node用来描述一个binder实体。每一个Service组件在Binder驱动程序中都对应一个Binder实体对象,用来描述它在内核中的状态。

3.binder_ref 结构体binder_ref用来描述一个Binder引用对象。每一个Client组件在Binder驱动程序中都对应有一个Binder引用对象,用来描述它在内核中的状态。

4.binder_buffer 结构体binder_buffer用来描述内核缓冲区,它是用来在进程间传输数据的。每一个使用Binder进程间通信机制的进程在Binder驱动程序中都有一个内核缓冲区列表,用来保存Binder驱动程序为它分配的内核缓冲区。

5.binder_proc 结构体binder_proc用来描述一个正在使用Binder进程间通讯机智的过程。当一个进程调用函数open来打开设备文件/dev/binder时,Binder驱动程序就为她创建一个binder_proc结构体,并且将它保存在一个全局的hash列表中,而成员变量proc_node就正好是该hash列表中的一个节点。此外,成员变量pid、tsk、files分别指向了进程的进程组ID、任务控制块和打开文件结构体数组。

6.  binder_thread 结构体binder_thread用来描述Binder线程池中的一个线程,其中,成员变量proc指向其宿主进程。

7.binder_transaction 结构体binder_transaction用来描述进程间通信过程,这个过程又称为一个事务。

8.binder_write_read 结构体binder_write_read 用来描述进程间通信过程中所传输的数据。这些数据包括输入数据和输出数据,输入数据即从用户空间传输到Binder驱动程序的数据,输出数据即从Binder驱动程序返回给用户空间的数据,它也是进程通信结果数据。

9.binder_transaction_data 结构体binder_tranaction_data用来描述进程间通信过程中所传输的数据。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值