Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15343836
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2010-01-21 10:02:13

mon_text_open
==> rp->r.rnf_complete = mon_text_complete;
==> mon_reader_add(mbus, &rp->r); // 将rp->r添加到mon的总线上,当
//
// mon_init
// usb_mon_register(&mon_ops_0);将该mon_ops_0作为mon监控系统中全局mon_ops的方法
// static struct usb_mon_operations mon_ops_0
// mon_ops_0.mon_bus_complete
// mon_bus_complete()被执行时将调用r->rnf_complete(r->r_data, urb, status);
// mon_complete
// ==> mon_bus_complete
// ==> rp->r.rnf_complete即mon_text_complete
//
// 来看看usb系统怎么调用
//
//
// usb_hcd_giveback_urb
// ==> usbmon_urb_complete(&hcd->self, urb, status);
// ==> if (bus->monitored)
//        (*mon_ops->urb_complete)(bus, urb, status); // 这里mon_ops就是上面的mon监控系统中使用到的全局量
// 那bus->monitored是什么时候置位的呢
// mon_text_open
// ==> mon_reader_add(mbus, &rp->r); 表示向usb总线追加一个reader,那么当然该bus的mon就要启动了.
// ==> mbus->u_bus->monitored = 1;
==> mon_text_complete或mon_text_submit
==> mon_text_event
==> /* Collecting status makes debugging sense for submits, too */
    ep->status = status;
==> list_add_tail(&ep->e_link, &rp->e_list); // 将动态创建的ep添加到rp->e_list链表上
/*
将在
sudo cat /sys/kernel/debug/usb/usbmon/2u时
mon_text_read_u
==> mon_text_read_wait
==> mon_text_fetch
==> p = rp->e_list.next;
将添加的ep事件提取出来处理[luther.gliethttp]
*/
阅读(1644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~