阅读:1098回复:0
问有关8139too.c程序中的问题!
我问一个问题:
在8139too.c中,关于接收这一块有些疑问: 1为什么在这个程序中申请这么大的接收缓冲区呢? #define RX_BUF_LEN_IDX 2 /* 0==8K, 1==16K, 2==32K, 3==64K */ #define RX_BUF_LEN (8192 << RX_BUF_LEN_IDX) #define RX_BUF_PAD 16 #define RX_BUF_WRAP_PAD 2048 /* spare padding to handle lack of packet wrap */ #define RX_BUF_TOT_LEN (RX_BUF_LEN + RX_BUF_PAD + RX_BUF_WRAP_PAD) 2.在接收函数static void rtl8139_rx_interrupt 中: eth_copy_and_sum (skb, &rx_ring[ring_offset + 4], pkt_size, 0); skb_put (skb, pkt_size); 从当前指针指向的开始,如果这个接收包超过剩下的长度时,它是如何处理的呢? RTL_W16_F (RxBufPtr, cur_rx - 16); 为什么要减16呢? [编辑 - 11/15/02 by gyh2002] |
|