Lines Matching defs:lapb

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