- 论坛徽章:
- 0
|
- if(likely(skb))
- {
- skb->dev = dev;
- skb_reserve(skb,2);
- eth_copy_and_sum (skb, &tp->rx_bufs[offset + 4],data_size,0);
- skb_put(skb,data_size);
- skb->protocol = eth_type_trans (skb, dev);
- dev->last_rx = jiffies;
- tp->stats.rx_bytes += data_size;
- tp->stats.rx_packets++;
- netif_receive_skb (skb);
- }
- else
- tp->stats.rx_dropped++;
- ++work_done;
- //
- // 既然用了 eth_copy_and_sum,
- // 请学习e1000, 无赖到底,
- // or noway to zcopy
- //
- cur_rx = (cur_rx + packet_size + 4 + 3) & ~3;/*更新接收offset*/
- iowrite16((u16)(cur_rx - 16),ioaddr+RxBufPtr);/*更新当前包读取地址*/
复制代码
[ 本帖最后由 sisi8408 于 2007-8-10 23:01 编辑 ] |
|