我们继续之前说的那个 binder.c 我没找到binder_call 函数,所以它最后是如何调用到具体驱动c文件的?
时间: 2024-03-29 18:39:10 浏览: 103
binder相关文件
对于 Android 系统中的 Binder 通信机制,binder.c 中的 binder_call 函数是一个非常重要的函数,它用于向 Binder 驱动程序发送请求。但是,这个函数并不直接调用具体的驱动程序来处理请求,而是将请求发送到内核空间,并等待内核空间的响应。
在内核空间中,Binder 驱动程序会接收到请求,并根据请求的类型和参数调用相应的驱动程序来处理请求。具体来说,Binder 驱动程序会根据请求的目标对象以及目标对象所在进程的 PID,找到目标进程的 Binder 驱动程序,并将请求转发给目标进程的 Binder 驱动程序。
在目标进程的 Binder 驱动程序中,会根据请求的类型和参数,调用相应的 C 语言驱动程序来处理请求。这些 C 语言驱动程序通常会使用系统提供的 API 接口,与底层硬件进行交互,以实现特定的功能。
因此,对于 Android 系统中的 Binder 通信机制,具体的驱动程序实现是在内核空间中完成的,而 Binder 驱动程序在这一过程中充当了中介的角色,用于将请求从用户空间传递到内核空间,并将内核空间的响应返回给用户空间。
阅读全文