#include <linux/init.h>
#include <linux/module.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/raid_class.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h>
#define RAID_NUM_ATTRS …
struct raid_internal { … };
struct raid_component { … };
#define to_raid_internal(tmpl) …
#define tc_to_raid_internal(tcont) …
#define ac_to_raid_internal(acont) …
#define device_to_raid_internal(dev) …
static int raid_match(struct attribute_container *cont, struct device *dev)
{ … }
static int raid_setup(struct transport_container *tc, struct device *dev,
struct device *cdev)
{ … }
static int raid_remove(struct transport_container *tc, struct device *dev,
struct device *cdev)
{ … }
static DECLARE_TRANSPORT_CLASS(raid_class,
"raid_devices",
raid_setup,
raid_remove,
NULL);
static const struct { … } raid_states[] = …;
static const char *raid_state_name(enum raid_state state)
{ … }
static struct { … } raid_levels[] = …;
static const char *raid_level_name(enum raid_level level)
{ … }
#define raid_attr_show_internal(attr, fmt, var, code) …
#define raid_attr_ro_states(attr, states, code) …
#define raid_attr_ro_internal(attr, code) …
#define ATTR_CODE(attr) …
#define raid_attr_ro(attr) …
#define raid_attr_ro_fn(attr) …
#define raid_attr_ro_state(attr) …
#define raid_attr_ro_state_fn(attr) …
raid_attr_ro_state(…);
raid_attr_ro_fn(…);
raid_attr_ro_state_fn(…);
struct raid_template *
raid_class_attach(struct raid_function_template *ft)
{ … }
EXPORT_SYMBOL(…);
void
raid_class_release(struct raid_template *r)
{ … }
EXPORT_SYMBOL(…);
static __init int raid_init(void)
{ … }
static __exit void raid_exit(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
module_init(…) …;
module_exit(raid_exit);