#undef pr_fmt
#define pr_fmt(fmt) …
#include <linux/types.h>
#include <linux/ctype.h>
#include <linux/parser.h>
#include <linux/module.h>
#include <linux/in6.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/device.h>
#include <rdma/ib.h>
#include <rdma/rdma_cm.h>
#include "rnbd-clt.h"
static struct device *rnbd_dev;
static const struct class rnbd_dev_class = …;
static struct kobject *rnbd_devs_kobj;
enum { … };
static const unsigned int rnbd_opt_mandatory[] = …;
static const match_table_t rnbd_opt_tokens = …;
struct rnbd_map_options { … };
static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt,
struct rnbd_map_options *opt)
{ … }
static ssize_t state_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static struct kobj_attribute rnbd_clt_state_attr = …;
static ssize_t nr_poll_queues_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static struct kobj_attribute rnbd_clt_nr_poll_queues = …;
static ssize_t mapping_path_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static struct kobj_attribute rnbd_clt_mapping_path_attr = …;
static ssize_t access_mode_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static struct kobj_attribute rnbd_clt_access_mode = …;
static ssize_t rnbd_clt_unmap_dev_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static ssize_t rnbd_clt_unmap_dev_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static struct kobj_attribute rnbd_clt_unmap_device_attr = …;
static ssize_t rnbd_clt_resize_dev_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{ … }
static ssize_t rnbd_clt_resize_dev_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static struct kobj_attribute rnbd_clt_resize_dev_attr = …;
static ssize_t rnbd_clt_remap_dev_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static ssize_t rnbd_clt_remap_dev_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static struct kobj_attribute rnbd_clt_remap_device_attr = …;
static ssize_t session_show(struct kobject *kobj, struct kobj_attribute *attr,
char *page)
{ … }
static struct kobj_attribute rnbd_clt_session_attr = …;
static struct attribute *rnbd_dev_attrs[] = …;
ATTRIBUTE_GROUPS(…);
void rnbd_clt_remove_dev_symlink(struct rnbd_clt_dev *dev)
{ … }
static const struct kobj_type rnbd_dev_ktype = …;
static int rnbd_clt_add_dev_kobj(struct rnbd_clt_dev *dev)
{ … }
static ssize_t rnbd_clt_map_device_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{ … }
static int rnbd_clt_get_path_name(struct rnbd_clt_dev *dev, char *buf,
size_t len)
{ … }
static int rnbd_clt_add_dev_symlink(struct rnbd_clt_dev *dev)
{ … }
static ssize_t rnbd_clt_map_device_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static struct kobj_attribute rnbd_clt_map_device_attr = …;
static struct attribute *default_attrs[] = …;
static struct attribute_group default_attr_group = …;
static const struct attribute_group *default_attr_groups[] = …;
int rnbd_clt_create_sysfs_files(void)
{ … }
void rnbd_clt_destroy_sysfs_files(void)
{ … }