2012-06-15 5 views
1

мне нужно прочитать некоторые статистические данные из iw_statistics структуры, вот код:пытается прочитать iw_statistics, но код не работает?

struct net_device *dev; 
struct iw_statistics *wi_stats = NULL; 
dev = first_net_device(&init_net); 

    while (dev) 
    { 
     if (strncmp(dev->name , "wlan",4)==0) 
     { 
     if (dev->wireless_handlers-get_wireless_stats(dev) !=NULL) // <--- here's where the code crashes. 
     { 
     wi_stats = dev-wireless_handlers->get_wireless_stats(dev); 
     printk(KERN_INFO "wi_stats = dev-wireless_handlers->get_wireless_stats(dev); worked!!! :D\n"); 
     } 
     } 

    } 

Я работаю на Linux ядро ​​2.6.35, и я пишу модуль ядра. Что я здесь делаю неправильно?

+0

Может быть http://unix.stackexchange.com/ это лучшее место для вашего вопроса? –

+0

Добавление ошибки, которую вы получаете от ядра, было бы очень полезно, но, предположим, dev-> wireless_handlers будет NULL. Сравнение имени интерфейса - неправильный способ решить, является ли net_dev устройством Wi-Fi или нет. –

+0

нет ошибки, он записывает кучу вещей в файле журнала, который выглядит так: '15 июня 06:56:13 ubuntu kernel: [175.362072] * pde = 00000000 15 июн 06:56:13 Ядро ubuntu: [175.364020] Модули связаны: myNetStats (P +) RFCOMM binfmt_misc SCO BNEP L2CAP parport_pc PPDEV snd_hda_codec_atihdmi ARC4 snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm ath5k snd_seq_midi mac80211 snd_rawmidi Radeon snd_seq_midi_event uvcvideo joydev snd_seq hp_wmi ATH .... ' – Killua

ответ

0

ли вы на самом деле имели в виду, чтобы написать

if (dev->wireless_handlers-get_wireless_stats(dev) !=NULL) 

или Вы имели в виду

if (dev->wireless_handlers->get_wireless_stats(dev) !=NULL) 
+0

К сожалению, это была опечатка при копировании здесь, но реальный код правильно набран ... любая идея, что не так / – Killua

Смежные вопросы