Skip to content

Commit

Permalink
sysutils/xnvme: Cross-platform libraries and tools for NVMe devices
Browse files Browse the repository at this point in the history
xNVMe provides the means to program and interact with NMe devices from user
space. The foundation of xNVMe is libxnvme, a user space library for working
with NVMe devices. It provides a C API for memory management, that is, for
allocating physical / DMA transferable memory when needed. xNVMe is an NVMe
command interface allowing you to submit and complete NVMe commands in a
synchronous as well as an asynchronous manner.

WWW: https://xnvme.io/

Signed-off-by:	Karl Bonde Torp <k.torp@samsung.com>
PR:		262032
  • Loading branch information
karlowich authored and clausecker committed Nov 24, 2023
1 parent d1a1681 commit e0e6669
Show file tree
Hide file tree
Showing 5 changed files with 270 additions and 0 deletions.
1 change: 1 addition & 0 deletions sysutils/Makefile
Expand Up @@ -1644,6 +1644,7 @@
SUBDIR += xin
SUBDIR += xjobs
SUBDIR += xmbmon
SUBDIR += xnvme
SUBDIR += xorriso
SUBDIR += xosview
SUBDIR += xpipe
Expand Down
37 changes: 37 additions & 0 deletions sysutils/xnvme/Makefile
@@ -0,0 +1,37 @@
PORTNAME= xnvme
DISTVERSION= 0.7.3
CATEGORIES= sysutils
MASTER_SITES= https://github.com/OpenMPDK/xNVMe/releases/download/v${DISTVERSION}/

MAINTAINER= k.torp@samsung.com
COMMENT= Cross-platform libraries and tools for NVMe devices
WWW= https://xnvme.io/

LICENSE= BSD3CLAUSE

NOT_FOR_ARCHS= armv7 i386
NOT_FOR_ARCHS_REASON= use of types with platform-specific length
BROKEN_FreeBSD_12= no member named 'aio_iov' in 'struct aiocb'

USES= meson
USE_LDCONFIG= yes

MESON_ARGS= -Dforce_completions=true \
-Dwith-libaio=disabled \
-Dwith-liburing=disabled \
-Dwith-libvfn=disabled \
-Dwith-spdk=false

OPTIONS_DEFINE= EXAMPLES TESTS TOOLS
OPTIONS_DEFAULT= TOOLS
OPTIONS_SUB= yes

EXAMPLES_DESC= Install the CLI example binaries
TESTS_DESC= Install the CLI test binaries
TOOLS_DESC= Install the CLI tool binaries

