162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Moved here from drivers/net/net_init.c, which is: 462306a36Sopenharmony_ci * Written 1993,1994,1995 by Donald Becker. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/errno.h> 862306a36Sopenharmony_ci#include <linux/module.h> 962306a36Sopenharmony_ci#include <linux/netdevice.h> 1062306a36Sopenharmony_ci#include <linux/if_arp.h> 1162306a36Sopenharmony_ci#include <linux/if_ltalk.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistatic void ltalk_setup(struct net_device *dev) 1462306a36Sopenharmony_ci{ 1562306a36Sopenharmony_ci /* Fill in the fields of the device structure with localtalk-generic values. */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci dev->type = ARPHRD_LOCALTLK; 1862306a36Sopenharmony_ci dev->hard_header_len = LTALK_HLEN; 1962306a36Sopenharmony_ci dev->mtu = LTALK_MTU; 2062306a36Sopenharmony_ci dev->addr_len = LTALK_ALEN; 2162306a36Sopenharmony_ci dev->tx_queue_len = 10; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci dev->broadcast[0] = 0xFF; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci dev->flags = IFF_BROADCAST|IFF_MULTICAST|IFF_NOARP; 2662306a36Sopenharmony_ci} 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci/** 2962306a36Sopenharmony_ci * alloc_ltalkdev - Allocates and sets up an localtalk device 3062306a36Sopenharmony_ci * @sizeof_priv: Size of additional driver-private structure to be allocated 3162306a36Sopenharmony_ci * for this localtalk device 3262306a36Sopenharmony_ci * 3362306a36Sopenharmony_ci * Fill in the fields of the device structure with localtalk-generic 3462306a36Sopenharmony_ci * values. Basically does everything except registering the device. 3562306a36Sopenharmony_ci * 3662306a36Sopenharmony_ci * Constructs a new net device, complete with a private data area of 3762306a36Sopenharmony_ci * size @sizeof_priv. A 32-byte (not bit) alignment is enforced for 3862306a36Sopenharmony_ci * this private data area. 3962306a36Sopenharmony_ci */ 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cistruct net_device *alloc_ltalkdev(int sizeof_priv) 4262306a36Sopenharmony_ci{ 4362306a36Sopenharmony_ci return alloc_netdev(sizeof_priv, "lt%d", NET_NAME_UNKNOWN, 4462306a36Sopenharmony_ci ltalk_setup); 4562306a36Sopenharmony_ci} 4662306a36Sopenharmony_ciEXPORT_SYMBOL(alloc_ltalkdev); 47