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);