xref: /spdk/module/bdev/ocf/data.h (revision a6dbe3721eb3b5990707fc3e378c95e505dd8ab5)
1488570ebSJim Harris /*   SPDX-License-Identifier: BSD-3-Clause
2*a6dbe372Spaul luse  *   Copyright (C) 2018 Intel Corporation.
307fe6a43SSeth Howell  *   All rights reserved.
407fe6a43SSeth Howell  */
507fe6a43SSeth Howell 
607fe6a43SSeth Howell #ifndef VBDEV_OCF_DATA_H
707fe6a43SSeth Howell #define VBDEV_OCF_DATA_H
807fe6a43SSeth Howell 
937028231SRafal Stefanowski #include "ocf_env.h"
1007fe6a43SSeth Howell #include "spdk/bdev_module.h"
1107fe6a43SSeth Howell 
1207fe6a43SSeth Howell struct bdev_ocf_data {
1307fe6a43SSeth Howell 	struct iovec *iovs;
1407fe6a43SSeth Howell 	int iovcnt;
1507fe6a43SSeth Howell 	int iovalloc;
1607fe6a43SSeth Howell 	uint32_t size;
1707fe6a43SSeth Howell 	uint32_t seek;
1807fe6a43SSeth Howell };
1907fe6a43SSeth Howell 
2007fe6a43SSeth Howell struct bdev_ocf_data *vbdev_ocf_data_from_spdk_io(struct spdk_bdev_io *bdev_io);
2107fe6a43SSeth Howell 
2207fe6a43SSeth Howell struct bdev_ocf_data *vbdev_ocf_data_alloc(uint32_t nvecs);
2307fe6a43SSeth Howell 
2407fe6a43SSeth Howell void vbdev_ocf_data_free(struct bdev_ocf_data *data);
2507fe6a43SSeth Howell 
2607fe6a43SSeth Howell struct bdev_ocf_data *vbdev_ocf_data_from_iov(struct iovec *iovs);
2707fe6a43SSeth Howell 
2807fe6a43SSeth Howell void vbdev_ocf_iovs_add(struct bdev_ocf_data *data, void *base, size_t len);
2907fe6a43SSeth Howell 
3007fe6a43SSeth Howell #endif
31