Lines Matching full:soft
94 struct arc_rfc1201 *soft = &pkt->soft.rfc1201; in type_trans() local
109 switch (soft->proto) { in type_trans()
138 struct arc_rfc1201 *soft = &pkthdr->soft.rfc1201; in rx() local
150 if (soft->split_flag == 0xFF) { /* Exception Packet */ in rx()
163 soft, sizeof(pkt->soft)); in rx()
165 if (!soft->split_flag) { /* not split */ in rx()
167 soft->split_flag); in rx()
171 in->sequence, soft->split_flag, in rx()
172 soft->sequence); in rx()
173 lp->rfc1201.aborted_seq = soft->sequence; in rx()
179 in->sequence = soft->sequence; in rx()
190 soft = &pkt->soft.rfc1201; in rx()
192 /* up to sizeof(pkt->soft) has already in rx()
196 if (length > sizeof(pkt->soft)) in rx()
198 ofs + sizeof(pkt->soft), in rx()
199 pkt->soft.raw + sizeof(pkt->soft), in rx()
200 length - sizeof(pkt->soft)); in rx()
207 if (soft->proto == ARC_P_ARP) { in rx()
208 struct arphdr *arp = (struct arphdr *)soft->payload; in rx()
256 soft->split_flag, in->sequence); in rx()
258 if (in->skb && in->sequence != soft->sequence) { in rx()
260 saddr, in->sequence, soft->sequence, in rx()
261 soft->split_flag); in rx()
268 if (soft->split_flag & 1) { /* first packet in split */ in rx()
270 soft->split_flag); in rx()
273 in->sequence, soft->split_flag, in rx()
274 soft->sequence); in rx()
279 in->sequence = soft->sequence; in rx()
280 in->numpackets = ((unsigned)soft->split_flag >> 1) + 2; in rx()
285 soft->split_flag); in rx()
286 lp->rfc1201.aborted_seq = soft->sequence; in rx()
295 lp->rfc1201.aborted_seq = soft->sequence; in rx()
301 soft = &pkt->soft.rfc1201; in rx()
306 soft->split_flag = 0; /* end result won't be split */ in rx()
308 int packetnum = ((unsigned)soft->split_flag >> 1) + 1; in rx()
314 if (lp->rfc1201.aborted_seq != soft->sequence) { in rx()
316 soft->split_flag, in rx()
317 soft->sequence, in rx()
330 soft->split_flag); in rx()
337 in->sequence, soft->split_flag, in rx()
338 soft->sequence); in rx()
339 lp->rfc1201.aborted_seq = soft->sequence; in rx()
348 soft = &pkt->soft.rfc1201; in rx()
376 /* Create the ARCnet hard/soft headers for RFC1201. */
383 struct arc_rfc1201 *soft = &pkt->soft.rfc1201; in build_header() local
388 soft->proto = ARC_P_IP; in build_header()
391 soft->proto = ARC_P_IPV6; in build_header()
394 soft->proto = ARC_P_ARP; in build_header()
397 soft->proto = ARC_P_RARP; in build_header()
402 soft->proto = ARC_P_IPX; in build_header()
405 soft->proto = ARC_P_ATALK; in build_header()
423 soft->sequence = htons(lp->rfc1201.sequence++); in build_header()
424 soft->split_flag = 0; /* split packets are done elsewhere */ in build_header()
443 struct arc_rfc1201 *soft, int softlen, int bufnum) in load_pkt() argument
456 excsoft.proto = soft->proto; in load_pkt()
470 lp->hw.copy_to_card(dev, bufnum, ofs, soft, softlen); in load_pkt()
487 pkt->soft.rfc1201.split_flag = 0; in prepare_tx()
500 pkt->soft.rfc1201.sequence); in prepare_tx()
505 load_pkt(dev, &pkt->hard, &pkt->soft.rfc1201, length, bufnum); in prepare_tx()
515 struct arc_rfc1201 *soft = &out->pkt->soft.rfc1201, *newsoft; in continue_tx() local
521 out->segnum, out->numsegs, soft->sequence); in continue_tx()
523 /* the "new" soft header comes right before the data chunk */ in continue_tx()
525 (out->pkt->soft.raw + out->length - out->dataleft); in continue_tx()
527 if (!out->segnum) /* first packet; newsoft == soft */ in continue_tx()
531 newsoft->proto = soft->proto; in continue_tx()
532 newsoft->sequence = soft->sequence; in continue_tx()