aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/raw.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/raw.h')
-rw-r--r--include/net/raw.h39
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
23extern struct proto raw_prot; 23extern struct proto raw_prot;
24 24
25extern void raw_err(struct sock *, struct sk_buff *, u32 info); 25void raw_icmp_error(struct sk_buff *, int, u32);
26extern int raw_rcv(struct sock *, struct sk_buff *); 26int 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
32extern struct hlist_head raw_v4_htable[RAWV4_HTABLE_SIZE];
33
34extern rwlock_t raw_v4_lock;
35 27
28extern int raw_rcv(struct sock *, struct sk_buff *);
36 29
37extern 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
41extern int raw_v4_input(struct sk_buff *skb, struct iphdr *iph, int hash); 32struct 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
44extern int raw_proc_init(void); 38extern int raw_proc_init(void);
45extern void raw_proc_exit(void); 39extern void raw_proc_exit(void);
40
41struct 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)
48void *raw_seq_start(struct seq_file *seq, loff_t *pos);
49void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos);
50void raw_seq_stop(struct seq_file *seq, void *v);
51int 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
56void raw_hash_sk(struct sock *sk, struct raw_hashinfo *h);
57void raw_unhash_sk(struct sock *sk, struct raw_hashinfo *h);
58
48#endif /* _RAW_H */ 59#endif /* _RAW_H */