
PyOCF is a tool written with testing OCF functionality in mind. It is a Python3 (3.6 version required) package which wraps OCF by providing Python objects in place of OCF objects (volumes, queues, etc). Thin layer of translation between OCF objects and PyOCF objects enables using customized behaviors for OCF primitives by subclassing PyOCF classes. This initial version implements only WT and WI modes and single, synchronously operating Queue. TO DO: - Queues/Cleaner/MetadataUpdater implemented as Python threads - Loading of caches from PyOCF Volumes (fix bugs in OCF) - Make sure it works multi-threaded for more sophisticated tests Co-authored-by: Jan Musial <jan.musial@intel.com> Signed-off-by: Michal Rakowski <michal.rakowski@intel.com> Signed-off-by: Jan Musial <jan.musial@intel.com>
57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
/*
|
|
* Copyright(c) 2012-2018 Intel Corporation
|
|
* SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
*/
|
|
|
|
#include "ocf/ocf_io.h"
|
|
#include "ocf/ocf_core.h"
|
|
|
|
struct ocf_io *ocf_core_new_io_wrapper(ocf_core_t core)
|
|
{
|
|
return ocf_core_new_io(core);
|
|
}
|
|
|
|
void ocf_io_configure_wrapper(struct ocf_io *io, uint64_t addr,
|
|
uint32_t bytes, uint32_t dir, uint32_t class, uint64_t flags)
|
|
{
|
|
ocf_io_configure(io, addr, bytes, dir, class, flags);
|
|
}
|
|
|
|
void ocf_io_set_cmpl_wrapper(struct ocf_io *io, void *context,
|
|
void *context2, ocf_end_io_t fn)
|
|
{
|
|
ocf_io_set_cmpl(io, context, context2, fn);
|
|
}
|
|
|
|
void ocf_io_set_start_wrapper(struct ocf_io *io, ocf_start_io_t fn)
|
|
{
|
|
ocf_io_set_start(io, fn);
|
|
}
|
|
|
|
void ocf_io_set_handle_wrapper(struct ocf_io *io, ocf_handle_io_t fn)
|
|
{
|
|
ocf_io_set_handle(io, fn);
|
|
}
|
|
|
|
int ocf_io_set_data_wrapper(struct ocf_io *io, ctx_data_t *data,
|
|
uint32_t offset)
|
|
{
|
|
return ocf_io_set_data(io, data, offset);
|
|
}
|
|
|
|
ctx_data_t *ocf_io_get_data_wrapper(struct ocf_io *io)
|
|
{
|
|
return ocf_io_get_data(io);
|
|
}
|
|
|
|
void ocf_io_set_queue_wrapper(struct ocf_io *io, ocf_queue_t queue)
|
|
{
|
|
ocf_io_set_queue(io, queue);
|
|
}
|
|
|
|
void ocf_core_submit_io_wrapper(struct ocf_io *io)
|
|
{
|
|
ocf_core_submit_io(io);
|
|
}
|
|
|