// SPDX-License-Identifier: GPL-2.0-or-later /* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the BSD Socket * interface as the means of communication with the user level. * * HIPPI-type device handling. * * Version: @(#)hippi.c 1.0.0 05/29/97 * * Authors: Ross Biro * Fred N. van Kempen, <[email protected]> * Mark Evans, <[email protected]> * Florian La Roche, <[email protected]> * Alan Cox, <[email protected]> * Jes Sorensen, <[email protected]> */ #include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/string.h> #include <linux/mm.h> #include <linux/socket.h> #include <linux/in.h> #include <linux/inet.h> #include <linux/netdevice.h> #include <linux/hippidevice.h> #include <linux/skbuff.h> #include <linux/errno.h> #include <net/arp.h> #include <net/sock.h> #include <linux/uaccess.h> /* * Create the HIPPI MAC header for an arbitrary protocol layer * * saddr=NULL means use device source address * daddr=NULL means leave destination address (eg unresolved arp) */ static int hippi_header(struct sk_buff *skb, struct net_device *dev, unsigned short type, const void *daddr, const void *saddr, unsigned int len) { … } /* * Determine the packet's protocol ID. */ __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev) { … } EXPORT_SYMBOL(…); /* * For HIPPI we will actually use the lower 4 bytes of the hardware * address as the I-FIELD rather than the actual hardware address. */ int hippi_mac_addr(struct net_device *dev, void *p) { … } EXPORT_SYMBOL(…); int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p) { … } EXPORT_SYMBOL(…); static const struct header_ops hippi_header_ops = …; static void hippi_setup(struct net_device *dev) { … } /** * alloc_hippi_dev - Register HIPPI device * @sizeof_priv: Size of additional driver-private structure to be allocated * for this HIPPI device * * Fill in the fields of the device structure with HIPPI-generic values. * * 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_hippi_dev(int sizeof_priv) { … } EXPORT_SYMBOL(…);