guanglun

光轮电子/光轮电子工作室

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

rk3399 Android8源码 nanopc-t4

 

RK3399 Android8.1源码 ADB消息传输,函数调用跟踪

 

函数名

文件位置

 

 

 
usb_write

system/core/adb/daemon/usb.cpp

 

 

ffs_epfile_io

kernel/drivers/usb/gadget/function/f_fs.c

 

 

usb_ep_queue

kernel/drivers/usb/gadget/udc/core.c

 

 

dwc3_gadget_ep_queue

kernel/drivers/usb/dwc3/gadget.c

 

 

 

先记下阅读过程中几个关键函数:

dwc3_ep0_xfer_complete

  ep0端点USB接收流程。

usb_endpoint_xfer_bulk

  批量(bulk)传输。

ret = request_threaded_irq(irq, dwc3_interrupt, dwc3_thread_interrupt,
IRQF_SHARED, "dwc3", dwc->ev_buf);

 

int usb_ep_queue(struct usb_ep *ep,struct usb_request *req, gfp_t gfp_flags)  

  入队请求操作

 

文件读取,如果系统实现中没有同步读取的实现,则使用异步读取将其实现(前提是异步读取时存在的)
函数所在文件:kernel/fs/read_write.c
ssize_t __vfs_read(struct file *file, char __user *buf, size_t count,
           loff_t *pos)
{
    if (file->f_op->read)
        return file->f_op->read(file, buf, count, pos);
    else if (file->f_op->read_iter)
        return new_sync_read(file, buf, count, pos);
    else
        return -EINVAL;
}
EXPORT_SYMBOL(__vfs_read);

 

posted on 2019-06-03 15:43  guanglun  阅读(1070)  评论(0编辑  收藏  举报