- 論壇徽章:
- 0
|
本帖最后由 夢(mèng)中人jj 于 2014-05-06 19:48 編輯
lz新手一枚,最近剛開(kāi)始學(xué)習(xí)了linux e1000驅(qū)動(dòng)代碼,上網(wǎng)查了許多資料后得知,在源碼 e1000-8.0.35/src/e1000main.c中,函數(shù)e1000_clean_ rx_irq()是網(wǎng)卡接收數(shù)據(jù)包的處理函數(shù),在該函數(shù)中定義了struct sk_buff *skb并得到緩沖區(qū)數(shù)據(jù)。請(qǐng)問(wèn)怎樣才能取出skb中的數(shù)據(jù)?
試了在不同位置添加輸出語(yǔ)句printk("%u",skb->len),幾乎都輸出為0;
如果不為0,再添加語(yǔ)句
unsigned int j;
unsigned char *p;
for(j=0,p=skb->data;j<=skb->len;j++,p++)
printk("%s",*p)
想從skb->data處輸出數(shù)據(jù),但是全為null,不知道為什么。
或者想輸出緩沖區(qū)數(shù)組buffer_info[]的信息,不過(guò)改過(guò)后一加載模塊就直接死機(jī),哎。
請(qǐng)教一下各路高手,到底怎樣才能輸出驅(qū)動(dòng)接收到的skb數(shù)據(jù)???
lz是新手,敬請(qǐng)大神們用通俗點(diǎn)的語(yǔ)言指點(diǎn)小弟{:3_200:} 有代碼的話(huà)最好添加下注釋。。。
感激不盡啊。。! |
|