2012-06-23 191 views
1

我正在写一个需要从这个工会读码量的价值内核模块:如何在此联合中访问此比特率值?

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

    .... 
} 

wireless.h的人都知道我怎么可以访问得到它的价值这段代码是采取的形式我的意思是什么struct应该使用net_device?wireless_dev?我正在使用Linux内核2.6.35

回答

1

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

但是这个结构并不是永久存在的,所以你无法得到给定设备的指针。该结构用于为设备设置或获取参数,并且仅在设置/获取操作期间存在。
设置比特率时,驱动程序以与驱动程序相关的方式保存新值,并释放结构(通常在设置功能的堆栈中分配结构)。

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

+0

问题是如何得到它。我的意思是使用什么函数/数据结构(如wireless_dev或类似的东西?) –

+0

谢谢Ugoren,但是这个'ieee80211softmac_wx_get_rate'函数在内核2.6.32中不存在 –

+0

我在2.6.18中看到它。也许2.6.32有一些替代品。你可以在2.6.18中搜索它的调用者,看看他们在2.6.32中做了什么。 – ugoren