/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2012 Red Hat. All rights reserved. * * This file is released under the GPL. */ #ifndef DM_CACHE_POLICY_H #define DM_CACHE_POLICY_H #include "dm-cache-block-types.h" #include <linux/device-mapper.h> /*----------------------------------------------------------------*/ /* * The cache policy makes the important decisions about which blocks get to * live on the faster cache device. */ enum policy_operation { … }; /* * This is the instruction passed back to the core target. */ struct policy_work { … }; /* * The cache policy object. It is envisaged that this structure will be * embedded in a bigger, policy specific structure (ie. use container_of()). */ struct dm_cache_policy { … }; /*----------------------------------------------------------------*/ /* * We maintain a little register of the different policy types. */ #define CACHE_POLICY_NAME_SIZE … #define CACHE_POLICY_VERSION_SIZE … struct dm_cache_policy_type { … }; int dm_cache_policy_register(struct dm_cache_policy_type *type); void dm_cache_policy_unregister(struct dm_cache_policy_type *type); /*----------------------------------------------------------------*/ #endif /* DM_CACHE_POLICY_H */