2005-04-17 02:20:36 +04: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 07:43:12 +03:00
# include <net/protocol.h>
2005-04-17 02:20:36 +04:00
extern struct proto raw_prot ;
2007-11-20 09:35:07 +03:00
void raw_icmp_error ( struct sk_buff * , int , u32 ) ;
int raw_local_deliver ( struct sk_buff * , int ) ;
2005-04-17 02:20:36 +04:00
2007-11-20 09:35:07 +03:00
extern int raw_rcv ( struct sock * , struct sk_buff * ) ;
2005-04-17 02:20:36 +04:00
2007-11-20 09:36:45 +03:00
# define RAW_HTABLE_SIZE MAX_INET_PROTOS
struct raw_hashinfo {
rwlock_t lock ;
struct hlist_head ht [ RAW_HTABLE_SIZE ] ;
} ;
2005-08-16 09:18:02 +04:00
# ifdef CONFIG_PROC_FS
extern int raw_proc_init ( void ) ;
extern void raw_proc_exit ( void ) ;
2007-11-20 09:38:33 +03:00
struct raw_iter_state {
2008-01-14 16:35:57 +03:00
struct seq_net_private p ;
2007-11-20 09:38:33 +03: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 14:48:55 +03:00
int raw_seq_open ( struct inode * ino , struct file * file ,
struct raw_hashinfo * h , const struct seq_operations * ops ) ;
2007-11-20 09:38:33 +03:00
2005-08-16 09:18:02 +04:00
# endif
2008-03-23 02:56:51 +03:00
void raw_hash_sk ( struct sock * sk ) ;
void raw_unhash_sk ( struct sock * sk ) ;
2007-11-20 09:37:24 +03:00
2005-04-17 02:20:36 +04:00
# endif /* _RAW_H */