| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * INET		An implementation of the TCP/IP protocol suite for the LINUX | 
					
						
							|  |  |  |  *		operating system.  INET is implemented using the  BSD Socket | 
					
						
							|  |  |  |  *		interface as the means of communication with the user level. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *		Definitions for the RAW-IP module. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Version:	@(#)raw.h	1.0.2	05/07/93 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *		This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  *		modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  |  *		as published by the Free Software Foundation; either version | 
					
						
							|  |  |  |  *		2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _RAW_H
 | 
					
						
							|  |  |  | #define _RAW_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-27 02:43:12 -02:00
										 |  |  | #include <net/protocol.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | extern struct proto raw_prot; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-19 22:35:07 -08:00
										 |  |  | void raw_icmp_error(struct sk_buff *, int, u32); | 
					
						
							|  |  |  | int raw_local_deliver(struct sk_buff *, int); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-19 22:35:07 -08:00
										 |  |  | extern int 	raw_rcv(struct sock *, struct sk_buff *); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-19 22:36:45 -08:00
										 |  |  | #define RAW_HTABLE_SIZE	MAX_INET_PROTOS
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct raw_hashinfo { | 
					
						
							|  |  |  | 	rwlock_t lock; | 
					
						
							|  |  |  | 	struct hlist_head ht[RAW_HTABLE_SIZE]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-08-16 02:18:02 -03:00
										 |  |  | #ifdef CONFIG_PROC_FS
 | 
					
						
							|  |  |  | extern int  raw_proc_init(void); | 
					
						
							|  |  |  | extern void raw_proc_exit(void); | 
					
						
							| 
									
										
										
										
											2007-11-19 22:38:33 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct raw_iter_state { | 
					
						
							| 
									
										
										
										
											2008-01-14 05:35:57 -08:00
										 |  |  | 	struct seq_net_private p; | 
					
						
							| 
									
										
										
										
											2007-11-19 22:38:33 -08:00
										 |  |  | 	int bucket; | 
					
						
							|  |  |  | 	struct raw_hashinfo *h; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define raw_seq_private(seq) ((struct raw_iter_state *)(seq)->private)
 | 
					
						
							|  |  |  | void *raw_seq_start(struct seq_file *seq, loff_t *pos); | 
					
						
							|  |  |  | void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos); | 
					
						
							|  |  |  | void raw_seq_stop(struct seq_file *seq, void *v); | 
					
						
							| 
									
										
										
										
											2008-01-31 03:48:55 -08:00
										 |  |  | int raw_seq_open(struct inode *ino, struct file *file, | 
					
						
							|  |  |  | 		 struct raw_hashinfo *h, const struct seq_operations *ops); | 
					
						
							| 
									
										
										
										
											2007-11-19 22:38:33 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-08-16 02:18:02 -03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-22 16:56:51 -07:00
										 |  |  | void raw_hash_sk(struct sock *sk); | 
					
						
							|  |  |  | void raw_unhash_sk(struct sock *sk); | 
					
						
							| 
									
										
										
										
											2007-11-19 22:37:24 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #endif	/* _RAW_H */
 |