]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/if_arp.h
Don't ask twice about not including staging drivers
[linux-2.6-omap-h63xx.git] / include / linux / if_arp.h
index 7f5714214ee35e787aa77dfbd3b8cf63d21ca620..4d3401812e6cbfe237902c51a00e7123a96fc4cb 100644 (file)
@@ -52,6 +52,7 @@
 #define ARPHRD_ROSE    270
 #define ARPHRD_X25     271             /* CCITT X.25                   */
 #define ARPHRD_HWX25   272             /* Boards with X.25 in firmware */
+#define ARPHRD_CAN     280             /* Controller Area Network      */
 #define ARPHRD_PPP     512
 #define ARPHRD_CISCO   513             /* Cisco HDLC                   */
 #define ARPHRD_HDLC    ARPHRD_CISCO
@@ -148,4 +149,19 @@ struct arphdr
 
 };
 
+#ifdef __KERNEL__
+#include <linux/skbuff.h>
+
+static inline struct arphdr *arp_hdr(const struct sk_buff *skb)
+{
+       return (struct arphdr *)skb_network_header(skb);
+}
+
+static inline int arp_hdr_len(struct net_device *dev)
+{
+       /* ARP header, plus 2 device addresses, plus 2 IP addresses. */
+       return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2;
+}
+#endif
+
 #endif /* _LINUX_IF_ARP_H */