#include <linux/sunrpc/clnt.h>
#include <linux/kobject.h>
#include <linux/sunrpc/addr.h>
#include <linux/sunrpc/xprtsock.h>
#include "sysfs.h"
struct xprt_addr { … };
static void free_xprt_addr(struct rcu_head *head)
{ … }
static struct kset *rpc_sunrpc_kset;
static struct kobject *rpc_sunrpc_client_kobj, *rpc_sunrpc_xprt_switch_kobj;
static void rpc_sysfs_object_release(struct kobject *kobj)
{ … }
static const struct kobj_ns_type_operations *
rpc_sysfs_object_child_ns_type(const struct kobject *kobj)
{ … }
static const struct kobj_type rpc_sysfs_object_type = …;
static struct kobject *rpc_sysfs_object_alloc(const char *name,
struct kset *kset,
struct kobject *parent)
{ … }
static inline struct rpc_xprt *
rpc_sysfs_xprt_kobj_get_xprt(struct kobject *kobj)
{ … }
static inline struct rpc_xprt_switch *
rpc_sysfs_xprt_kobj_get_xprt_switch(struct kobject *kobj)
{ … }
static inline struct rpc_xprt_switch *
rpc_sysfs_xprt_switch_kobj_get_xprt(struct kobject *kobj)
{ … }
static ssize_t rpc_sysfs_xprt_dstaddr_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *buf)
{ … }
static ssize_t rpc_sysfs_xprt_srcaddr_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *buf)
{ … }
static ssize_t rpc_sysfs_xprt_info_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t rpc_sysfs_xprt_state_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *buf)
{ … }
static ssize_t rpc_sysfs_xprt_switch_info_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *buf)
{ … }
static ssize_t rpc_sysfs_xprt_dstaddr_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static ssize_t rpc_sysfs_xprt_state_change(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
int rpc_sysfs_init(void)
{ … }
static void rpc_sysfs_client_release(struct kobject *kobj)
{ … }
static void rpc_sysfs_xprt_switch_release(struct kobject *kobj)
{ … }
static void rpc_sysfs_xprt_release(struct kobject *kobj)
{ … }
static const void *rpc_sysfs_client_namespace(const struct kobject *kobj)
{ … }
static const void *rpc_sysfs_xprt_switch_namespace(const struct kobject *kobj)
{ … }
static const void *rpc_sysfs_xprt_namespace(const struct kobject *kobj)
{ … }
static struct kobj_attribute rpc_sysfs_xprt_dstaddr = …;
static struct kobj_attribute rpc_sysfs_xprt_srcaddr = …;
static struct kobj_attribute rpc_sysfs_xprt_info = …;
static struct kobj_attribute rpc_sysfs_xprt_change_state = …;
static struct attribute *rpc_sysfs_xprt_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static struct kobj_attribute rpc_sysfs_xprt_switch_info = …;
static struct attribute *rpc_sysfs_xprt_switch_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static const struct kobj_type rpc_sysfs_client_type = …;
static const struct kobj_type rpc_sysfs_xprt_switch_type = …;
static const struct kobj_type rpc_sysfs_xprt_type = …;
void rpc_sysfs_exit(void)
{ … }
static struct rpc_sysfs_client *rpc_sysfs_client_alloc(struct kobject *parent,
struct net *net,
int clid)
{ … }
static struct rpc_sysfs_xprt_switch *
rpc_sysfs_xprt_switch_alloc(struct kobject *parent,
struct rpc_xprt_switch *xprt_switch,
struct net *net,
gfp_t gfp_flags)
{ … }
static struct rpc_sysfs_xprt *rpc_sysfs_xprt_alloc(struct kobject *parent,
struct rpc_xprt *xprt,
gfp_t gfp_flags)
{ … }
void rpc_sysfs_client_setup(struct rpc_clnt *clnt,
struct rpc_xprt_switch *xprt_switch,
struct net *net)
{ … }
void rpc_sysfs_xprt_switch_setup(struct rpc_xprt_switch *xprt_switch,
struct rpc_xprt *xprt,
gfp_t gfp_flags)
{ … }
void rpc_sysfs_xprt_setup(struct rpc_xprt_switch *xprt_switch,
struct rpc_xprt *xprt,
gfp_t gfp_flags)
{ … }
void rpc_sysfs_client_destroy(struct rpc_clnt *clnt)
{ … }
void rpc_sysfs_xprt_switch_destroy(struct rpc_xprt_switch *xprt_switch)
{ … }
void rpc_sysfs_xprt_destroy(struct rpc_xprt *xprt)
{ … }