taglinefilesource code
strip_info474drivers/net/strip.cstatic void strip_changedmtu(struct strip *strip_info)
strip_info476drivers/net/strip.cstruct device *dev = &strip_info->dev;
strip_info491drivers/net/strip.cstrip_info->dev.name);
strip_info492drivers/net/strip.cdev->mtu = strip_info->mtu;
strip_info503drivers/net/strip.cotbuff = strip_info->tx_buff; strip_info->tx_buff = tbuff;
strip_info504drivers/net/strip.corbuff = strip_info->rx_buff; strip_info->rx_buff = rbuff;
strip_info505drivers/net/strip.cosbuff = strip_info->sx_buff; strip_info->sx_buff = sbuff;
strip_info506drivers/net/strip.cif (strip_info->tx_left) 
strip_info508drivers/net/strip.cif (strip_info->tx_left <= len)
strip_info509drivers/net/strip.cmemcpy(strip_info->tx_buff, strip_info->tx_head, strip_info->tx_left);
strip_info512drivers/net/strip.cstrip_info->tx_left = 0;
strip_info513drivers/net/strip.cstrip_info->tx_dropped++;
strip_info516drivers/net/strip.cstrip_info->tx_head = strip_info->tx_buff;
strip_info518drivers/net/strip.cif (strip_info->sx_count) 
strip_info520drivers/net/strip.cif (strip_info->sx_count <= len)
strip_info521drivers/net/strip.cmemcpy(strip_info->sx_buff, osbuff, strip_info->sx_count);
strip_info524drivers/net/strip.cstrip_info->sx_count = 0;
strip_info525drivers/net/strip.cstrip_info->rx_over_errors++;
strip_info526drivers/net/strip.cset_bit(STR_ERROR, &strip_info->flags);
strip_info530drivers/net/strip.cstrip_info->mtu      = STRIP_ENCAP_SIZE(dev->mtu);
strip_info531drivers/net/strip.cstrip_info->buffsize = len;
strip_info543drivers/net/strip.cstatic void strip_unlock(struct strip *strip_info)
strip_info545drivers/net/strip.cstrip_info->idle_timer.expires  = jiffies + 2 * HZ;
strip_info546drivers/net/strip.cadd_timer(&strip_info->idle_timer);
strip_info547drivers/net/strip.cif (!clear_bit(0, (void *)&strip_info->dev.tbusy))
strip_info549drivers/net/strip.cstrip_info->dev.name);
strip_info555drivers/net/strip.cstatic void ResetRadio(struct strip *strip_info)
strip_info558drivers/net/strip.cstrip_info->watchdog_doprobe = jiffies + 10 * HZ;
strip_info559drivers/net/strip.cstrip_info->watchdog_doreset = jiffies + 1 * HZ;
strip_info560drivers/net/strip.cstrip_info->tty->driver.write(strip_info->tty, 0,
strip_info573drivers/net/strip.cstruct strip *strip_info = (struct strip *) tty->disc_data;
strip_info576drivers/net/strip.cif (!strip_info || strip_info->magic != STRIP_MAGIC || !strip_info->dev.start)
strip_info579drivers/net/strip.cif (strip_info->tx_left > 0) 
strip_info586drivers/net/strip.cnum_written = tty->driver.write(tty, 0, strip_info->tx_head, strip_info->tx_left);
strip_info587drivers/net/strip.cstrip_info->tx_left -= num_written;
strip_info588drivers/net/strip.cstrip_info->tx_head += num_written;
strip_info594drivers/net/strip.cstrip_unlock(strip_info);
strip_info602drivers/net/strip.cstatic unsigned char *strip_stuff(unsigned char *ptr, struct strip *strip_info, struct sk_buff *skb)
strip_info610drivers/net/strip.cif (len > strip_info->mtu) {    /* Sigh, shouldn't occur BUT ... */
strip_info611drivers/net/strip.cprintk("%s: Dropping oversized transmit packet!\n", strip_info->dev.name);
strip_info612drivers/net/strip.cstrip_info->tx_dropped++;
strip_info616drivers/net/strip.cif (!arp_query(haddr.c, skb->raddr, &strip_info->dev)) {
strip_info622drivers/net/strip.cstrip_info->dev.name,
strip_info626drivers/net/strip.cstrip_info->tx_dropped++;
strip_info656drivers/net/strip.cstatic void strip_send(struct strip *strip_info, struct sk_buff *skb)
strip_info661drivers/net/strip.cif (strip_info->mtu != STRIP_ENCAP_SIZE(strip_info->dev.mtu))
strip_info662drivers/net/strip.cstrip_changedmtu(strip_info);
strip_info664drivers/net/strip.cptr = strip_info->tx_buff;
strip_info668drivers/net/strip.cptr = strip_stuff(ptr, strip_info, skb);
strip_info670drivers/net/strip.cif (!ptr) { strip_unlock(strip_info); return; }
strip_info671drivers/net/strip.cstrip_info->tx_packets++;  /* Count another successful packet */
strip_info675drivers/net/strip.cstrip_info->tx_head =       strip_info->tx_buff;
strip_info676drivers/net/strip.cstrip_info->tx_left = ptr - strip_info->tx_buff;
strip_info677drivers/net/strip.cstrip_info->tty->flags |= (1 << TTY_DO_WRITE_WAKEUP);
strip_info680drivers/net/strip.cif ((long)jiffies - strip_info->watchdog_doreset >= 0) {
strip_info681drivers/net/strip.cprintk("%s: No response: Resetting radio.\n", strip_info->dev.name);
strip_info682drivers/net/strip.cResetRadio(strip_info);
strip_info691drivers/net/strip.cif ((long)jiffies - strip_info->watchdog_doprobe >= 0) {
strip_info695drivers/net/strip.cstrip_info->tx_left += 2;
strip_info696drivers/net/strip.cstrip_info->watchdog_doprobe = jiffies + 10 * HZ;
strip_info697drivers/net/strip.cstrip_info->watchdog_doreset = jiffies + 1 * HZ;
strip_info701drivers/net/strip.cstrip_write_some_more(strip_info->tty);
strip_info707drivers/net/strip.cstruct strip *strip_info = (struct strip *)(dev->priv);
strip_info713drivers/net/strip.cif (set_bit(0, (void *) &strip_info->dev.tbusy)) return(1);
strip_info714drivers/net/strip.cdel_timer(&strip_info->idle_timer);
strip_info715drivers/net/strip.cstrip_send(strip_info, skb);
strip_info739drivers/net/strip.cstatic void strip_bump(struct strip *strip_info, __u16 packetlen)
strip_info746drivers/net/strip.cstrip_info->dev.name);
strip_info747drivers/net/strip.cstrip_info->rx_dropped++;
strip_info750drivers/net/strip.cskb->dev = &strip_info->dev;
strip_info751drivers/net/strip.cmemcpy(skb_put(skb, count), strip_info->rx_buff, count);
strip_info755drivers/net/strip.cstrip_info->rx_packets++;
strip_info758drivers/net/strip.cstatic void RecvErr(char *msg, struct strip *strip_info)
strip_info761drivers/net/strip.c__u8 *ptr = strip_info->sx_buff;
strip_info762drivers/net/strip.c__u8 *end = strip_info->sx_buff + strip_info->sx_count;
strip_info788drivers/net/strip.cset_bit(STR_ERROR, &strip_info->flags);
strip_info789drivers/net/strip.cstrip_info->rx_errors++;
strip_info792drivers/net/strip.cstatic void RecvErr_Message(struct strip *strip_info, __u8 *sendername, __u8 *msg)
strip_info815drivers/net/strip.cstrip_info->watchdog_doreset = jiffies + LONG_TIME;
strip_info823drivers/net/strip.cstrip_info->watchdog_doreset = jiffies;    /* Do reset ASAP */
strip_info828drivers/net/strip.cRecvErr("Error Msg:", strip_info);
strip_info831drivers/net/strip.cstatic void process_packet(struct strip *strip_info)
strip_info833drivers/net/strip.c__u8 *ptr = strip_info->sx_buff;
strip_info834drivers/net/strip.c__u8 *end = strip_info->sx_buff + strip_info->sx_count;
strip_info839drivers/net/strip.cif (strip_info->sx_count == 0) return;
strip_info842drivers/net/strip.cif (strip_info->sx_count == 2 && ptr[0] == 'O' && ptr[1] == 'K') {
strip_info844drivers/net/strip.cstrip_info->dev.name);
strip_info845drivers/net/strip.cstrip_info->watchdog_doreset = jiffies;    /* Do reset ASAP */
strip_info853drivers/net/strip.cRecvErr_Message(strip_info, NULL, strip_info->sx_buff);
strip_info854drivers/net/strip.celse RecvErr("No initial *", strip_info);
strip_info865drivers/net/strip.cRecvErr("No second *", strip_info);
strip_info875drivers/net/strip.cif (ptr[0] == 'E' && ptr[1] == 'R' && ptr[2] == 'R' && ptr[3] == '_') { *name_end = 0; RecvErr_Message(strip_info, name, ptr); }
strip_info876drivers/net/strip.celse RecvErr("Unrecognized protocol key", strip_info);
strip_info882drivers/net/strip.cptr = UnStuffData(ptr, end, strip_info->rx_buff, 4);
strip_info884drivers/net/strip.cRecvErr("Runt packet", strip_info);
strip_info888drivers/net/strip.cpacketlen = ((__u16)strip_info->rx_buff[2] << 8) | strip_info->rx_buff[3];
strip_info895drivers/net/strip.cptr = UnStuffData(ptr, end, strip_info->rx_buff+4, packetlen-4);
strip_info897drivers/net/strip.cRecvErr("Runt packet", strip_info);
strip_info900drivers/net/strip.cstrip_bump(strip_info, packetlen);
strip_info924drivers/net/strip.cstruct strip *strip_info = (struct strip *) tty->disc_data;
strip_info927drivers/net/strip.cif (!strip_info || strip_info->magic != STRIP_MAGIC || !strip_info->dev.start)
strip_info931drivers/net/strip.cif (strip_info->mtu != STRIP_ENCAP_SIZE(strip_info->dev.mtu))
strip_info932drivers/net/strip.cstrip_changedmtu(strip_info);
strip_info940drivers/net/strip.cif (!set_bit(STR_ERROR, &strip_info->flags)) strip_info->rx_errors++;
strip_info945drivers/net/strip.cif (!clear_bit(STR_ERROR, &strip_info->flags))
strip_info946drivers/net/strip.cprocess_packet(strip_info);
strip_info947drivers/net/strip.cstrip_info->sx_count = 0;
strip_info949drivers/net/strip.celse if (!test_bit(STR_ERROR, &strip_info->flags) &&
strip_info950drivers/net/strip.c(strip_info->sx_count > 0 || *cp != 0x0A))
strip_info953drivers/net/strip.cif (strip_info->sx_count < strip_info->buffsize)
strip_info954drivers/net/strip.cstrip_info->sx_buff[strip_info->sx_count++] = *cp;
strip_info957drivers/net/strip.cset_bit(STR_ERROR, &strip_info->flags);
strip_info958drivers/net/strip.cstrip_info->rx_over_errors++;
strip_info1015drivers/net/strip.cstruct strip *strip_info = (struct strip *)(dev->priv);
strip_info1019drivers/net/strip.cstats.rx_packets     = strip_info->rx_packets;
strip_info1020drivers/net/strip.cstats.tx_packets     = strip_info->tx_packets;
strip_info1021drivers/net/strip.cstats.rx_dropped     = strip_info->rx_dropped;
strip_info1022drivers/net/strip.cstats.tx_dropped     = strip_info->tx_dropped;
strip_info1023drivers/net/strip.cstats.tx_errors      = strip_info->tx_errors;
strip_info1024drivers/net/strip.cstats.rx_errors      = strip_info->rx_errors;
strip_info1025drivers/net/strip.cstats.rx_over_errors = strip_info->rx_over_errors;
strip_info1058drivers/net/strip.cstruct strip *strip_info = (struct strip *)(dev->priv);
strip_info1061drivers/net/strip.cif (strip_info->tty == NULL) 
strip_info1075drivers/net/strip.cstrip_info->rx_buff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
strip_info1076drivers/net/strip.cif (strip_info->rx_buff == NULL) 
strip_info1078drivers/net/strip.cstrip_info->sx_buff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
strip_info1079drivers/net/strip.cif (strip_info->sx_buff == NULL) 
strip_info1081drivers/net/strip.cstrip_info->tx_buff = (unsigned char *) kmalloc(len + 4, GFP_KERNEL);
strip_info1082drivers/net/strip.cif (strip_info->tx_buff == NULL) 
strip_info1085drivers/net/strip.cstrip_info->flags   &= (1 << STR_INUSE); /* Clear ESCAPE & ERROR flags */
strip_info1086drivers/net/strip.cstrip_info->mtu   = STRIP_ENCAP_SIZE(dev->mtu);
strip_info1087drivers/net/strip.cstrip_info->buffsize = len;
strip_info1088drivers/net/strip.cstrip_info->sx_count = 0;
strip_info1089drivers/net/strip.cstrip_info->tx_left  = 0;
strip_info1100drivers/net/strip.cprintk("%s: Initializing Radio.\n", strip_info->dev.name);
strip_info1101drivers/net/strip.cResetRadio(strip_info);
strip_info1102drivers/net/strip.cstrip_info->idle_timer.expires  = jiffies + 2 * HZ;
strip_info1103drivers/net/strip.cadd_timer(&strip_info->idle_timer);
strip_info1107drivers/net/strip.ckfree(strip_info->sx_buff);
strip_info1109drivers/net/strip.ckfree(strip_info->rx_buff);
strip_info1121drivers/net/strip.cstruct strip *strip_info = (struct strip *)(dev->priv);
strip_info1123drivers/net/strip.cif (strip_info->tty == NULL) 
strip_info1125drivers/net/strip.cstrip_info->tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
strip_info1132drivers/net/strip.cif (strip_info->rx_buff) 
strip_info1134drivers/net/strip.ckfree(strip_info->rx_buff);
strip_info1135drivers/net/strip.cstrip_info->rx_buff = NULL;
strip_info1137drivers/net/strip.cif (strip_info->sx_buff) 
strip_info1139drivers/net/strip.ckfree(strip_info->sx_buff); 
strip_info1140drivers/net/strip.cstrip_info->sx_buff = NULL;
strip_info1142drivers/net/strip.cif (strip_info->tx_buff) 
strip_info1144drivers/net/strip.ckfree(strip_info->tx_buff); 
strip_info1145drivers/net/strip.cstrip_info->tx_buff = NULL; 
strip_info1147drivers/net/strip.cdel_timer(&strip_info->idle_timer);
strip_info1215drivers/net/strip.cstatic void strip_free(struct strip *strip_info)
strip_info1217drivers/net/strip.c*(strip_info->referrer) = strip_info->next;
strip_info1218drivers/net/strip.cif (strip_info->next) 
strip_info1219drivers/net/strip.cstrip_info->next->referrer = strip_info->referrer;
strip_info1220drivers/net/strip.cstrip_info->magic = 0;
strip_info1221drivers/net/strip.ckfree(strip_info);
strip_info1232drivers/net/strip.cstruct strip *strip_info = (struct strip *)
strip_info1235drivers/net/strip.cif (!strip_info) 
strip_info1242drivers/net/strip.cmemset(strip_info, 0, sizeof(struct strip));
strip_info1260drivers/net/strip.cstrip_info->next = *s;
strip_info1262drivers/net/strip.c(*s)->referrer = &strip_info->next;
strip_info1263drivers/net/strip.cstrip_info->referrer = s;
strip_info1264drivers/net/strip.c*s = strip_info;
strip_info1266drivers/net/strip.cset_bit(STR_INUSE, &strip_info->flags);
strip_info1267drivers/net/strip.cstrip_info->magic = STRIP_MAGIC;
strip_info1268drivers/net/strip.cstrip_info->tty   = NULL;
strip_info1270drivers/net/strip.cinit_timer(&strip_info->idle_timer);
strip_info1271drivers/net/strip.cstrip_info->idle_timer.data     = (long)&strip_info->dev;
strip_info1272drivers/net/strip.cstrip_info->idle_timer.function = strip_IdleTask;
strip_info1274drivers/net/strip.csprintf(strip_info->if_name, "st%d", channel_id);
strip_info1275drivers/net/strip.cstrip_info->dev.name         = strip_info->if_name;
strip_info1276drivers/net/strip.cstrip_info->dev.base_addr    = channel_id;
strip_info1277drivers/net/strip.cstrip_info->dev.priv         = (void*)strip_info;
strip_info1278drivers/net/strip.cstrip_info->dev.next         = NULL;
strip_info1279drivers/net/strip.cstrip_info->dev.init         = strip_dev_init;
strip_info1281drivers/net/strip.creturn(strip_info);
strip_info1294drivers/net/strip.cstruct strip *strip_info = (struct strip *) tty->disc_data;
strip_info1300drivers/net/strip.cif (strip_info && strip_info->magic == STRIP_MAGIC) 
strip_info1307drivers/net/strip.cif ((strip_info = strip_alloc()) == NULL) 
strip_info1315drivers/net/strip.cif (register_netdev(&strip_info->dev) != 0) 
strip_info1318drivers/net/strip.cstrip_free(strip_info);
strip_info1322drivers/net/strip.cstrip_info->tty = tty;
strip_info1323drivers/net/strip.ctty->disc_data = strip_info;
strip_info1333drivers/net/strip.cstrip_info->dev.type = ARPHRD_METRICOM;  /* dtang */
strip_info1349drivers/net/strip.creturn(strip_info->dev.base_addr);
strip_info1360drivers/net/strip.cstruct strip *strip_info = (struct strip *) tty->disc_data;
strip_info1366drivers/net/strip.cif (!strip_info || strip_info->magic != STRIP_MAGIC) 
strip_info1369drivers/net/strip.cdev_close(&strip_info->dev);
strip_info1370drivers/net/strip.cunregister_netdev(&strip_info->dev);
strip_info1373drivers/net/strip.cstrip_info->tty = NULL;
strip_info1374drivers/net/strip.cstrip_free(strip_info);
strip_info1388drivers/net/strip.cstruct strip *strip_info = (struct strip *) tty->disc_data;
strip_info1395drivers/net/strip.cif (!strip_info || strip_info->magic != STRIP_MAGIC) 
strip_info1404drivers/net/strip.cmemcpy_tofs((void*)arg, strip_info->dev.name, 
strip_info1405drivers/net/strip.cstrlen(strip_info->dev.name) + 1);