26 #include <linux/slab.h>
27 #include <linux/kernel.h>
28 #include <linux/string.h>
64 while (skb_peek(&x25->
ack_queue) && x25->
va != nr) {
67 x25->
va = (x25->
va + 1) % modulus;
96 unsigned short vc = x25->
va;
99 while (vc != x25->
vs) {
102 vc = (vc + 1) % modulus;
105 return nr == x25->
vs ? 1 : 0;
119 unsigned char lci1, lci2;
168 lci1 = (x25->
lci >> 8) & 0x0F;
169 lci2 = (x25->
lci >> 0) & 0xFF;
190 memcpy(dptr, addresses, len);
196 memcpy(dptr, facilities, len);
212 memcpy(dptr, facilities, len);
246 *dptr++ = (x25->
vr << 1) & 0xFE;
250 *dptr++ |= (x25->
vr << 5) & 0xE0;
272 unsigned char *
frame;
278 *ns = *nr = *q = *d = *m = 0;
305 *nr = (frame[3] >> 1) & 0x7F;
309 if ((frame[2] & 0x1F) ==
X25_RR ||
310 (frame[2] & 0x1F) ==
X25_RNR ||
311 (frame[2] & 0x1F) ==
X25_REJ) {
312 *nr = (frame[2] >> 5) & 0x07;
313 return frame[2] & 0x1F;
318 if ((frame[2] & 0x01) ==
X25_DATA) {
326 *nr = (frame[3] >> 1) & 0x7F;
327 *ns = (frame[2] >> 1) & 0x7F;
331 if ((frame[2] & 0x01) ==
X25_DATA) {
335 *nr = (frame[2] >> 5) & 0x07;
336 *ns = (frame[2] >> 1) & 0x07;
342 frame[0], frame[1], frame[2]);
348 unsigned char diagnostic)