Lines Matching refs:frame
78 struct frame_buf *frame, in pcbit_l2_write() local
86 if ((frame = kmalloc(sizeof(struct frame_buf), in pcbit_l2_write()
91 frame->msg = msg; in pcbit_l2_write()
92 frame->refnum = refnum; in pcbit_l2_write()
93 frame->copied = 0; in pcbit_l2_write()
94 frame->hdr_len = hdr_len; in pcbit_l2_write()
97 frame->dt_len = skb->len - hdr_len; in pcbit_l2_write()
99 frame->dt_len = 0; in pcbit_l2_write()
101 frame->skb = skb; in pcbit_l2_write()
103 frame->next = NULL; in pcbit_l2_write()
108 dev->write_queue = frame; in pcbit_l2_write()
113 ptr->next = frame; in pcbit_l2_write()
143 struct frame_buf *frame = NULL; in pcbit_transmit() local
169 frame = dev->write_queue; in pcbit_transmit()
174 if (frame->copied == 0) { in pcbit_transmit()
180 if (frame->skb) in pcbit_transmit()
181 flen = FRAME_HDR_LEN + PREHDR_LEN + frame->skb->len; in pcbit_transmit()
188 msg = frame->msg; in pcbit_transmit()
201 pcbit_writew(dev, frame->hdr_len + PREHDR_LEN); in pcbit_transmit()
204 pcbit_writew(dev, frame->dt_len); in pcbit_transmit()
212 pcbit_writew(dev, frame->hdr_len + PREHDR_LEN); in pcbit_transmit()
222 pcbit_writew(dev, frame->refnum); in pcbit_transmit()
228 flen = 2 + (frame->skb->len - frame->copied); in pcbit_transmit()
240 if (frame->skb) { in pcbit_transmit()
241 cp_len = frame->skb->len - frame->copied; in pcbit_transmit()
245 memcpy_topcbit(dev, frame->skb->data + frame->copied, in pcbit_transmit()
247 frame->copied += cp_len; in pcbit_transmit()
255 if (frame->skb == NULL || frame->copied == frame->skb->len) { in pcbit_transmit()
257 dev->write_queue = frame->next; in pcbit_transmit()
259 if (frame->skb != NULL) { in pcbit_transmit()
261 dev_kfree_skb(frame->skb); in pcbit_transmit()
263 kfree(frame); in pcbit_transmit()
285 struct frame_buf *frame; in pcbit_deliver() local
292 while ((frame = dev->read_queue)) { in pcbit_deliver()
293 dev->read_queue = frame->next; in pcbit_deliver()
299 SET_MSG_CMD(msg, frame->skb->data[2]); in pcbit_deliver()
300 SET_MSG_SCMD(msg, frame->skb->data[3]); in pcbit_deliver()
302 frame->refnum = *((ushort *)frame->skb->data + 4); in pcbit_deliver()
303 frame->msg = *((ulong *)&msg); in pcbit_deliver()
305 skb_pull(frame->skb, 6); in pcbit_deliver()
307 pcbit_l3_receive(dev, frame->msg, frame->skb, frame->hdr_len, in pcbit_deliver()
308 frame->refnum); in pcbit_deliver()
310 kfree(frame); in pcbit_deliver()
328 struct frame_buf *frame = NULL; in pcbit_receive() local
353 frame = kzalloc(sizeof(struct frame_buf), GFP_ATOMIC); in pcbit_receive()
355 if (frame == NULL) { in pcbit_receive()
366 kfree(frame); in pcbit_receive()
375 frame->hdr_len = pcbit_readw(dev); in pcbit_receive()
376 frame->dt_len = pcbit_readw(dev); in pcbit_receive()
385 if (frame->hdr_len == 0) { in pcbit_receive()
386 kfree(frame); in pcbit_receive()
394 if (frame->hdr_len > 1024 || frame->dt_len > 2048) { in pcbit_receive()
398 frame->hdr_len, in pcbit_receive()
399 frame->dt_len); in pcbit_receive()
402 kfree(frame); in pcbit_receive()
407 frame->skb = dev_alloc_skb(frame->hdr_len + frame->dt_len + in pcbit_receive()
408 ((frame->hdr_len + 15) & ~15)); in pcbit_receive()
410 if (!frame->skb) { in pcbit_receive()
412 kfree(frame); in pcbit_receive()
416 if (frame->dt_len) in pcbit_receive()
417 skb_reserve(frame->skb, (frame->hdr_len + 15) & ~15); in pcbit_receive()
424 if (!(frame = dev->read_frame)) { in pcbit_receive()
435 memcpy_frompcbit(dev, skb_put(frame->skb, tt), tt); in pcbit_receive()
437 frame->copied += tt; in pcbit_receive()
439 if (frame->copied == frame->hdr_len + frame->dt_len) { in pcbit_receive()
447 ptr->next = frame; in pcbit_receive()
449 dev->read_queue = frame; in pcbit_receive()
452 dev->read_frame = frame; in pcbit_receive()
588 struct frame_buf *frame; in pcbit_l2_err_recover() local
607 frame = dev->write_queue; in pcbit_l2_err_recover()
611 if (frame->skb) { in pcbit_l2_err_recover()
612 dev_kfree_skb(frame->skb); in pcbit_l2_err_recover()
614 kfree(frame); in pcbit_l2_err_recover()
616 frame->copied = 0; in pcbit_l2_err_recover()