C API

A brief overview of the C API provided by xNVMe follows.

xnvme

The xnvme API is the foundational API of xNVMe, providing device enumeration, memory handling, asynchronous primitives and the fundamental command-interface for communicating with devices.

The Header is available for inspection in its raw form.

Block (NVM)

Building on top of the functionality of xnvme then the xnvme_nvm API provides helpers and structures specific to the NVMe command-set provided by NVM/Logical/Conventional Namespaces. That is the usual read/write, and optional commands such as the Simple-Copy-Command (SCC).

The Header is available for inspection in its raw form.

Zoned (ZNS)

Building on top of the functionality of xnvme then the xnvme_znd API provides helpers and structures specific to NVMe command-set provided by Zoned Namespaces.

The Header is available for inspection in its raw form.

xnvme_cli

The xnvme_cli API provides functionality to create command-line-interfaces for xNVMe related applications. The xNVMe examples, tools, and tests use the library to provide a coherent command-line interface with bash-completion-scripts and man-pages.

The Header is available for inspection in its raw form.