taglinefilesource code
sl105drivers/net/slip.cstatic void slip_unesc(struct slip *sl, unsigned char c);
sl108drivers/net/slip.cstatic void slip_unesc6(struct slip *sl, unsigned char c);
sl186drivers/net/slip.csl_free(struct slip *sl)
sl189drivers/net/slip.cif (sl->rbuff)  {
sl190drivers/net/slip.ckfree(sl->rbuff);
sl192drivers/net/slip.csl->rbuff = NULL;
sl193drivers/net/slip.cif (sl->xbuff)  {
sl194drivers/net/slip.ckfree(sl->xbuff);
sl196drivers/net/slip.csl->xbuff = NULL;
sl199drivers/net/slip.cif (sl->slcomp)  {
sl200drivers/net/slip.csl->rx_compressed += sl->slcomp->sls_i_compressed;
sl201drivers/net/slip.csl->rx_dropped    += sl->slcomp->sls_i_tossed;
sl202drivers/net/slip.csl->tx_compressed += sl->slcomp->sls_o_compressed;
sl203drivers/net/slip.csl->tx_misses     += sl->slcomp->sls_o_misses;
sl205drivers/net/slip.cif (sl->cbuff)  {
sl206drivers/net/slip.ckfree(sl->cbuff);
sl208drivers/net/slip.csl->cbuff = NULL;
sl209drivers/net/slip.cif(sl->slcomp)
sl210drivers/net/slip.cslhc_free(sl->slcomp);
sl211drivers/net/slip.csl->slcomp = NULL;
sl214drivers/net/slip.cif (!clear_bit(SLF_INUSE, &sl->flags)) {
sl215drivers/net/slip.cprintk("%s: sl_free for already free unit.\n", sl->dev->name);
sl223drivers/net/slip.cstatic void sl_changedmtu(struct slip *sl)
sl225drivers/net/slip.cstruct device *dev = sl->dev;
sl255drivers/net/slip.csl->dev->name);
sl256drivers/net/slip.cdev->mtu = sl->mtu;
sl273drivers/net/slip.coxbuff    = sl->xbuff;
sl274drivers/net/slip.csl->xbuff = xbuff;
sl275drivers/net/slip.corbuff    = sl->rbuff;
sl276drivers/net/slip.csl->rbuff = rbuff;
sl278drivers/net/slip.cocbuff    = sl->cbuff;
sl279drivers/net/slip.csl->cbuff = cbuff;
sl281drivers/net/slip.cif (sl->xleft)  {
sl282drivers/net/slip.cif (sl->xleft <= len)  {
sl283drivers/net/slip.cmemcpy(sl->xbuff, sl->xhead, sl->xleft);
sl285drivers/net/slip.csl->xleft = 0;
sl286drivers/net/slip.csl->tx_dropped++;
sl289drivers/net/slip.csl->xhead = sl->xbuff;
sl291drivers/net/slip.cif (sl->rcount)  {
sl292drivers/net/slip.cif (sl->rcount <= len) {
sl293drivers/net/slip.cmemcpy(sl->rbuff, orbuff, sl->rcount);
sl295drivers/net/slip.csl->rcount = 0;
sl296drivers/net/slip.csl->rx_over_errors++;
sl297drivers/net/slip.cset_bit(SLF_ERROR, &sl->flags);
sl301drivers/net/slip.csl->mtu      = dev->mtu + 73;
sl303drivers/net/slip.csl->mtu      = dev->mtu;
sl305drivers/net/slip.csl->buffsize = len;
sl325drivers/net/slip.csl_lock(struct slip *sl)
sl327drivers/net/slip.cif (set_bit(0, (void *) &sl->dev->tbusy))  {
sl328drivers/net/slip.cprintk("%s: trying to lock already locked device!\n", sl->dev->name);
sl335drivers/net/slip.csl_unlock(struct slip *sl)
sl337drivers/net/slip.cif (!clear_bit(0, (void *)&sl->dev->tbusy))  {
sl338drivers/net/slip.cprintk("%s: trying to unlock already unlocked device!\n", sl->dev->name);
sl344drivers/net/slip.csl_bump(struct slip *sl)
sl349drivers/net/slip.ccount = sl->rcount;
sl351drivers/net/slip.cif (sl->mode & (SL_MODE_ADAPTIVE | SL_MODE_CSLIP)) {
sl353drivers/net/slip.cif ((c = sl->rbuff[0]) & SL_TYPE_COMPRESSED_TCP) {
sl355drivers/net/slip.cif (!(sl->mode & SL_MODE_CSLIP)) {
sl356drivers/net/slip.cprintk("%s: compressed packet ignored\n", sl->dev->name);
sl360drivers/net/slip.cif (count + 80 > sl->buffsize) {
sl361drivers/net/slip.csl->rx_over_errors++;
sl364drivers/net/slip.ccount = slhc_uncompress(sl->slcomp, sl->rbuff, count);
sl369drivers/net/slip.cif (!(sl->mode & SL_MODE_CSLIP)) {
sl371drivers/net/slip.csl->mode |= SL_MODE_CSLIP;
sl372drivers/net/slip.csl->mode &= ~SL_MODE_ADAPTIVE;
sl373drivers/net/slip.cprintk("%s: header compression turned on\n", sl->dev->name);
sl375drivers/net/slip.csl->rbuff[0] &= 0x4f;
sl376drivers/net/slip.cif (slhc_remember(sl->slcomp, sl->rbuff, count) <= 0) {
sl385drivers/net/slip.cprintk("%s: memory squeeze, dropping packet.\n", sl->dev->name);
sl386drivers/net/slip.csl->rx_dropped++;
sl389drivers/net/slip.cskb->dev = sl->dev;
sl390drivers/net/slip.cmemcpy(skb_put(skb,count), sl->rbuff, count);
sl392drivers/net/slip.cif(sl->mode & SL_MODE_AX25)
sl397drivers/net/slip.csl->rx_packets++;
sl402drivers/net/slip.csl_encaps(struct slip *sl, unsigned char *icp, int len)
sl409drivers/net/slip.cif (sl->mtu != sl->dev->mtu + 73) {  /* Someone has been ifconfigging */
sl411drivers/net/slip.cif (sl->mtu != sl->dev->mtu) {  /* Someone has been ifconfigging */
sl413drivers/net/slip.csl_changedmtu(sl);
sl416drivers/net/slip.cif (len > sl->mtu) {    /* Sigh, shouldn't occur BUT ... */
sl417drivers/net/slip.clen = sl->mtu;
sl418drivers/net/slip.cprintk ("%s: truncating oversized transmit packet!\n", sl->dev->name);
sl419drivers/net/slip.csl->tx_dropped++;
sl420drivers/net/slip.csl_unlock(sl);
sl426drivers/net/slip.cif (sl->mode & SL_MODE_CSLIP)  {
sl427drivers/net/slip.clen = slhc_compress(sl->slcomp, p, len, sl->cbuff, &p, 1);
sl431drivers/net/slip.cif(sl->mode & SL_MODE_SLIP6)
sl432drivers/net/slip.ccount = slip_esc6(p, (unsigned char *) sl->xbuff, len);
sl435drivers/net/slip.ccount = slip_esc(p, (unsigned char *) sl->xbuff, len);
sl445drivers/net/slip.csl->tty->flags |= (1 << TTY_DO_WRITE_WAKEUP);
sl446drivers/net/slip.cactual = sl->tty->driver.write(sl->tty, 0, sl->xbuff, count);
sl448drivers/net/slip.csl->dev->trans_start = jiffies;
sl450drivers/net/slip.csl->xleft = count - actual;
sl451drivers/net/slip.csl->xhead = sl->xbuff + actual;
sl453drivers/net/slip.cclear_bit(SLF_OUTWAIT, &sl->flags);  /* reset outfill flag */
sl463drivers/net/slip.cstruct slip *sl = (struct slip *) tty->disc_data;
sl466drivers/net/slip.cif (!sl || sl->magic != SLIP_MAGIC || !sl->dev->start) {
sl469drivers/net/slip.cif (sl->xleft <= 0)  {
sl472drivers/net/slip.csl->tx_packets++;
sl474drivers/net/slip.csl_unlock(sl);
sl479drivers/net/slip.cactual = tty->driver.write(tty, 0, sl->xhead, sl->xleft);
sl480drivers/net/slip.csl->xleft -= actual;
sl481drivers/net/slip.csl->xhead += actual;
sl488drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl514drivers/net/slip.c(sl->tty->driver.chars_in_buffer(sl->tty) || sl->xleft) ?
sl516drivers/net/slip.csl->xleft = 0;
sl517drivers/net/slip.csl->tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
sl518drivers/net/slip.csl_unlock(sl);
sl526drivers/net/slip.csl_lock(sl);
sl527drivers/net/slip.csl_encaps(sl, skb->data, skb->len);
sl543drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl545drivers/net/slip.cif (sl->mode & SL_MODE_AX25 && type != htons(ETH_P_AX25))  {
sl561drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl563drivers/net/slip.cif (sl->mode & SL_MODE_AX25) {
sl576drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl579drivers/net/slip.cif (sl->tty == NULL) {
sl599drivers/net/slip.csl->rbuff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
sl600drivers/net/slip.cif (sl->rbuff == NULL)   {
sl603drivers/net/slip.csl->xbuff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
sl604drivers/net/slip.cif (sl->xbuff == NULL)   {
sl608drivers/net/slip.csl->cbuff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
sl609drivers/net/slip.cif (sl->cbuff == NULL)   {
sl612drivers/net/slip.csl->slcomp = slhc_init(16, 16);
sl613drivers/net/slip.cif (sl->slcomp == NULL)  {
sl619drivers/net/slip.csl->mtu       = dev->mtu + 73;
sl621drivers/net/slip.csl->mtu       = dev->mtu;
sl623drivers/net/slip.csl->buffsize = len;
sl624drivers/net/slip.csl->rcount   = 0;
sl625drivers/net/slip.csl->xleft    = 0;
sl627drivers/net/slip.csl->xdata    = 0;
sl628drivers/net/slip.csl->xbits    = 0;
sl630drivers/net/slip.csl->flags   &= (1 << SLF_INUSE);      /* Clear ESCAPE & ERROR flags */
sl632drivers/net/slip.csl->keepalive=0;    /* no keepalive by default = VSV */
sl633drivers/net/slip.cinit_timer(&sl->keepalive_timer);  /* initialize timer_list struct */
sl634drivers/net/slip.csl->keepalive_timer.data=(unsigned long)sl;
sl635drivers/net/slip.csl->keepalive_timer.function=sl_keepalive;  
sl636drivers/net/slip.csl->outfill=0;      /* & outfill too */
sl637drivers/net/slip.cinit_timer(&sl->outfill_timer);
sl638drivers/net/slip.csl->outfill_timer.data=(unsigned long)sl;
sl639drivers/net/slip.csl->outfill_timer.function=sl_outfill;
sl654drivers/net/slip.ckfree(sl->cbuff);
sl657drivers/net/slip.ckfree(sl->xbuff);
sl659drivers/net/slip.ckfree(sl->rbuff);
sl669drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl671drivers/net/slip.cif (sl->tty == NULL) {
sl674drivers/net/slip.csl->tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
sl698drivers/net/slip.cstruct slip *sl = (struct slip *) tty->disc_data;
sl700drivers/net/slip.cif (!sl || sl->magic != SLIP_MAGIC || !sl->dev->start)
sl708drivers/net/slip.cif (sl->mtu != sl->dev->mtu + 73)  {
sl710drivers/net/slip.cif (sl->mtu != sl->dev->mtu)  {
sl712drivers/net/slip.csl_changedmtu(sl);
sl718drivers/net/slip.cif (!set_bit(SLF_ERROR, &sl->flags))  {
sl719drivers/net/slip.csl->rx_errors++;
sl725drivers/net/slip.cif (sl->mode & SL_MODE_SLIP6)
sl726drivers/net/slip.cslip_unesc6(sl, *cp++);
sl729drivers/net/slip.cslip_unesc(sl, *cp++);
sl743drivers/net/slip.cstruct slip *sl = (struct slip *) tty->disc_data;
sl747drivers/net/slip.cif (sl && sl->magic == SLIP_MAGIC) {
sl752drivers/net/slip.cif ((sl = sl_alloc()) == NULL) {
sl756drivers/net/slip.csl->tty = tty;
sl757drivers/net/slip.ctty->disc_data = sl;
sl766drivers/net/slip.csl->mode      = SL_MODE_DEFAULT;
sl767drivers/net/slip.csl->dev->type = ARPHRD_SLIP + sl->mode;
sl769drivers/net/slip.cif (sl->dev->type == 260) {    /* KISS */
sl770drivers/net/slip.csl->dev->type = ARPHRD_AX25;
sl774drivers/net/slip.cif ((err = sl_open(sl->dev)))  {
sl781drivers/net/slip.creturn sl->dev->base_addr;
sl794drivers/net/slip.cstruct slip *sl = (struct slip *) tty->disc_data;
sl797drivers/net/slip.cif (!sl || sl->magic != SLIP_MAGIC) {
sl801drivers/net/slip.c(void) dev_close(sl->dev);
sl804drivers/net/slip.csl->tty = NULL;
sl807drivers/net/slip.cif (sl->keepalive)
sl808drivers/net/slip.c(void)del_timer (&sl->keepalive_timer);
sl809drivers/net/slip.cif (sl->outfill)
sl810drivers/net/slip.c(void)del_timer (&sl->outfill_timer);
sl812drivers/net/slip.csl_free(sl);
sl813drivers/net/slip.cunregister_netdev(sl->dev);
sl822drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl829drivers/net/slip.cstats.rx_packets     = sl->rx_packets;
sl830drivers/net/slip.cstats.tx_packets     = sl->tx_packets;
sl831drivers/net/slip.cstats.rx_dropped     = sl->rx_dropped;
sl832drivers/net/slip.cstats.tx_dropped     = sl->tx_dropped;
sl833drivers/net/slip.cstats.tx_errors      = sl->tx_errors;
sl834drivers/net/slip.cstats.rx_errors      = sl->rx_errors;
sl835drivers/net/slip.cstats.rx_over_errors = sl->rx_over_errors;
sl837drivers/net/slip.cstats.rx_fifo_errors = sl->rx_compressed;
sl838drivers/net/slip.cstats.tx_fifo_errors = sl->tx_compressed;
sl839drivers/net/slip.cstats.collisions     = sl->tx_misses;
sl840drivers/net/slip.ccomp = sl->slcomp;
sl895drivers/net/slip.cslip_unesc(struct slip *sl, unsigned char s)
sl901drivers/net/slip.cif (test_bit(SLF_KEEPTEST, &sl->flags))
sl902drivers/net/slip.cclear_bit(SLF_KEEPTEST, &sl->flags);
sl904drivers/net/slip.cif (!clear_bit(SLF_ERROR, &sl->flags) && (sl->rcount > 2))  {
sl905drivers/net/slip.csl_bump(sl);
sl907drivers/net/slip.cclear_bit(SLF_ESCAPE, &sl->flags);
sl908drivers/net/slip.csl->rcount = 0;
sl912drivers/net/slip.cset_bit(SLF_ESCAPE, &sl->flags);
sl915drivers/net/slip.cif (clear_bit(SLF_ESCAPE, &sl->flags))  {
sl920drivers/net/slip.cif (clear_bit(SLF_ESCAPE, &sl->flags))  {
sl925drivers/net/slip.cif (!test_bit(SLF_ERROR, &sl->flags))  {
sl926drivers/net/slip.cif (sl->rcount < sl->buffsize)  {
sl927drivers/net/slip.csl->rbuff[sl->rcount++] = s;
sl930drivers/net/slip.csl->rx_over_errors++;
sl931drivers/net/slip.cset_bit(SLF_ERROR, &sl->flags);
sl980drivers/net/slip.cslip_unesc6(struct slip *sl, unsigned char s)
sl986drivers/net/slip.cif (test_bit(SLF_KEEPTEST, &sl->flags))
sl987drivers/net/slip.cclear_bit(SLF_KEEPTEST, &sl->flags);
sl989drivers/net/slip.cif (!clear_bit(SLF_ERROR, &sl->flags) && (sl->rcount > 2))  {
sl990drivers/net/slip.csl_bump(sl);
sl992drivers/net/slip.csl->rcount = 0;
sl993drivers/net/slip.csl->xbits = 0;
sl994drivers/net/slip.csl->xdata = 0;
sl996drivers/net/slip.csl->xdata = (sl->xdata << 6) | ((s - 0x30) & 0x3F);
sl997drivers/net/slip.csl->xbits += 6;
sl998drivers/net/slip.cif (sl->xbits >= 8) {
sl999drivers/net/slip.csl->xbits -= 8;
sl1000drivers/net/slip.cc = (unsigned char)(sl->xdata >> sl->xbits);
sl1001drivers/net/slip.cif (!test_bit(SLF_ERROR, &sl->flags))  {
sl1002drivers/net/slip.cif (sl->rcount < sl->buffsize)  {
sl1003drivers/net/slip.csl->rbuff[sl->rcount++] = c;
sl1006drivers/net/slip.csl->rx_over_errors++;
sl1007drivers/net/slip.cset_bit(SLF_ERROR, &sl->flags);
sl1044drivers/net/slip.cstruct slip *sl = (struct slip *) tty->disc_data;
sl1049drivers/net/slip.cif (!sl || sl->magic != SLIP_MAGIC) {
sl1055drivers/net/slip.cerr = verify_area(VERIFY_WRITE, arg, strlen(sl->dev->name) + 1);
sl1059drivers/net/slip.cmemcpy_tofs(arg, sl->dev->name, strlen(sl->dev->name) + 1);
sl1067drivers/net/slip.cput_user(sl->mode, (int *)arg);
sl1098drivers/net/slip.csl->dev->addr_len=AX25_ADDR_LEN;    /* sizeof an AX.25 addr */
sl1099drivers/net/slip.csl->dev->hard_header_len=AX25_KISS_HEADER_LEN + AX25_MAX_HEADER_LEN + 3;
sl1101drivers/net/slip.csl->dev->addr_len=0;  /* No mac addr in slip mode */
sl1102drivers/net/slip.csl->dev->hard_header_len=0;
sl1105drivers/net/slip.csl->mode = tmp;
sl1106drivers/net/slip.csl->dev->type = ARPHRD_SLIP+sl->mode;
sl1108drivers/net/slip.cif (sl->dev->type == 260)  {
sl1109drivers/net/slip.csl->dev->type = ARPHRD_AX25;
sl1116drivers/net/slip.creturn sl_set_mac_address(sl->dev, arg);
sl1124drivers/net/slip.cif (sl->keepalive)
sl1125drivers/net/slip.c(void)del_timer (&sl->keepalive_timer);
sl1133drivers/net/slip.cif ((sl->keepalive = (unchar) tmp) != 0) {
sl1134drivers/net/slip.csl->keepalive_timer.expires=jiffies+sl->keepalive*HZ;
sl1135drivers/net/slip.cadd_timer(&sl->keepalive_timer);
sl1136drivers/net/slip.cset_bit(SLF_KEEPTEST, &sl->flags);
sl1145drivers/net/slip.cput_user(sl->keepalive, (int *)arg);
sl1149drivers/net/slip.cif (sl->outfill)
sl1150drivers/net/slip.c(void)del_timer (&sl->outfill_timer);
sl1158drivers/net/slip.cif ((sl->outfill = (unchar) tmp) != 0){
sl1159drivers/net/slip.csl->outfill_timer.expires=jiffies+sl->outfill*HZ;
sl1160drivers/net/slip.cadd_timer(&sl->outfill_timer);
sl1161drivers/net/slip.cset_bit(SLF_OUTWAIT, &sl->flags);
sl1170drivers/net/slip.cput_user(sl->outfill, (int *)arg);
sl1187drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl1188drivers/net/slip.cif(sl->tty==NULL)
sl1264drivers/net/slip.cstruct slip *sl = (struct slip*)(dev->priv);
sl1273drivers/net/slip.cif (sl == NULL)    /* Allocation failed ?? */
sl1278drivers/net/slip.cmemset(sl, 0, sizeof (struct slip));
sl1279drivers/net/slip.csl->magic  = SLIP_MAGIC;
sl1280drivers/net/slip.csl->dev     = dev;
sl1299drivers/net/slip.cif (sl->dev->type == 260) {
sl1300drivers/net/slip.csl->dev->type = ARPHRD_AX25;
sl1369drivers/net/slip.cstruct slip *sl=(struct slip *)sls;
sl1374drivers/net/slip.cif(sl->outfill)
sl1376drivers/net/slip.cif( test_bit(SLF_OUTWAIT, &sl->flags) )
sl1380drivers/net/slip.cunsigned char s = (sl->mode & SL_MODE_SLIP6)?0x70:END;
sl1385drivers/net/slip.cif (!test_bit(0, (void *) &sl->dev->tbusy))
sl1388drivers/net/slip.csl->tty->driver.write(sl->tty, 0, &s, 1);
sl1392drivers/net/slip.cset_bit(SLF_OUTWAIT, &sl->flags);
sl1393drivers/net/slip.c(void)del_timer(&sl->outfill_timer);
sl1394drivers/net/slip.csl->outfill_timer.expires=jiffies+sl->outfill*HZ;
sl1395drivers/net/slip.cadd_timer(&sl->outfill_timer);
sl1398drivers/net/slip.cdel_timer(&sl->outfill_timer);
sl1403drivers/net/slip.cstruct slip *sl=(struct slip *)sls;
sl1405drivers/net/slip.cif(sl == NULL)
sl1408drivers/net/slip.cif( sl->keepalive)
sl1410drivers/net/slip.cif(test_bit(SLF_KEEPTEST, &sl->flags))
sl1413drivers/net/slip.c(void)del_timer(&sl->keepalive_timer);
sl1414drivers/net/slip.cif( sl->outfill ) /* outfill timer must be deleted too */
sl1415drivers/net/slip.c(void)del_timer(&sl->outfill_timer);
sl1416drivers/net/slip.cprintk("%s: no packets received during keepalive timeout, hangup.\n", sl->dev->name);
sl1417drivers/net/slip.ctty_hangup(sl->tty); /* this must hangup tty & close slip */
sl1422drivers/net/slip.cset_bit(SLF_KEEPTEST, &sl->flags);
sl1423drivers/net/slip.c(void)del_timer(&sl->keepalive_timer);
sl1424drivers/net/slip.csl->keepalive_timer.expires=jiffies+sl->keepalive*HZ;
sl1425drivers/net/slip.cadd_timer(&sl->keepalive_timer);
sl1428drivers/net/slip.c(void)del_timer(&sl->keepalive_timer);
sl353drivers/scsi/eata_dma.cstruct scatterlist *sl;
sl481drivers/scsi/eata_dma.csl=(struct scatterlist *)cmd->request_buffer;
sl482drivers/scsi/eata_dma.cfor(i = 0; i < cmd->use_sg; i++, sl++){
sl483drivers/scsi/eata_dma.ccp->sg_list[i].data = htonl(virt_to_bus(sl->address));
sl484drivers/scsi/eata_dma.ccp->sg_list[i].len = htonl((u32) sl->length);
sl658drivers/scsi/ultrastor.cstruct scatterlist *sl;
sl662drivers/scsi/ultrastor.csl = (struct scatterlist *) SCpnt->request_buffer;
sl665drivers/scsi/ultrastor.cmscp->sglist[i].address = (unsigned int)sl[i].address;
sl666drivers/scsi/ultrastor.cmscp->sglist[i].num_bytes = sl[i].length;
sl667drivers/scsi/ultrastor.ctransfer_length += sl[i].length;