Lines Matching refs:lapb
40 void lapb_clear_queues(struct lapb_cb *lapb) in lapb_clear_queues() argument
42 skb_queue_purge(&lapb->write_queue); in lapb_clear_queues()
43 skb_queue_purge(&lapb->ack_queue); in lapb_clear_queues()
51 void lapb_frames_acked(struct lapb_cb *lapb, unsigned short nr) in lapb_frames_acked() argument
56 modulus = (lapb->mode & LAPB_EXTENDED) ? LAPB_EMODULUS : LAPB_SMODULUS; in lapb_frames_acked()
61 if (lapb->va != nr) in lapb_frames_acked()
62 while (skb_peek(&lapb->ack_queue) && lapb->va != nr) { in lapb_frames_acked()
63 skb = skb_dequeue(&lapb->ack_queue); in lapb_frames_acked()
65 lapb->va = (lapb->va + 1) % modulus; in lapb_frames_acked()
69 void lapb_requeue_frames(struct lapb_cb *lapb) in lapb_requeue_frames() argument
78 while ((skb = skb_dequeue(&lapb->ack_queue)) != NULL) { in lapb_requeue_frames()
80 skb_queue_head(&lapb->write_queue, skb); in lapb_requeue_frames()
82 skb_append(skb_prev, skb, &lapb->write_queue); in lapb_requeue_frames()
91 int lapb_validate_nr(struct lapb_cb *lapb, unsigned short nr) in lapb_validate_nr() argument
93 unsigned short vc = lapb->va; in lapb_validate_nr()
96 modulus = (lapb->mode & LAPB_EXTENDED) ? LAPB_EMODULUS : LAPB_SMODULUS; in lapb_validate_nr()
98 while (vc != lapb->vs) { in lapb_validate_nr()
104 return nr == lapb->vs; in lapb_validate_nr()
111 int lapb_decode(struct lapb_cb *lapb, struct sk_buff *skb, in lapb_decode() argument
117 lapb->dev, lapb->state, in lapb_decode()
126 if (lapb->mode & LAPB_MLP) { in lapb_decode()
127 if (lapb->mode & LAPB_DCE) { in lapb_decode()
139 if (lapb->mode & LAPB_DCE) { in lapb_decode()
154 if (lapb->mode & LAPB_EXTENDED) { in lapb_decode()
228 void lapb_send_control(struct lapb_cb *lapb, int frametype, in lapb_send_control() argument
239 if (lapb->mode & LAPB_EXTENDED) { in lapb_send_control()
247 dptr[1] = (lapb->vr << 1); in lapb_send_control()
255 *dptr |= (lapb->vr << 5); in lapb_send_control()
258 lapb_transmit_buffer(lapb, skb, type); in lapb_send_control()
265 void lapb_transmit_frmr(struct lapb_cb *lapb) in lapb_transmit_frmr() argument
275 if (lapb->mode & LAPB_EXTENDED) { in lapb_transmit_frmr()
278 *dptr++ = lapb->frmr_data.control[0]; in lapb_transmit_frmr()
279 *dptr++ = lapb->frmr_data.control[1]; in lapb_transmit_frmr()
280 *dptr++ = (lapb->vs << 1) & 0xFE; in lapb_transmit_frmr()
281 *dptr = (lapb->vr << 1) & 0xFE; in lapb_transmit_frmr()
282 if (lapb->frmr_data.cr == LAPB_RESPONSE) in lapb_transmit_frmr()
285 *dptr++ = lapb->frmr_type; in lapb_transmit_frmr()
288 lapb->dev, lapb->state, in lapb_transmit_frmr()
294 *dptr++ = lapb->frmr_data.control[0]; in lapb_transmit_frmr()
295 *dptr = (lapb->vs << 1) & 0x0E; in lapb_transmit_frmr()
296 *dptr |= (lapb->vr << 5) & 0xE0; in lapb_transmit_frmr()
297 if (lapb->frmr_data.cr == LAPB_RESPONSE) in lapb_transmit_frmr()
300 *dptr++ = lapb->frmr_type; in lapb_transmit_frmr()
303 lapb->dev, lapb->state, skb->data[1], in lapb_transmit_frmr()
307 lapb_transmit_buffer(lapb, skb, LAPB_RESPONSE); in lapb_transmit_frmr()