diff options
Diffstat (limited to 'include/net/raw.h')
-rw-r--r-- | include/net/raw.h | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/include/net/raw.h b/include/net/raw.h index e4af59781949..1828f81fe374 100644 --- a/include/net/raw.h +++ b/include/net/raw.h | |||
@@ -22,27 +22,38 @@ | |||
22 | 22 | ||
23 | extern struct proto raw_prot; | 23 | extern struct proto raw_prot; |
24 | 24 | ||
25 | extern void raw_err(struct sock *, struct sk_buff *, u32 info); | 25 | void raw_icmp_error(struct sk_buff *, int, u32); |
26 | extern int raw_rcv(struct sock *, struct sk_buff *); | 26 | int raw_local_deliver(struct sk_buff *, int); |
27 | |||
28 | /* Note: v4 ICMP wants to get at this stuff, if you change the | ||
29 | * hashing mechanism, make sure you update icmp.c as well. | ||
30 | */ | ||
31 | #define RAWV4_HTABLE_SIZE MAX_INET_PROTOS | ||
32 | extern struct hlist_head raw_v4_htable[RAWV4_HTABLE_SIZE]; | ||
33 | |||
34 | extern rwlock_t raw_v4_lock; | ||
35 | 27 | ||
28 | extern int raw_rcv(struct sock *, struct sk_buff *); | ||
36 | 29 | ||
37 | extern struct sock *__raw_v4_lookup(struct sock *sk, unsigned short num, | 30 | #define RAW_HTABLE_SIZE MAX_INET_PROTOS |
38 | __be32 raddr, __be32 laddr, | ||
39 | int dif); | ||
40 | 31 | ||
41 | extern int raw_v4_input(struct sk_buff *skb, struct iphdr *iph, int hash); | 32 | struct raw_hashinfo { |
33 | rwlock_t lock; | ||
34 | struct hlist_head ht[RAW_HTABLE_SIZE]; | ||
35 | }; | ||
42 | 36 | ||
43 | #ifdef CONFIG_PROC_FS | 37 | #ifdef CONFIG_PROC_FS |
44 | extern int raw_proc_init(void); | 38 | extern int raw_proc_init(void); |
45 | extern void raw_proc_exit(void); | 39 | extern void raw_proc_exit(void); |
40 | |||
41 | struct raw_iter_state { | ||
42 | struct seq_net_private p; | ||
43 | int bucket; | ||
44 | struct raw_hashinfo *h; | ||
45 | }; | ||
46 | |||
47 | #define raw_seq_private(seq) ((struct raw_iter_state *)(seq)->private) | ||
48 | void *raw_seq_start(struct seq_file *seq, loff_t *pos); | ||
49 | void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos); | ||
50 | void raw_seq_stop(struct seq_file *seq, void *v); | ||
51 | int raw_seq_open(struct inode *ino, struct file *file, | ||
52 | struct raw_hashinfo *h, const struct seq_operations *ops); | ||
53 | |||
46 | #endif | 54 | #endif |
47 | 55 | ||
56 | void raw_hash_sk(struct sock *sk, struct raw_hashinfo *h); | ||
57 | void raw_unhash_sk(struct sock *sk, struct raw_hashinfo *h); | ||
58 | |||
48 | #endif /* _RAW_H */ | 59 | #endif /* _RAW_H */ |