2022-06-03 19:15:11 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
2018-09-20 16:54:49 +00:00
|
|
|
* Copyright (c) Intel Corporation.
|
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef VBDEV_OCF_CTX_H
|
|
|
|
#define VBDEV_OCF_CTX_H
|
|
|
|
|
|
|
|
#include <ocf/ocf.h>
|
2021-02-15 10:25:42 +00:00
|
|
|
#include "ocf_env.h"
|
2019-05-21 21:50:29 +00:00
|
|
|
#include "spdk/thread.h"
|
2018-09-20 16:54:49 +00:00
|
|
|
|
|
|
|
extern ocf_ctx_t vbdev_ocf_ctx;
|
|
|
|
|
|
|
|
#define OCF_WRITE_FLUSH 11
|
|
|
|
|
2019-02-13 12:19:39 +00:00
|
|
|
#define SPDK_OBJECT 1
|
2018-09-20 16:54:49 +00:00
|
|
|
|
2019-04-17 18:02:54 +00:00
|
|
|
/* Context of cache instance */
|
|
|
|
struct vbdev_ocf_cache_ctx {
|
2019-04-17 18:41:37 +00:00
|
|
|
ocf_queue_t mngt_queue;
|
2019-04-17 18:52:00 +00:00
|
|
|
ocf_queue_t cleaner_queue;
|
2019-04-23 22:34:25 +00:00
|
|
|
pthread_mutex_t lock;
|
2019-04-17 18:02:54 +00:00
|
|
|
env_atomic refcnt;
|
|
|
|
};
|
|
|
|
|
|
|
|
void vbdev_ocf_cache_ctx_put(struct vbdev_ocf_cache_ctx *ctx);
|
|
|
|
void vbdev_ocf_cache_ctx_get(struct vbdev_ocf_cache_ctx *ctx);
|
|
|
|
|
2018-09-20 16:54:49 +00:00
|
|
|
int vbdev_ocf_ctx_init(void);
|
|
|
|
void vbdev_ocf_ctx_cleanup(void);
|
|
|
|
|
2019-04-23 22:34:25 +00:00
|
|
|
/* Thread safe queue creation and deletion
|
|
|
|
* These are wrappers for original ocf_queue_create() and ocf_queue_put() */
|
|
|
|
int vbdev_ocf_queue_create(ocf_cache_t cache, ocf_queue_t *queue, const struct ocf_queue_ops *ops);
|
|
|
|
void vbdev_ocf_queue_put(ocf_queue_t queue);
|
|
|
|
|
2018-09-20 16:54:49 +00:00
|
|
|
#endif
|