inet_diag_handler
extern int inet_diag_register(const struct inet_diag_handler *handler);
extern void inet_diag_unregister(const struct inet_diag_handler *handler);
static const struct sock_diag_handler inet_diag_handler = {
int inet_diag_register(const struct inet_diag_handler *h)
return !cmpxchg((const struct inet_diag_handler **)&inet_diag_table[type],
void inet_diag_unregister(const struct inet_diag_handler *h)
xchg((const struct inet_diag_handler **)&inet_diag_table[type],
sizeof(struct inet_diag_handler *));
err = sock_diag_register(&inet_diag_handler);
sock_diag_unregister(&inet_diag_handler);
sock_diag_unregister(&inet_diag_handler);
const struct inet_diag_handler *handler;
static const struct inet_diag_handler __rcu **inet_diag_table;
const struct inet_diag_handler *handler;
static const struct inet_diag_handler *inet_diag_lock_handler(int proto)
const struct inet_diag_handler *handler;
static void inet_diag_unlock_handler(const struct inet_diag_handler *handler)
const struct inet_diag_handler *handler;
const struct inet_diag_handler *handler;
static const struct inet_diag_handler raw_diag_handler = {
static const struct inet_diag_handler tcp_diag_handler = {
static const struct inet_diag_handler udp_diag_handler = {
static const struct inet_diag_handler udplite_diag_handler = {
static const struct inet_diag_handler mptcp_diag_handler = {
static const struct inet_diag_handler sctp_diag_handler = {