taglinefilesource code
sl133drivers/net/slip.csl_initialize(struct slip *sl, struct device *dev)
sl135drivers/net/slip.csl->inuse    = 0;
sl136drivers/net/slip.csl->sending    = 0;
sl137drivers/net/slip.csl->escape    = 0;
sl138drivers/net/slip.csl->flags    = 0;
sl140drivers/net/slip.csl->mode    = SL_MODE_ADAPTIVE;  /* automatic CSLIP recognition */
sl143drivers/net/slip.csl->mode    = SL_MODE_CSLIP | SL_MODE_ADAPTIVE;  /* Default */
sl145drivers/net/slip.csl->mode    = SL_MODE_SLIP;    /* Default for non compressors */
sl149drivers/net/slip.csl->line    = dev->base_addr;
sl150drivers/net/slip.csl->tty    = NULL;
sl151drivers/net/slip.csl->dev    = dev;
sl152drivers/net/slip.csl->slcomp    = NULL;
sl155drivers/net/slip.csl->rbuff    = NULL;
sl156drivers/net/slip.csl->xbuff    = NULL;
sl157drivers/net/slip.csl->cbuff    = NULL;
sl159drivers/net/slip.csl->rhead    = NULL;
sl160drivers/net/slip.csl->rend    = NULL;
sl172drivers/net/slip.cstruct slip *sl;
sl177drivers/net/slip.csl = &sl_ctrl[i];
sl178drivers/net/slip.cif (sl->tty == tty) return(sl);
sl189drivers/net/slip.cstruct slip *sl;
sl195drivers/net/slip.csl = &sl_ctrl[i];
sl196drivers/net/slip.cif (sl->inuse == 0) {
sl197drivers/net/slip.csl->inuse = 1;
sl198drivers/net/slip.csl->tty = NULL;
sl200drivers/net/slip.creturn(sl);
sl210drivers/net/slip.csl_free(struct slip *sl)
sl214drivers/net/slip.cif (sl->inuse) {
sl217drivers/net/slip.csl->inuse = 0;
sl218drivers/net/slip.csl->tty = NULL;
sl227drivers/net/slip.cstatic void sl_changedmtu(struct slip *sl)
sl229drivers/net/slip.cstruct device *dev=sl->dev;
sl232drivers/net/slip.cint omtu=sl->mtu;
sl234drivers/net/slip.csl->mtu=dev->mtu;
sl253drivers/net/slip.csl->mtu=omtu;
sl266drivers/net/slip.ctf=(unsigned char *)sl->dev->mem_start;
sl267drivers/net/slip.csl->dev->mem_start=(unsigned long)tb;
sl268drivers/net/slip.csl->dev->mem_end=(unsigned long) (sl->dev->mem_start + l);
sl269drivers/net/slip.crf=(unsigned char *)sl->dev->rmem_start;
sl270drivers/net/slip.csl->dev->rmem_start=(unsigned long)rb;
sl271drivers/net/slip.csl->dev->rmem_end=(unsigned long) (sl->dev->rmem_start + l);
sl273drivers/net/slip.csl->xbuff = (unsigned char *) sl->dev->mem_start;
sl274drivers/net/slip.csl->rbuff = (unsigned char *) sl->dev->rmem_start;
sl275drivers/net/slip.csl->rend  = (unsigned char *) sl->dev->rmem_end;
sl276drivers/net/slip.csl->rhead = sl->rbuff;
sl278drivers/net/slip.ccf=sl->cbuff;
sl279drivers/net/slip.csl->cbuff=cb;
sl281drivers/net/slip.csl->escape=0;
sl282drivers/net/slip.csl->sending=0;
sl283drivers/net/slip.csl->rcount=0;
sl298drivers/net/slip.csl_enqueue(struct slip *sl, unsigned char c)
sl304drivers/net/slip.cif (sl->rhead < sl->rend) {
sl305drivers/net/slip.c*sl->rhead = c;
sl306drivers/net/slip.csl->rhead++;
sl307drivers/net/slip.csl->rcount++;
sl308drivers/net/slip.c} else sl->roverrun++;
sl314drivers/net/slip.csl_dequeue(struct slip *sl, int i)
sl320drivers/net/slip.cif (sl->rhead > sl->rbuff) {
sl321drivers/net/slip.csl->rhead -= i;
sl322drivers/net/slip.csl->rcount -= i;
sl330drivers/net/slip.csl_lock(struct slip *sl)
sl336drivers/net/slip.csl->sending = 1;
sl337drivers/net/slip.csl->dev->tbusy = 1;
sl344drivers/net/slip.csl_unlock(struct slip *sl)
sl350drivers/net/slip.csl->sending = 0;
sl351drivers/net/slip.csl->dev->tbusy = 0;
sl358drivers/net/slip.csl_bump(struct slip *sl)
sl365drivers/net/slip.ccount = sl->rcount;
sl366drivers/net/slip.cif (sl->mode & (SL_MODE_ADAPTIVE | SL_MODE_CSLIP)) {
sl367drivers/net/slip.cif ((c = sl->rbuff[0]) & SL_TYPE_COMPRESSED_TCP) {
sl370drivers/net/slip.cif (!(sl->mode & SL_MODE_CSLIP)) {
sl378drivers/net/slip.cif ((sl->rhead + 80) < sl->rend) {
sl379drivers/net/slip.csl->rhead += 80;
sl380drivers/net/slip.csl->rcount += 80;
sl383drivers/net/slip.csl->roverrun++;
sl390drivers/net/slip.ccount = slhc_uncompress(sl->slcomp, sl->rbuff, count);
sl392drivers/net/slip.csl->errors++;
sl396drivers/net/slip.cif (!(sl->mode & SL_MODE_CSLIP)) {
sl398drivers/net/slip.csl->mode |= SL_MODE_CSLIP;
sl401drivers/net/slip.csl->rbuff[0] &= 0x4f;
sl402drivers/net/slip.cif (slhc_remember(sl->slcomp, sl->rbuff, count) <= 0) {
sl403drivers/net/slip.csl->errors++;
sl409drivers/net/slip.cDPRINTF((DBG_SLIP, "<< \"%s\" recv:\r\n", sl->dev->name));
sl410drivers/net/slip.cip_dump(sl->rbuff, sl->rcount);
sl415drivers/net/slip.csl->rcount, sl->rbuff));
sl417drivers/net/slip.cdone = dev_rint(sl->rbuff, count, 0, sl->dev);
sl421drivers/net/slip.csl->rpacket++;
sl427drivers/net/slip.csl_next(struct slip *sl)
sl429drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: sl_next(0x%X) called!\n", sl));
sl430drivers/net/slip.csl_unlock(sl);
sl431drivers/net/slip.cdev_tint(sl->dev);
sl437drivers/net/slip.csl_encaps(struct slip *sl, unsigned char *icp, int len)
sl443drivers/net/slip.cDPRINTF((DBG_SLIP, ">> \"%s\" sent:\r\n", sl->dev->name));
sl447drivers/net/slip.cif(sl->mtu != sl->dev->mtu)  /* Someone has been ifconfigging */
sl448drivers/net/slip.csl_changedmtu(sl);
sl450drivers/net/slip.cif(len>sl->mtu)    /* Sigh, shouldn't occur BUT ... */
sl452drivers/net/slip.clen=sl->mtu;
sl457drivers/net/slip.cif(sl->mode & SL_MODE_CSLIP)
sl458drivers/net/slip.clen = slhc_compress(sl->slcomp, p, len, sl->cbuff, &p, 1);
sl466drivers/net/slip.cbp = sl->xbuff;
sl495drivers/net/slip.cif(sl->mode & SL_MODE_SLIP6)
sl496drivers/net/slip.ccount=slip_esc6(p, (unsigned char *)sl->xbuff,len);
sl498drivers/net/slip.ccount=slip_esc(p, (unsigned char *)sl->xbuff,len);
sl500drivers/net/slip.csl->spacket++;
sl501drivers/net/slip.cbp = sl->xbuff;
sl505drivers/net/slip.cif (tty_write_data(sl->tty, (char *) bp, count,
sl506drivers/net/slip.c(void (*)(void *))sl_next, (void *) sl) == 0) {
sl508drivers/net/slip.csl_next(sl);
sl533drivers/net/slip.cstruct slip *sl;
sl537drivers/net/slip.csl = &sl_ctrl[dev->base_addr];
sl538drivers/net/slip.ctty = sl->tty;
sl540drivers/net/slip.cdev->name, skb, sl->sending));
sl547drivers/net/slip.cif (sl->sending) {
sl549drivers/net/slip.csl->sbusy++;
sl556drivers/net/slip.cif(sl->mode & SL_MODE_AX25)
sl567drivers/net/slip.csl_lock(sl);
sl569drivers/net/slip.cif (!(sl->mode & SL_MODE_AX25)) {
sl578drivers/net/slip.csl_encaps(sl, skb->data, size);
sl590drivers/net/slip.cstruct slip *sl=&sl_ctrl[dev->base_addr];
sl591drivers/net/slip.cif(sl->mode&SL_MODE_AX25)
sl604drivers/net/slip.cstruct slip *sl=&sl_ctrl[dev->base_addr];
sl605drivers/net/slip.cif((sl->mode&SL_MODE_AX25) && type!=NET16(ETH_P_AX25))
sl618drivers/net/slip.cstruct slip *sl=&sl_ctrl[dev->base_addr];
sl620drivers/net/slip.cif(sl->mode&SL_MODE_AX25)
sl631drivers/net/slip.cstruct slip *sl=&sl_ctrl[dev->base_addr];
sl633drivers/net/slip.cif(sl->mode&SL_MODE_AX25)
sl644drivers/net/slip.cstruct slip *sl;
sl648drivers/net/slip.csl = &sl_ctrl[dev->base_addr];
sl649drivers/net/slip.cif (sl->tty == NULL) {
sl650drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: channel %d not connected!\n", sl->line));
sl653drivers/net/slip.csl->dev = dev;
sl678drivers/net/slip.csl->mtu    = dev->mtu;
sl679drivers/net/slip.csl->dev->mem_start  = (unsigned long) p;
sl680drivers/net/slip.csl->dev->mem_end  = (unsigned long) (sl->dev->mem_start + l);
sl687drivers/net/slip.csl->dev->rmem_start  = (unsigned long) p;
sl688drivers/net/slip.csl->dev->rmem_end  = (unsigned long) (sl->dev->rmem_start + l);
sl690drivers/net/slip.csl->xbuff    = (unsigned char *) sl->dev->mem_start;
sl691drivers/net/slip.csl->rbuff    = (unsigned char *) sl->dev->rmem_start;
sl692drivers/net/slip.csl->rend    = (unsigned char *) sl->dev->rmem_end;
sl693drivers/net/slip.csl->rhead    = sl->rbuff;
sl695drivers/net/slip.csl->escape    = 0;
sl696drivers/net/slip.csl->sending    = 0;
sl697drivers/net/slip.csl->rcount    = 0;
sl701drivers/net/slip.ckfree((unsigned char *)sl->dev->mem_start);
sl705drivers/net/slip.csl->cbuff    = p;
sl707drivers/net/slip.csl->slcomp = slhc_init(16, 16);
sl708drivers/net/slip.cif (sl->slcomp == NULL) {
sl709drivers/net/slip.ckfree((unsigned char *)sl->dev->mem_start);
sl710drivers/net/slip.ckfree((unsigned char *)sl->dev->rmem_start);
sl711drivers/net/slip.ckfree(sl->cbuff);
sl720drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: channel %d opened.\n", sl->line));
sl729drivers/net/slip.cstruct slip *sl;
sl731drivers/net/slip.csl = &sl_ctrl[dev->base_addr];
sl732drivers/net/slip.cif (sl->tty == NULL) {
sl733drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: channel %d not connected!\n", sl->line));
sl736drivers/net/slip.csl_free(sl);
sl739drivers/net/slip.ckfree(sl->rbuff);
sl740drivers/net/slip.ckfree(sl->xbuff);
sl741drivers/net/slip.ckfree(sl->cbuff);
sl742drivers/net/slip.cslhc_free(sl->slcomp);
sl744drivers/net/slip.csl_initialize(sl, dev);
sl746drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: channel %d closed.\n", sl->line));
sl762drivers/net/slip.cstruct slip *sl;
sl766drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) return;  /* not connected */
sl768drivers/net/slip.cif(sl->mtu!=sl->dev->mtu)  /* Argh! mtu change time! - costs us the packet part received at the change */
sl769drivers/net/slip.csl_changedmtu(sl);
sl785drivers/net/slip.cif (sl->escape) {
sl787drivers/net/slip.csl_enqueue(sl, ESC);
sl789drivers/net/slip.csl_enqueue(sl, END);
sl792drivers/net/slip.csl->escape = 0;
sl795drivers/net/slip.csl->escape = 1;
sl797drivers/net/slip.cif (sl->rcount > 2) sl_bump(sl);
sl798drivers/net/slip.csl_dequeue(sl, sl->rcount);
sl799drivers/net/slip.csl->rcount = 0;
sl800drivers/net/slip.c} else  sl_enqueue(sl, c);
sl804drivers/net/slip.cif(sl->mode & SL_MODE_SLIP6)
sl805drivers/net/slip.cslip_unesc6(sl,buff,count,error);
sl807drivers/net/slip.cslip_unesc(sl,buff,count,error);
sl824drivers/net/slip.cstruct slip *sl;
sl827drivers/net/slip.cif ((sl = sl_find(tty)) != NULL) {
sl829drivers/net/slip.ctty->line, sl->dev->name));
sl834drivers/net/slip.cif ((sl = sl_alloc()) == NULL) {
sl839drivers/net/slip.csl->tty = tty;
sl844drivers/net/slip.c(void) sl_open(sl->dev);
sl846drivers/net/slip.ctty->line, sl->dev->name));
sl849drivers/net/slip.creturn(sl->line);
sl857drivers/net/slip.cstruct slip *sl;
sl861drivers/net/slip.csl = &sl_ctrl[dev->base_addr];
sl862drivers/net/slip.cif (! sl)
sl867drivers/net/slip.cstats.rx_packets = sl->rpacket;
sl868drivers/net/slip.cstats.rx_over_errors = sl->roverrun;
sl869drivers/net/slip.cstats.tx_packets = sl->spacket;
sl870drivers/net/slip.cstats.tx_dropped = sl->sbusy;
sl871drivers/net/slip.cstats.rx_errors = sl->errors;
sl873drivers/net/slip.ccomp = sl->slcomp;
sl893drivers/net/slip.cstruct slip *sl;
sl896drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) {
sl901drivers/net/slip.c(void) dev_close(sl->dev);
sl903drivers/net/slip.ctty->line, sl->dev->name));
sl951drivers/net/slip.cslip_unesc(struct slip *sl, unsigned char *s, int count, int error)
sl958drivers/net/slip.csl->flags |= SLF_ESCAPE;
sl961drivers/net/slip.cif (sl->flags & SLF_ESCAPE)
sl962drivers/net/slip.csl_enqueue(sl, ESC);
sl964drivers/net/slip.csl_enqueue(sl, *s);
sl965drivers/net/slip.csl->flags &= ~SLF_ESCAPE;
sl968drivers/net/slip.cif (sl->flags & SLF_ESCAPE)
sl969drivers/net/slip.csl_enqueue(sl, END);
sl971drivers/net/slip.csl_enqueue(sl, *s);
sl972drivers/net/slip.csl->flags &= ~SLF_ESCAPE;
sl975drivers/net/slip.cif (sl->rcount > 2) 
sl976drivers/net/slip.csl_bump(sl);
sl977drivers/net/slip.csl_dequeue(sl, sl->rcount);
sl978drivers/net/slip.csl->rcount = 0;
sl979drivers/net/slip.csl->flags &= ~(SLF_ESCAPE | SLF_ERROR);
sl982drivers/net/slip.csl_enqueue(sl, *s);
sl983drivers/net/slip.csl->flags &= ~SLF_ESCAPE;
sl987drivers/net/slip.csl->flags |= SLF_ERROR;
sl1038drivers/net/slip.cslip_unesc6(struct slip *sl, unsigned char *s, int count, int error)
sl1045drivers/net/slip.cif (sl->rcount > 8) {  /* XXX must be 2 for compressed slip */
sl1048drivers/net/slip.csl->rbuff[0],
sl1049drivers/net/slip.csl->rbuff[1],
sl1050drivers/net/slip.csl->rbuff[2],
sl1051drivers/net/slip.csl->rbuff[3]
sl1054drivers/net/slip.csl_bump(sl);
sl1056drivers/net/slip.csl_dequeue(sl, sl->rcount);
sl1057drivers/net/slip.csl->rcount = 0;
sl1058drivers/net/slip.csl->flags &= ~(SLF_ESCAPE | SLF_ERROR); /* SLF_ESCAPE not used */
sl1059drivers/net/slip.csl->xbits = 0;
sl1061drivers/net/slip.csl->xdata = (sl->xdata << 6) | ((*s - 0x30) & 0x3F);
sl1062drivers/net/slip.csl->xbits += 6;
sl1063drivers/net/slip.cif (sl->xbits >= 8) {
sl1064drivers/net/slip.csl->xbits -= 8;
sl1065drivers/net/slip.cc = (unsigned char)(sl->xdata >> sl->xbits);
sl1066drivers/net/slip.csl_enqueue(sl, c);
sl1072drivers/net/slip.csl->flags |= SLF_ERROR;
sl1093drivers/net/slip.cstruct slip *sl;
sl1097drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) {
sl1105drivers/net/slip.cerr=verify_area(VERIFY_WRITE, arg, strlen(sl->dev->name) + 1);
sl1108drivers/net/slip.cmemcpy_tofs(arg, sl->dev->name, strlen(sl->dev->name) + 1);
sl1112drivers/net/slip.cput_fs_long(sl->mode,(long *)arg);
sl1116drivers/net/slip.csl->mode=get_fs_long((long *)arg);
sl1118drivers/net/slip.cif(sl->mode & SL_MODE_AX25)
sl1120drivers/net/slip.csl->dev->addr_len=7;  /* sizeof an AX.25 addr */
sl1121drivers/net/slip.csl->dev->hard_header_len=17;  /* We don't do digipeaters */
sl1122drivers/net/slip.csl->dev->type=3;    /* AF_AX25 not an AF_INET device */
sl1126drivers/net/slip.csl->dev->addr_len=0;  /* No mac addr in slip mode */
sl1127drivers/net/slip.csl->dev->hard_header_len=0;
sl1128drivers/net/slip.csl->dev->type=0;
sl1134drivers/net/slip.creturn sl_set_mac_address(sl->dev,arg);
sl1147drivers/net/slip.cstruct slip *sl;
sl1154drivers/net/slip.csl = &sl_ctrl[dev->base_addr];
sl1178drivers/net/slip.csl_initialize(sl, dev);
sl1181drivers/net/slip.csl->rcount    = 0;      /* SLIP receiver count  */
sl1182drivers/net/slip.csl->rpacket    = 0;      /* #frames received  */
sl1183drivers/net/slip.csl->roverrun    = 0;      /* "overrun" counter  */
sl1184drivers/net/slip.csl->spacket    = 0;      /* #frames sent out  */
sl1185drivers/net/slip.csl->sbusy    = 0;      /* "xmit busy" counter  */
sl1186drivers/net/slip.csl->errors    = 0;      /* not used at present  */
sl79drivers/net/slip.hextern void  slip_unesc(struct slip *sl, unsigned char *s, int count, int error);
sl80drivers/net/slip.hextern void   slip_unesc6(struct slip *sl, unsigned char *s, int count, int error);
sl628drivers/scsi/ultrastor.cstruct scatterlist *sl;
sl632drivers/scsi/ultrastor.csl = (struct scatterlist *) SCpnt->request_buffer;
sl635drivers/scsi/ultrastor.cmscp->sglist[i].address = (unsigned int)sl[i].address;
sl636drivers/scsi/ultrastor.cmscp->sglist[i].num_bytes = sl[i].length;
sl637drivers/scsi/ultrastor.ctransfer_length += sl[i].length;