#define MODULE #define __KERNEL__ #include #include #include int exp_open(struct net_device *dev) { printk("<0>exp_open called\n"); netif_start_queue(dev); return 0; } int exp_release(struct net_device *dev) { printk("<0>exp_release called\n"); netif_stop_queue(dev); return 0; } static int exp_xmit(struct sk_buff *skb, struct net_device *dev) { printk("dummy xmit function called....\n"); dev_kfree_skb(skb); return 0; } int exp_init(struct net_device *dev) { dev->open = exp_open; dev->stop = exp_release; dev->hard_start_xmit = exp_xmit; printk("exp device initialized\n"); return 0; } struct net_device exp = { init:exp_init }; int exp_init_module(void) { int result; strcpy(exp.name, "exp0"); if ((result = register_netdev(&exp))) { printk("exp: Error %d initializing card exp card",result); return result; } printk("<1> Device registered \n"); return 0; } void exp_cleanup(void) { printk("<0> Cleaning Up the Module\n"); unregister_netdev(&exp); return; } MODULE_LICENSE("GPL"); module_init(exp_init_module); module_exit(exp_cleanup);