]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/net/udp.h
[IPV6]: inet_sk(sk)->cork.opt leak
[linux-2.6-omap-h63xx.git] / include / net / udp.h
index 98cb09ca3a27e548c108d63f986a4b2084139145..ccce83707046ca85dd0a1d20c2c2e937342fd270 100644 (file)
@@ -65,6 +65,13 @@ extern rwlock_t udp_hash_lock;
 
 extern struct proto udp_prot;
 
+extern atomic_t udp_memory_allocated;
+
+/* sysctl variables for udp */
+extern int sysctl_udp_mem[3];
+extern int sysctl_udp_rmem_min;
+extern int sysctl_udp_wmem_min;
+
 struct sk_buff;
 
 /*
@@ -108,7 +115,7 @@ static inline void udp_lib_unhash(struct sock *sk)
        write_lock_bh(&udp_hash_lock);
        if (sk_del_node_init(sk)) {
                inet_sk(sk)->num = 0;
-               sock_prot_dec_use(sk->sk_prot);
+               sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
        }
        write_unlock_bh(&udp_hash_lock);
 }
@@ -118,6 +125,8 @@ static inline void udp_lib_close(struct sock *sk, long timeout)
        sk_common_release(sk);
 }
 
+extern int     udp_lib_get_port(struct sock *sk, unsigned short snum,
+               int (*)(const struct sock*,const struct sock*));
 
 /* net/ipv4/udp.c */
 extern int     udp_get_port(struct sock *sk, unsigned short snum,
@@ -126,6 +135,7 @@ extern void udp_err(struct sk_buff *, u32);
 
 extern int     udp_sendmsg(struct kiocb *iocb, struct sock *sk,
                            struct msghdr *msg, size_t len);
+extern void    udp_flush_pending_frames(struct sock *sk);
 
 extern int     udp_rcv(struct sk_buff *skb);
 extern int     udp_ioctl(struct sock *sk, int cmd, unsigned long arg);
@@ -176,26 +186,27 @@ DECLARE_SNMP_STAT(struct udp_mib, udplite_stats_in6);
 
 /* /proc */
 struct udp_seq_afinfo {
-       struct module           *owner;
        char                    *name;
        sa_family_t             family;
        struct hlist_head       *hashtable;
-       int                     (*seq_show) (struct seq_file *m, void *v);
-       struct file_operations  *seq_fops;
+       struct file_operations  seq_fops;
+       struct seq_operations   seq_ops;
 };
 
 struct udp_iter_state {
+       struct seq_net_private  p;
        sa_family_t             family;
        struct hlist_head       *hashtable;
        int                     bucket;
-       struct seq_operations   seq_ops;
 };
 
 #ifdef CONFIG_PROC_FS
-extern int udp_proc_register(struct udp_seq_afinfo *afinfo);
-extern void udp_proc_unregister(struct udp_seq_afinfo *afinfo);
+extern int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo);
+extern void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo);
 
 extern int  udp4_proc_init(void);
 extern void udp4_proc_exit(void);
 #endif
+
+extern void udp_init(void);
 #endif /* _UDP_H */