tag | line | file | source code |
ppp | 84 | drivers/net/ppp.c | #define CHECK_PPP(a) if (!ppp->inuse) { PRINTK ((ppp_warning, __LINE__)) return a;} |
ppp | 85 | drivers/net/ppp.c | #define CHECK_PPP_VOID() if (!ppp->inuse) { PRINTK ((ppp_warning, __LINE__)) return;} |
ppp | 87 | drivers/net/ppp.c | #define in_xmap(ppp,c) (ppp->xmit_async_map[(c) >> 5] & (1 << ((c) & 0x1f))) |
ppp | 88 | drivers/net/ppp.c | #define in_rmap(ppp,c) ((((unsigned int) (unsigned char) (c)) < 0x20) && \ |
ppp | 89 | drivers/net/ppp.c | ppp->recv_async_map & (1 << (c))) |
ppp | 100 | drivers/net/ppp.c | static void ppp_init_ctrl_blk(struct ppp *); |
ppp | 104 | drivers/net/ppp.c | static void ppp_kick_tty(struct ppp *); |
ppp | 107 | drivers/net/ppp.c | #define ppp_find(tty) ((struct ppp *) tty->disc_data) |
ppp | 110 | drivers/net/ppp.c | static void ppp_unesc(struct ppp *ppp, unsigned char *c, int n); |
ppp | 111 | drivers/net/ppp.c | static struct ppp *ppp_find(struct tty_struct *); |
ppp | 114 | drivers/net/ppp.c | static void ppp_doframe(struct ppp *); |
ppp | 115 | drivers/net/ppp.c | static int ppp_do_ip(struct ppp *, unsigned short, unsigned char *, int); |
ppp | 116 | drivers/net/ppp.c | static int ppp_us_queue(struct ppp *, unsigned short, unsigned char *, int); |
ppp | 135 | drivers/net/ppp.c | static struct ppp *ppp_alloc(void); |
ppp | 136 | drivers/net/ppp.c | static int ppp_lock(struct ppp *); |
ppp | 137 | drivers/net/ppp.c | static void ppp_unlock(struct ppp *); |
ppp | 138 | drivers/net/ppp.c | static void ppp_add_fcs(struct ppp *); |
ppp | 139 | drivers/net/ppp.c | static int ppp_check_fcs(struct ppp *); |
ppp | 201 | drivers/net/ppp.c | static struct ppp ppp_ctrl[PPP_NRUNIT]; |
ppp | 214 | drivers/net/ppp.c | struct ppp *ppp; |
ppp | 217 | drivers/net/ppp.c | ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 262 | drivers/net/ppp.c | ppp_init_ctrl_blk (ppp); |
ppp | 263 | drivers/net/ppp.c | ppp->inuse = 0; |
ppp | 264 | drivers/net/ppp.c | ppp->line = dev->base_addr; |
ppp | 265 | drivers/net/ppp.c | ppp->tty = NULL; |
ppp | 266 | drivers/net/ppp.c | ppp->dev = dev; |
ppp | 269 | drivers/net/ppp.c | memset (&ppp->stats, '\0', sizeof (struct ppp_stats)); |
ppp | 306 | drivers/net/ppp.c | ppp_init_ctrl_blk(struct ppp *ppp) |
ppp | 308 | drivers/net/ppp.c | ppp->magic = PPP_MAGIC; |
ppp | 309 | drivers/net/ppp.c | ppp->sending = 0; |
ppp | 310 | drivers/net/ppp.c | ppp->toss = 0xFE; |
ppp | 311 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 313 | drivers/net/ppp.c | ppp->flags = 0; |
ppp | 314 | drivers/net/ppp.c | ppp->mtu = PPP_MTU; |
ppp | 315 | drivers/net/ppp.c | ppp->mru = PPP_MRU; |
ppp | 316 | drivers/net/ppp.c | ppp->fcs = 0; |
ppp | 318 | drivers/net/ppp.c | memset (ppp->xmit_async_map, 0, sizeof (ppp->xmit_async_map)); |
ppp | 319 | drivers/net/ppp.c | ppp->xmit_async_map[0] = 0xffffffff; |
ppp | 320 | drivers/net/ppp.c | ppp->xmit_async_map[3] = 0x60000000; |
ppp | 321 | drivers/net/ppp.c | ppp->recv_async_map = 0x00000000; |
ppp | 323 | drivers/net/ppp.c | ppp->slcomp = NULL; |
ppp | 324 | drivers/net/ppp.c | ppp->rbuff = NULL; |
ppp | 325 | drivers/net/ppp.c | ppp->xbuff = NULL; |
ppp | 326 | drivers/net/ppp.c | ppp->cbuff = NULL; |
ppp | 328 | drivers/net/ppp.c | ppp->rhead = NULL; |
ppp | 329 | drivers/net/ppp.c | ppp->rend = NULL; |
ppp | 330 | drivers/net/ppp.c | ppp->rcount = 0; |
ppp | 331 | drivers/net/ppp.c | ppp->xhead = NULL; |
ppp | 332 | drivers/net/ppp.c | ppp->xtail = NULL; |
ppp | 334 | drivers/net/ppp.c | ppp->us_rbuff = NULL; |
ppp | 335 | drivers/net/ppp.c | ppp->us_rbuff_end = NULL; |
ppp | 336 | drivers/net/ppp.c | ppp->us_rbuff_head = NULL; |
ppp | 337 | drivers/net/ppp.c | ppp->us_rbuff_tail = NULL; |
ppp | 338 | drivers/net/ppp.c | ppp->read_wait = NULL; |
ppp | 339 | drivers/net/ppp.c | ppp->write_wait = NULL; |
ppp | 340 | drivers/net/ppp.c | ppp->us_rbuff_lock = 0; |
ppp | 341 | drivers/net/ppp.c | ppp->inp_sig = 0; |
ppp | 342 | drivers/net/ppp.c | ppp->inp_sig_pid = 0; |
ppp | 345 | drivers/net/ppp.c | ppp->last_xmit = jiffies - OPTIMIZE_FLAG_TIME; |
ppp | 347 | drivers/net/ppp.c | ppp->last_xmit = 0; |
ppp | 351 | drivers/net/ppp.c | memset (&ppp->stats, '\0', sizeof (struct ppp_stats)); |
ppp | 354 | drivers/net/ppp.c | ppp->ddinfo.ip_sjiffies = |
ppp | 355 | drivers/net/ppp.c | ppp->ddinfo.ip_rjiffies = |
ppp | 356 | drivers/net/ppp.c | ppp->ddinfo.nip_sjiffies = |
ppp | 357 | drivers/net/ppp.c | ppp->ddinfo.nip_rjiffies = jiffies; |
ppp | 367 | drivers/net/ppp.c | ppp_changedmtu (struct ppp *ppp, int new_mtu, int new_mru) |
ppp | 376 | drivers/net/ppp.c | dev = ppp->dev; |
ppp | 417 | drivers/net/ppp.c | old_xbuff = ppp->xbuff; |
ppp | 418 | drivers/net/ppp.c | old_rbuff = ppp->rbuff; |
ppp | 419 | drivers/net/ppp.c | old_cbuff = ppp->cbuff; |
ppp | 421 | drivers/net/ppp.c | ppp->xbuff = new_xbuff; |
ppp | 422 | drivers/net/ppp.c | ppp->rbuff = new_rbuff; |
ppp | 423 | drivers/net/ppp.c | ppp->cbuff = new_cbuff; |
ppp | 429 | drivers/net/ppp.c | ppp->rend = (unsigned char *) |
ppp | 432 | drivers/net/ppp.c | ppp->rhead = new_rbuff; |
ppp | 436 | drivers/net/ppp.c | ppp->toss = 0xFE; |
ppp | 437 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 438 | drivers/net/ppp.c | ppp->sending = 0; |
ppp | 439 | drivers/net/ppp.c | ppp->rcount = 0; |
ppp | 441 | drivers/net/ppp.c | ppp->mru = new_mru; |
ppp | 443 | drivers/net/ppp.c | ppp->mtu = |
ppp | 464 | drivers/net/ppp.c | ppp_release(struct ppp *ppp) |
ppp | 467 | drivers/net/ppp.c | if (ppp->tty != NULL && ppp->tty->disc_data == ppp) |
ppp | 468 | drivers/net/ppp.c | ppp->tty->disc_data = NULL; /* Break the tty->ppp link */ |
ppp | 471 | drivers/net/ppp.c | if (ppp->dev) { |
ppp | 472 | drivers/net/ppp.c | ppp->dev->flags &= ~IFF_UP; /* down the device */ |
ppp | 473 | drivers/net/ppp.c | ppp->dev->flags |= IFF_POINTOPOINT; |
ppp | 476 | drivers/net/ppp.c | kfree (ppp->xbuff); |
ppp | 477 | drivers/net/ppp.c | kfree (ppp->cbuff); |
ppp | 478 | drivers/net/ppp.c | kfree (ppp->rbuff); |
ppp | 479 | drivers/net/ppp.c | kfree (ppp->us_rbuff); |
ppp | 481 | drivers/net/ppp.c | ppp->xbuff = |
ppp | 482 | drivers/net/ppp.c | ppp->cbuff = |
ppp | 483 | drivers/net/ppp.c | ppp->rbuff = |
ppp | 484 | drivers/net/ppp.c | ppp->us_rbuff = NULL; |
ppp | 486 | drivers/net/ppp.c | if (ppp->slcomp) { |
ppp | 487 | drivers/net/ppp.c | slhc_free(ppp->slcomp); |
ppp | 488 | drivers/net/ppp.c | ppp->slcomp = NULL; |
ppp | 491 | drivers/net/ppp.c | ppp->inuse = 0; |
ppp | 492 | drivers/net/ppp.c | ppp->tty = NULL; |
ppp | 498 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 500 | drivers/net/ppp.c | if (ppp == NULL || ppp->magic != PPP_MAGIC) { |
ppp | 504 | drivers/net/ppp.c | ppp_release (ppp); |
ppp | 506 | drivers/net/ppp.c | PRINTKN (2,(KERN_INFO "ppp: channel %s closing.\n", ppp->dev->name)); |
ppp | 514 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 516 | drivers/net/ppp.c | if (ppp) { |
ppp | 518 | drivers/net/ppp.c | ppp->magic == PPP_MAGIC ? ppp->dev->name : "unknown")); |
ppp | 522 | drivers/net/ppp.c | ppp = ppp_alloc(); |
ppp | 523 | drivers/net/ppp.c | if (ppp == NULL) { |
ppp | 529 | drivers/net/ppp.c | ppp_init_ctrl_blk (ppp); |
ppp | 531 | drivers/net/ppp.c | ppp->tty = tty; |
ppp | 534 | drivers/net/ppp.c | tty->disc_data = ppp; |
ppp | 544 | drivers/net/ppp.c | if ((ppp->slcomp = slhc_init(16, 16)) == NULL) { |
ppp | 546 | drivers/net/ppp.c | ppp_release (ppp); |
ppp | 551 | drivers/net/ppp.c | ppp_changedmtu (ppp, ppp->dev->mtu, ppp->mru); |
ppp | 552 | drivers/net/ppp.c | if (ppp->rbuff == NULL) { |
ppp | 553 | drivers/net/ppp.c | ppp_release (ppp); |
ppp | 558 | drivers/net/ppp.c | ppp->us_rbuff = (unsigned char *) kmalloc (RBUFSIZE, GFP_KERNEL); |
ppp | 559 | drivers/net/ppp.c | if (ppp->us_rbuff == NULL) { |
ppp | 561 | drivers/net/ppp.c | ppp_release (ppp); |
ppp | 565 | drivers/net/ppp.c | ppp->us_rbuff_head = |
ppp | 566 | drivers/net/ppp.c | ppp->us_rbuff_tail = ppp->us_rbuff; |
ppp | 567 | drivers/net/ppp.c | ppp->us_rbuff_end = ppp->us_rbuff + RBUFSIZE; |
ppp | 569 | drivers/net/ppp.c | PRINTKN (2,(KERN_INFO "ppp: channel %s open\n", ppp->dev->name)); |
ppp | 575 | drivers/net/ppp.c | return (ppp->line); |
ppp | 583 | drivers/net/ppp.c | struct ppp *ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 588 | drivers/net/ppp.c | if (ppp->tty == NULL) { |
ppp | 604 | drivers/net/ppp.c | struct ppp *ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 606 | drivers/net/ppp.c | if (ppp->tty == NULL) { |
ppp | 624 | drivers/net/ppp.c | struct ppp *ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 640 | drivers/net/ppp.c | memcpy_tofs (&result->ppp_stats, &ppp->stats, sizeof (struct ppp_stats)); |
ppp | 641 | drivers/net/ppp.c | if (ppp->slcomp) |
ppp | 642 | drivers/net/ppp.c | memcpy_tofs (&result->slhc, ppp->slcomp, sizeof (struct slcompress)); |
ppp | 660 | drivers/net/ppp.c | ppp_output_done (void *ppp) |
ppp | 663 | drivers/net/ppp.c | ppp_unlock ((struct ppp *) ppp); |
ppp | 667 | drivers/net/ppp.c | if (((struct ppp *) ppp)->dev->flags & IFF_UP) |
ppp | 671 | drivers/net/ppp.c | dev_tint (((struct ppp *) ppp)->dev); |
ppp | 675 | drivers/net/ppp.c | wake_up_interruptible (&((struct ppp *) ppp)->write_wait); |
ppp | 680 | drivers/net/ppp.c | ppp_kick_tty (struct ppp *ppp) |
ppp | 682 | drivers/net/ppp.c | register int count = ppp->xhead - ppp->xbuff; |
ppp | 685 | drivers/net/ppp.c | ppp->stats.sbytes += count; |
ppp | 687 | drivers/net/ppp.c | answer = tty_write_data (ppp->tty, |
ppp | 688 | drivers/net/ppp.c | ppp->xbuff, |
ppp | 691 | drivers/net/ppp.c | (void *) ppp); |
ppp | 694 | drivers/net/ppp.c | ppp_output_done (ppp); /* Should not happen */ |
ppp | 697 | drivers/net/ppp.c | ppp->stats.serrors++; |
ppp | 698 | drivers/net/ppp.c | ppp_output_done (ppp); /* unlock the transmitter */ |
ppp | 705 | drivers/net/ppp.c | ppp_kick_tty (struct ppp *ppp) |
ppp | 709 | drivers/net/ppp.c | count = ppp->xhead - ppp->xbuff; |
ppp | 711 | drivers/net/ppp.c | actual = ppp->tty->driver.write(ppp->tty, 0, ppp->xbuff, count); |
ppp | 712 | drivers/net/ppp.c | ppp->stats.sbytes += actual; |
ppp | 714 | drivers/net/ppp.c | ppp_output_done(ppp); |
ppp | 716 | drivers/net/ppp.c | ppp->xtail = ppp->xbuff + actual; |
ppp | 717 | drivers/net/ppp.c | ppp->tty->flags |= (1 << TTY_DO_WRITE_WAKEUP); |
ppp | 724 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 726 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 733 | drivers/net/ppp.c | if (!ppp->xtail) |
ppp | 737 | drivers/net/ppp.c | if (ppp->flags & SC_XMIT_BUSY) { |
ppp | 741 | drivers/net/ppp.c | ppp->flags |= SC_XMIT_BUSY; |
ppp | 744 | drivers/net/ppp.c | count = ppp->xhead - ppp->xtail; |
ppp | 746 | drivers/net/ppp.c | actual = tty->driver.write(tty, 0, ppp->xtail, count); |
ppp | 747 | drivers/net/ppp.c | ppp->stats.sbytes += actual; |
ppp | 749 | drivers/net/ppp.c | ppp->xtail = 0; |
ppp | 752 | drivers/net/ppp.c | ppp_output_done(ppp); |
ppp | 754 | drivers/net/ppp.c | ppp->xtail += actual; |
ppp | 756 | drivers/net/ppp.c | ppp->flags &= ~SC_XMIT_BUSY; |
ppp | 771 | drivers/net/ppp.c | ppp_enqueue(struct ppp *ppp, unsigned char c) |
ppp | 777 | drivers/net/ppp.c | if (ppp->rhead < ppp->rend) { |
ppp | 778 | drivers/net/ppp.c | *ppp->rhead = c; |
ppp | 779 | drivers/net/ppp.c | ppp->rhead++; |
ppp | 780 | drivers/net/ppp.c | ppp->rcount++; |
ppp | 782 | drivers/net/ppp.c | ppp->stats.roverrun++; |
ppp | 824 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 829 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 839 | drivers/net/ppp.c | ppp_dump_inqueue(ppp->tty); |
ppp | 855 | drivers/net/ppp.c | ppp->stats.rbytes += n; |
ppp | 856 | drivers/net/ppp.c | ppp_unesc(ppp,buff,n); |
ppp | 858 | drivers/net/ppp.c | ppp->toss = error; |
ppp | 868 | drivers/net/ppp.c | ppp_unesc(struct ppp *ppp, unsigned char *c, int n) |
ppp | 889 | drivers/net/ppp.c | ppp->escape = PPP_TRANS; |
ppp | 893 | drivers/net/ppp.c | if (ppp->escape) /* PPP_ESC just before PPP_FLAG is illegal */ |
ppp | 894 | drivers/net/ppp.c | ppp->toss = 0xFF; |
ppp | 896 | drivers/net/ppp.c | if ((ppp->toss & 0x80) == 0) |
ppp | 897 | drivers/net/ppp.c | ppp_doframe(ppp); /* pass frame on to next layers */ |
ppp | 899 | drivers/net/ppp.c | ppp->rcount = 0; |
ppp | 900 | drivers/net/ppp.c | ppp->rhead = ppp->rbuff; |
ppp | 901 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 902 | drivers/net/ppp.c | ppp->toss = 0; |
ppp | 906 | drivers/net/ppp.c | if (!in_rmap (ppp, *c)) { |
ppp | 907 | drivers/net/ppp.c | if (ppp->toss == 0) |
ppp | 908 | drivers/net/ppp.c | ppp_enqueue (ppp, *c ^ ppp->escape); |
ppp | 909 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 926 | drivers/net/ppp.c | register struct ppp *ppp = ppp_find (tty); |
ppp | 931 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 943 | drivers/net/ppp.c | ppp->stats.rbytes += count; |
ppp | 949 | drivers/net/ppp.c | if (*fp && ppp->toss == 0) |
ppp | 950 | drivers/net/ppp.c | ppp->toss = *fp; |
ppp | 968 | drivers/net/ppp.c | ppp->escape = PPP_TRANS; |
ppp | 972 | drivers/net/ppp.c | if (ppp->escape) /* PPP_ESC just before PPP_FLAG is "cancel"*/ |
ppp | 973 | drivers/net/ppp.c | ppp->toss = 0xFF; |
ppp | 975 | drivers/net/ppp.c | if ((ppp->toss & 0x80) == 0) |
ppp | 976 | drivers/net/ppp.c | ppp_doframe(ppp); /* pass frame on to next layers */ |
ppp | 978 | drivers/net/ppp.c | ppp->rcount = 0; |
ppp | 979 | drivers/net/ppp.c | ppp->rhead = ppp->rbuff; |
ppp | 980 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 981 | drivers/net/ppp.c | ppp->toss = 0; |
ppp | 985 | drivers/net/ppp.c | if (!in_rmap (ppp, c)) { |
ppp | 986 | drivers/net/ppp.c | if (ppp->toss == 0) |
ppp | 987 | drivers/net/ppp.c | ppp_enqueue (ppp, c ^ ppp->escape); |
ppp | 988 | drivers/net/ppp.c | ppp->escape = 0; |
ppp | 998 | drivers/net/ppp.c | ppp_doframe(struct ppp *ppp) |
ppp | 1000 | drivers/net/ppp.c | u_char *c = ppp->rbuff; |
ppp | 1002 | drivers/net/ppp.c | int count = ppp->rcount; |
ppp | 1005 | drivers/net/ppp.c | if (ppp->toss) { |
ppp | 1007 | drivers/net/ppp.c | ppp->toss)); |
ppp | 1008 | drivers/net/ppp.c | ppp->stats.rerrors++; |
ppp | 1021 | drivers/net/ppp.c | ppp->stats.runts++; |
ppp | 1026 | drivers/net/ppp.c | if (!ppp_check_fcs(ppp)) { |
ppp | 1028 | drivers/net/ppp.c | ppp->stats.rerrors++; |
ppp | 1050 | drivers/net/ppp.c | if ((ppp->dev->flags & IFF_UP) && ppp_do_ip(ppp, proto, c, count)) { |
ppp | 1051 | drivers/net/ppp.c | ppp->ddinfo.ip_rjiffies = jiffies; |
ppp | 1061 | drivers/net/ppp.c | if (ppp_us_queue (ppp, proto, c, count+2)) { |
ppp | 1062 | drivers/net/ppp.c | ppp->ddinfo.nip_rjiffies = jiffies; |
ppp | 1063 | drivers/net/ppp.c | ppp->stats.rothers++; |
ppp | 1070 | drivers/net/ppp.c | ppp->stats.tossed++; |
ppp | 1078 | drivers/net/ppp.c | ppp_do_ip (struct ppp *ppp, unsigned short proto, unsigned char *c, |
ppp | 1087 | drivers/net/ppp.c | PRINTK (("KERN_DEBUG %s <-- proto %x len %d\n", ppp->dev->name, |
ppp | 1092 | drivers/net/ppp.c | ppp->stats.runcomp++; |
ppp | 1096 | drivers/net/ppp.c | if ((proto == PROTO_VJCOMP) && !(ppp->flags & SC_REJ_COMP_TCP)) { |
ppp | 1101 | drivers/net/ppp.c | if ((ppp->rhead + 80) < ppp->rend) { |
ppp | 1102 | drivers/net/ppp.c | ppp->rhead += 80; |
ppp | 1103 | drivers/net/ppp.c | ppp->rcount += 80; |
ppp | 1111 | drivers/net/ppp.c | ppp->stats.roverrun++; |
ppp | 1115 | drivers/net/ppp.c | count = slhc_uncompress(ppp->slcomp, c, count); |
ppp | 1117 | drivers/net/ppp.c | ppp->stats.rerrors++; |
ppp | 1121 | drivers/net/ppp.c | ppp->stats.rcomp++; |
ppp | 1125 | drivers/net/ppp.c | if ((proto == PROTO_VJUNCOMP) && !(ppp->flags & SC_REJ_COMP_TCP)) { |
ppp | 1126 | drivers/net/ppp.c | if (slhc_remember(ppp->slcomp, c, count) <= 0) { |
ppp | 1127 | drivers/net/ppp.c | ppp->stats.rerrors++; |
ppp | 1131 | drivers/net/ppp.c | ppp->stats.runcomp++; |
ppp | 1141 | drivers/net/ppp.c | PRINTK ((KERN_INFO "%s <-- src %lx dst %lx len %d\n", ppp->dev->name, |
ppp | 1146 | drivers/net/ppp.c | (void) dev_rint (c, count, 0, ppp->dev); |
ppp | 1153 | drivers/net/ppp.c | #define PUTC(c,label) *ppp->us_rbuff_head++ = c; \ |
ppp | 1154 | drivers/net/ppp.c | if (ppp->us_rbuff_head == ppp->us_rbuff_end) \ |
ppp | 1155 | drivers/net/ppp.c | ppp->us_rbuff_head = ppp->us_rbuff; \ |
ppp | 1156 | drivers/net/ppp.c | if (ppp->us_rbuff_head == ppp->us_rbuff_tail) \ |
ppp | 1158 | drivers/net/ppp.c | #define GETC(c) c = *ppp->us_rbuff_tail++; \ |
ppp | 1159 | drivers/net/ppp.c | if (ppp->us_rbuff_tail == ppp->us_rbuff_end) \ |
ppp | 1160 | drivers/net/ppp.c | ppp->us_rbuff_tail = ppp->us_rbuff; |
ppp | 1163 | drivers/net/ppp.c | ppp_us_queue(struct ppp *ppp, unsigned short proto, |
ppp | 1171 | drivers/net/ppp.c | if (set_bit(1, &ppp->us_rbuff_lock)) { |
ppp | 1175 | drivers/net/ppp.c | saved_head = ppp->us_rbuff_head; |
ppp | 1187 | drivers/net/ppp.c | clear_bit(1, &ppp->us_rbuff_lock); |
ppp | 1188 | drivers/net/ppp.c | wake_up_interruptible (&ppp->read_wait); |
ppp | 1191 | drivers/net/ppp.c | kill_fasync(ppp->tty->fasync, SIGIO); |
ppp | 1194 | drivers/net/ppp.c | if (ppp->inp_sig && ppp->inp_sig_pid) |
ppp | 1195 | drivers/net/ppp.c | if (kill_proc (ppp->inp_sig_pid, ppp->inp_sig, 1) != 0) { |
ppp | 1199 | drivers/net/ppp.c | ppp->inp_sig = 0; |
ppp | 1200 | drivers/net/ppp.c | ppp->inp_sig_pid = 0; |
ppp | 1205 | drivers/net/ppp.c | ppp->us_rbuff_head = saved_head; |
ppp | 1206 | drivers/net/ppp.c | clear_bit(1, &ppp->us_rbuff_lock); |
ppp | 1228 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 1232 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 1245 | drivers/net/ppp.c | if (set_bit(0, &ppp->us_rbuff_lock) == 0) { |
ppp | 1247 | drivers/net/ppp.c | if (ppp->us_rbuff_head == ppp->us_rbuff_tail) { |
ppp | 1250 | drivers/net/ppp.c | clear_bit(0, &ppp->us_rbuff_lock); |
ppp | 1251 | drivers/net/ppp.c | if (ppp->inp_sig) { |
ppp | 1258 | drivers/net/ppp.c | ppp->ddinfo.nip_rjiffies = jiffies; |
ppp | 1269 | drivers/net/ppp.c | ppp->us_rbuff_head += len; |
ppp | 1270 | drivers/net/ppp.c | if (ppp->us_rbuff_head > ppp->us_rbuff_end) |
ppp | 1271 | drivers/net/ppp.c | ppp->us_rbuff_head += - (ppp->us_rbuff_end - ppp->us_rbuff); |
ppp | 1272 | drivers/net/ppp.c | clear_bit(0, &ppp->us_rbuff_lock); |
ppp | 1273 | drivers/net/ppp.c | wake_up_interruptible (&ppp->read_wait); |
ppp | 1274 | drivers/net/ppp.c | ppp->stats.rgiants++; |
ppp | 1287 | drivers/net/ppp.c | clear_bit(0, &ppp->us_rbuff_lock); |
ppp | 1289 | drivers/net/ppp.c | ppp->stats.rothers++; |
ppp | 1297 | drivers/net/ppp.c | interruptible_sleep_on (&ppp->read_wait); |
ppp | 1307 | drivers/net/ppp.c | ppp_stuff_char(struct ppp *ppp, unsigned char c) |
ppp | 1309 | drivers/net/ppp.c | int curpt = ppp->xhead - ppp->xbuff; |
ppp | 1312 | drivers/net/ppp.c | (unsigned int) ppp->xbuff, (unsigned int) ppp->xhead, curpt)) |
ppp | 1314 | drivers/net/ppp.c | if (in_xmap (ppp, c)) { |
ppp | 1315 | drivers/net/ppp.c | *ppp->xhead++ = PPP_ESC; |
ppp | 1316 | drivers/net/ppp.c | *ppp->xhead++ = c ^ PPP_TRANS; |
ppp | 1318 | drivers/net/ppp.c | *ppp->xhead++ = c; |
ppp | 1319 | drivers/net/ppp.c | ppp->fcs = (ppp->fcs >> 8) ^ fcstab[(ppp->fcs ^ c) & 0xff]; |
ppp | 1329 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 1332 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 1339 | drivers/net/ppp.c | if (ppp->mtu != ppp->dev->mtu) /* Someone has been ifconfigging */ |
ppp | 1340 | drivers/net/ppp.c | ppp_changedmtu (ppp, ppp->dev->mtu, ppp->mru); |
ppp | 1342 | drivers/net/ppp.c | if (nr > ppp->mtu) { |
ppp | 1345 | drivers/net/ppp.c | nr, ppp->mtu)); |
ppp | 1346 | drivers/net/ppp.c | nr = ppp->mtu; |
ppp | 1354 | drivers/net/ppp.c | while ((ppp->sending == 1) || !ppp_lock(ppp)) { |
ppp | 1357 | drivers/net/ppp.c | interruptible_sleep_on(&ppp->write_wait); |
ppp | 1365 | drivers/net/ppp.c | ppp->xhead = ppp->xbuff; |
ppp | 1368 | drivers/net/ppp.c | if (jiffies - ppp->last_xmit > OPTIMIZE_FLAG_TIME) |
ppp | 1369 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1370 | drivers/net/ppp.c | ppp->last_xmit = jiffies; |
ppp | 1372 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1375 | drivers/net/ppp.c | ppp->fcs = PPP_FCS_INIT; |
ppp | 1378 | drivers/net/ppp.c | ppp_stuff_char(ppp,get_fs_byte(buf++)); |
ppp | 1380 | drivers/net/ppp.c | ppp_add_fcs(ppp); /* concatenate FCS at end */ |
ppp | 1382 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1385 | drivers/net/ppp.c | ppp->ddinfo.nip_sjiffies = jiffies; |
ppp | 1388 | drivers/net/ppp.c | ppp_print_buffer ("xmit buffer", ppp->xbuff, ppp->xhead - ppp->xbuff, KERNEL_DS); |
ppp | 1391 | drivers/net/ppp.c | "ppp_write: writing %d chars\n", ppp->xhead - ppp->xbuff)); |
ppp | 1395 | drivers/net/ppp.c | ++ppp->stats.sothers; |
ppp | 1396 | drivers/net/ppp.c | ppp_kick_tty(ppp); |
ppp | 1405 | drivers/net/ppp.c | struct ppp *ppp = ppp_find(tty); |
ppp | 1409 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 1426 | drivers/net/ppp.c | if (ppp->mru != temp_i) |
ppp | 1427 | drivers/net/ppp.c | ppp_changedmtu (ppp, ppp->dev->mtu, temp_i); |
ppp | 1434 | drivers/net/ppp.c | temp_i = (ppp->flags & SC_MASK); |
ppp | 1449 | drivers/net/ppp.c | ppp->flags ^= ((ppp->flags ^ temp_i) & SC_MASK); |
ppp | 1457 | drivers/net/ppp.c | put_fs_long (ppp->xmit_async_map[0], l); |
ppp | 1459 | drivers/net/ppp.c | l, ppp->xmit_async_map[0])); |
ppp | 1466 | drivers/net/ppp.c | ppp->xmit_async_map[0] = get_fs_long (l); |
ppp | 1467 | drivers/net/ppp.c | bset (ppp->xmit_async_map, PPP_FLAG); |
ppp | 1468 | drivers/net/ppp.c | bset (ppp->xmit_async_map, PPP_ESC); |
ppp | 1470 | drivers/net/ppp.c | ppp->xmit_async_map[0])); |
ppp | 1477 | drivers/net/ppp.c | ppp->recv_async_map = get_fs_long (l); |
ppp | 1479 | drivers/net/ppp.c | ppp->recv_async_map)); |
ppp | 1486 | drivers/net/ppp.c | put_fs_long (ppp->dev->base_addr, l); |
ppp | 1487 | drivers/net/ppp.c | PRINTKN (3,(KERN_INFO "ppp_ioctl: get unit: %ld", ppp->dev->base_addr)); |
ppp | 1494 | drivers/net/ppp.c | ppp->inp_sig = (int) get_fs_long (l); |
ppp | 1495 | drivers/net/ppp.c | ppp->inp_sig_pid = current->pid; |
ppp | 1496 | drivers/net/ppp.c | PRINTKN (3,(KERN_INFO "ppp_ioctl: set input signal %d\n", ppp->inp_sig)); |
ppp | 1523 | drivers/net/ppp.c | memcpy_tofs ((void *) l, &ppp->stats, sizeof (struct ppp_stats)); |
ppp | 1535 | drivers/net/ppp.c | cur_ddinfo.ip_sjiffies = cur_jiffies - ppp->ddinfo.ip_sjiffies; |
ppp | 1536 | drivers/net/ppp.c | cur_ddinfo.ip_rjiffies = cur_jiffies - ppp->ddinfo.ip_rjiffies; |
ppp | 1537 | drivers/net/ppp.c | cur_ddinfo.nip_sjiffies = cur_jiffies - ppp->ddinfo.nip_sjiffies; |
ppp | 1538 | drivers/net/ppp.c | cur_ddinfo.nip_rjiffies = cur_jiffies - ppp->ddinfo.nip_rjiffies; |
ppp | 1548 | drivers/net/ppp.c | sizeof (ppp->xmit_async_map)); |
ppp | 1551 | drivers/net/ppp.c | ppp->xmit_async_map, |
ppp | 1552 | drivers/net/ppp.c | sizeof (ppp->xmit_async_map)); |
ppp | 1559 | drivers/net/ppp.c | sizeof (ppp->xmit_async_map)); |
ppp | 1563 | drivers/net/ppp.c | memcpy_fromfs (temp_tbl, (void *) l, sizeof (ppp->xmit_async_map)); |
ppp | 1573 | drivers/net/ppp.c | memcpy (ppp->xmit_async_map, temp_tbl, sizeof (ppp->xmit_async_map)); |
ppp | 1584 | drivers/net/ppp.c | if (ppp->slcomp != NULL) |
ppp | 1585 | drivers/net/ppp.c | slhc_free (ppp->slcomp); |
ppp | 1587 | drivers/net/ppp.c | ppp->slcomp = slhc_init (temp_i, temp_i); |
ppp | 1589 | drivers/net/ppp.c | if (ppp->slcomp == NULL) { |
ppp | 1591 | drivers/net/ppp.c | ppp_release (ppp); |
ppp | 1627 | drivers/net/ppp.c | struct ppp *ppp = ppp_find (tty); |
ppp | 1629 | drivers/net/ppp.c | if (!ppp || ppp->magic != PPP_MAGIC) { |
ppp | 1640 | drivers/net/ppp.c | if (set_bit(0, &ppp->us_rbuff_lock) == 0) { |
ppp | 1642 | drivers/net/ppp.c | if (ppp->us_rbuff_head != ppp->us_rbuff_tail) { |
ppp | 1643 | drivers/net/ppp.c | clear_bit (0, &ppp->us_rbuff_lock); |
ppp | 1646 | drivers/net/ppp.c | clear_bit (0, &ppp->us_rbuff_lock); |
ppp | 1662 | drivers/net/ppp.c | select_wait (&ppp->read_wait, wait); |
ppp | 1666 | drivers/net/ppp.c | if (ppp_lock (ppp)) { |
ppp | 1667 | drivers/net/ppp.c | if (ppp->sending == 0) { |
ppp | 1668 | drivers/net/ppp.c | ppp_unlock (ppp); |
ppp | 1671 | drivers/net/ppp.c | ppp_unlock (ppp); |
ppp | 1673 | drivers/net/ppp.c | select_wait (&ppp->write_wait, wait); |
ppp | 1691 | drivers/net/ppp.c | struct ppp *ppp; |
ppp | 1703 | drivers/net/ppp.c | ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 1704 | drivers/net/ppp.c | tty = ppp->tty; |
ppp | 1710 | drivers/net/ppp.c | (unsigned long int) skb, ppp->sending)); |
ppp | 1734 | drivers/net/ppp.c | if (ppp->flags & SC_IP_DOWN) { |
ppp | 1735 | drivers/net/ppp.c | if (ppp->flags & SC_IP_FLUSH == 0) { |
ppp | 1736 | drivers/net/ppp.c | if (ppp_us_queue (ppp, proto, p, len)) |
ppp | 1737 | drivers/net/ppp.c | ppp->flags |= SC_IP_FLUSH; |
ppp | 1743 | drivers/net/ppp.c | if (ppp->sending || !ppp_lock(ppp)) { |
ppp | 1745 | drivers/net/ppp.c | ppp->stats.sbusy++; |
ppp | 1749 | drivers/net/ppp.c | ppp->xhead = ppp->xbuff; |
ppp | 1752 | drivers/net/ppp.c | if (ppp->flags & SC_COMP_TCP) { |
ppp | 1754 | drivers/net/ppp.c | len = slhc_compress(ppp->slcomp, p, len, ppp->cbuff, &p, 0); |
ppp | 1767 | drivers/net/ppp.c | ++ppp->stats.scomp; |
ppp | 1769 | drivers/net/ppp.c | ++ppp->stats.suncomp; |
ppp | 1780 | drivers/net/ppp.c | if (jiffies - ppp->last_xmit > OPTIMIZE_FLAG_TIME) |
ppp | 1781 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1782 | drivers/net/ppp.c | ppp->last_xmit = jiffies; |
ppp | 1784 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1787 | drivers/net/ppp.c | ppp->fcs = PPP_FCS_INIT; |
ppp | 1788 | drivers/net/ppp.c | if (!(ppp->flags & SC_COMP_AC)) { |
ppp | 1789 | drivers/net/ppp.c | ppp_stuff_char(ppp, PPP_ADDRESS); |
ppp | 1790 | drivers/net/ppp.c | ppp_stuff_char(ppp, PPP_CONTROL); |
ppp | 1793 | drivers/net/ppp.c | if (!(ppp->flags & SC_COMP_PROT) || (proto & 0xff00)) |
ppp | 1794 | drivers/net/ppp.c | ppp_stuff_char(ppp, proto>>8); |
ppp | 1795 | drivers/net/ppp.c | ppp_stuff_char(ppp, proto&0xff); |
ppp | 1799 | drivers/net/ppp.c | ppp_stuff_char(ppp, *p++); |
ppp | 1802 | drivers/net/ppp.c | ppp_add_fcs(ppp); |
ppp | 1803 | drivers/net/ppp.c | *ppp->xhead++ = PPP_FLAG; |
ppp | 1806 | drivers/net/ppp.c | ppp->ddinfo.ip_sjiffies = jiffies; |
ppp | 1810 | drivers/net/ppp.c | ppp_print_buffer ("xmit buffer", ppp->xbuff, ppp->xhead - ppp->xbuff, KERNEL_DS); |
ppp | 1813 | drivers/net/ppp.c | "ppp_write: writing %d chars\n", ppp->xhead - ppp->xbuff)); |
ppp | 1816 | drivers/net/ppp.c | ppp_kick_tty(ppp); |
ppp | 1868 | drivers/net/ppp.c | struct ppp *ppp = &ppp_ctrl[dev->base_addr]; |
ppp | 1871 | drivers/net/ppp.c | ppp_stats.rx_packets = ppp->stats.rcomp + ppp->stats.runcomp; |
ppp | 1872 | drivers/net/ppp.c | ppp_stats.rx_errors = ppp->stats.rerrors; |
ppp | 1873 | drivers/net/ppp.c | ppp_stats.rx_dropped = ppp->stats.tossed; |
ppp | 1875 | drivers/net/ppp.c | ppp_stats.rx_length_errors = ppp->stats.runts; |
ppp | 1876 | drivers/net/ppp.c | ppp_stats.rx_over_errors = ppp->stats.roverrun; |
ppp | 1879 | drivers/net/ppp.c | ppp_stats.tx_packets = ppp->stats.scomp + ppp->stats.suncomp; |
ppp | 1880 | drivers/net/ppp.c | ppp_stats.tx_errors = ppp->stats.serrors; |
ppp | 1883 | drivers/net/ppp.c | ppp_stats.collisions = ppp->stats.sbusy; |
ppp | 1900 | drivers/net/ppp.c | struct ppp * |
ppp | 1912 | drivers/net/ppp.c | static struct ppp * |
ppp | 1928 | drivers/net/ppp.c | ppp_lock(struct ppp *ppp) |
ppp | 1933 | drivers/net/ppp.c | locked = ppp->sending; |
ppp | 1934 | drivers/net/ppp.c | ppp->sending = 1; |
ppp | 1935 | drivers/net/ppp.c | if (ppp->dev->flags & IFF_UP) |
ppp | 1936 | drivers/net/ppp.c | ppp->dev->tbusy = 1; |
ppp | 1942 | drivers/net/ppp.c | ppp_unlock(struct ppp *ppp) |
ppp | 1947 | drivers/net/ppp.c | ppp->sending = 0; |
ppp | 1948 | drivers/net/ppp.c | if (ppp->dev->flags & IFF_UP) |
ppp | 1949 | drivers/net/ppp.c | ppp->dev->tbusy = 0; |
ppp | 1956 | drivers/net/ppp.c | ppp_add_fcs(struct ppp *ppp) |
ppp | 1958 | drivers/net/ppp.c | unsigned short fcs = ppp->fcs; |
ppp | 1961 | drivers/net/ppp.c | ppp_stuff_char(ppp, fcs & 0x00ff); |
ppp | 1962 | drivers/net/ppp.c | ppp_stuff_char(ppp, (fcs & 0xff00) >> 8); |
ppp | 1963 | drivers/net/ppp.c | ASSERT (ppp->fcs == PPP_FCS_GOOD); |
ppp | 1969 | drivers/net/ppp.c | ppp_check_fcs(struct ppp *ppp) |
ppp | 1972 | drivers/net/ppp.c | unsigned char *c = ppp->rbuff; |
ppp | 1975 | drivers/net/ppp.c | for (i = 0; i < ppp->rcount - 2; i++, c++) |