#include "dm.h"
#include "dm-path-selector.h"
#include <linux/slab.h>
#include <linux/module.h>
#define DM_MSG_PREFIX …
#define ST_MIN_IO …
#define ST_MAX_RELATIVE_THROUGHPUT …
#define ST_MAX_RELATIVE_THROUGHPUT_SHIFT …
#define ST_MAX_INFLIGHT_SIZE …
#define ST_VERSION …
struct selector { … };
struct path_info { … };
static struct selector *alloc_selector(void)
{ … }
static int st_create(struct path_selector *ps, unsigned int argc, char **argv)
{ … }
static void free_paths(struct list_head *paths)
{ … }
static void st_destroy(struct path_selector *ps)
{ … }
static int st_status(struct path_selector *ps, struct dm_path *path,
status_type_t type, char *result, unsigned int maxlen)
{ … }
static int st_add_path(struct path_selector *ps, struct dm_path *path,
int argc, char **argv, char **error)
{ … }
static void st_fail_path(struct path_selector *ps, struct dm_path *path)
{ … }
static int st_reinstate_path(struct path_selector *ps, struct dm_path *path)
{ … }
static int st_compare_load(struct path_info *pi1, struct path_info *pi2,
size_t incoming)
{ … }
static struct dm_path *st_select_path(struct path_selector *ps, size_t nr_bytes)
{ … }
static int st_start_io(struct path_selector *ps, struct dm_path *path,
size_t nr_bytes)
{ … }
static int st_end_io(struct path_selector *ps, struct dm_path *path,
size_t nr_bytes, u64 start_time)
{ … }
static struct path_selector_type st_ps = …;
static int __init dm_st_init(void)
{ … }
static void __exit dm_st_exit(void)
{ … }
module_init(…) …;
module_exit(dm_st_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;