《Linux那些事儿之我是USB》我是U盘(13)设备花名册

storage_probe这个函数挺有意思,总长度不足100行,但是干了许多事情,这就像足球场上的后腰,比如切尔西的马克莱莱,在场上并不起眼,但是却为整个团队做出了卓越的贡献。

我们继续看storage_probe的代码:

972    mutex_init(&(us->dev_mutex));

973     init_MUTEX_LOCKED(&(us->sema));

974    init_completion(&(us->notify));

975    init_waitqueue_head(&us->delay_wait);

976

977    /*Associate the us_data structure with the USB device */

978   result = associate_dev(us, intf);

979    if(result)

980        goto BadDevice;

981

982    /*

983     * Get the unusual_devs entries and thedescriptors

984     *

985      * id_index is calculated in thedeclaration to be the index number

986      * of the match from the usb_device_idtable, so we can find the

987     * corresponding entry in the privatetable.

988      */

989    result =get_device_info(us, id);

990     if(result)

991        goto BadDevice;

992

storage_probe函数之所以短小,是因为它调用了大量的函数。所以,看起来短短一段代码,实际上却要花费读代码的人好几个小时。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 系统中,UVC 设备和 U 盘都是通过 USB 接口与计算机进行连接的。它们都使用了 USB 协议,并且在 USB 子系统中都被视为 USB 设备。 UVC 设备是指符合 USB 视频类设备USB Video Class,简称 UVC)标准的设备,这类设备通常是摄像头或者视频采集卡等。UVC 设备USB 子系统中被识别为 USB 视频类设备,并且包含了对应的设备描述符和接口描述符等信息。 U 盘则是指通用 USB 存储设备,它通常用于存储数据。U 盘在 USB 子系统中被识别为 USB 存储设备,并且包含了对应的设备描述符和接口描述符等信息。 Linux 系统是通过设备驱动程序来区分不同类型的 USB 设备的。对于 UVC 设备,通常需要使用 UVC 驱动程序进行识别和管理;对于 U 盘,则需要使用 USB 存储设备驱动程序进行识别和管理。在内核中,不同类型的 USB 设备驱动程序通常是通过不同的 USB 设备类别(如 USB 视频类、USB 存储类等)进行区分的。 当系统检测到一个 USB 设备被插入时,它会自动根据设备描述符和接口描述符等信息进行匹配,并调用相应的驱动程序进行识别和管理。对于 UVC 设备和 U 盘,系统会根据它们的设备描述符和接口描述符等信息进行区分,并调用相应的驱动程序进行管理。 总的来说,UVC 设备和 U 盘在 Linux 系统中都是通过 USB 子系统进行识别和管理的,系统是通过设备描述符、接口描述符等信息来区分不同类型的 USB 设备的,并根据不同的设备驱动程序进行管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值