如何在此联合中访问此比特率值?

时间:2012-06-23 07:30:22

标签: linux-kernel

我正在编写一个需要从此联合中读取比特率值的内核模块:

union   iwreq_data
{
    .......
    struct iw_param bitrate;    /* default bit rate */

     ....
}

这段代码是从wireless.h中获取的。谁知道我怎样才能获取它的'价值?我的意思是我应该使用net_device?wireless_dev?我正在使用linux内核2.6.35

1 个答案:

答案 0 :(得分:1)

如果您有union iwreq_data *data,则只需使用data->bitrate.value

但是这个结构并不是永久存在的,所以你不能为给定的设备获得指向它的指针。在为设备设置或获取参数时使用该结构,并且仅在设置/获取操作的持续时间内存在该结构 设置比特率时,驱动程序以依赖于驱动程序的方式保存新值,并释放结构(通常在设置函数的堆栈中分配)。

您可以尝试拨打ieee80211softmac_wx_get_rate来获取它。给它一个指向未初始化union iwreq_data的指针,它将填充比特率。