From c4b80ef36e164283cfcc5ab48f8e041fdcc00626 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 1 Nov 2016 14:17:23 -0700 Subject: [PATCH] porting: update for new env library API Change-Id: If0af5f10e1143c7d02b5275f0f9b36a13ec0c312 Signed-off-by: Daniel Verkamp --- PORTING.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/PORTING.md b/PORTING.md index 06b25a527..474a7f583 100644 --- a/PORTING.md +++ b/PORTING.md @@ -1,21 +1,22 @@ SPDK Porting Guide ================== -SPDK is ported to new environments by implementing the nvme_impl -interface. The nvme_impl interface provides APIs for the driver +SPDK is ported to new environments by implementing the *env* +library interface. The *env* interface provides APIs for drivers to allocate physically contiguous and pinned memory, perform PCI operations (config cycles and mapping BARs), virtual to physical -address translation and allocating per I/O data structures. +address translation and managing memory pools. The *env* API is +defined in `[include/spdk/env.h](include/spdk/env.h)`. -SPDK includes a default implementation of the nvme_impl API based -on the Data Plane Development Kit ([DPDK](dpdk.org)). This DPDK -implementation can be found in lib/nvme/nvme_impl.h. DPDK is +SPDK includes a default implementation of the *env* library based +on the Data Plane Development Kit ([DPDK](http://dpdk.org/)). +This DPDK implementation can be found in `lib/env`. DPDK is currently supported on Linux and FreeBSD only. Users who want to use SPDK on other operating system, or in userspace driver frameworks other than DPDK, will need to implement -a new version of nvme_impl.h. The new nvme_impl.h can be +a new version of the *env* library. The new implementation can be integrated into the SPDK build by updating the following line in CONFIG: - CONFIG_NVME_IMPL=nvme_impl.h + CONFIG_ENV?=$(SPDK_ROOT_DIR)/lib/env