X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=net%2Fappletalk%2Fdev.c;h=d856a62ab50fda448896689ff210e235dc8d0e6d;hb=e4ddcb0a6bf04d53ce77b4eb87bbbb32c4261d11;hp=76598445d84b1591279ea3467b68ebe119bb3684;hpb=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2;p=cascardo%2Flinux.git diff --git a/net/appletalk/dev.c b/net/appletalk/dev.c index 76598445d84b..d856a62ab50f 100644 --- a/net/appletalk/dev.c +++ b/net/appletalk/dev.c @@ -15,29 +15,43 @@ static int ltalk_change_mtu(struct net_device *dev, int mtu) } static int ltalk_mac_addr(struct net_device *dev, void *addr) -{ +{ return -EINVAL; } -void ltalk_setup(struct net_device *dev) +static void ltalk_setup(struct net_device *dev) { /* Fill in the fields of the device structure with localtalk-generic values. */ - + dev->change_mtu = ltalk_change_mtu; - dev->hard_header = NULL; - dev->rebuild_header = NULL; dev->set_mac_address = ltalk_mac_addr; - dev->hard_header_cache = NULL; - dev->header_cache_update= NULL; dev->type = ARPHRD_LOCALTLK; dev->hard_header_len = LTALK_HLEN; dev->mtu = LTALK_MTU; dev->addr_len = LTALK_ALEN; - dev->tx_queue_len = 10; - + dev->tx_queue_len = 10; + dev->broadcast[0] = 0xFF; dev->flags = IFF_BROADCAST|IFF_MULTICAST|IFF_NOARP; } -EXPORT_SYMBOL(ltalk_setup); + +/** + * alloc_ltalkdev - Allocates and sets up an localtalk device + * @sizeof_priv: Size of additional driver-private structure to be allocated + * for this localtalk device + * + * Fill in the fields of the device structure with localtalk-generic + * values. Basically does everything except registering the device. + * + * Constructs a new net device, complete with a private data area of + * size @sizeof_priv. A 32-byte (not bit) alignment is enforced for + * this private data area. + */ + +struct net_device *alloc_ltalkdev(int sizeof_priv) +{ + return alloc_netdev(sizeof_priv, "lt%d", ltalk_setup); +} +EXPORT_SYMBOL(alloc_ltalkdev);