Spdk/lib/bdev/spdk_bdev.map
Evgeniy Kochetov d14afd5000 bdev: Add copy IO type
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
2022-11-02 10:33:00 +00:00

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: *;
};