/* Compile it with "-DMODULE -D__KERNEL__ -c". Use insmod sdummy.o COUNT=16 -------------------------------------------------------------- */ /* sdummy netdevice for Linux */ /* Copyright (C) 1995 -- Joel Katz */ /* Based upon the Linux skeleton net driver by Donald Becker */ /* which is copyright 1993 by the United States Government. */ /* CAUTION: Do not attempt to compile with GCC-2.6.4-950158 */ static char *version = "sdummy.c : v1.0 (C)1995 - Joel Katz \n"; #include #ifndef MODULE #error Module Only! #endif #ifndef __KERNEL__ #error This is a kernel module #endif #include #include #include #include #include #include #include int COUNT=16; static int sdummy_open(struct device *dev) { MOD_INC_USE_COUNT; if(dev) dev->irq++; return 0; } static int sdummy_close(struct device *dev) { MOD_DEC_USE_COUNT; if(dev) dev->irq--; return 0; } static int sdummy_xmit(struct sk_buff *skb, struct device *dev) { if((skb==NULL)||(dev==NULL)) return 0; kfree_skb(skb,FREE_WRITE); } static int sdummy_probe(struct device *dev) { ether_setup(dev); dev->flags|=IFF_NOARP; dev->open = sdummy_open; dev->stop = sdummy_close; dev->hard_start_xmit=sdummy_xmit; return 0; } char kernel_version[] = UTS_RELEASE; struct device dev_sdummy[16] = { { "dmy0",0,0,0,0,0,0,0,0,0,NULL,sdummy_probe }, { "dmy1",0,0,0,0,1,0,0,0,0,NULL,sdummy_probe }, { "dmy2",0,0,0,0,2,0,0,0,0,NULL,sdummy_probe }, { "dmy3",0,0,0,0,3,0,0,0,0,NULL,sdummy_probe }, { "dmy4",0,0,0,0,4,0,0,0,0,NULL,sdummy_probe }, { "dmy5",0,0,0,0,5,0,0,0,0,NULL,sdummy_probe }, { "dmy6",0,0,0,0,6,0,0,0,0,NULL,sdummy_probe }, { "dmy7",0,0,0,0,7,0,0,0,0,NULL,sdummy_probe }, { "dmy8",0,0,0,0,8,0,0,0,0,NULL,sdummy_probe }, { "dmy9",0,0,0,0,9,0,0,0,0,NULL,sdummy_probe }, { "dmy10",0,0,0,0,10,0,0,0,0,NULL,sdummy_probe }, { "dmy11",0,0,0,0,11,0,0,0,0,NULL,sdummy_probe }, { "dmy12",0,0,0,0,12,0,0,0,0,NULL,sdummy_probe }, { "dmy13",0,0,0,0,13,0,0,0,0,NULL,sdummy_probe }, { "dmy14",0,0,0,0,14,0,0,0,0,NULL,sdummy_probe }, { "dmy15",0,0,0,0,15,0,0,0,0,NULL,sdummy_probe }, }; int init_module(void) { int i,j=0; if((COUNT>16)||(COUNT<1)) return -EIO; for(i=0; i