【问题标题】:Linux kernel wireless device driverLinux 内核无线设备驱动程序
【发布时间】:2017-03-02 12:36:17
【问题描述】:

从内核 3.13 开始,我无法理解 net/wireless/nl80211.c 文件中的一件事。为什么nl80211_start_radar_detection()中有如下if语句:

if (netif_carrier_ok(dev)) {
    return -EBUSY;
}

据我了解,这意味着如果我们的驾驶员载体已准备好,我们将无法启动雷达检测。为什么?不应该是这样吗

if (!netif_carrier_ok(dev)) {
    return -EBUSY;
}

谢谢

【问题讨论】:

  • Unix 和 POSIX 世界中的许多函数在成功时返回零,在失败时返回负数。也许如果你检查一下 netif_carrier_ok 做了什么以及它返回了什么,你会发现比在这里发帖更好(而且更快!)?
  • 我已经这样做了,这正是我问这个问题的原因
  • @Someprogrammerdude,netif_carier_ok 返回bool。如果 0 意味着成功,那就太奇怪了。
  • 我猜你看的函数只能在WiFi接口不用于实际联网时调用

标签: c linux linux-kernel linux-device-driver wireless


【解决方案1】:

nl80211_start_radar_detection() :- 这将启动雷达检测,如果检测到雷达,它将从频道移动。

但在这里 netif_carrier_ok(dev) ,检查设备是否支持该运营商,或者我的设备是否可以在该频道上运行,如果不返回错误。

未来无需继续检查雷达。

【讨论】:

    猜你喜欢
    • 2020-05-08
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    相关资源
    最近更新 更多