科创园

科创园地,分享技术知识,为科技助力发展,贡献一己之力。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年3月31日

摘要: 总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧。,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_control_msg->usb_start_wait_urb->usb_submit_urb->usb_hcd_submit_urb。这个山头儿,王中之王就是drivers/usb/core/hcd.h里定义的struct usb_hcd。/*-------------------------------------------------------------------- 阅读全文

posted @ 2014-03-31 18:23 科创园 阅读(1461) 评论(0) 推荐(0) 编辑

摘要: 直接看代码吧。 /*-------------------------------------------------------------------*//** * usb_submit_urb - issue an asynchronous transfer request for an endpoint * @urb: pointer to the urb describing the request * @mem_flags: the type of memory to allocate, see kmalloc() for a list * of valid options ... 阅读全文

posted @ 2014-03-31 18:22 科创园 阅读(2439) 评论(0) 推荐(0) 编辑

摘要: 上一节勉勉强强把struct urb这个中心给说完,接着看那三个基本点。第一个基本点,usb_alloc_urb函数,创建urb的专用函数,为一个urb申请内存并做初始化,在drviers/usb/core/urb.c里定义。/** * usb_alloc_urb - creates a new urb for a USB driver to use * @iso_packets: number of iso packets for this urb * @mem_flags: the type of memory to allocate, see kmalloc() for a list o 阅读全文

posted @ 2014-03-31 18:19 科创园 阅读(1642) 评论(0) 推荐(0) 编辑

摘要: 函数usb_control_msg完成一些初始化后调用了usb_internal_control_msg之后就free urb。剩下的活,全部留给usb_internal_control_msg去做了,那就去了解一下它背后的生活吧。/*-------------------------------------------------------------------*/// returns status (negative) or length (positive)static int usb_internal_control_msg(struct usb_device *usb_dev, 阅读全文

posted @ 2014-03-31 18:18 科创园 阅读(3937) 评论(1) 推荐(1) 编辑