Linux USB 驱动开发(二)—— USB 驱动几个重要数据结构

本文深入探讨Linux USB驱动的四个核心数据结构:struct usb_interface、struct usb_host_interface、struct usb_host_endpoint和struct usb_device。这些结构分别描述接口、当前设置、端点和设备的信息,对于理解和开发USB驱动至关重要。
摘要由CSDN通过智能技术生成

       前面我们学习了USB 驱动的一个描述符,下面来学习 USB 驱动的几个重要数据结构


一、struct usb_interface  接口函数

struct usb_interface
{
         
         struct usb_host_interface *altsetting;

         struct usb_host_interface *cur_altsetting;      
         unsigned num_altsetting;        

         int minor;                      
         enum usb_interface_condition condition;         
         unsigned is_active:1;           
         unsigned needs_remote_wakeup:1; 

         struct device dev;              
         struct device *usb_dev;         
         int pm_usage_cnt;               
};


    struct usb_interface中的struct usb_host_interface *cur_altsetting成员,表示当前正在使用的设置

1、struct usb_host_interface 

struct usb_host_interface 
{
         struct usb_interface_descriptor desc;//usb描述符,主要有四种usb描述符,设备描述符,配置描述符,接口描述符和端点描述符,协议里规定一个usb设备是必须支持这四大描述符的。
                                 //usb描述符放在usb设备的eeprom里边
         /* array of desc.bNumEndpoint endpoints associated with this
          * interface setting. these will be in no particular order.
          */
         struct usb_host_endpoint *endpoint;//这个设置所使用的端点

         char *string;           /* iInterface string, if present */
         unsigned char *extra;   /* Extra descriptors */关于额外描述符
         int extralen;
};

       具体到接口描述

  • 1
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值