本文介绍: 以上的核心就是基于poll,通过ioctl来读取消息(HDF_READ_DEV_EVENT),然后再去调用上面传过来的回调函数。重点就是通过HdfIoServiceBind绑定服务,调用服务的Dispatch接口。主要是通过HdfDeviceRegisterEventListener注册回调函数。最底层就是通过系统调用ioctl来读写消息(HDF_WRITE_READ)。这里主要看用户态的实现,即hdf_syscall_adapter.c。
用户态应用发送消息到驱动
用户态主要代码
重点就是通过HdfIoServiceBind绑定服务,调用服务的Dispatch接口
HdfIoServiceBind接口流程
HdfIoServiceBind接口的主要作用是open对应服务的字符设备节点/dev/hdf/serviceName,细节流程如下:
HdfIoServiceAdapterObtain函数有两处实现:
这里主要看用户态的实现,即hdf_syscall_adapter.c
Dispatch接口流程
最底层就是通过系统调用ioctl来读写消息(HDF_WRITE_READ)。
用户态应用接收驱动上报事件
HdfDeviceRegisterEventListener函数流程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。