1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 26d6ee43eSArnaldo Carvalho de Melo /* 36d6ee43eSArnaldo Carvalho de Melo * NET Generic infrastructure for Network protocols. 46d6ee43eSArnaldo Carvalho de Melo * 56d6ee43eSArnaldo Carvalho de Melo * Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br> 66d6ee43eSArnaldo Carvalho de Melo */ 76d6ee43eSArnaldo Carvalho de Melo #ifndef _TIMEWAIT_SOCK_H 86d6ee43eSArnaldo Carvalho de Melo #define _TIMEWAIT_SOCK_H 96d6ee43eSArnaldo Carvalho de Melo 106d6ee43eSArnaldo Carvalho de Melo #include <linux/slab.h> 11187f1882SPaul Gortmaker #include <linux/bug.h> 126d6ee43eSArnaldo Carvalho de Melo #include <net/sock.h> 136d6ee43eSArnaldo Carvalho de Melo 146d6ee43eSArnaldo Carvalho de Melo struct timewait_sock_ops { 15e18b890bSChristoph Lameter struct kmem_cache *twsk_slab; 167e56b5d6SCatalin Marinas char *twsk_slab_name; 176d6ee43eSArnaldo Carvalho de Melo unsigned int twsk_obj_size; 186d6ee43eSArnaldo Carvalho de Melo int (*twsk_unique)(struct sock *sk, 196d6ee43eSArnaldo Carvalho de Melo struct sock *sktw, void *twp); 2042b6785eSYOSHIFUJI Hideaki void (*twsk_destructor)(struct sock *sk); 216d6ee43eSArnaldo Carvalho de Melo }; 226d6ee43eSArnaldo Carvalho de Melo twsk_unique(struct sock * sk,struct sock * sktw,void * twp)236d6ee43eSArnaldo Carvalho de Melostatic inline int twsk_unique(struct sock *sk, struct sock *sktw, void *twp) 246d6ee43eSArnaldo Carvalho de Melo { 256d6ee43eSArnaldo Carvalho de Melo if (sk->sk_prot->twsk_prot->twsk_unique != NULL) 266d6ee43eSArnaldo Carvalho de Melo return sk->sk_prot->twsk_prot->twsk_unique(sk, sktw, twp); 276d6ee43eSArnaldo Carvalho de Melo return 0; 286d6ee43eSArnaldo Carvalho de Melo } 296d6ee43eSArnaldo Carvalho de Melo twsk_destructor(struct sock * sk)3042b6785eSYOSHIFUJI Hideakistatic inline void twsk_destructor(struct sock *sk) 3142b6785eSYOSHIFUJI Hideaki { 3242b6785eSYOSHIFUJI Hideaki if (sk->sk_prot->twsk_prot->twsk_destructor != NULL) 3342b6785eSYOSHIFUJI Hideaki sk->sk_prot->twsk_prot->twsk_destructor(sk); 3442b6785eSYOSHIFUJI Hideaki } 3542b6785eSYOSHIFUJI Hideaki 366d6ee43eSArnaldo Carvalho de Melo #endif /* _TIMEWAIT_SOCK_H */ 37