struct usb_interface

来源:互联网 发布:玄空排盘软件下载 编辑:程序博客网 时间:2024/06/10 15:57
struct usb_interface {/* array of alternate settings for this interface, * stored in no particular order */struct usb_host_interface *altsetting;struct usb_host_interface *cur_altsetting;/* the currently * active alternate setting */unsigned num_altsetting;/* number of alternate settings *//* If there is an interface association descriptor then it will list * the associated interfaces */struct usb_interface_assoc_descriptor *intf_assoc;int minor;/* minor number this interface is * bound to */enum usb_interface_condition condition;/* state of binding */unsigned sysfs_files_created:1;/* the sysfs attributes exist */unsigned ep_devs_created:1;/* endpoint "devices" exist */unsigned unregistering:1;/* unregistration is in progress */unsigned needs_remote_wakeup:1;/* driver requires remote wakeup */unsigned needs_altsetting0:1;/* switch to altsetting 0 is pending */unsigned needs_binding:1;/* needs delayed unbind/rebind */unsigned reset_running:1;unsigned resetting_device:1;/* true: bandwidth alloc after reset */struct device dev;/* interface specific device info */struct device *usb_dev;atomic_t pm_usage_cnt;/* usage counter for autosuspend */struct work_struct reset_ws;/* for resets in atomic context */};/** * struct usb_interface - what usb device drivers talk to * @altsetting: array of interface structures, one for each alternate *setting that may be selected.  Each one includes a set of *endpoint configurations.  They will be in no particular order. * @cur_altsetting: the current altsetting. * @num_altsetting: number of altsettings defined. * @intf_assoc: interface association descriptor * @minor: the minor number assigned to this interface, if this *interface is bound to a driver that uses the USB major number. *If this interface does not use the USB major, this field should *be unused.  The driver should set this value in the probe() *function of the driver, after it has been assigned a minor *number from the USB core by calling usb_register_dev(). * @condition: binding state of the interface: not bound, binding *(in probe()), bound to a driver, or unbinding (in disconnect()) * @sysfs_files_created: sysfs attributes exist * @ep_devs_created: endpoint child pseudo-devices exist * @unregistering: flag set when the interface is being unregistered * @needs_remote_wakeup: flag set when the driver requires remote-wakeup *capability during autosuspend. * @needs_altsetting0: flag set when a set-interface request for altsetting 0 *has been deferred. * @needs_binding: flag set when the driver should be re-probed or unbound *following a reset or suspend operation it doesn't support. * @dev: driver model's view of this device * @usb_dev: if an interface is bound to the USB major, this will point *to the sysfs representation for that device. * @pm_usage_cnt: PM usage counter for this interface * @reset_ws: Used for scheduling resets from atomic context. * @reset_running: set to 1 if the interface is currently running a *      queued reset so that usb_cancel_queued_reset() doesn't try to *      remove from the workqueue when running inside the worker *      thread. See __usb_queue_reset_device(). * @resetting_device: USB core reset the device, so use alt setting 0 as *current; needs bandwidth alloc after reset. * * USB device drivers attach to interfaces on a physical device.  Each * interface encapsulates a single high level function, such as feeding * an audio stream to a speaker or reporting a change in a volume control. * Many USB devices only have one interface.  The protocol used to talk to * an interface's endpoints can be defined in a usb "class" specification, * or by a product's vendor.  The (default) control endpoint is part of * every interface, but is never listed among the interface's descriptors. * * The driver that is bound to the interface can use standard driver model * calls such as dev_get_drvdata() on the dev member of this structure. * * Each interface may have alternate settings.  The initial configuration * of a device sets altsetting 0, but the device driver can change * that setting using usb_set_interface().  Alternate settings are often * used to control the use of periodic endpoints, such as by having * different endpoints use different amounts of reserved USB bandwidth. * All standards-conformant USB devices that use isochronous endpoints * will use them in non-default settings. * * The USB specification says that alternate setting numbers must run from * 0 to one less than the total number of alternate settings.  But some * devices manage to mess this up, and the structures aren't necessarily * stored in numerical order anyhow.  Use usb_altnum_to_altsetting() to * look up an alternate setting in the altsetting array based on its number. */

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苍蝇胶沾衣服上怎么办 灯带为什么不亮怎么办 苹果6比屏幕变黄怎么办 雷腾键盘锁了怎么办 自吸泵电机不转怎么办 孕38周胎儿偏小怎么办 被火烧黑的铁怎么办 锅被烟熏黑了怎么办 墙壁被烟熏黑了怎么办 壁纸被烟熏黑了怎么办 空调被烟熏黑了怎么办 牙被烟熏黑了怎么办 尖头鞋把尖折了怎么办 腰椎固定手术钢钉断了怎么办 脚被钢钉扎了怎么办 皮帘子有胶了怎么办 12v插口没有电怎么办 吃了一颗聚乙烯醇怎么办 立式注塑机产品粘膜怎么办 被小松鼠咬了怎么办 被宠物松鼠咬了怎么办 手被松鼠咬出血怎么办 银联认证码失败怎么办 国际汇款触发合规查询怎么办 外面的网线断了怎么办 网线被别的车挂断了怎么办 施工挖断军用光缆怎么办 不小心挖断光缆怎么办 家里的光纤断了怎么办 车被树枝刮花了怎么办 货车撞断了树枝怎么办? 把光缆挖断了怎么办 光缆有外伤断了怎么办 不小心挖断移动光缆怎么办 派克服内胆掉毛怎么办 汉王电纸书怎么无法开机怎么办? 压力喷水壶坏了怎么办 行车记录仪后摄像头不清楚怎么办 蓝牙听歌声音小怎么办 对讲机时灵时不灵怎么办 黑凉粉煮稀了怎么办