• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/xtensa/platforms/iss/

Lines Matching defs:lp

94 		int (*open)(struct iss_net_private *lp);
95 void (*close)(struct iss_net_private *lp);
96 int (*read)(struct iss_net_private *lp, struct sk_buff **skb);
97 int (*write)(struct iss_net_private *lp, struct sk_buff **skb);
99 int (*poll)(struct iss_net_private *lp);
216 static int tuntap_open(struct iss_net_private *lp)
219 char *dev_name = lp->tp.info.tuntap.dev_name;
225 if (!lp->tp.info.tuntap.fixed_config)
245 lp->tp.info.tuntap.fd = fd;
249 static void tuntap_close(struct iss_net_private *lp)
251 simc_close(lp->tp.info.tuntap.fd);
252 lp->tp.info.tuntap.fd = -1;
255 static int tuntap_read (struct iss_net_private *lp, struct sk_buff **skb)
258 return simc_read(lp->tp.info.tuntap.fd,
262 static int tuntap_write (struct iss_net_private *lp, struct sk_buff **skb)
264 return simc_write(lp->tp.info.tuntap.fd, (*skb)->data, (*skb)->len);
272 static int tuntap_poll(struct iss_net_private *lp)
274 return simc_poll(lp->tp.info.tuntap.fd);
282 static int tuntap_probe(struct iss_net_private *lp, int index, char *init)
303 strncpy(lp->tp.info.tuntap.dev_name, dev_name,
304 sizeof lp->tp.info.tuntap.dev_name);
305 lp->tp.info.tuntap.fixed_config = 1;
307 strcpy(lp->tp.info.tuntap.dev_name, TRANSPORT_TUNTAP_NAME);
310 lp->mtu = TRANSPORT_TUNTAP_MTU;
312 //lp->info.tuntap.gate_addr = gate_addr;
314 lp->tp.info.tuntap.fd = -1;
316 lp->tp.open = tuntap_open;
317 lp->tp.close = tuntap_close;
318 lp->tp.read = tuntap_read;
319 lp->tp.write = tuntap_write;
320 lp->tp.protocol = tuntap_protocol;
321 lp->tp.poll = tuntap_poll;
333 struct iss_net_private *lp = netdev_priv(dev);
339 if (lp->tp.poll(lp) == 0)
345 lp->stats.rx_dropped++;
355 pkt_len = lp->tp.read(lp, &skb);
360 skb->protocol = lp->tp.protocol(skb);
362 lp->stats.rx_bytes += skb->len;
363 lp->stats.rx_packets++;
380 struct iss_net_private *lp;
382 lp = list_entry(ele, struct iss_net_private, opened_list);
384 if (!netif_running(lp->dev))
387 spin_lock(&lp->lock);
389 while ((err = iss_net_rx(lp->dev)) > 0)
392 spin_unlock(&lp->lock);
396 "shutting it down\n", lp->dev->name, err);
397 dev_close(lp->dev);
409 struct iss_net_private* lp = (struct iss_net_private*) priv;
411 spin_lock(&lp->lock);
415 mod_timer(&lp->timer, jiffies + lp->timer_val);
417 spin_unlock(&lp->lock);
423 struct iss_net_private *lp = netdev_priv(dev);
427 spin_lock(&lp->lock);
429 if ((err = lp->tp.open(lp)) < 0)
432 if (!lp->have_mac) {
433 dev_ip_addr(dev, addr, &lp->mac[2]);
434 set_ether_mac(dev, lp->mac);
447 list_add(&lp->opened_list, &opened);
450 init_timer(&lp->timer);
451 lp->timer_val = ISS_NET_TIMER_VALUE;
452 lp->timer.data = (unsigned long) lp;
453 lp->timer.function = iss_net_timer;
454 mod_timer(&lp->timer, jiffies + lp->timer_val);
457 spin_unlock(&lp->lock);
463 struct iss_net_private *lp = netdev_priv(dev);
466 spin_lock(&lp->lock);
472 del_timer_sync(&lp->timer);
474 lp->tp.close(lp);
476 spin_unlock(&lp->lock);
482 struct iss_net_private *lp = netdev_priv(dev);
487 spin_lock_irqsave(&lp->lock, flags);
489 len = lp->tp.write(lp, &skb);
492 lp->stats.tx_packets++;
493 lp->stats.tx_bytes += skb->len;
502 lp->stats.tx_dropped++;
509 spin_unlock_irqrestore(&lp->lock, flags);
518 struct iss_net_private *lp = netdev_priv(dev);
519 return &lp->stats;
570 struct iss_net_private *lp;
573 if ((dev = alloc_etherdev(sizeof *lp)) == NULL) {
580 lp = netdev_priv(dev);
581 *lp = ((struct iss_net_private) {
582 .device_list = LIST_HEAD_INIT(lp->device_list),
583 .opened_list = LIST_HEAD_INIT(lp->opened_list),
584 .lock = __SPIN_LOCK_UNLOCKED(lp.lock),
594 * Note: more protocols can be added by adding '&& !X_init(lp, eth)'.
597 if (!tuntap_probe(lp, index, init)) {
603 if (lp->have_mac)
604 printk("(%pM) ", lp->mac);
615 list_add(&lp->device_list, &devices);
618 lp->pdev.id = index;
619 lp->pdev.name = DRIVER_NAME;
620 platform_device_register(&lp->pdev);
621 SET_NETDEV_DEV(dev,&lp->pdev.dev);
631 dev->mtu = lp->mtu;
645 init_timer(&lp->tl);
646 lp->tl.function = iss_net_user_timer_expire;