#ifndef _LINUX_SUNRPC_ADDR_H
#define _LINUX_SUNRPC_ADDR_H
#include <linux/socket.h>
#include <linux/in.h>
#include <linux/in6.h>
#include <net/ipv6.h>
size_t rpc_ntop(const struct sockaddr *, char *, const size_t);
size_t rpc_pton(struct net *, const char *, const size_t,
struct sockaddr *, const size_t);
char * rpc_sockaddr2uaddr(const struct sockaddr *, gfp_t);
size_t rpc_uaddr2sockaddr(struct net *, const char *, const size_t,
struct sockaddr *, const size_t);
static inline unsigned short rpc_get_port(const struct sockaddr *sap)
{ … }
static inline void rpc_set_port(struct sockaddr *sap,
const unsigned short port)
{ … }
#define IPV6_SCOPE_DELIMITER …
#define IPV6_SCOPE_ID_LEN …
static inline bool rpc_cmp_addr4(const struct sockaddr *sap1,
const struct sockaddr *sap2)
{ … }
static inline bool __rpc_copy_addr4(struct sockaddr *dst,
const struct sockaddr *src)
{ … }
#if IS_ENABLED(CONFIG_IPV6)
static inline bool rpc_cmp_addr6(const struct sockaddr *sap1,
const struct sockaddr *sap2)
{ … }
static inline bool __rpc_copy_addr6(struct sockaddr *dst,
const struct sockaddr *src)
{ … }
#else
static inline bool rpc_cmp_addr6(const struct sockaddr *sap1,
const struct sockaddr *sap2)
{
return false;
}
static inline bool __rpc_copy_addr6(struct sockaddr *dst,
const struct sockaddr *src)
{
return false;
}
#endif
static inline bool rpc_cmp_addr(const struct sockaddr *sap1,
const struct sockaddr *sap2)
{ … }
static inline bool rpc_cmp_addr_port(const struct sockaddr *sap1,
const struct sockaddr *sap2)
{ … }
static inline bool rpc_copy_addr(struct sockaddr *dst,
const struct sockaddr *src)
{ … }
static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
{ … }
#endif