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 */