Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
 unifdef-y += patchkey.h
 unifdef-y += pci.h
 unifdef-y += personality.h
+unifdef-y += pim.h
 unifdef-y += pktcdvd.h
 unifdef-y += pmu.h
 unifdef-y += poll.h
 
 
 #include <linux/sockios.h>
 #include <linux/in.h>
+#include <linux/pim.h>
 
 /*
  *     Based on the MROUTING 3.5 defines primarily to keep
 #define IGMPMSG_WHOLEPKT       3               /* For PIM Register processing */
 
 #ifdef __KERNEL__
-
-#define PIM_V1_VERSION         __constant_htonl(0x10000000)
-#define PIM_V1_REGISTER                1
-
-#define PIM_VERSION            2
-#define PIM_REGISTER           1
-
-#define PIM_NULL_REGISTER      __constant_htonl(0x40000000)
-
-/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
-
-struct pimreghdr
-{
-       __u8    type;
-       __u8    reserved;
-       __be16  csum;
-       __be32  flags;
-};
-
-extern int pim_rcv_v1(struct sk_buff *);
-
 struct rtmsg;
 extern int ipmr_get_route(struct sk_buff *skb, struct rtmsg *rtm, int nowait);
 #endif
 
--- /dev/null
+#ifndef __LINUX_PIM_H
+#define __LINUX_PIM_H
+
+#include <asm/byteorder.h>
+
+/* Message types - V1 */
+#define PIM_V1_VERSION         __constant_htonl(0x10000000)
+#define PIM_V1_REGISTER                1
+
+/* Message types - V2 */
+#define PIM_VERSION            2
+#define PIM_REGISTER           1
+
+#if defined(__KERNEL__)
+#define PIM_NULL_REGISTER      __constant_htonl(0x40000000)
+
+/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
+struct pimreghdr
+{
+       __u8    type;
+       __u8    reserved;
+       __be16  csum;
+       __be32  flags;
+};
+
+struct sk_buff;
+extern int pim_rcv_v1(struct sk_buff *);
+#endif
+#endif