root/net/sunrpc/sunrpc.h
/* SPDX-License-Identifier: GPL-2.0-only */
/******************************************************************************

(c) 2008 NetApp.  All Rights Reserved.


******************************************************************************/

/*
 * Functions and macros used internally by RPC
 */

#ifndef _NET_SUNRPC_SUNRPC_H
#define _NET_SUNRPC_SUNRPC_H

#include <linux/net.h>

/*
 * Header for dynamically allocated rpc buffers.
 */
struct rpc_buffer {
        size_t  len;
        char    data[];
};

static inline int sock_is_loopback(struct sock *sk)
{
        struct dst_entry *dst;
        int loopback = 0;
        rcu_read_lock();
        dst = rcu_dereference(sk->sk_dst_cache);
        if (dst && dst->dev &&
            (dst->dev->features & NETIF_F_LOOPBACK))
                loopback = 1;
        rcu_read_unlock();
        return loopback;
}

struct svc_serv;
struct svc_rqst;
int rpc_clients_notifier_register(void);
void rpc_clients_notifier_unregister(void);
void auth_domain_cleanup(void);
void svc_sock_update_bufs(struct svc_serv *serv);
enum svc_auth_status svc_authenticate(struct svc_rqst *rqstp);
#endif /* _NET_SUNRPC_SUNRPC_H */