| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * INET		An implementation of the TCP/IP protocol suite for the LINUX | 
|  | 3 | *		operating system.  INET is implemented using the  BSD Socket | 
|  | 4 | *		interface as the means of communication with the user level. | 
|  | 5 | * | 
|  | 6 | *		Definitions for the RAW-IP module. | 
|  | 7 | * | 
|  | 8 | * Version:	@(#)raw.h	1.0.2	05/07/93 | 
|  | 9 | * | 
|  | 10 | * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> | 
|  | 11 | * | 
|  | 12 | *		This program is free software; you can redistribute it and/or | 
|  | 13 | *		modify it under the terms of the GNU General Public License | 
|  | 14 | *		as published by the Free Software Foundation; either version | 
|  | 15 | *		2 of the License, or (at your option) any later version. | 
|  | 16 | */ | 
|  | 17 | #ifndef _RAW_H | 
|  | 18 | #define _RAW_H | 
|  | 19 |  | 
|  | 20 |  | 
| Arnaldo Carvalho de Melo | 14c8502 | 2005-12-27 02:43:12 -0200 | [diff] [blame] | 21 | #include <net/protocol.h> | 
|  | 22 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 | extern struct proto raw_prot; | 
|  | 24 |  | 
| Pavel Emelyanov | 7bc54c9 | 2007-11-19 22:35:07 -0800 | [diff] [blame] | 25 | void raw_icmp_error(struct sk_buff *, int, u32); | 
|  | 26 | int raw_local_deliver(struct sk_buff *, int); | 
|  | 27 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 28 | extern int 	raw_rcv(struct sock *, struct sk_buff *); | 
|  | 29 |  | 
| Pavel Emelyanov | b673e4d | 2007-11-19 22:36:45 -0800 | [diff] [blame] | 30 | #define RAW_HTABLE_SIZE	MAX_INET_PROTOS | 
|  | 31 |  | 
|  | 32 | struct raw_hashinfo { | 
|  | 33 | rwlock_t lock; | 
|  | 34 | struct hlist_head ht[RAW_HTABLE_SIZE]; | 
|  | 35 | }; | 
|  | 36 |  | 
| Arnaldo Carvalho de Melo | 2038073 | 2005-08-16 02:18:02 -0300 | [diff] [blame] | 37 | #ifdef CONFIG_PROC_FS | 
|  | 38 | extern int  raw_proc_init(void); | 
|  | 39 | extern void raw_proc_exit(void); | 
| Pavel Emelyanov | 42a7380 | 2007-11-19 22:38:33 -0800 | [diff] [blame] | 40 |  | 
|  | 41 | struct raw_iter_state { | 
| Pavel Emelyanov | f51d599 | 2008-01-14 05:35:57 -0800 | [diff] [blame] | 42 | struct seq_net_private p; | 
| Pavel Emelyanov | 42a7380 | 2007-11-19 22:38:33 -0800 | [diff] [blame] | 43 | int bucket; | 
| Pavel Emelyanov | 42a7380 | 2007-11-19 22:38:33 -0800 | [diff] [blame] | 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); | 
| Denis V. Lunev | 3046d76 | 2008-01-31 03:48:55 -0800 | [diff] [blame] | 51 | int raw_seq_open(struct inode *ino, struct file *file, | 
|  | 52 | struct raw_hashinfo *h, const struct seq_operations *ops); | 
| Pavel Emelyanov | 42a7380 | 2007-11-19 22:38:33 -0800 | [diff] [blame] | 53 |  | 
| Arnaldo Carvalho de Melo | 2038073 | 2005-08-16 02:18:02 -0300 | [diff] [blame] | 54 | #endif | 
|  | 55 |  | 
| Pavel Emelyanov | fc8717b | 2008-03-22 16:56:51 -0700 | [diff] [blame] | 56 | void raw_hash_sk(struct sock *sk); | 
|  | 57 | void raw_unhash_sk(struct sock *sk); | 
| Pavel Emelyanov | 65b4c50 | 2007-11-19 22:37:24 -0800 | [diff] [blame] | 58 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 59 | #endif	/* _RAW_H */ |