<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