patch-2.1.31 linux/drivers/net/dummy.c
Next file: linux/drivers/net/eepro.c
Previous file: linux/drivers/net/de620.c
Back to the patch index
Back to the overall index
- Lines: 114
- Date:
Mon Mar 31 12:52:30 1997
- Orig file:
v2.1.30/linux/drivers/net/dummy.c
- Orig date:
Sun Feb 2 05:18:39 1997
diff -u --recursive --new-file v2.1.30/linux/drivers/net/dummy.c linux/drivers/net/dummy.c
@@ -29,7 +29,6 @@
*/
/* To have statistics (just packets sent) define this */
-#undef DUMMY_STATS
#include <linux/module.h>
@@ -54,9 +53,7 @@
#include <linux/skbuff.h>
static int dummy_xmit(struct sk_buff *skb, struct device *dev);
-#ifdef DUMMY_STATS
static struct net_device_stats *dummy_get_stats(struct device *dev);
-#endif
static int dummy_open(struct device *dev)
{
@@ -70,26 +67,25 @@
return 0;
}
+/* fake multicast ability */
+static void set_multicast_list(struct device *dev)
+{
+}
int dummy_init(struct device *dev)
{
-/* I commented this out as bootup is noisy enough anyway and this driver
- seems pretty reliable 8) 8) 8) */
-/* printk ( KERN_INFO "Dummy net driver (94/05/27 v1.0)\n" ); */
-
/* Initialize the device structure. */
dev->hard_start_xmit = dummy_xmit;
-#if DUMMY_STATS
dev->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
memset(dev->priv, 0, sizeof(struct net_device_stats));
dev->get_stats = dummy_get_stats;
-#endif
dev->open = dummy_open;
dev->stop = dummy_close;
+ dev->set_multicast_list = set_multicast_list;
/* Fill in the fields of the device structure with ethernet-generic values. */
ether_setup(dev);
@@ -99,29 +95,23 @@
return 0;
}
-static int
-dummy_xmit(struct sk_buff *skb, struct device *dev)
+static int dummy_xmit(struct sk_buff *skb, struct device *dev)
{
-#if DUMMY_STATS
struct net_device_stats *stats;
-#endif
dev_kfree_skb(skb, FREE_WRITE);
-#if DUMMY_STATS
stats = (struct net_device_stats *)dev->priv;
stats->tx_packets++;
-#endif
+ stats->tx_bytes+=skb->len;
return 0;
}
-#if DUMMY_STATS
static struct net_device_stats *dummy_get_stats(struct device *dev)
{
struct net_device_stats *stats = (struct net_device_stats *) dev->priv;
return stats;
}
-#endif
#ifdef MODULE
@@ -131,8 +121,10 @@
return 0;
}
+static char dummy_name[16];
+
static struct device dev_dummy = {
- "dummy0\0 ",
+ dummy_name, /* Needs to be writeable */
0, 0, 0, 0,
0x0, 0,
0, 0, 0, NULL, dummy_probe };
@@ -140,16 +132,9 @@
int init_module(void)
{
/* Find a name for this unit */
- int ct= 1;
-
- while(dev_get(dev_dummy.name)!=NULL && ct<100)
- {
- sprintf(dev_dummy.name,"dummy%d",ct);
- ct++;
- }
- if(ct==100)
- return -ENFILE;
-
+ int err=dev_alloc_name(&dev_dummy,"dummy%d");
+ if(err)
+ return err;
if (register_netdev(&dev_dummy) != 0)
return -EIO;
return 0;
FUNET's LINUX-ADM group, [email protected]
TCL-scripts by Sam Shen, [email protected]