arch/um/kernel/irq.c: clean up some functions
[linux-2.6/next.git] / include / linux / pim.h
blob236ffd317394c1fc01df81f32cb096775e0aec4b
1 #ifndef __LINUX_PIM_H
2 #define __LINUX_PIM_H
4 #include <asm/byteorder.h>
6 #ifndef __KERNEL__
7 struct pim {
8 #if defined(__LITTLE_ENDIAN_BITFIELD)
9 __u8 pim_type:4, /* PIM message type */
10 pim_ver:4; /* PIM version */
11 #elif defined(__BIG_ENDIAN_BITFIELD)
12 __u8 pim_ver:4; /* PIM version */
13 pim_type:4; /* PIM message type */
14 #endif
15 __u8 pim_rsv; /* Reserved */
16 __be16 pim_cksum; /* Checksum */
19 #define PIM_MINLEN 8
20 #endif
22 /* Message types - V1 */
23 #define PIM_V1_VERSION __constant_htonl(0x10000000)
24 #define PIM_V1_REGISTER 1
26 /* Message types - V2 */
27 #define PIM_VERSION 2
28 #define PIM_REGISTER 1
30 #if defined(__KERNEL__)
31 #define PIM_NULL_REGISTER __constant_htonl(0x40000000)
33 /* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
34 struct pimreghdr
36 __u8 type;
37 __u8 reserved;
38 __be16 csum;
39 __be32 flags;
42 struct sk_buff;
43 extern int pim_rcv_v1(struct sk_buff *);
44 #endif
45 #endif