numam-spdk/lib
Ben Walker cd8c36f2fe util: Add spdk_ioviter for iterating iovecs
spdk_ioviter_next will walk through two iovecs and yield pointers
to common length segments. For example, given a source iovec (siov) with
4 1KiB elements and a destination iovec (diov) with 1 4KiB element, the
following will happen:

first spdk_ioviter_next:

src = siov[0].iov_base
dst = diov[0].iov_base
len = 1KiB

second spdk_ioviter_next:

src = siov[1].iov_base
dst = diov[0].iov_base + 1KiB
len = 1KiB

third spdk_ioviter_next:

src = siov[2].iov_base
dst = diov[0].iov_base + 2KiB
len = 1KiB

fourth spdk_ioviter_next:

src = siov[3].iov_base
dst = diov[0].iov_base + 3KiB
len = 1KiB

fifth spdk_ioviter_next:

len = 0

This is a useful utility for performing operations where both the source
and destination are scattered memory. As an example and a test vehicle,
spdk_iovcpy has been updated to use this internally.

Change-Id: I7e35e76d38e78d07ea1caf6282d0dfc02182aa83
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10284
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-12-17 09:45:44 +00:00
..
accel lib/accel: remove batching from the framework and plug-in modules 2021-12-08 16:35:40 +00:00
bdev bdev: Fail nvme passthru command if not supported by bdev 2021-12-03 08:13:52 +00:00
blob spelling: lib 2021-12-03 08:12:55 +00:00
blobfs trace: move all trace definitions to a separate file 2021-10-20 07:22:00 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2021-10-20 22:55:52 +00:00
env_dpdk env: remove spdk_pci_get_[first|next]_device 2021-12-14 09:08:59 +00:00
env_ocf spelling: lib 2021-12-03 08:12:55 +00:00
event trace: allow to specify multiple tpoint group masks 2021-12-14 13:18:55 +00:00
ftl spelling: lib 2021-12-03 08:12:55 +00:00
idxd spelling: lib 2021-12-03 08:12:55 +00:00
init rpc: add method for listing PCI devices 2021-12-14 09:08:59 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi spelling: lib 2021-12-03 08:12:55 +00:00
json json: add spdk_json_write_bytearray 2021-12-14 09:08:59 +00:00
jsonrpc spelling: lib 2021-12-03 08:12:55 +00:00
log log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol spelling: lib 2021-12-03 08:12:55 +00:00
nbd spelling: lib 2021-12-03 08:12:55 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: call probe_cb when directly connecting to discovery ctrlr 2021-12-17 09:45:17 +00:00
nvmf nvmf: update discovery log when removing hostnqn 2021-12-16 08:52:20 +00:00
rdma rdma: Set REMOTE_WRITE permission for iWARP on target side 2021-11-30 09:08:21 +00:00
reduce spelling: lib 2021-12-03 08:12:55 +00:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi spelling: lib 2021-12-03 08:12:55 +00:00
sock lib/sock: create common lookup for spdk_sock_group_impl 2021-11-24 08:34:41 +00:00
thread spelling: lib 2021-12-03 08:12:55 +00:00
trace trace: enable adding relations between traces 2021-10-21 17:57:33 +00:00
trace_parser spelling: lib 2021-12-03 08:12:55 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util: Add spdk_ioviter for iterating iovecs 2021-12-17 09:45:44 +00:00
vfio_user spelling: lib 2021-12-03 08:12:55 +00:00
vhost spelling: lib 2021-12-03 08:12:55 +00:00
virtio spelling: lib 2021-12-03 08:12:55 +00:00
vmd spelling: lib 2021-12-03 08:12:55 +00:00
Makefile lib/trace_parser: add trace_parser library stubs 2021-09-29 08:57:58 +00:00