上一页 1 ··· 139 140 141 142 143 144 145 146 147 ··· 280 下一页
摘要: USB 核心中的几个帮忙函数可用来从所有的 USB 设备中存取标准信息. 这些函数不能从 中断上下文或者持有自旋锁时调用. 函数 usb_get_descriptor 获取指定的 USB 描述符从特定的设备. 这个函数被定义为: int usb_get_descriptor(struct usb_d 阅读全文
posted @ 2019-07-07 19:43 樊伟胜 阅读(769) 评论(0) 推荐(0) 编辑
摘要: usb_bulk_msg 创建一个 USB 块 urb 并且发送它到特定的设备, 接着在返回到调用者之 前等待完成. 它定义为: int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, void *data, int len, 阅读全文
posted @ 2019-07-07 19:42 樊伟胜 阅读(338) 评论(0) 推荐(0) 编辑
摘要: usb_bulk_msg 创建一个 USB 块 urb 并且发送它到特定的设备, 接着在返回到调用者之 前等待完成. 它定义为: int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, void *data, int len, 阅读全文
posted @ 2019-07-07 19:42 樊伟胜 阅读(2065) 评论(0) 推荐(0) 编辑
摘要: 当驱动有数据发送到 USB 设备(如同在驱动的 write 函数中发生的), 一个 urb 必须被 分配来传送数据到设备. urb = usb_alloc_urb(0, GFP_KERNEL); if (!urb) { retval = -ENOMEM; goto error; } 在 urb 被成 阅读全文
posted @ 2019-07-07 19:41 樊伟胜 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 当驱动有数据发送到 USB 设备(如同在驱动的 write 函数中发生的), 一个 urb 必须被 分配来传送数据到设备. urb = usb_alloc_urb(0, GFP_KERNEL); if (!urb) { retval = -ENOMEM; goto error; } 在 urb 被成 阅读全文
posted @ 2019-07-07 19:41 樊伟胜 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在之前章节描述的 struct usb_driver 结构中, 驱动指定 2 个 USB 核心在合适的时候 调用的函数. 探测函数被调用, 当设备被安装时, USB 核心认为这个驱动应当处理; 探测 函数应当进行检查传递给它的关于设备的信息, 并且决定是否驱动真正合适那个设备. 去 连接函数被调用当 阅读全文
posted @ 2019-07-07 19:40 樊伟胜 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 在之前章节描述的 struct usb_driver 结构中, 驱动指定 2 个 USB 核心在合适的时候 调用的函数. 探测函数被调用, 当设备被安装时, USB 核心认为这个驱动应当处理; 探测 函数应当进行检查传递给它的关于设备的信息, 并且决定是否驱动真正合适那个设备. 去 连接函数被调用当 阅读全文
posted @ 2019-07-07 19:40 樊伟胜 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 所有 USB 驱动必须创建的主要结构是 struct usb_driver. 这个结构必须被 USB 驱动填 充并且包含多个函数回调和变量, 来向 USB 核心代码描述 USB 驱动: struct module *owner 指向这个驱动的模块拥有者的指针. USB 核心使用它正确地引用计数这个 阅读全文
posted @ 2019-07-07 19:39 樊伟胜 阅读(377) 评论(0) 推荐(0) 编辑
摘要: struct usb_device_id 结构提供了这个驱动支持的一个不同类型 USB 设备的列表. 这个 列表被 USB 核心用来决定给设备哪个驱动, 并且通过热插拔脚本来决定哪个驱动自动加载, 当特定设备被插入系统时. struct usb_device_id 结构定义有下面的成员: u16 m 阅读全文
posted @ 2019-07-07 19:39 樊伟胜 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 为停止一个已经提交给 USB 核心的 urb, 函数 usb_kill_urb 或者 usb_unlink_urb 应 当被调用: int usb_kill_urb(struct urb *urb); int usb_unlink_urb(struct urb *urb); The urb para 阅读全文
posted @ 2019-07-07 19:35 樊伟胜 阅读(449) 评论(0) 推荐(0) 编辑
上一页 1 ··· 139 140 141 142 143 144 145 146 147 ··· 280 下一页