diff options
Diffstat (limited to 'include/net/sock.h')
-rw-r--r-- | include/net/sock.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 62c9e2268d63..653118a2d285 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -458,6 +458,7 @@ struct sock { int (*sk_backlog_rcv)(struct sock *sk, struct sk_buff *skb); void (*sk_destruct)(struct sock *sk); + struct rcu_head sk_rcu; }; #define __sk_user_data(sk) ((*((void __rcu **)&(sk)->sk_user_data))) @@ -740,6 +741,7 @@ enum sock_flags { */ SOCK_FILTER_LOCKED, /* Filter cannot be changed anymore */ SOCK_SELECT_ERR_QUEUE, /* Wake select on error queue */ + SOCK_RCU_FREE, /* wait rcu grace period in sk_destruct() */ }; #define SK_FLAGS_TIMESTAMP ((1UL << SOCK_TIMESTAMP) | (1UL << SOCK_TIMESTAMPING_RX_SOFTWARE)) @@ -2310,4 +2312,15 @@ extern int sysctl_optmem_max; extern __u32 sysctl_wmem_default; extern __u32 sysctl_rmem_default; +/* SOCKEV Notifier Events */ +#define SOCKEV_SOCKET 0x00 +#define SOCKEV_BIND 0x01 +#define SOCKEV_LISTEN 0x02 +#define SOCKEV_ACCEPT 0x03 +#define SOCKEV_CONNECT 0x04 +#define SOCKEV_SHUTDOWN 0x05 + +int sockev_register_notify(struct notifier_block *nb); +int sockev_unregister_notify(struct notifier_block *nb); + #endif /* _SOCK_H */ |