dm_cache_policy
struct dm_cache_policy *policy)
struct dm_cache_policy *policy)
struct dm_cache_policy *policy,
struct dm_cache_policy *policy,
struct dm_cache_policy *policy = context;
static int write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy)
int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy)
int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *p);
struct dm_cache_policy *policy,
static inline int policy_set_config_value(struct dm_cache_policy *p,
static inline void policy_allow_migrations(struct dm_cache_policy *p, bool allow)
struct dm_cache_policy *dm_cache_policy_create(const char *name, dm_cblock_t cache_size,
void dm_cache_policy_destroy(struct dm_cache_policy *p);
const char *dm_cache_policy_get_name(struct dm_cache_policy *p);
static inline int policy_lookup(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock,
const unsigned int *dm_cache_policy_get_version(struct dm_cache_policy *p);
size_t dm_cache_policy_get_hint_size(struct dm_cache_policy *p);
static inline int policy_lookup_with_work(struct dm_cache_policy *p,
static inline int policy_get_background_work(struct dm_cache_policy *p,
static inline void policy_complete_background_work(struct dm_cache_policy *p,
static inline void policy_set_dirty(struct dm_cache_policy *p, dm_cblock_t cblock)
static inline void policy_clear_dirty(struct dm_cache_policy *p, dm_cblock_t cblock)
static inline int policy_load_mapping(struct dm_cache_policy *p,
static inline int policy_invalidate_mapping(struct dm_cache_policy *p,
static inline uint32_t policy_get_hint(struct dm_cache_policy *p,
static inline dm_cblock_t policy_residency(struct dm_cache_policy *p)
static inline void policy_tick(struct dm_cache_policy *p, bool can_block)
static inline int policy_emit_config_values(struct dm_cache_policy *p, char *result,
static struct smq_policy *to_smq_policy(struct dm_cache_policy *p)
static void smq_destroy(struct dm_cache_policy *p)
static int smq_lookup(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock,
static int smq_lookup_with_work(struct dm_cache_policy *p,
static int smq_get_background_work(struct dm_cache_policy *p, bool idle,
static void smq_complete_background_work(struct dm_cache_policy *p,
static void smq_set_dirty(struct dm_cache_policy *p, dm_cblock_t cblock)
static void smq_clear_dirty(struct dm_cache_policy *p, dm_cblock_t cblock)
static int smq_load_mapping(struct dm_cache_policy *p,
static int smq_invalidate_mapping(struct dm_cache_policy *p, dm_cblock_t cblock)
static uint32_t smq_get_hint(struct dm_cache_policy *p, dm_cblock_t cblock)
static dm_cblock_t smq_residency(struct dm_cache_policy *p)
static void smq_tick(struct dm_cache_policy *p, bool can_block)
static void smq_allow_migrations(struct dm_cache_policy *p, bool allow)
static int mq_set_config_value(struct dm_cache_policy *p,
static int mq_emit_config_values(struct dm_cache_policy *p, char *result,
static struct dm_cache_policy *
static struct dm_cache_policy *smq_create(dm_cblock_t cache_size,
static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
static struct dm_cache_policy *cleaner_create(dm_cblock_t cache_size,
struct dm_cache_policy policy;
struct dm_cache_policy *dm_cache_policy_create(const char *name,
struct dm_cache_policy *p = NULL;
void dm_cache_policy_destroy(struct dm_cache_policy *p)
const char *dm_cache_policy_get_name(struct dm_cache_policy *p)
const unsigned int *dm_cache_policy_get_version(struct dm_cache_policy *p)
size_t dm_cache_policy_get_hint_size(struct dm_cache_policy *p)
int (*invalidate_mapping)(struct dm_cache_policy *p, dm_cblock_t cblock);
uint32_t (*get_hint)(struct dm_cache_policy *p, dm_cblock_t cblock);
dm_cblock_t (*residency)(struct dm_cache_policy *p);
void (*tick)(struct dm_cache_policy *p, bool can_block);
int (*emit_config_values)(struct dm_cache_policy *p, char *result,
int (*set_config_value)(struct dm_cache_policy *p,
void (*allow_migrations)(struct dm_cache_policy *p, bool allow);
struct dm_cache_policy *(*create)(dm_cblock_t cache_size,
void (*destroy)(struct dm_cache_policy *p);
int (*lookup)(struct dm_cache_policy *p, dm_oblock_t oblock, dm_cblock_t *cblock,
int (*lookup_with_work)(struct dm_cache_policy *p,
int (*get_background_work)(struct dm_cache_policy *p, bool idle,
void (*complete_background_work)(struct dm_cache_policy *p,
void (*set_dirty)(struct dm_cache_policy *p, dm_cblock_t cblock);
void (*clear_dirty)(struct dm_cache_policy *p, dm_cblock_t cblock);
int (*load_mapping)(struct dm_cache_policy *p, dm_oblock_t oblock,
struct dm_cache_policy *p = dm_cache_policy_create(ca->policy_name,
struct dm_cache_policy *policy;