aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-kernel/netmap/netmap-modules_git.bb')
-rw-r--r--meta-networking/recipes-kernel/netmap/netmap-modules_git.bb57
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
new file mode 100644
index 0000000000..f9ac9ccda1
--- /dev/null
+++ b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
@@ -0,0 +1,57 @@
+require netmap.inc
+
+DEPENDS = "virtual/kernel"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit module
+
+CLEANBROKEN = "1"
+
+export INSTALL_MOD_DIR="kernel/netmap-modules"
+
+EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
+ --kernel-sources=${STAGING_KERNEL_DIR} \
+ --install-mod-path=${D} \
+ --driver-suffix="-netmap" \
+ "
+
+LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}"
+LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}"
+
+do_configure () {
+ cd ${S}/LINUX
+ ./configure ${EXTRA_OECONF}
+}
+
+do_configure_append () {
+ cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
+#define NETMAP_LINUX_HAVE_HRTIMER_MODE_REL
+#define NETMAP_LINUX_HAVE_HRTIMER_FORWARD_NOW
+#define NETMAP_LINUX_HAVE_PHYS_ADDR_T
+#define NETMAP_LINUX_HAVE_ACCESS_ONCE
+#define NETMAP_LINUX_HAVE_NETDEV_OPS
+#define NETMAP_LINUX_ALLOC_NETDEV_4ARGS
+#define NETMAP_LINUX_HAVE_INIT_NET
+#define NETMAP_LINUX_HAVE_LIVE_ADDR_CHANGE
+#define NETMAP_LINUX_HAVE_TX_SKB_SHARING
+#define NETMAP_LINUX_HAVE_UNLOCKED_IOCTL
+#define NETMAP_LINUX_HAVE_PERNET_OPS_ID
+#define NETMAP_LINUX_VIRTIO_FUNCTIONS
+#define NETMAP_LINUX_VIRTIO_FREE_PAGES
+#define NETMAP_LINUX_VIRTIO_GET_VRSIZE
+#define NETMAP_LINUX_TIMER_RTYPE enum hrtimer_restart
+#define NETMAP_LINUX_VIRTIO_MULTI_QUEUE
+#define NETMAP_LINUX_HAVE_E1000E_EXT_RXDESC
+#define NETMAP_LINUX_HAVE_E1000E_DOWN2
+EOF
+}
+
+do_compile () {
+ cd ${S}/LINUX
+ oe_runmake
+}
+
+do_install () {
+ cd ${S}/LINUX
+ oe_runmake install
+}