现在的位置: 首页 > 综合 > 正文

Linux usb_device usb_bus usb_driver的三角关系-USB Bus

2013年10月05日 ⁄ 综合 ⁄ 共 472字 ⁄ 字号 评论关闭

二、USB Bus

每一条USB总线对应一个struct usb_bus结构体变量.

 struct
bus_type
usb_bus_type = {
 .name =  "usb",
 .match = usb_device_match,
 .uevent = usb_uevent,
 .pm =  &usb_bus_pm_ops,
};

struct bus_type表示总线的类型,而usb_bus_type定义了一种usb总线类型,通过bus_register(&usb_bus_type)让系统知道有usb这么一个类型的总线。

而一个总线类型和一条总线是两码子事儿。从硬件上来讲,一个host controller就会连出一条usb总线,而从软件上来讲,不管你有多少个host controller,或者说有多少条总线,它们通通属于usb_bus_type这么一个类型,只是每一条总线对应一个struct usb_bus结构体变量,这个变量在host controller的驱动程序中去申请。

 

HCD is bus. struct usb_hcd包含一个struct usb_bus.

 

 

抱歉!评论已关闭.