1

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

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

     ....
}

此代码取自 wireless.h 任何人都知道我如何获取它的值?我的意思是我应该使用什么结构 net_device?wireless_dev?我正在使用 linux 内核 2.6.35

4

1 回答 1

2

如果有union iwreq_data *data,您可以简单地使用data->bitrate.value.

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

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

于 2012-06-24T13:27:08.977 回答