enable kexec
[linux-2.6.git] / include / net / ip.h
index 97f5099..bacccde 100644 (file)
 #include <linux/in_route.h>
 #include <net/route.h>
 #include <net/arp.h>
-
-#ifndef _SNMP_H
 #include <net/snmp.h>
-#endif
 
-#include <net/sock.h>  /* struct sock */
+struct sock;
 
 struct inet_skb_parm
 {
@@ -92,8 +89,8 @@ extern int            ip_rcv(struct sk_buff *skb, struct net_device *dev,
                               struct packet_type *pt);
 extern int             ip_local_deliver(struct sk_buff *skb);
 extern int             ip_mr_input(struct sk_buff *skb);
-extern int             ip_output(struct sk_buff *skb);
-extern int             ip_mc_output(struct sk_buff *skb);
+extern int             ip_output(struct sk_buff **pskb);
+extern int             ip_mc_output(struct sk_buff **pskb);
 extern int             ip_fragment(struct sk_buff *skb, int (*out)(struct sk_buff*));
 extern int             ip_do_nat(struct sk_buff *skb);
 extern void            ip_send_check(struct iphdr *ip);
@@ -112,6 +109,9 @@ extern ssize_t              ip_append_page(struct sock *sk, struct page *page,
 extern int             ip_push_pending_frames(struct sock *sk);
 extern void            ip_flush_pending_frames(struct sock *sk);
 
+/* datagram.c */
+extern int             ip4_datagram_connect(struct sock *sk, 
+                                            struct sockaddr *uaddr, int addr_len);
 
 /*
  *     Map a multicast IP onto multicast MAC for type Token Ring.
@@ -131,10 +131,10 @@ static inline void ip_tr_mc_map(u32 addr, char *buf)
 }
 
 struct ip_reply_arg {
-       struct iovec iov[1];   
-       u32          csum; 
-       int          csumoffset; /* u16 offset of csum in iov[0].iov_base */
-                                /* -1 if not needed */ 
+       struct kvec iov[1];   
+       u32         csum; 
+       int         csumoffset; /* u16 offset of csum in iov[0].iov_base */
+                               /* -1 if not needed */ 
 }; 
 
 void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg,
@@ -150,7 +150,7 @@ struct ipv4_config
 };
 
 extern struct ipv4_config ipv4_config;
-DECLARE_SNMP_STAT(struct ip_mib, ip_statistics);
+DECLARE_SNMP_STAT(struct ipstats_mib, ip_statistics);
 #define IP_INC_STATS(field)            SNMP_INC_STATS(ip_statistics, field)
 #define IP_INC_STATS_BH(field)         SNMP_INC_STATS_BH(ip_statistics, field)
 #define IP_INC_STATS_USER(field)       SNMP_INC_STATS_USER(ip_statistics, field)
@@ -284,8 +284,8 @@ extern int ip_options_rcv_srr(struct sk_buff *skb);
 
 extern void    ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb);
 extern int     ip_cmsg_send(struct msghdr *msg, struct ipcm_cookie *ipc);
-extern int     ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen);
-extern int     ip_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen);
+extern int     ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, int optlen);
+extern int     ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen);
 extern int     ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *));
 
 extern int     ip_recv_error(struct sock *sk, struct msghdr *msg, int len);
@@ -300,11 +300,11 @@ extern int ipv4_proc_init(void);
  * fed into the routing cache should use these handlers.
  */
 int ipv4_doint_and_flush(ctl_table *ctl, int write,
-                        struct file* filp, void *buffer,
-                        size_t *lenp);
-int ipv4_doint_and_flush_strategy(ctl_table *table, int *name, int nlen,
-                                 void *oldval, size_t *oldlenp,
-                                 void *newval, size_t newlen, 
+                        struct file* filp, void __user *buffer,
+                        size_t *lenp, loff_t *ppos);
+int ipv4_doint_and_flush_strategy(ctl_table *table, int __user *name, int nlen,
+                                 void __user *oldval, size_t __user *oldlenp,
+                                 void __user *newval, size_t newlen, 
                                  void **context);
 
 #endif /* _IP_H */