Copy operation is defined by source and destination LBAs and LBA count to copy. For destiantion LBA and LBA count we reuse exiting fields `offset_blocks` and `num_blocks` in `struct spdk_bdev_io`. For source LBA new field `src_offset_blocks` was added. `spdk_bdev_get_max_copy()` function can be used to retrieve maximum possible unsplit copy size. Zero values means unlimited. It is allowed to submit larger copy size but it will be split into several bdev IOs. Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com> Change-Id: I2ad56294b6c062595c026ffcf9b435f0100d3d7e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14344 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Mellanox Build Bot
179 lines
4.6 KiB
Plaintext
179 lines
4.6 KiB
Plaintext
{
|
|
global:
|
|
|
|
# Public functions in bdev.h
|
|
spdk_bdev_get_opts;
|
|
spdk_bdev_set_opts;
|
|
spdk_bdev_wait_for_examine;
|
|
spdk_bdev_examine;
|
|
spdk_bdev_initialize;
|
|
spdk_bdev_finish;
|
|
spdk_bdev_subsystem_config_json;
|
|
spdk_bdev_get_by_name;
|
|
spdk_bdev_get_module_name;
|
|
spdk_bdev_first;
|
|
spdk_bdev_next;
|
|
spdk_bdev_first_leaf;
|
|
spdk_bdev_next_leaf;
|
|
spdk_for_each_bdev;
|
|
spdk_for_each_bdev_leaf;
|
|
spdk_bdev_open_ext;
|
|
spdk_bdev_close;
|
|
spdk_bdev_desc_get_bdev;
|
|
spdk_bdev_set_timeout;
|
|
spdk_bdev_io_type_supported;
|
|
spdk_bdev_dump_info_json;
|
|
spdk_bdev_get_name;
|
|
spdk_bdev_get_product_name;
|
|
spdk_bdev_get_block_size;
|
|
spdk_bdev_get_write_unit_size;
|
|
spdk_bdev_get_num_blocks;
|
|
spdk_bdev_get_qos_rpc_type;
|
|
spdk_bdev_get_qos_rate_limits;
|
|
spdk_bdev_set_qos_rate_limits;
|
|
spdk_bdev_get_buf_align;
|
|
spdk_bdev_get_optimal_io_boundary;
|
|
spdk_bdev_has_write_cache;
|
|
spdk_bdev_get_uuid;
|
|
spdk_bdev_get_acwu;
|
|
spdk_bdev_get_md_size;
|
|
spdk_bdev_is_md_interleaved;
|
|
spdk_bdev_is_md_separate;
|
|
spdk_bdev_is_zoned;
|
|
spdk_bdev_get_data_block_size;
|
|
spdk_bdev_get_physical_block_size;
|
|
spdk_bdev_get_dif_type;
|
|
spdk_bdev_is_dif_head_of_md;
|
|
spdk_bdev_is_dif_check_enabled;
|
|
spdk_bdev_get_current_qd;
|
|
spdk_bdev_get_qd;
|
|
spdk_bdev_get_qd_sampling_period;
|
|
spdk_bdev_set_qd_sampling_period;
|
|
spdk_bdev_get_io_time;
|
|
spdk_bdev_get_weighted_io_time;
|
|
spdk_bdev_get_io_channel;
|
|
spdk_bdev_get_module_ctx;
|
|
spdk_bdev_seek_data;
|
|
spdk_bdev_seek_hole;
|
|
spdk_bdev_read;
|
|
spdk_bdev_read_blocks;
|
|
spdk_bdev_read_blocks_with_md;
|
|
spdk_bdev_readv;
|
|
spdk_bdev_readv_blocks;
|
|
spdk_bdev_readv_blocks_with_md;
|
|
spdk_bdev_write;
|
|
spdk_bdev_write_blocks;
|
|
spdk_bdev_write_blocks_with_md;
|
|
spdk_bdev_writev;
|
|
spdk_bdev_writev_blocks;
|
|
spdk_bdev_writev_blocks_with_md;
|
|
spdk_bdev_compare_blocks;
|
|
spdk_bdev_compare_blocks_with_md;
|
|
spdk_bdev_comparev_blocks;
|
|
spdk_bdev_comparev_blocks_with_md;
|
|
spdk_bdev_comparev_and_writev_blocks;
|
|
spdk_bdev_zcopy_start;
|
|
spdk_bdev_zcopy_end;
|
|
spdk_bdev_write_zeroes;
|
|
spdk_bdev_write_zeroes_blocks;
|
|
spdk_bdev_unmap;
|
|
spdk_bdev_unmap_blocks;
|
|
spdk_bdev_flush;
|
|
spdk_bdev_flush_blocks;
|
|
spdk_bdev_reset;
|
|
spdk_bdev_abort;
|
|
spdk_bdev_nvme_admin_passthru;
|
|
spdk_bdev_nvme_io_passthru;
|
|
spdk_bdev_nvme_io_passthru_md;
|
|
spdk_bdev_free_io;
|
|
spdk_bdev_queue_io_wait;
|
|
spdk_bdev_get_io_stat;
|
|
spdk_bdev_get_device_stat;
|
|
spdk_bdev_io_get_nvme_status;
|
|
spdk_bdev_io_get_nvme_fused_status;
|
|
spdk_bdev_io_get_scsi_status;
|
|
spdk_bdev_io_get_aio_status;
|
|
spdk_bdev_io_get_iovec;
|
|
spdk_bdev_io_get_md_buf;
|
|
spdk_bdev_io_get_cb_arg;
|
|
spdk_bdev_io_get_seek_offset;
|
|
spdk_bdev_histogram_enable;
|
|
spdk_bdev_histogram_get;
|
|
spdk_bdev_get_media_events;
|
|
spdk_bdev_get_memory_domains;
|
|
spdk_bdev_readv_blocks_ext;
|
|
spdk_bdev_writev_blocks_ext;
|
|
spdk_bdev_for_each_channel;
|
|
spdk_bdev_for_each_channel_continue;
|
|
spdk_bdev_get_max_copy;
|
|
spdk_bdev_copy_blocks;
|
|
|
|
# Public functions in bdev_module.h
|
|
spdk_bdev_register;
|
|
spdk_bdev_unregister;
|
|
spdk_bdev_unregister_by_name;
|
|
spdk_bdev_destruct_done;
|
|
spdk_bdev_module_examine_done;
|
|
spdk_bdev_module_init_done;
|
|
spdk_bdev_module_fini_done;
|
|
spdk_bdev_module_fini_start_done;
|
|
spdk_bdev_module_claim_bdev;
|
|
spdk_bdev_module_release_bdev;
|
|
spdk_bdev_alias_add;
|
|
spdk_bdev_alias_del;
|
|
spdk_bdev_alias_del_all;
|
|
spdk_bdev_get_aliases;
|
|
spdk_bdev_io_get_buf;
|
|
spdk_bdev_io_get_aux_buf;
|
|
spdk_bdev_io_put_aux_buf;
|
|
spdk_bdev_io_set_buf;
|
|
spdk_bdev_io_set_md_buf;
|
|
spdk_bdev_io_complete;
|
|
spdk_bdev_io_complete_nvme_status;
|
|
spdk_bdev_io_complete_scsi_status;
|
|
spdk_bdev_io_complete_aio_status;
|
|
spdk_bdev_io_get_thread;
|
|
spdk_bdev_io_get_io_channel;
|
|
spdk_bdev_notify_blockcnt_change;
|
|
spdk_scsi_nvme_translate;
|
|
spdk_bdev_module_list_add;
|
|
spdk_bdev_module_list_find;
|
|
spdk_bdev_part_base_get_bdev;
|
|
spdk_bdev_part_base_get_bdev_name;
|
|
spdk_bdev_part_base_get_desc;
|
|
spdk_bdev_part_base_get_tailq;
|
|
spdk_bdev_part_base_get_ctx;
|
|
spdk_bdev_part_base_free;
|
|
spdk_bdev_part_free;
|
|
spdk_bdev_part_base_hotremove;
|
|
spdk_bdev_part_base_construct_ext;
|
|
spdk_bdev_part_construct;
|
|
spdk_bdev_part_submit_request;
|
|
spdk_bdev_part_get_bdev;
|
|
spdk_bdev_part_get_base;
|
|
spdk_bdev_part_get_base_bdev;
|
|
spdk_bdev_part_get_offset_blocks;
|
|
spdk_bdev_push_media_events;
|
|
spdk_bdev_notify_media_management;
|
|
spdk_bdev_for_each_bdev_io;
|
|
|
|
# Public functions in bdev_zone.h
|
|
spdk_bdev_get_zone_size;
|
|
spdk_bdev_get_num_zones;
|
|
spdk_bdev_get_zone_id;
|
|
spdk_bdev_get_max_zone_append_size;
|
|
spdk_bdev_get_max_open_zones;
|
|
spdk_bdev_get_max_active_zones;
|
|
spdk_bdev_get_optimal_open_zones;
|
|
spdk_bdev_get_zone_info;
|
|
spdk_bdev_zone_management;
|
|
spdk_bdev_zone_append;
|
|
spdk_bdev_zone_appendv;
|
|
spdk_bdev_zone_append_with_md;
|
|
spdk_bdev_zone_appendv_with_md;
|
|
spdk_bdev_io_get_append_location;
|
|
|
|
# Everything else
|
|
local: *;
|
|
};
|