2022-06-03 19:15:11 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
2022-11-01 20:26:26 +00:00
|
|
|
* Copyright (C) 2018 Intel Corporation.
|
2018-09-20 16:54:49 +00:00
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef VBDEV_OCF_UTILS_H
|
|
|
|
#define VBDEV_OCF_UTILS_H
|
|
|
|
|
|
|
|
#include <ocf/ocf.h>
|
2019-03-29 21:49:31 +00:00
|
|
|
#include "vbdev_ocf.h"
|
2018-09-20 16:54:49 +00:00
|
|
|
|
|
|
|
ocf_cache_mode_t ocf_get_cache_mode(const char *cache_mode);
|
|
|
|
const char *ocf_get_cache_modename(ocf_cache_mode_t mode);
|
|
|
|
|
2021-04-26 14:45:56 +00:00
|
|
|
/* Get cache line size in KiB units */
|
|
|
|
int ocf_get_cache_line_size(ocf_cache_t cache);
|
|
|
|
|
2021-06-18 01:01:43 +00:00
|
|
|
/* Get sequential cutoff policy by name */
|
|
|
|
ocf_seq_cutoff_policy ocf_get_seqcutoff_policy(const char *policy_name);
|
|
|
|
|
2019-03-29 21:49:31 +00:00
|
|
|
/* Initiate management operation
|
|
|
|
* Receives NULL terminated array of functions (path)
|
|
|
|
* and callback (cb)
|
|
|
|
* and callback argument (cb_arg)
|
|
|
|
* This function may fail with ENOMEM or EBUSY */
|
|
|
|
int vbdev_ocf_mngt_start(struct vbdev_ocf *vbdev, vbdev_ocf_mngt_fn *path,
|
|
|
|
vbdev_ocf_mngt_callback cb, void *cb_arg);
|
|
|
|
|
|
|
|
/* Continue execution with polling operation (fn)
|
2019-05-08 08:26:27 +00:00
|
|
|
* fn must invoke vbdev_ocf_mngt_continue() to stop polling
|
|
|
|
* Poller has default timeout of 5 seconds */
|
2019-03-29 21:49:31 +00:00
|
|
|
void vbdev_ocf_mngt_poll(struct vbdev_ocf *vbdev, vbdev_ocf_mngt_fn fn);
|
|
|
|
|
|
|
|
/* Continue execution with next function that is on path
|
|
|
|
* If next function is NULL, finish management operation and invoke callback */
|
|
|
|
void vbdev_ocf_mngt_continue(struct vbdev_ocf *vbdev, int status);
|
|
|
|
|
2019-09-16 14:47:27 +00:00
|
|
|
/* Stop the execution, if status is non zero set it,
|
|
|
|
* if rollback function is not null invoke rollback
|
|
|
|
* else invoke callback with last status returned */
|
|
|
|
void vbdev_ocf_mngt_stop(struct vbdev_ocf *vbdev, vbdev_ocf_mngt_fn *rollback_path, int status);
|
2019-05-08 07:49:17 +00:00
|
|
|
|
2019-09-16 14:47:27 +00:00
|
|
|
/* Get status */
|
|
|
|
int vbdev_ocf_mngt_get_status(struct vbdev_ocf *vbdev);
|
2018-09-20 16:54:49 +00:00
|
|
|
#endif
|