#undef pr_fmt
#define pr_fmt(fmt) …
#include <linux/kobject.h>
#include <linux/sysfs.h>
#include <linux/stat.h>
#include <linux/list.h>
#include <linux/moduleparam.h>
#include <linux/device.h>
#include "rnbd-srv.h"
static struct device *rnbd_dev;
static const struct class rnbd_dev_class = …;
static struct kobject *rnbd_devs_kobj;
static void rnbd_srv_dev_release(struct kobject *kobj)
{ … }
static const struct kobj_type dev_ktype = …;
int rnbd_srv_create_dev_sysfs(struct rnbd_srv_dev *dev,
struct block_device *bdev)
{ … }
void rnbd_srv_destroy_dev_sysfs(struct rnbd_srv_dev *dev)
{ … }
static ssize_t read_only_show(struct kobject *kobj, struct kobj_attribute *attr,
char *page)
{ … }
static struct kobj_attribute rnbd_srv_dev_session_ro_attr = …;
static ssize_t access_mode_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{ … }
static struct kobj_attribute rnbd_srv_dev_session_access_mode_attr = …;
static ssize_t mapping_path_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static struct kobj_attribute rnbd_srv_dev_session_mapping_path_attr = …;
static ssize_t rnbd_srv_dev_session_force_close_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{ … }
static ssize_t rnbd_srv_dev_session_force_close_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
static struct kobj_attribute rnbd_srv_dev_session_force_close_attr = …;
static struct attribute *rnbd_srv_default_dev_sessions_attrs[] = …;
static struct attribute_group rnbd_srv_default_dev_session_attr_group = …;
void rnbd_srv_destroy_dev_session_sysfs(struct rnbd_srv_sess_dev *sess_dev)
{ … }
static void rnbd_srv_sess_dev_release(struct kobject *kobj)
{ … }
static const struct kobj_type rnbd_srv_sess_dev_ktype = …;
int rnbd_srv_create_dev_session_sysfs(struct rnbd_srv_sess_dev *sess_dev)
{ … }
int rnbd_srv_create_sysfs_files(void)
{ … }
void rnbd_srv_destroy_sysfs_files(void)
{ … }