/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* * 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. * * Global definitions for the ARCnet interface. * * Authors: David Woodhouse and Avery Pennarun * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _LINUX_IF_ARCNET_H #define _LINUX_IF_ARCNET_H #include <linux/types.h> #include <linux/if_ether.h> /* * These are the defined ARCnet Protocol ID's. */ /* CAP mode */ /* No macro but uses 1-8 */ /* RFC1201 Protocol ID's */ #define ARC_P_IP … #define ARC_P_IPV6 … #define ARC_P_ARP … #define ARC_P_RARP … #define ARC_P_IPX … #define ARC_P_NOVELL_EC … /* Old RFC1051 Protocol ID's */ #define ARC_P_IP_RFC1051 … #define ARC_P_ARP_RFC1051 … /* MS LanMan/WfWg "NDIS" encapsulation */ #define ARC_P_ETHER … /* Unsupported/indirectly supported protocols */ #define ARC_P_DATAPOINT_BOOT … #define ARC_P_DATAPOINT_MOUNT … #define ARC_P_POWERLAN_BEACON … #define ARC_P_POWERLAN_BEACON2 … #define ARC_P_LANSOFT … #define ARC_P_ATALK … /* Hardware address length */ #define ARCNET_ALEN … /* * The RFC1201-specific components of an arcnet packet header. */ struct arc_rfc1201 { … }; #define RFC1201_HDR_SIZE … /* * The RFC1051-specific components. */ struct arc_rfc1051 { … }; #define RFC1051_HDR_SIZE … /* * The ethernet-encap-specific components. We have a real ethernet header * and some data. */ struct arc_eth_encap { … }; #define ETH_ENCAP_HDR_SIZE … struct arc_cap { … }; /* * The data needed by the actual arcnet hardware. * * Now, in the real arcnet hardware, the third and fourth bytes are the * 'offset' specification instead of the length, and the soft data is at * the _end_ of the 512-byte buffer. We hide this complexity inside the * driver. */ struct arc_hardware { … }; #define ARC_HDR_SIZE … /* * This is an ARCnet frame header, as seen by the kernel (and userspace, * when you do a raw packet capture). */ struct archdr { … }; #endif /* _LINUX_IF_ARCNET_H */