static void vnet_defer_xmit(struct work_struct *data) { struct sk_buff *skb; struct net_device *net; struct pdp_info *dev; int ret ; DPRINTK(2, "BEGIN\n"); ret = 0; skb = (struct sk_buff *)workqueue_data; net = (struct net_device *)skb->dev; dev = (struct pdp_info *)net->ml_priv; ret = pdp_mux(dev, skb->data, skb->len); if (ret < 0) { dev->vn_dev.stats.tx_dropped++; } else { net->trans_start = jiffies; dev->vn_dev.stats.tx_bytes += skb->len; dev->vn_dev.stats.tx_packets++; } dev_kfree_skb_any(skb); netif_wake_queue(net); vnet_start_xmit_flag = 0; DPRINTK(2, "END\n"); }
static void vnet_defer_xmit(struct work_struct *data) { struct sk_buff *skb = (struct sk_buff *)workqueue_data; struct net_device *net = (struct net_device *)skb->dev; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)) struct pdp_info *dev = (struct pdp_info *)net->ml_priv; #else struct pdp_info *dev = (struct pdp_info *)net->priv; #endif int ret = 0; down(&pdp_txlock); ret = pdp_mux(dev, skb->data, skb->len); if (ret < 0) { dev->vn_dev.stats.tx_dropped++; } else { net->trans_start = jiffies; dev->vn_dev.stats.tx_bytes += skb->len; dev->vn_dev.stats.tx_packets++; } dev_kfree_skb_any(skb); vnet_start_xmit_flag = 0; up(&pdp_txlock); netif_wake_queue(net); }
static send_loop_back_packet(const char *data, int size) { struct pdp_info *dev = pdp_get_dev(LOOP_BACK_CHANNEL); if (loopback_ongoing) { pdp_mux(dev, data, size); loopback_res.nTransfered++; } }
static send_loop_back_packet(const char* data, int size) { struct pdp_info* dev = pdp_get_dev(LOOP_BACK_CHANNEL); if (loopback_ongoing) { //printk("send loopback packet start [%d]\n",loopback_res.nTransfered); pdp_mux(dev, data, size); //printk("send loopback packet end [%d]\n",loopback_res.nTransfered); loopback_res.nTransfered++; } }
static int vs_write(struct tty_struct *tty, const unsigned char *buf, int count) { int ret; struct pdp_info *dev = (struct pdp_info *)tty->driver_data; //printk("========================> vs_write : %s : %d\n", tty->driver->name, count); ret = pdp_mux(dev, buf, count); if (ret == 0) { ret = count; } return ret; }
static int vs_write(struct tty_struct *tty, const unsigned char *buf, int count) { int ret; struct pdp_info *dev; /* mutex_lock(&pdp_lock); */ dev = (struct pdp_info *)tty->driver_data; ret = pdp_mux(dev, buf, count); if (ret == 0) ret = count; /* mutex_unlock(&pdp_lock); */ return ret; }
static int vs_write(struct tty_struct *tty, const unsigned char *buf, int count) { int ret; unsigned long flag; struct pdp_info *dev; DPRINTK(2, "BEGIN\n"); dev = (struct pdp_info *)tty->driver_data; ret = pdp_mux(dev, buf, count); if (ret == 0) { ret = count; } DPRINTK(2, "END\n"); return ret; }