• Linux 内核接口


    USB 端点被绑在接口中. USB 接口只处理一类 USB 逻辑连接, 例如一个鼠标, 一个键盘, 或者一个音频流. 一些 USB 设备有多个接口, 例如一个 USB 扬声器可能有 2 个接口: 一个 USB 键盘给按钮和一个 USB 音频流. 因为一个 USB 接口表示基本的功能, 每个 USB 驱动控制一个接口; 因此, 对扬声器的例子, Linux 需要 2 个不同的驱动给一个硬 件设备.

    USB 接口可能有预备的设置, 是对接口参数的不同选择. 接口的初始化的状态是第一个设 置, 0 号. 预备的设置可用来以不同方式控制单独的端点, 例如来保留不同量的 USB 带 宽给设备. 每个有同步端点的设备使用预备设备给同一个接口.

    USB 接口在内核中使用 struct usb_interface 结构来描述. 这个结构是 USB 核传递给 USB 驱动的并且是 USB 驱动接下来负责控制的. 这个结构中的重要成员是:

    struct usb_host_interface *altsetting

    一个包含所有预备设置的接口结构的数组, 可被挑选给这个接口. 每个 struct usb_host_interface 包含一套端点配置, 如同由 struct usb_host_endpoint 结 构所定义的. 注意这些接口结构没有特别的顺序.

    unsigned num_altsetting

    由 altsetting 指针指向的预备设置的数目. struct usb_host_interface *cur_altsetting

    指向数组 altsetting 的一个指针, 表示这个接口当前的激活的设置. int minor

    如果绑定到这个接口的 USB 驱动使用 USB 主编号, 这个变量包含由 USB 核心安 排给接口的次编号. 这只在一次成功地调用 usb_register_dev (本章稍后描述)之 后才有效.

    在 struct usb_interface 结构中有其他成员, 但是 USB 驱动不需要知道它们.

  • 相关阅读:
    CF1329A Dreamoon Likes Coloring(贪心)
    CF1330B Dreamoon Likes Permutations
    AcWing338 计数问题(数位dp)
    AcWing311 月之谜(数位dp)
    AcWing310 启示录(数位dp)
    CF1332E Height All the Same(数学)
    CF1332D Walk on Matrix(构造)
    CF1332C K-Complete Word(思维)
    js作用域
    js原型链笔记
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11147254.html
Copyright © 2020-2023  润新知