From beaa98728cf915d1e21eb4f34157ca3c922e074e Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Sat, 28 Mar 2026 12:43:11 +0100 Subject: [PATCH] performance-metrics: Add iovec construction helpers Signed-off-by: Anatol Belski --- performance-metrics/src/util.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/performance-metrics/src/util.rs b/performance-metrics/src/util.rs index 9ec9102b0..ce480aa4f 100644 --- a/performance-metrics/src/util.rs +++ b/performance-metrics/src/util.rs @@ -73,6 +73,22 @@ pub fn drain_completions(async_io: &mut dyn AsyncIo, count: usize) { } } +/// Build an iovec suitable for a read into `buf`. +pub fn read_iovec(buf: &mut [u8]) -> libc::iovec { + libc::iovec { + iov_base: buf.as_mut_ptr() as *mut libc::c_void, + iov_len: buf.len(), + } +} + +/// Build an iovec suitable for a write from `buf`. +pub fn write_iovec(buf: &[u8]) -> libc::iovec { + libc::iovec { + iov_base: buf.as_ptr() as *mut libc::c_void, + iov_len: buf.len(), + } +} + /// Submit `count` sequential read_vectored calls at `stride`-byte intervals. pub fn submit_reads(async_io: &mut dyn AsyncIo, count: usize, stride: u64, iovec: &[libc::iovec]) { for i in 0..count {