diff --git a/include/spdk/copy_engine.h b/include/spdk/copy_engine.h index 058fa6314..54465d4eb 100644 --- a/include/spdk/copy_engine.h +++ b/include/spdk/copy_engine.h @@ -38,6 +38,7 @@ #ifndef SPDK_COPY_ENGINE_H #define SPDK_COPY_ENGINE_H +#include #include typedef void (*spdk_copy_completion_cb)(void *ref, int status); @@ -51,6 +52,6 @@ int64_t spdk_copy_submit(struct spdk_copy_task *copy_req, struct spdk_io_channel void *src, uint64_t nbytes, spdk_copy_completion_cb cb); int64_t spdk_copy_submit_fill(struct spdk_copy_task *copy_req, struct spdk_io_channel *ch, void *dst, uint8_t fill, uint64_t nbytes, spdk_copy_completion_cb cb); -int spdk_copy_module_get_max_ctx_size(void); +size_t spdk_copy_task_size(void); #endif diff --git a/include/spdk_internal/copy_engine.h b/include/spdk_internal/copy_engine.h index 3f8a2a878..073b461d1 100644 --- a/include/spdk_internal/copy_engine.h +++ b/include/spdk_internal/copy_engine.h @@ -74,7 +74,7 @@ struct spdk_copy_module_if { */ void (*config_text)(FILE *fp); - int (*get_ctx_size)(void); + size_t (*get_ctx_size)(void); TAILQ_ENTRY(spdk_copy_module_if) tailq; }; diff --git a/lib/bdev/malloc/blockdev_malloc.c b/lib/bdev/malloc/blockdev_malloc.c index 7c27e7bc3..526f299d7 100644 --- a/lib/bdev/malloc/blockdev_malloc.c +++ b/lib/bdev/malloc/blockdev_malloc.c @@ -97,7 +97,7 @@ static void blockdev_malloc_get_spdk_running_config(FILE *fp); static int blockdev_malloc_get_ctx_size(void) { - return sizeof(struct malloc_task) + spdk_copy_module_get_max_ctx_size(); + return sizeof(struct malloc_task) + spdk_copy_task_size(); } SPDK_BDEV_MODULE_REGISTER(blockdev_malloc_initialize, blockdev_malloc_finish, diff --git a/lib/copy/copy_engine.c b/lib/copy/copy_engine.c index 2b8bf826f..1a1a593bb 100644 --- a/lib/copy/copy_engine.c +++ b/lib/copy/copy_engine.c @@ -154,16 +154,17 @@ static struct spdk_io_channel *mem_get_io_channel(uint32_t priority) return spdk_get_io_channel(&memcpy_copy_engine, priority, false, NULL); } -static int +static size_t copy_engine_mem_get_ctx_size(void) { return sizeof(struct spdk_copy_task); } -int spdk_copy_module_get_max_ctx_size(void) +size_t +spdk_copy_task_size(void) { struct spdk_copy_module_if *copy_engine; - int max_copy_module_size = 0; + size_t max_copy_module_size = 0; TAILQ_FOREACH(copy_engine, &spdk_copy_module_list, tailq) { if (copy_engine->get_ctx_size && copy_engine->get_ctx_size() > max_copy_module_size) { diff --git a/lib/copy/ioat/copy_engine_ioat.c b/lib/copy/ioat/copy_engine_ioat.c index df967a867..220f02998 100644 --- a/lib/copy/ioat/copy_engine_ioat.c +++ b/lib/copy/ioat/copy_engine_ioat.c @@ -111,7 +111,7 @@ struct ioat_task { static int copy_engine_ioat_init(void); static void copy_engine_ioat_exit(void); -static int +static size_t copy_engine_ioat_get_ctx_size(void) { return sizeof(struct ioat_task) + sizeof(struct spdk_copy_task);