static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
int bufnum);
-
-struct ArcProto rawmode_proto =
+static struct ArcProto rawmode_proto =
{
.suffix = 'r',
.mtu = XMTU,
.rx = rx,
.build_header = build_header,
.prepare_tx = prepare_tx,
+ .continue_tx = NULL,
+ .ack_tx = NULL
};
static void rx(struct net_device *dev, int bufnum,
struct archdr *pkthdr, int length)
{
- struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+ struct arcnet_local *lp = dev->priv;
struct sk_buff *skb;
struct archdr *pkt = pkthdr;
int ofs;
BUGLVL(D_SKB) arcnet_dump_skb(dev, skb, "rx");
- skb->protocol = 0;
+ skb->protocol = __constant_htons(ETH_P_ARCNET);
+;
netif_rx(skb);
dev->last_rx = jiffies;
}
static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
int bufnum)
{
- struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+ struct arcnet_local *lp = dev->priv;
struct arc_hardware *hard = &pkt->hard;
int ofs;
} else
hard->offset[0] = ofs = 256 - length;
+ BUGMSG(D_DURING, "prepare_tx: length=%d ofs=%d\n",
+ length,ofs);
+
lp->hw.copy_to_card(dev, bufnum, 0, hard, ARC_HDR_SIZE);
lp->hw.copy_to_card(dev, bufnum, ofs, &pkt->soft, length);