porting: update for new env library API

Change-Id: If0af5f10e1143c7d02b5275f0f9b36a13ec0c312
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Daniel Verkamp 2016-11-01 14:17:23 -07:00
parent e5a7da08c4
commit c4b80ef36e

View File

@ -1,21 +1,22 @@
SPDK Porting Guide SPDK Porting Guide
================== ==================
SPDK is ported to new environments by implementing the nvme_impl SPDK is ported to new environments by implementing the *env*
interface. The nvme_impl interface provides APIs for the driver library interface. The *env* interface provides APIs for drivers
to allocate physically contiguous and pinned memory, perform PCI to allocate physically contiguous and pinned memory, perform PCI
operations (config cycles and mapping BARs), virtual to physical 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 SPDK includes a default implementation of the *env* library based
on the Data Plane Development Kit ([DPDK](dpdk.org)). This DPDK on the Data Plane Development Kit ([DPDK](http://dpdk.org/)).
implementation can be found in lib/nvme/nvme_impl.h. DPDK is This DPDK implementation can be found in `lib/env`. DPDK is
currently supported on Linux and FreeBSD only. currently supported on Linux and FreeBSD only.
Users who want to use SPDK on other operating system, or in Users who want to use SPDK on other operating system, or in
userspace driver frameworks other than DPDK, will need to implement 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 integrated into the SPDK build by updating the following line
in CONFIG: in CONFIG:
CONFIG_NVME_IMPL=nvme_impl.h CONFIG_ENV?=$(SPDK_ROOT_DIR)/lib/env