DPDK patches and discussions
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org, bruce.richardson@intel.com
Cc: thomas@monjalon.net
Subject: [dpdk-dev] [PATCH v7] kernel folder for Linux and BSD modules
Date: Thu, 22 Feb 2018 11:39:05 +0530	[thread overview]
Message-ID: <1519279745-31117-1-git-send-email-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <1519200571-12620-1-git-send-email-hemant.agrawal@nxp.com>

This patch moves the kernel modules code from EAL to a common place.
 - Separate the kernel module code from user space code.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
---
v7: fix freebsd build support
v6: added meson build support
v5: rearrange kernel compliation as per Bruce's suggestion
v4: update the path in MAINTAINERS
v3: move contigmem from bsdapp
v2: rename kern to kernel, add freebsd modules as well

 GNUmakefile                                        |  2 +-
 MAINTAINERS                                        |  8 ++--
 kernel/Makefile                                    |  9 +++++
 kernel/freebsd/BSDmakefile.meson                   | 43 ++++++++++++++++++++
 kernel/freebsd/Makefile                            |  9 +++++
 .../freebsd}/contigmem/BSDmakefile                 |  0
 .../bsdapp => kernel/freebsd}/contigmem/Makefile   |  0
 .../freebsd}/contigmem/contigmem.c                 |  0
 .../freebsd}/contigmem/meson.build                 |  0
 .../bsdapp => kernel/freebsd}/nic_uio/BSDmakefile  |  0
 .../bsdapp => kernel/freebsd}/nic_uio/Makefile     |  0
 .../bsdapp => kernel/freebsd}/nic_uio/meson.build  |  0
 .../bsdapp => kernel/freebsd}/nic_uio/nic_uio.c    |  0
 kernel/linux/Makefile                              |  9 +++++
 .../linuxapp => kernel/linux}/igb_uio/Kbuild       |  0
 .../linuxapp => kernel/linux}/igb_uio/Makefile     |  0
 .../linuxapp => kernel/linux}/igb_uio/compat.h     |  0
 .../linuxapp => kernel/linux}/igb_uio/igb_uio.c    |  0
 .../linuxapp => kernel/linux}/igb_uio/meson.build  |  2 +-
 .../linuxapp => kernel/linux}/kni/Makefile         |  0
 .../linuxapp => kernel/linux}/kni/compat.h         |  0
 .../linuxapp => kernel/linux}/kni/ethtool/README   |  0
 .../linux}/kni/ethtool/igb/e1000_82575.c           |  0
 .../linux}/kni/ethtool/igb/e1000_82575.h           |  0
 .../linux}/kni/ethtool/igb/e1000_api.c             |  0
 .../linux}/kni/ethtool/igb/e1000_api.h             |  0
 .../linux}/kni/ethtool/igb/e1000_defines.h         |  0
 .../linux}/kni/ethtool/igb/e1000_hw.h              |  0
 .../linux}/kni/ethtool/igb/e1000_i210.c            |  0
 .../linux}/kni/ethtool/igb/e1000_i210.h            |  0
 .../linux}/kni/ethtool/igb/e1000_mac.c             |  0
 .../linux}/kni/ethtool/igb/e1000_mac.h             |  0
 .../linux}/kni/ethtool/igb/e1000_manage.c          |  0
 .../linux}/kni/ethtool/igb/e1000_manage.h          |  0
 .../linux}/kni/ethtool/igb/e1000_mbx.c             |  0
 .../linux}/kni/ethtool/igb/e1000_mbx.h             |  0
 .../linux}/kni/ethtool/igb/e1000_nvm.c             |  0
 .../linux}/kni/ethtool/igb/e1000_nvm.h             |  0
 .../linux}/kni/ethtool/igb/e1000_osdep.h           |  0
 .../linux}/kni/ethtool/igb/e1000_phy.c             |  0
 .../linux}/kni/ethtool/igb/e1000_phy.h             |  0
 .../linux}/kni/ethtool/igb/e1000_regs.h            |  0
 .../linux}/kni/ethtool/igb/igb.h                   |  0
 .../linux}/kni/ethtool/igb/igb_ethtool.c           |  0
 .../linux}/kni/ethtool/igb/igb_main.c              |  0
 .../linux}/kni/ethtool/igb/igb_param.c             |  0
 .../linux}/kni/ethtool/igb/igb_regtest.h           |  0
 .../linux}/kni/ethtool/igb/igb_vmdq.c              |  0
 .../linux}/kni/ethtool/igb/igb_vmdq.h              |  0
 .../linux}/kni/ethtool/igb/kcompat.h               |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe.h               |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_82598.c         |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_82598.h         |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_82599.c         |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_82599.h         |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_api.c           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_api.h           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_common.c        |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_common.h        |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_dcb.h           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_ethtool.c       |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_fcoe.h          |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_main.c          |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_mbx.h           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_osdep.h         |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_phy.c           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_phy.h           |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_type.h          |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_x540.c          |  0
 .../linux}/kni/ethtool/ixgbe/ixgbe_x540.h          |  0
 .../linux}/kni/ethtool/ixgbe/kcompat.c             |  0
 .../linux}/kni/ethtool/ixgbe/kcompat.h             |  0
 .../linuxapp => kernel/linux}/kni/kni_dev.h        |  0
 .../linuxapp => kernel/linux}/kni/kni_ethtool.c    |  0
 .../linuxapp => kernel/linux}/kni/kni_fifo.h       |  0
 .../linuxapp => kernel/linux}/kni/kni_misc.c       |  0
 .../linuxapp => kernel/linux}/kni/kni_net.c        |  0
 kernel/meson.build                                 | 46 ++++++++++++++++++++++
 lib/librte_eal/bsdapp/Makefile                     |  2 -
 lib/librte_eal/linuxapp/Makefile                   |  2 -
 lib/librte_eal/meson.build                         | 22 -----------
 meson.build                                        |  1 +
 82 files changed, 123 insertions(+), 32 deletions(-)
 create mode 100644 kernel/Makefile
 create mode 100644 kernel/freebsd/BSDmakefile.meson
 create mode 100644 kernel/freebsd/Makefile
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/contigmem/BSDmakefile (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/contigmem/Makefile (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/contigmem/contigmem.c (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/contigmem/meson.build (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/nic_uio/BSDmakefile (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/nic_uio/Makefile (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/nic_uio/meson.build (100%)
 rename {lib/librte_eal/bsdapp => kernel/freebsd}/nic_uio/nic_uio.c (100%)
 create mode 100644 kernel/linux/Makefile
 rename {lib/librte_eal/linuxapp => kernel/linux}/igb_uio/Kbuild (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/igb_uio/Makefile (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/igb_uio/compat.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/igb_uio/igb_uio.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/igb_uio/meson.build (93%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/Makefile (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/compat.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/README (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_82575.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_82575.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_api.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_api.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_defines.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_hw.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_i210.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_i210.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_mac.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_mac.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_manage.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_manage.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_mbx.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_mbx.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_nvm.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_nvm.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_osdep.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_phy.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_phy.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/e1000_regs.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_main.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_param.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_regtest.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_vmdq.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/igb_vmdq.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/igb/kcompat.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_82598.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_82598.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_82599.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_82599.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_api.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_api.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_common.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_common.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_dcb.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_fcoe.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_main.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_mbx.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_osdep.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_phy.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_phy.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_type.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_x540.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/ixgbe_x540.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/kcompat.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/ethtool/ixgbe/kcompat.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/kni_dev.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/kni_ethtool.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/kni_fifo.h (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/kni_misc.c (100%)
 rename {lib/librte_eal/linuxapp => kernel/linux}/kni/kni_net.c (100%)
 create mode 100644 kernel/meson.build

diff --git a/GNUmakefile b/GNUmakefile
index d07fef0..ae80720 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -12,7 +12,7 @@ export RTE_SDK
 # directory list
 #
 
-ROOTDIRS-y := buildtools lib drivers app
+ROOTDIRS-y := buildtools lib kernel drivers app
 ROOTDIRS-  := test
 
 include $(RTE_SDK)/mk/rte.sdkroot.mk
diff --git a/MAINTAINERS b/MAINTAINERS
index a646ca3..2ecb75b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -209,7 +209,7 @@ F: doc/guides/linux_gsg/
 
 Linux UIO
 M: Ferruh Yigit <ferruh.yigit@intel.com>
-F: lib/librte_eal/linuxapp/igb_uio/
+F: kernel/linux/igb_uio/
 F: drivers/bus/pci/linux/*uio*
 
 Linux VFIO
@@ -225,11 +225,11 @@ F: doc/guides/freebsd_gsg/
 
 FreeBSD contigmem
 M: Bruce Richardson <bruce.richardson@intel.com>
-F: lib/librte_eal/bsdapp/contigmem/
+F: kernel/freebsd/contigmem/
 
 FreeBSD UIO
 M: Bruce Richardson <bruce.richardson@intel.com>
-F: lib/librte_eal/bsdapp/nic_uio/
+F: kernel/freebsd/nic_uio/
 
 
 Core Libraries
@@ -359,7 +359,7 @@ F: doc/guides/nics/features/bonding.ini
 
 Linux KNI
 M: Ferruh Yigit <ferruh.yigit@intel.com>
-F: lib/librte_eal/linuxapp/kni/
+F: kernel/linux/kni/
 F: lib/librte_kni/
 F: doc/guides/prog_guide/kernel_nic_interface.rst
 F: test/test/test_kni.c
diff --git a/kernel/Makefile b/kernel/Makefile
new file mode 100644
index 0000000..8948d04
--- /dev/null
+++ b/kernel/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
+# Copyright 2017 NXP
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += linux
+DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += freebsd
+
+include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/freebsd/BSDmakefile.meson b/kernel/freebsd/BSDmakefile.meson
new file mode 100644
index 0000000..42f5b2b
--- /dev/null
+++ b/kernel/freebsd/BSDmakefile.meson
@@ -0,0 +1,43 @@
+#   BSD LICENSE
+#
+#   Copyright(c) 2017 Intel Corporation. All rights reserved.
+#   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.
+#
+
+# makefile for building kernel modules using meson
+# takes parameters from the environment
+
+# source file is passed via KMOD_SRC as full path, we only use final
+# component of it, as VPATH is used to find actual file, so as to
+# have the .o files placed in the build, not source directory
+VPATH = ${KMOD_SRC:H}
+SRCS = ${KMOD_SRC:T} device_if.h bus_if.h pci_if.h
+CFLAGS += $(KMOD_CFLAGS)
+
+.include <bsd.kmod.mk>
diff --git a/kernel/freebsd/Makefile b/kernel/freebsd/Makefile
new file mode 100644
index 0000000..c93d7a6
--- /dev/null
+++ b/kernel/freebsd/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2017 NXP
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += contigmem
+DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += nic_uio
+
+include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/bsdapp/contigmem/BSDmakefile b/kernel/freebsd/contigmem/BSDmakefile
similarity index 100%
rename from lib/librte_eal/bsdapp/contigmem/BSDmakefile
rename to kernel/freebsd/contigmem/BSDmakefile
diff --git a/lib/librte_eal/bsdapp/contigmem/Makefile b/kernel/freebsd/contigmem/Makefile
similarity index 100%
rename from lib/librte_eal/bsdapp/contigmem/Makefile
rename to kernel/freebsd/contigmem/Makefile
diff --git a/lib/librte_eal/bsdapp/contigmem/contigmem.c b/kernel/freebsd/contigmem/contigmem.c
similarity index 100%
rename from lib/librte_eal/bsdapp/contigmem/contigmem.c
rename to kernel/freebsd/contigmem/contigmem.c
diff --git a/lib/librte_eal/bsdapp/contigmem/meson.build b/kernel/freebsd/contigmem/meson.build
similarity index 100%
rename from lib/librte_eal/bsdapp/contigmem/meson.build
rename to kernel/freebsd/contigmem/meson.build
diff --git a/lib/librte_eal/bsdapp/nic_uio/BSDmakefile b/kernel/freebsd/nic_uio/BSDmakefile
similarity index 100%
rename from lib/librte_eal/bsdapp/nic_uio/BSDmakefile
rename to kernel/freebsd/nic_uio/BSDmakefile
diff --git a/lib/librte_eal/bsdapp/nic_uio/Makefile b/kernel/freebsd/nic_uio/Makefile
similarity index 100%
rename from lib/librte_eal/bsdapp/nic_uio/Makefile
rename to kernel/freebsd/nic_uio/Makefile
diff --git a/lib/librte_eal/bsdapp/nic_uio/meson.build b/kernel/freebsd/nic_uio/meson.build
similarity index 100%
rename from lib/librte_eal/bsdapp/nic_uio/meson.build
rename to kernel/freebsd/nic_uio/meson.build
diff --git a/lib/librte_eal/bsdapp/nic_uio/nic_uio.c b/kernel/freebsd/nic_uio/nic_uio.c
similarity index 100%
rename from lib/librte_eal/bsdapp/nic_uio/nic_uio.c
rename to kernel/freebsd/nic_uio/nic_uio.c
diff --git a/kernel/linux/Makefile b/kernel/linux/Makefile
new file mode 100644
index 0000000..c2c45a3
--- /dev/null
+++ b/kernel/linux/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright 2017 NXP
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
+DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
+
+include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/linuxapp/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/Kbuild
rename to kernel/linux/igb_uio/Kbuild
diff --git a/lib/librte_eal/linuxapp/igb_uio/Makefile b/kernel/linux/igb_uio/Makefile
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/Makefile
rename to kernel/linux/igb_uio/Makefile
diff --git a/lib/librte_eal/linuxapp/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/compat.h
rename to kernel/linux/igb_uio/compat.h
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
similarity index 100%
rename from lib/librte_eal/linuxapp/igb_uio/igb_uio.c
rename to kernel/linux/igb_uio/igb_uio.c
diff --git a/lib/librte_eal/linuxapp/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build
similarity index 93%
rename from lib/librte_eal/linuxapp/igb_uio/meson.build
rename to kernel/linux/igb_uio/meson.build
index 257ef63..356f4ab 100644
--- a/lib/librte_eal/linuxapp/igb_uio/meson.build
+++ b/kernel/linux/igb_uio/meson.build
@@ -18,7 +18,7 @@ custom_target('igb_uio',
 		'M=' + meson.current_build_dir(),
 		'src=' + meson.current_source_dir(),
 		'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
-			'/../../common/include',
+			'/../../../lib/librte_eal/common/include',
 		'modules'],
 	depends: mkfile,
 	build_by_default: get_option('enable_kmods'))
diff --git a/lib/librte_eal/linuxapp/kni/Makefile b/kernel/linux/kni/Makefile
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/Makefile
rename to kernel/linux/kni/Makefile
diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/kernel/linux/kni/compat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/compat.h
rename to kernel/linux/kni/compat.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/README b/kernel/linux/kni/ethtool/README
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/README
rename to kernel/linux/kni/ethtool/README
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c b/kernel/linux/kni/ethtool/igb/e1000_82575.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c
rename to kernel/linux/kni/ethtool/igb/e1000_82575.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h b/kernel/linux/kni/ethtool/igb/e1000_82575.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h
rename to kernel/linux/kni/ethtool/igb/e1000_82575.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c b/kernel/linux/kni/ethtool/igb/e1000_api.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c
rename to kernel/linux/kni/ethtool/igb/e1000_api.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h b/kernel/linux/kni/ethtool/igb/e1000_api.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h
rename to kernel/linux/kni/ethtool/igb/e1000_api.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h b/kernel/linux/kni/ethtool/igb/e1000_defines.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h
rename to kernel/linux/kni/ethtool/igb/e1000_defines.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h b/kernel/linux/kni/ethtool/igb/e1000_hw.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h
rename to kernel/linux/kni/ethtool/igb/e1000_hw.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c b/kernel/linux/kni/ethtool/igb/e1000_i210.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c
rename to kernel/linux/kni/ethtool/igb/e1000_i210.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h b/kernel/linux/kni/ethtool/igb/e1000_i210.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h
rename to kernel/linux/kni/ethtool/igb/e1000_i210.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c b/kernel/linux/kni/ethtool/igb/e1000_mac.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c
rename to kernel/linux/kni/ethtool/igb/e1000_mac.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h b/kernel/linux/kni/ethtool/igb/e1000_mac.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h
rename to kernel/linux/kni/ethtool/igb/e1000_mac.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c b/kernel/linux/kni/ethtool/igb/e1000_manage.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c
rename to kernel/linux/kni/ethtool/igb/e1000_manage.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h b/kernel/linux/kni/ethtool/igb/e1000_manage.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h
rename to kernel/linux/kni/ethtool/igb/e1000_manage.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c b/kernel/linux/kni/ethtool/igb/e1000_mbx.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c
rename to kernel/linux/kni/ethtool/igb/e1000_mbx.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h b/kernel/linux/kni/ethtool/igb/e1000_mbx.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h
rename to kernel/linux/kni/ethtool/igb/e1000_mbx.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c b/kernel/linux/kni/ethtool/igb/e1000_nvm.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c
rename to kernel/linux/kni/ethtool/igb/e1000_nvm.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h b/kernel/linux/kni/ethtool/igb/e1000_nvm.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h
rename to kernel/linux/kni/ethtool/igb/e1000_nvm.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h b/kernel/linux/kni/ethtool/igb/e1000_osdep.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h
rename to kernel/linux/kni/ethtool/igb/e1000_osdep.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/kernel/linux/kni/ethtool/igb/e1000_phy.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
rename to kernel/linux/kni/ethtool/igb/e1000_phy.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h b/kernel/linux/kni/ethtool/igb/e1000_phy.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h
rename to kernel/linux/kni/ethtool/igb/e1000_phy.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h b/kernel/linux/kni/ethtool/igb/e1000_regs.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h
rename to kernel/linux/kni/ethtool/igb/e1000_regs.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h b/kernel/linux/kni/ethtool/igb/igb.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h
rename to kernel/linux/kni/ethtool/igb/igb.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
rename to kernel/linux/kni/ethtool/igb/igb_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/kernel/linux/kni/ethtool/igb/igb_main.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
rename to kernel/linux/kni/ethtool/igb/igb_main.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c b/kernel/linux/kni/ethtool/igb/igb_param.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c
rename to kernel/linux/kni/ethtool/igb/igb_param.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h b/kernel/linux/kni/ethtool/igb/igb_regtest.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h
rename to kernel/linux/kni/ethtool/igb/igb_regtest.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c b/kernel/linux/kni/ethtool/igb/igb_vmdq.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c
rename to kernel/linux/kni/ethtool/igb/igb_vmdq.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h b/kernel/linux/kni/ethtool/igb/igb_vmdq.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h
rename to kernel/linux/kni/ethtool/igb/igb_vmdq.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/kernel/linux/kni/ethtool/igb/kcompat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
rename to kernel/linux/kni/ethtool/igb/kcompat.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82598.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_82598.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82598.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_82598.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_api.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_api.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_api.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_api.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_common.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_common.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_common.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_dcb.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_dcb.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_fcoe.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_fcoe.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_main.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_mbx.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_mbx.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_osdep.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_osdep.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_phy.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_phy.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_phy.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_phy.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_type.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_type.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_x540.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_x540.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe_x540.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h
rename to kernel/linux/kni/ethtool/ixgbe/ixgbe_x540.h
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c b/kernel/linux/kni/ethtool/ixgbe/kcompat.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c
rename to kernel/linux/kni/ethtool/ixgbe/kcompat.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h b/kernel/linux/kni/ethtool/ixgbe/kcompat.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h
rename to kernel/linux/kni/ethtool/ixgbe/kcompat.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_dev.h
rename to kernel/linux/kni/kni_dev.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/kernel/linux/kni/kni_ethtool.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_ethtool.c
rename to kernel/linux/kni/kni_ethtool.c
diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_fifo.h
rename to kernel/linux/kni/kni_fifo.h
diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_misc.c
rename to kernel/linux/kni/kni_misc.c
diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/kernel/linux/kni/kni_net.c
similarity index 100%
rename from lib/librte_eal/linuxapp/kni/kni_net.c
rename to kernel/linux/kni/kni_net.c
diff --git a/kernel/meson.build b/kernel/meson.build
new file mode 100644
index 0000000..697c419
--- /dev/null
+++ b/kernel/meson.build
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+# Initially pull in common settings
+#eal_inc = [global_inc]
+#subdir('common') # defines common_sources, common_objs, etc.
+
+# Now do OS/exec-env specific settings, including building kernel modules
+# The <exec-env>/eal/meson.build file should define env_sources, etc.
+if host_machine.system() == 'linux'
+	dpdk_conf.set('RTE_EXEC_ENV_LINUXAPP', 1)
+	subdir('linux/igb_uio')
+
+elif host_machine.system() == 'freebsd'
+	dpdk_conf.set('RTE_EXEC_ENV_BSDAPP', 1)
+	kmods = ['contigmem', 'nic_uio']
+
+	# for building kernel modules, we use kernel build system using make, as
+	# with Linux. We have a skeleton BSDmakefile, which pulls many of its
+	# values from the environment. Each module only has a single source file
+	# right now, which allows us to simplify things. We pull in the sourcer
+	# files from the individual meson.build files, and then use a custom
+	# target to call make, passing in the values as env parameters.
+	kmod_cflags = ['-I' + meson.build_root(),
+			'-I' + join_paths(meson.source_root(), 'config'),
+			'-include rte_config.h']
+	foreach k:kmods
+		subdir(join_paths('freebsd', k))
+		custom_target(k,
+			input: [files('freebsd/BSDmakefile.meson'), sources],
+			output: k + '.ko',
+			command: ['make', '-f', '@INPUT0@',
+				'KMOD_SRC=@INPUT1@',
+				'KMOD=' + k,
+				'KMOD_CFLAGS=' + ' '.join(kmod_cflags)],
+			build_by_default: get_option('enable_kmods'))
+	endforeach
+else
+	error('unsupported system type @0@'.format(hostmachine.system()))
+endif
+
+cflags += '-D_GNU_SOURCE'
+sources = common_sources + env_sources
+objs = common_objs + env_objs
+headers = common_headers + env_headers
+includes = eal_inc
diff --git a/lib/librte_eal/bsdapp/Makefile b/lib/librte_eal/bsdapp/Makefile
index 9d8e247..5b06b21 100644
--- a/lib/librte_eal/bsdapp/Makefile
+++ b/lib/librte_eal/bsdapp/Makefile
@@ -4,7 +4,5 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal
-DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += contigmem
-DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += nic_uio
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/linuxapp/Makefile b/lib/librte_eal/linuxapp/Makefile
index aa52a01..a0fffa9 100644
--- a/lib/librte_eal/linuxapp/Makefile
+++ b/lib/librte_eal/linuxapp/Makefile
@@ -4,8 +4,6 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal
-DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
-DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
 DEPDIRS-kni := eal
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
index d9ba385..15d1c6a 100644
--- a/lib/librte_eal/meson.build
+++ b/lib/librte_eal/meson.build
@@ -12,33 +12,11 @@ subdir('common') # defines common_sources, common_objs, etc.
 if host_machine.system() == 'linux'
 	dpdk_conf.set('RTE_EXEC_ENV_LINUXAPP', 1)
 	subdir('linuxapp/eal')
-	subdir('linuxapp/igb_uio')
 
 elif host_machine.system() == 'freebsd'
 	dpdk_conf.set('RTE_EXEC_ENV_BSDAPP', 1)
 	subdir('bsdapp/eal')
-	kmods = ['contigmem', 'nic_uio']
 
-	# for building kernel modules, we use kernel build system using make, as
-	# with Linux. We have a skeleton BSDmakefile, which pulls many of its
-	# values from the environment. Each module only has a single source file
-	# right now, which allows us to simplify things. We pull in the sourcer
-	# files from the individual meson.build files, and then use a custom
-	# target to call make, passing in the values as env parameters.
-	kmod_cflags = ['-I' + meson.build_root(),
-			'-I' + join_paths(meson.source_root(), 'config'),
-			'-include rte_config.h']
-	foreach k:kmods
-		subdir(join_paths('bsdapp', k))
-		custom_target(k,
-			input: [files('bsdapp/BSDmakefile.meson'), sources],
-			output: k + '.ko',
-			command: ['make', '-f', '@INPUT0@',
-				'KMOD_SRC=@INPUT1@',
-				'KMOD=' + k,
-				'KMOD_CFLAGS=' + ' '.join(kmod_cflags)],
-			build_by_default: get_option('enable_kmods'))
-	endforeach
 else
 	error('unsupported system type @0@'.format(hostmachine.system()))
 endif
diff --git a/meson.build b/meson.build
index 0d99313..cc16595 100644
--- a/meson.build
+++ b/meson.build
@@ -26,6 +26,7 @@ subdir('config')
 
 # build libs and drivers
 subdir('lib')
+subdir('kernel')
 subdir('buildtools')
 subdir('drivers')
 
-- 
2.7.4

  parent reply	other threads:[~2018-02-22  6:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-22  5:57 [dpdk-dev] [PATCH] Create kern folder for Linux kernel modules Hemant Agrawal
2017-12-22  8:43 ` Thomas Monjalon
2017-12-22 10:04   ` Hemant Agrawal
2017-12-22 11:38     ` Thomas Monjalon
2017-12-22 13:59       ` Wiles, Keith
2017-12-22 14:17         ` Thomas Monjalon
2017-12-22 14:51           ` Wiles, Keith
2017-12-22 16:25             ` Hemant Agrawal
2017-12-22 14:28       ` Van Haaren, Harry
2017-12-22 13:05     ` Burakov, Anatoly
2017-12-26  6:46 ` [dpdk-dev] [PATCH v2] kernel folder for Linux and BSD modules Hemant Agrawal
2017-12-26  8:10   ` Tiwei Bie
2017-12-26  8:50     ` Hemant Agrawal
2017-12-26  8:58   ` [dpdk-dev] [PATCH v3] " Hemant Agrawal
2018-01-10  6:46     ` [dpdk-dev] [PATCH v4] " Hemant Agrawal
2018-01-10 11:04       ` Richardson, Bruce
2018-01-12 15:00       ` [dpdk-dev] [PATCH v5] " Hemant Agrawal
2018-02-21  8:09         ` [dpdk-dev] [PATCH v6] " Hemant Agrawal
2018-02-21 10:56           ` Bruce Richardson
2018-02-22  6:09           ` Hemant Agrawal [this message]
2018-03-21 18:42             ` [dpdk-dev] [PATCH v7] " Thomas Monjalon
2018-03-22 10:27               ` Bruce Richardson
2018-03-22 10:48                 ` Thomas Monjalon
2018-03-22 16:27             ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1519279745-31117-1-git-send-email-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).