This patch introduces initial definitions for a stripped down version of an out-of-tree NVMe driver. It's purpose is to showcase SPDK's interfaces for writing user-space drivers for various types of devices. The choice of NVMe as the example is based on the fact that it can be emulated by QEMU and the code can be borrowed from SPDK's regular NVMe driver. This driver will only provide the most basic functionalities (e.g. device probing, controller initialization, only admin queue support, etc.) and won't have support for any device quirks. Therefore, it's only intented to be used with emulated devices. In addition, an application utilizing the driver to list all available NVMe controllers and print their identify data will be added. It'll be a very basic, stripped down version of `examples/nvme/identify`. Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I67c748aabf75a37ca72dfb74301a610f7c4ae2bc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6663 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
hello_world | ||
nvme | ||
passthru | ||
Makefile | ||
README.md | ||
test_make.sh |
This directory is meant to demonstrate how to link an external application and bdev module to the SPDK libraries. The makefiles contain six examples of linking against spdk libraries. They cover linking an application both with and without a custom bdev. For each of these categories, they also demonstrate linking against the spdk combined shared library, individual shared libraries, and static libraries.
This directory also contains a convenient test script, test_make.sh, which automates making SPDK and testing all six of these linker options. It takes a single argument, the path to an SPDK repository and should be run as follows:
sudo ./test_make.sh /path/to/spdk
The application hello_bdev
is a symlink and bdev module passthru_external
have been copied from their namesakes
in the top level SPDK github repository and don't have any special
functionality.