Binder学习

来源:互联网 发布:环境保护实用数据手册 编辑:程序博客网 时间:2024/06/06 09:40

(1)Binder驱动的最重要函数  # alps/kernel-3.18/drivers/staging/android/binder.c

static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)

其中cmd中最重要的是:BINDER_WRITE_READ

case BINDER_WRITE_READ:ret = binder_ioctl_write_read(filp, cmd, arg, thread);if (ret)goto err;break;

BINDER_WRITE_READ在binder_ioctl_write_read()很多子命令,其中最重要的命令:

 BC_TRANSACTION 、 BC_REPLY

                case BC_TRANSACTION:case BC_REPLY: {struct binder_transaction_data tr;if (copy_from_user(&tr, ptr, sizeof(tr)))return -EFAULT;ptr += sizeof(tr);binder_transaction(proc, thread, &tr, cmd == BC_REPLY);break;}




0 0
原创粉丝点击