1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _LINUX_IF_ARCNET_H 7 #define _LINUX_IF_ARCNET_H 8 #include <linux/types.h> 9 #include <linux/if_ether.h> 10 #define ARC_P_IP 212 11 #define ARC_P_IPV6 196 12 #define ARC_P_ARP 213 13 #define ARC_P_RARP 214 14 #define ARC_P_IPX 250 15 #define ARC_P_NOVELL_EC 236 16 #define ARC_P_IP_RFC1051 240 17 #define ARC_P_ARP_RFC1051 241 18 #define ARC_P_ETHER 232 19 #define ARC_P_DATAPOINT_BOOT 0 20 #define ARC_P_DATAPOINT_MOUNT 1 21 #define ARC_P_POWERLAN_BEACON 8 22 #define ARC_P_POWERLAN_BEACON2 243 23 #define ARC_P_LANSOFT 251 24 #define ARC_P_ATALK 0xDD 25 #define ARCNET_ALEN 1 26 struct arc_rfc1201 { 27 __u8 proto; 28 __u8 split_flag; 29 __be16 sequence; 30 __u8 payload[0]; 31 }; 32 #define RFC1201_HDR_SIZE 4 33 struct arc_rfc1051 { 34 __u8 proto; 35 __u8 payload[0]; 36 }; 37 #define RFC1051_HDR_SIZE 1 38 struct arc_eth_encap { 39 __u8 proto; 40 struct ethhdr eth; 41 __u8 payload[0]; 42 }; 43 #define ETH_ENCAP_HDR_SIZE 14 44 struct arc_cap { 45 __u8 proto; 46 __u8 cookie[sizeof(int)]; 47 48 union { 49 __u8 ack; 50 __u8 raw[0]; 51 } mes; 52 }; 53 struct arc_hardware { 54 __u8 source; 55 __u8 dest; 56 __u8 offset[2]; 57 }; 58 #define ARC_HDR_SIZE 4 59 struct archdr { 60 61 struct arc_hardware hard; 62 63 union { 64 struct arc_rfc1201 rfc1201; 65 struct arc_rfc1051 rfc1051; 66 struct arc_eth_encap eth_encap; 67 struct arc_cap cap; 68 __u8 raw[0]; 69 } soft; 70 }; 71 #endif 72