X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fspdk%2Focf%2Fsrc%2Focf_freelist.h;fp=ceph%2Fsrc%2Fspdk%2Focf%2Fsrc%2Focf_freelist.h;h=3b67b2aba57cd0d30cea50897c2d78782719ef31;hb=f67539c23b11f3b8a2ecaeeddf7a403ae1c442a8;hp=0000000000000000000000000000000000000000;hpb=64a4c04e6850c6d9086e4c37f57c4eada541b05e;p=ceph.git diff --git a/ceph/src/spdk/ocf/src/ocf_freelist.h b/ceph/src/spdk/ocf/src/ocf_freelist.h new file mode 100644 index 000000000..3b67b2aba --- /dev/null +++ b/ceph/src/spdk/ocf/src/ocf_freelist.h @@ -0,0 +1,34 @@ +/* + * Copyright(c) 2019-2019 Intel Corporation + * SPDX-License-Identifier: BSD-3-Clause-Clear + */ + +#ifndef __OCF_FREELIST_H__ +#define __OCF_FREELIST_H__ + +#include "ocf_cache_priv.h" + +struct ocf_freelist; + +typedef struct ocf_freelist *ocf_freelist_t; + +/* Init / deinit freelist runtime structures */ +ocf_freelist_t ocf_freelist_init(struct ocf_cache *cache); +void ocf_freelist_deinit(ocf_freelist_t freelist); + +/* Assign unused cachelines to freelist */ +void ocf_freelist_populate(ocf_freelist_t freelist, + ocf_cache_line_t num_free_clines); + +/* Get cacheline from freelist */ +bool ocf_freelist_get_cache_line(ocf_freelist_t freelist, + ocf_cache_line_t *cline); + +/* Put cacheline back to freelist */ +void ocf_freelist_put_cache_line(ocf_freelist_t freelist, + ocf_cache_line_t cline); + +/* Return total number of free cachelines */ +ocf_cache_line_t ocf_freelist_num_free(ocf_freelist_t freelist); + +#endif /* __OCF_FREELIST_H__ */