91b30e7aec
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>
92 lines
2.8 KiB
Makefile
92 lines
2.8 KiB
Makefile
#
|
|
# BSD LICENSE
|
|
#
|
|
# Copyright (c) Intel Corporation.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
# * Neither the name of Intel Corporation nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
ALL_DEPDIRS+= hello_world passthru nvme
|
|
|
|
ifneq ($(SPDK_HEADER_DIR),)
|
|
COMMON_CFLAGS+=-I$(SPDK_HEADER_DIR)
|
|
endif
|
|
|
|
ifneq ($(SPDK_LIB_DIR),)
|
|
COMMON_CFLAGS+=-L$(SPDK_LIB_DIR)
|
|
endif
|
|
|
|
ifneq ($(DPDK_LIB_DIR),)
|
|
COMMON_CFLAGS+=-L$(DPDK_LIB_DIR)
|
|
endif
|
|
|
|
ifneq ($(VFIO_LIB_DIR),)
|
|
COMMON_CFLAGS+=-L$(VFIO_LIB_DIR)
|
|
endif
|
|
export
|
|
.PHONY: all
|
|
|
|
all: hello_world_bdev_shared_combo nvme_shared
|
|
|
|
static: hello_world_bdev_static nvme_static
|
|
|
|
hello_world_bdev_shared_combo: passthru_shared
|
|
$(MAKE) --directory=hello_world bdev_shared_combo
|
|
|
|
hello_world_bdev_shared_iso: passthru_shared
|
|
$(MAKE) --directory=hello_world bdev_shared_iso
|
|
|
|
hello_world_no_bdev_shared_combo:
|
|
$(MAKE) --directory=hello_world alone_shared_combo
|
|
|
|
hello_world_no_bdev_shared_iso:
|
|
$(MAKE) --directory=hello_world alone_shared_iso
|
|
|
|
hello_world_bdev_static: passthru_static
|
|
$(MAKE) --directory=hello_world bdev_static
|
|
|
|
hello_world_no_bdev_static:
|
|
$(MAKE) --directory=hello_world alone_static
|
|
|
|
passthru_shared:
|
|
$(MAKE) --directory=passthru shared
|
|
|
|
passthru_static:
|
|
$(MAKE) --directory=passthru static
|
|
|
|
nvme_shared:
|
|
$(MAKE) --directory=nvme shared
|
|
|
|
nvme_static:
|
|
$(MAKE) --directory=nvme static
|
|
|
|
clean:
|
|
rm -f ./hello_world/hello_bdev
|
|
rm -f ./passthru/libpassthru_external.*
|
|
rm -f ./nvme/*.{so,o} ./nvme/identify
|