porting: update for new env library API
Change-Id: If0af5f10e1143c7d02b5275f0f9b36a13ec0c312 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
e5a7da08c4
commit
c4b80ef36e
17
PORTING.md
17
PORTING.md
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user