-
static int
-
dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev)
-
{
-
unsigned long flags;
-
board_info_t *db = netdev_priv(dev);
-
int save_mwr, check_mwr, calc_mwr;
-
-
//通知协议栈暂停想去动传送数据
-
netif_stop_queue(dev);
-
-
//将skb中的数据写入网卡寄存器
-
iow(db, DM9000_TXPLL, skb->len);
-
iow(db, DM9000_TXPLH, (skb->len>>8));
-
-
writeb(DM9000_MWCMD, db->io_addr);
-
(db->outblk)(db->io_data, skb->data, skb->len);
-
-
iow(db, DM9000_TCR, TCR_TXREQ);
-
-
//释放skb
-
dev_kfree_skb(skb);
-
-
return 0;
- }