Lines Matching refs:rcv
338 struct plip_local *rcv,
347 struct plip_local *snd, struct plip_local *rcv);
364 struct plip_local *rcv = &nl->rcv_data;
370 if ((r = (*f)(nl->dev, nl, snd, rcv)) != OK &&
371 (r = plip_bh_timeout_error(nl->dev, nl, snd, rcv, r)) != OK) {
395 struct plip_local *snd, struct plip_local *rcv,
428 if (rcv->state == PLIP_PK_TRIGGER) {
441 dev->name, rcv->state, c0);
445 rcv->state = PLIP_PK_DONE;
446 if (rcv->skb) {
447 dev_kfree_skb_irq(rcv->skb);
448 rcv->skb = NULL;
470 struct plip_local *snd, struct plip_local *rcv)
582 struct plip_local *snd, struct plip_local *rcv)
587 switch (rcv->state) {
595 rcv->state = PLIP_PK_LENGTH_LSB;
596 rcv->nibble = PLIP_NB_BEGIN;
602 &rcv->nibble, &rcv->length.b.lsb)) {
604 rcv->state = PLIP_PK_DONE;
614 &rcv->nibble, &rcv->length.b.lsb))
617 rcv->state = PLIP_PK_LENGTH_MSB;
622 &rcv->nibble, &rcv->length.b.msb))
624 if (rcv->length.h > dev->mtu + dev->hard_header_len ||
625 rcv->length.h < 8) {
626 printk(KERN_WARNING "%s: bogus packet size %d.\n", dev->name, rcv->length.h);
630 rcv->skb = dev_alloc_skb(rcv->length.h + 2);
631 if (rcv->skb == NULL) {
635 skb_reserve(rcv->skb, 2); /* Align IP on 16 byte boundaries */
636 skb_put(rcv->skb,rcv->length.h);
637 rcv->skb->dev = dev;
638 rcv->state = PLIP_PK_DATA;
639 rcv->byte = 0;
640 rcv->checksum = 0;
644 lbuf = rcv->skb->data;
647 &rcv->nibble, &lbuf[rcv->byte]))
649 } while (++rcv->byte < rcv->length.h);
651 rcv->checksum += lbuf[--rcv->byte];
652 } while (rcv->byte);
653 rcv->state = PLIP_PK_CHECKSUM;
658 &rcv->nibble, &rcv->data))
660 if (rcv->data != rcv->checksum) {
666 rcv->state = PLIP_PK_DONE;
671 rcv->skb->protocol=plip_type_trans(rcv->skb, dev);
672 netif_rx_ni(rcv->skb);
673 dev->stats.rx_bytes += rcv->length.h;
675 rcv->skb = NULL;
750 struct plip_local *snd, struct plip_local *rcv)
869 struct plip_local *snd, struct plip_local *rcv)
887 struct plip_local *snd, struct plip_local *rcv)
915 struct plip_local *rcv;
920 rcv = &nl->rcv_data;
941 rcv->state = PLIP_PK_TRIGGER;
1123 struct plip_local *rcv = &nl->rcv_data;
1151 rcv->state = PLIP_PK_DONE;
1152 if (rcv->skb) {
1153 kfree_skb(rcv->skb);
1154 rcv->skb = NULL;