USB Core 六

 

struct usb_bus {
277 struct device *controller; /* host/master side hardware */
 int busnum; /* busnum,总线编号*/
/* 
bus_name 总线的名字,大多数情况下主机控制器都是一个PCI 设备,那么bus_name 应该就是用来在PCI总线上标识usb 主机控制器的名字,PCI 总线使用标准的PCI ID 来标识PCI 设备,所以bus_name 里保存的应该就是主机控制器对应的PCI ID
*/
 char *bus_name; 
 u8 uses_dma; /* uses_dma,表明这个主机控制器支持不支持DMA,内存和USB 总线之间传输数据,这个过程可以使用DMA 或者不使用DMA,不使用
DMA 的方式即所谓的PIO 方式*/
 u8 otg_port; /* 0, or number of OTG/HNP port */
 unsigned is_b_host:1; /* true during some HNP roleswitches */
 unsigned b_hnp_enable:1; /* OTG: did A-Host enable HNP? */

 int devnum_next; /* Next open device number in
 * round-robin allocation */

 struct usb_devmap devmap; /* device address allocation map */
 struct usb_device *root_hub; /* 和usb主机控制器绑定在一起*/
 struct list_head bus_list; /* 在hcd.c 中定义有一个全局队列usb_bus_list*/

 int bandwidth_allocated; /* bandwidth_allocated,表明总线为中断传输和等时传输预留了多少带宽.对于高速来说,最多可以有80%,对于低速和全速要多点儿,可以达到90%。
 */
 int bandwidth_int_reqs; /* 分别表示当前中断传输和等时传输的数量。*/
 int bandwidth_isoc_reqs; /* number of Isoc. requests */

 #ifdef CONFIG_USB_DEVICEFS
 struct dentry *usbfs_dentry; /*每条总线都对应于/proc/bus/usb 下的一个目录。*/
 #endif
 struct class_device *class_dev; /* class device for this bus */

 #if defined(CONFIG_USB_MON)
 struct mon_bus *mon_bus; /* non-null when associated */
 int monitored; /* non-zero when monitored */
 #endif
 };


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值