EXAMPLES_MESON_TRUE= examples
TESTS_MESON_TRUE= tests
TOOLS_MESON_TRUE= tools

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions sysutils/xnvme/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1700734543
SHA256 (xnvme-0.7.3.tar.gz) = fb1b777e63ed2e6a256de6bd2718db346f6e78eb73ef188ff1aef526ce28f294
SIZE (xnvme-0.7.3.tar.gz) = 31713546
6 changes: 6 additions & 0 deletions sysutils/xnvme/pkg-descr
@@ -0,0 +1,6 @@
xNVMe provides the means to program and interact with NMe devices from user
space. The foundation of xNVMe is libxnvme, a user space library for working
with NVMe devices. It provides a C API for memory management, that is, for
allocating physical / DMA transferable memory when needed. xNVMe is an NVMe
command interface allowing you to submit and complete NVMe commands in a
synchronous as well as an asynchronous manner.
223 changes: 223 additions & 0 deletions sysutils/xnvme/pkg-plist
@@ -0,0 +1,223 @@
%%TOOLS%%bin/kvs
%%TOOLS%%bin/lblk
%%TOOLS%%bin/xdd
%%TOOLS%%bin/xnvme
bin/xnvme-driver
%%EXAMPLES%%bin/xnvme_dev
%%EXAMPLES%%bin/xnvme_enum
%%TOOLS%%bin/xnvme_file
%%EXAMPLES%%bin/xnvme_hello
%%EXAMPLES%%bin/xnvme_io_async
%%EXAMPLES%%bin/xnvme_single_async
%%EXAMPLES%%bin/xnvme_single_sync
%%TESTS%%bin/xnvme_tests_async_intf
%%TESTS%%bin/xnvme_tests_buf
%%TESTS%%bin/xnvme_tests_cli
%%TESTS%%bin/xnvme_tests_enum
%%TESTS%%bin/xnvme_tests_ioworker
%%TESTS%%bin/xnvme_tests_kvs
%%TESTS%%bin/xnvme_tests_lblk
%%TESTS%%bin/xnvme_tests_map
%%TESTS%%bin/xnvme_tests_scc
%%TESTS%%bin/xnvme_tests_xnvme_cli
%%TESTS%%bin/xnvme_tests_xnvme_file
%%TESTS%%bin/xnvme_tests_znd_append
%%TESTS%%bin/xnvme_tests_znd_explicit_open
%%TESTS%%bin/xnvme_tests_znd_state
%%TESTS%%bin/xnvme_tests_znd_zrwa
%%TOOLS%%bin/zoned
%%EXAMPLES%%bin/zoned_io_async
%%EXAMPLES%%bin/zoned_io_sync
include/libxnvme.h
include/libxnvme_adm.h
include/libxnvme_be.h
include/libxnvme_buf.h
include/libxnvme_cli.h
include/libxnvme_cmd.h
include/libxnvme_dev.h
include/libxnvme_file.h
include/libxnvme_geo.h
include/libxnvme_ident.h
include/libxnvme_kvs.h
include/libxnvme_lba.h
include/libxnvme_libconf.h
include/libxnvme_mem.h
include/libxnvme_nvm.h
include/libxnvme_opts.h
include/libxnvme_pp.h
include/libxnvme_queue.h
include/libxnvme_spec.h
include/libxnvme_spec_fs.h
include/libxnvme_spec_pp.h
include/libxnvme_topology.h
include/libxnvme_util.h
include/libxnvme_ver.h
include/libxnvme_znd.h
lib/libxnvme.a
lib/libxnvme.so
libdata/pkgconfig/xnvme.pc
%%TOOLS%%man/man1/kvs-delete.1.gz
%%TOOLS%%man/man1/kvs-enum.1.gz
%%TOOLS%%man/man1/kvs-exist.1.gz
%%TOOLS%%man/man1/kvs-idfy-ns.1.gz
%%TOOLS%%man/man1/kvs-list.1.gz
%%TOOLS%%man/man1/kvs-retrieve.1.gz
%%TOOLS%%man/man1/kvs-store.1.gz
%%TOOLS%%man/man1/kvs.1.gz
%%TOOLS%%man/man1/lblk-dir-receive.1.gz
%%TOOLS%%man/man1/lblk-dir-send.1.gz
%%TOOLS%%man/man1/lblk-enum.1.gz
%%TOOLS%%man/man1/lblk-idfy.1.gz
%%TOOLS%%man/man1/lblk-info.1.gz
%%TOOLS%%man/man1/lblk-read.1.gz
%%TOOLS%%man/man1/lblk-write-dir.1.gz
%%TOOLS%%man/man1/lblk-write-uncor.1.gz
%%TOOLS%%man/man1/lblk-write-zeros.1.gz
%%TOOLS%%man/man1/lblk-write.1.gz
%%TOOLS%%man/man1/lblk.1.gz
%%TOOLS%%man/man1/xdd-async.1.gz
%%TOOLS%%man/man1/xdd-sync.1.gz
%%TOOLS%%man/man1/xdd.1.gz
%%TOOLS%%man/man1/xnvme-ctrlr-reset.1.gz
%%TOOLS%%man/man1/xnvme-dsm.1.gz
%%TOOLS%%man/man1/xnvme-enum.1.gz
%%TOOLS%%man/man1/xnvme-fdp-ruhs.1.gz
%%TOOLS%%man/man1/xnvme-fdp-ruhu.1.gz
%%TOOLS%%man/man1/xnvme-feature-get.1.gz
%%TOOLS%%man/man1/xnvme-feature-set.1.gz
%%TOOLS%%man/man1/xnvme-format.1.gz
%%TOOLS%%man/man1/xnvme-idfy-cs.1.gz
%%TOOLS%%man/man1/xnvme-idfy-ctrlr.1.gz
%%TOOLS%%man/man1/xnvme-idfy-ns.1.gz
%%TOOLS%%man/man1/xnvme-idfy.1.gz
%%TOOLS%%man/man1/xnvme-info.1.gz
%%TOOLS%%man/man1/xnvme-library-info.1.gz
%%TOOLS%%man/man1/xnvme-list.1.gz
%%TOOLS%%man/man1/xnvme-log-erri.1.gz
%%TOOLS%%man/man1/xnvme-log-fdp-config.1.gz
%%TOOLS%%man/man1/xnvme-log-fdp-events.1.gz
%%TOOLS%%man/man1/xnvme-log-fdp-stats.1.gz
%%TOOLS%%man/man1/xnvme-log-health.1.gz
%%TOOLS%%man/man1/xnvme-log-ruhu.1.gz
%%TOOLS%%man/man1/xnvme-log.1.gz
%%TOOLS%%man/man1/xnvme-ns-rescan.1.gz
%%TOOLS%%man/man1/xnvme-padc.1.gz
%%TOOLS%%man/man1/xnvme-pioc.1.gz
%%TOOLS%%man/man1/xnvme-sanitize.1.gz
%%TOOLS%%man/man1/xnvme-set-fdp-events.1.gz
%%TOOLS%%man/man1/xnvme-show-regs.1.gz
%%TOOLS%%man/man1/xnvme-subsystem-reset.1.gz
%%TOOLS%%man/man1/xnvme.1.gz
%%TOOLS%%man/man1/xnvme_file-copy-async.1.gz
%%TOOLS%%man/man1/xnvme_file-copy-sync.1.gz
%%TOOLS%%man/man1/xnvme_file-dump-async-iovec.1.gz
%%TOOLS%%man/man1/xnvme_file-dump-async.1.gz
%%TOOLS%%man/man1/xnvme_file-dump-sync-iovec.1.gz
%%TOOLS%%man/man1/xnvme_file-dump-sync.1.gz
%%TOOLS%%man/man1/xnvme_file-load-async.1.gz
%%TOOLS%%man/man1/xnvme_file-load-sync.1.gz
%%TOOLS%%man/man1/xnvme_file-write-read.1.gz
%%TOOLS%%man/man1/xnvme_file.1.gz
%%EXAMPLES%%man/man1/xnvme_hello-hw.1.gz
%%EXAMPLES%%man/man1/xnvme_hello.1.gz
%%EXAMPLES%%man/man1/xnvme_io_async-read.1.gz
%%EXAMPLES%%man/man1/xnvme_io_async-write.1.gz
%%EXAMPLES%%man/man1/xnvme_io_async.1.gz
%%TESTS%%man/man1/xnvme_tests_async_intf-init_term.1.gz
%%TESTS%%man/man1/xnvme_tests_async_intf.1.gz
%%TESTS%%man/man1/xnvme_tests_buf-buf_alloc_free.1.gz
%%TESTS%%man/man1/xnvme_tests_buf-buf_virt_alloc_free.1.gz
%%TESTS%%man/man1/xnvme_tests_buf.1.gz
%%TESTS%%man/man1/xnvme_tests_cli-optional.1.gz
%%TESTS%%man/man1/xnvme_tests_cli.1.gz
%%TESTS%%man/man1/xnvme_tests_enum-backend.1.gz
%%TESTS%%man/man1/xnvme_tests_enum-multi.1.gz
%%TESTS%%man/man1/xnvme_tests_enum-open.1.gz
%%TESTS%%man/man1/xnvme_tests_enum.1.gz
%%TESTS%%man/man1/xnvme_tests_ioworker-verify-sync.1.gz
%%TESTS%%man/man1/xnvme_tests_ioworker-verify.1.gz
%%TESTS%%man/man1/xnvme_tests_ioworker.1.gz
%%TESTS%%man/man1/xnvme_tests_kvs-kvs_io.1.gz
%%TESTS%%man/man1/xnvme_tests_kvs.1.gz
%%TESTS%%man/man1/xnvme_tests_lblk-io.1.gz
%%TESTS%%man/man1/xnvme_tests_lblk-scopy.1.gz
%%TESTS%%man/man1/xnvme_tests_lblk-write_uncorrectable.1.gz
%%TESTS%%man/man1/xnvme_tests_lblk-write_zeroes.1.gz
%%TESTS%%man/man1/xnvme_tests_lblk.1.gz
%%TESTS%%man/man1/xnvme_tests_map-mem_map_unmap.1.gz
%%TESTS%%man/man1/xnvme_tests_map.1.gz
%%TESTS%%man/man1/xnvme_tests_scc-idfy.1.gz
%%TESTS%%man/man1/xnvme_tests_scc-scopy-msrc.1.gz
%%TESTS%%man/man1/xnvme_tests_scc-scopy.1.gz
%%TESTS%%man/man1/xnvme_tests_scc-support.1.gz
%%TESTS%%man/man1/xnvme_tests_scc.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_cli-check-opt-attr.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_cli-copy-xnvme_cli_run.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_cli.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_file-file-trunc.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_file-write-fsync.1.gz
%%TESTS%%man/man1/xnvme_tests_xnvme_file.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_append-verify.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_append.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_explicit_open-test_open_zdptr.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_explicit_open.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_state-changes.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_state-transition.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_state.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush-explicit.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush-implicit.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-idfy.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-open-with-zrwa.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-open-without-zrwa.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa-support.1.gz
%%TESTS%%man/man1/xnvme_tests_znd_zrwa.1.gz
%%TOOLS%%man/man1/zoned-append.1.gz
%%TOOLS%%man/man1/zoned-changes.1.gz
%%TOOLS%%man/man1/zoned-enum.1.gz
%%TOOLS%%man/man1/zoned-errors.1.gz
%%TOOLS%%man/man1/zoned-idfy-ctrlr.1.gz
%%TOOLS%%man/man1/zoned-idfy-ns.1.gz
%%TOOLS%%man/man1/zoned-info.1.gz
%%TOOLS%%man/man1/zoned-mgmt-close.1.gz
%%TOOLS%%man/man1/zoned-mgmt-finish.1.gz
%%TOOLS%%man/man1/zoned-mgmt-open.1.gz
%%TOOLS%%man/man1/zoned-mgmt-reset.1.gz
%%TOOLS%%man/man1/zoned-mgmt.1.gz
%%TOOLS%%man/man1/zoned-read.1.gz
%%TOOLS%%man/man1/zoned-report.1.gz
%%TOOLS%%man/man1/zoned-write.1.gz
%%TOOLS%%man/man1/zoned.1.gz
%%EXAMPLES%%man/man1/zoned_io_async-append.1.gz
%%EXAMPLES%%man/man1/zoned_io_async-read.1.gz
%%EXAMPLES%%man/man1/zoned_io_async-write.1.gz
%%EXAMPLES%%man/man1/zoned_io_async.1.gz
%%EXAMPLES%%man/man1/zoned_io_sync-append.1.gz
%%EXAMPLES%%man/man1/zoned_io_sync-read.1.gz
%%EXAMPLES%%man/man1/zoned_io_sync-write.1.gz
%%EXAMPLES%%man/man1/zoned_io_sync.1.gz
%%TOOLS%%share/bash-completion/completions/kvs-completions
%%TOOLS%%share/bash-completion/completions/lblk-completions
%%TOOLS%%share/bash-completion/completions/xdd-completions
%%TOOLS%%share/bash-completion/completions/xnvme-completions
%%TOOLS%%share/bash-completion/completions/xnvme_file-completions
%%EXAMPLES%%share/bash-completion/completions/xnvme_hello-completions
%%EXAMPLES%%share/bash-completion/completions/xnvme_io_async-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_async_intf-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_buf-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_cli-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_enum-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_ioworker-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_kvs-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_lblk-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_map-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_scc-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_xnvme_cli-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_xnvme_file-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_append-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_explicit_open-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_state-completions
%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_zrwa-completions
%%TOOLS%%share/bash-completion/completions/zoned-completions
%%EXAMPLES%%share/bash-completion/completions/zoned_io_async-completions
%%EXAMPLES%%share/bash-completion/completions/zoned_io_sync-completions

0 comments on commit e0e6669

Please sign in to comment.