Lines Matching refs:lapb
35 void lapb_clear_queues(struct lapb_cb *lapb) in lapb_clear_queues() argument
37 skb_queue_purge(&lapb->write_queue); in lapb_clear_queues()
38 skb_queue_purge(&lapb->ack_queue); in lapb_clear_queues()
46 void lapb_frames_acked(struct lapb_cb *lapb, unsigned short nr) in lapb_frames_acked() argument
51 modulus = (lapb->mode & LAPB_EXTENDED) ? LAPB_EMODULUS : LAPB_SMODULUS; in lapb_frames_acked()
56 if (lapb->va != nr) in lapb_frames_acked()
57 while (skb_peek(&lapb->ack_queue) && lapb->va != nr) { in lapb_frames_acked()
58 skb = skb_dequeue(&lapb->ack_queue); in lapb_frames_acked()
60 lapb->va = (lapb->va + 1) % modulus; in lapb_frames_acked()
64 void lapb_requeue_frames(struct lapb_cb *lapb) in lapb_requeue_frames() argument
73 while ((skb = skb_dequeue(&lapb->ack_queue)) != NULL) { in lapb_requeue_frames()
75 skb_queue_head(&lapb->write_queue, skb); in lapb_requeue_frames()
77 skb_append(skb_prev, skb, &lapb->write_queue); in lapb_requeue_frames()
86 int lapb_validate_nr(struct lapb_cb *lapb, unsigned short nr) in lapb_validate_nr() argument
88 unsigned short vc = lapb->va; in lapb_validate_nr()
91 modulus = (lapb->mode & LAPB_EXTENDED) ? LAPB_EMODULUS : LAPB_SMODULUS; in lapb_validate_nr()
93 while (vc != lapb->vs) { in lapb_validate_nr()
99 return nr == lapb->vs; in lapb_validate_nr()
106 int lapb_decode(struct lapb_cb *lapb, struct sk_buff *skb, in lapb_decode() argument
111 lapb_dbg(2, "(%p) S%d RX %3ph\n", lapb->dev, lapb->state, skb->data); in lapb_decode()
119 if (lapb->mode & LAPB_MLP) { in lapb_decode()
120 if (lapb->mode & LAPB_DCE) { in lapb_decode()
132 if (lapb->mode & LAPB_DCE) { in lapb_decode()
147 if (lapb->mode & LAPB_EXTENDED) { in lapb_decode()
221 void lapb_send_control(struct lapb_cb *lapb, int frametype, in lapb_send_control() argument
232 if (lapb->mode & LAPB_EXTENDED) { in lapb_send_control()
240 dptr[1] = (lapb->vr << 1); in lapb_send_control()
248 *dptr |= (lapb->vr << 5); in lapb_send_control()
251 lapb_transmit_buffer(lapb, skb, type); in lapb_send_control()
258 void lapb_transmit_frmr(struct lapb_cb *lapb) in lapb_transmit_frmr() argument
268 if (lapb->mode & LAPB_EXTENDED) { in lapb_transmit_frmr()
271 *dptr++ = lapb->frmr_data.control[0]; in lapb_transmit_frmr()
272 *dptr++ = lapb->frmr_data.control[1]; in lapb_transmit_frmr()
273 *dptr++ = (lapb->vs << 1) & 0xFE; in lapb_transmit_frmr()
274 *dptr = (lapb->vr << 1) & 0xFE; in lapb_transmit_frmr()
275 if (lapb->frmr_data.cr == LAPB_RESPONSE) in lapb_transmit_frmr()
278 *dptr++ = lapb->frmr_type; in lapb_transmit_frmr()
281 lapb->dev, lapb->state, in lapb_transmit_frmr()
286 *dptr++ = lapb->frmr_data.control[0]; in lapb_transmit_frmr()
287 *dptr = (lapb->vs << 1) & 0x0E; in lapb_transmit_frmr()
288 *dptr |= (lapb->vr << 5) & 0xE0; in lapb_transmit_frmr()
289 if (lapb->frmr_data.cr == LAPB_RESPONSE) in lapb_transmit_frmr()
292 *dptr++ = lapb->frmr_type; in lapb_transmit_frmr()
295 lapb->dev, lapb->state, &skb->data[1]); in lapb_transmit_frmr()
298 lapb_transmit_buffer(lapb, skb, LAPB_RESPONSE); in lapb_transmit_frmr()