首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sdio_register_driver()会创建设备名吗?

sdio_register_driver()会创建设备名吗?
EN

Stack Overflow用户
提问于 2014-05-05 03:30:58
回答 1查看 934关注 0票数 0

我读了下面这样的代码。设备名称"my_sdio“是在调用sdio_register_driver()之后还是在调用my_sdio_probe()之后在/dev中创建的?如果两者都不是,设备名称是什么时候创建的?

代码语言:javascript
复制
static struct sdio_driver my_sdio_driver = {
   .name    = "my_sdio",
   .id_table = my_sdio_ids,
   .probe   = my_sdio_probe,
   .remove  = my_sdio_remove,
};

sdio_register_driver(&my_sdio_driver);
EN

回答 1

Stack Overflow用户

发布于 2014-05-05 13:37:13

sdio_register_driver()my_sdio_probe()都不会创建名为my_sdio的设备。

函数sdio_register_driver会将你的驱动注册到内核。设备将通过将设备注册到内核来创建。通常在使用register_blkdevregister_chrdev的应用程序代码中。在这里,您将为您的设备指定名称my_sdio

下面结构中的name参数有助于将驱动程序绑定到设备(在应用程序代码中创建)。

代码语言:javascript
复制
static struct sdio_driver my_sdio_driver = {
   .name    = "my_sdio",
   .id_table = my_sdio_ids,
   .probe   = my_sdio_probe,
   .remove  = my_sdio_remove,
};

只有在找到设备和驱动程序之间的匹配项后,才会调用my_sdio_probe()函数。

来自https://www.kernel.org/doc/Documentation/driver-model/platform.txt

驱动程序绑定由驱动程序核心自动执行,在找到设备和驱动程序之间的匹配后调用驱动程序探测()。如果探测()成功,则驱动程序和设备照常绑定。有三种不同的方法可以找到这样的匹配:

代码语言:javascript
复制
- Whenever a device is registered, the drivers for that bus are
  checked for matches.  Platform devices should be registered very
  early during system boot.

- When a driver is registered using platform_driver_register(), all
  unbound devices on that bus are checked for matches.  Drivers
  usually register later during booting, or by module loading.

- Registering a driver using platform_driver_probe() works just like
  using platform_driver_register(), except that the driver won't
  be probed later if another device registers.  (Which is OK, since
  this interface is only for use with non-hotpluggable devices.)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23460648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档