1 /* 2 * Moved here from drivers/net/net_init.c, which is: 3 * Written 1993,1994,1995 by Donald Becker. 4 */ 5 6 #include <linux/errno.h> 7 #include <linux/module.h> 8 #include <linux/netdevice.h> 9 #include <linux/if_arp.h> 10 #include <linux/if_ltalk.h> 11 12 static int ltalk_change_mtu(struct net_device *dev, int mtu) 13 { 14 return -EINVAL; 15 } 16 17 static int ltalk_mac_addr(struct net_device *dev, void *addr) 18 { 19 return -EINVAL; 20 } 21 22 static void ltalk_setup(struct net_device *dev) 23 { 24 /* Fill in the fields of the device structure with localtalk-generic values. */ 25 26 dev->change_mtu = ltalk_change_mtu; 27 dev->hard_header = NULL; 28 dev->rebuild_header = NULL; 29 dev->set_mac_address = ltalk_mac_addr; 30 dev->hard_header_cache = NULL; 31 dev->header_cache_update= NULL; 32 33 dev->type = ARPHRD_LOCALTLK; 34 dev->hard_header_len = LTALK_HLEN; 35 dev->mtu = LTALK_MTU; 36 dev->addr_len = LTALK_ALEN; 37 dev->tx_queue_len = 10; 38 39 dev->broadcast[0] = 0xFF; 40 41 dev->flags = IFF_BROADCAST|IFF_MULTICAST|IFF_NOARP; 42 } 43 44 /** 45 * alloc_ltalkdev - Allocates and sets up an localtalk device 46 * @sizeof_priv: Size of additional driver-private structure to be allocated 47 * for this localtalk device 48 * 49 * Fill in the fields of the device structure with localtalk-generic 50 * values. Basically does everything except registering the device. 51 * 52 * Constructs a new net device, complete with a private data area of 53 * size @sizeof_priv. A 32-byte (not bit) alignment is enforced for 54 * this private data area. 55 */ 56 57 struct net_device *alloc_ltalkdev(int sizeof_priv) 58 { 59 return alloc_netdev(sizeof_priv, "lt%d", ltalk_setup); 60 } 61 EXPORT_SYMBOL(alloc_ltalkdev); 62