<linux/mroute.h> needs <linux/types.h>.
Avoid including <linux/in.h> in user-space, which conflicts with
standard <netinet/in.h>.
Add basic struct and constant in <linux/pim.h>.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
#define __LINUX_MROUTE_H
#include <linux/sockios.h>
+#include <linux/types.h>
+#ifdef __KERNEL__
#include <linux/in.h>
+#endif
#include <linux/pim.h>
/*
#include <asm/byteorder.h>
+#ifndef __KERNEL__
+struct pim {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+ __u8 pim_type:4, /* PIM message type */
+ pim_ver:4; /* PIM version */
+#elif defined(__BIG_ENDIAN_BITFIELD)
+ __u8 pim_ver:4; /* PIM version */
+ pim_type:4; /* PIM message type */
+#endif
+ __u8 pim_rsv; /* Reserved */
+ __be16 pim_cksum; /* Checksum */
+};
+
+#define PIM_MINLEN 8
+#endif
+
/* Message types - V1 */
#define PIM_V1_VERSION __constant_htonl(0x10000000)
#define PIM_V1_REGISTER 1