summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile.am1
-rwxr-xr-xbuild-aux/extract-odp-netlink-windows-dp-h24
-rw-r--r--datapath-windows/include/automake.mk10
-rw-r--r--datapath-windows/ovsext/precomp.h2
5 files changed, 38 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 22ea3eccc..800352c0c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,3 +60,5 @@ TAGS
cscope.*
tags
_debian
+odp-netlink.h
+OvsDpInterface.h
diff --git a/Makefile.am b/Makefile.am
index eddacafd4..eb5810142 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -316,3 +316,4 @@ include python/compat/automake.mk
include tutorial/automake.mk
include vtep/automake.mk
include datapath-windows/automake.mk
+include datapath-windows/include/automake.mk
diff --git a/build-aux/extract-odp-netlink-windows-dp-h b/build-aux/extract-odp-netlink-windows-dp-h
new file mode 100755
index 000000000..041d103b1
--- /dev/null
+++ b/build-aux/extract-odp-netlink-windows-dp-h
@@ -0,0 +1,24 @@
+# This is a "sed" script that transforms <linux/openvswitch.h> into a
+# form that is suitable for inclusion within the Open vSwitch tree on
+# windows system. The transformed header file can be included by windows
+# driver modules.
+
+# Add a header warning that this is a generated file.
+1i\
+/* -*- mode: c; buffer-read-only: t -*- */\
+/* Generated automatically from <linux/openvswitch.h> -- do not modify! */\
+\
+\
+
+# Avoid using reserved names in header guards.
+s/_LINUX_OPENVSWITCH_H/__OVS_DP_INTERFACE_H_/
+
+# and use the appropriate userspace header.
+s,<linux/types\.h>,"OvsTypes.h",
+
+# Add ETH_ADDR_LEN macro to avoid including userspace packet.h
+s,#include <linux/if_ether\.h>,\n#ifndef ETH_ADDR_LEN \
+#define ETH_ADDR_LEN 6 \n#endif,
+
+# Use OVS's own ETH_ADDR_LEN instead of Linux-specific ETH_ALEN.
+s/ETH_ALEN/ETH_ADDR_LEN/
diff --git a/datapath-windows/include/automake.mk b/datapath-windows/include/automake.mk
new file mode 100644
index 000000000..ac945cbd6
--- /dev/null
+++ b/datapath-windows/include/automake.mk
@@ -0,0 +1,10 @@
+BUILT_SOURCES += $(srcdir)/datapath-windows/include/OvsDpInterface.h
+
+$(srcdir)/datapath-windows/include/OvsDpInterface.h: \
+ datapath/linux/compat/include/linux/openvswitch.h \
+ build-aux/extract-odp-netlink-windows-dp-h
+ sed -f $(srcdir)/build-aux/extract-odp-netlink-windows-dp-h < $< > $@
+
+EXTRA_DIST += $(srcdir)/build-aux/extract-odp-netlink-windows-dp-h
+
+CLEANFILES += $(srcdir)/datapath-windows/include/OvsDpInterface.h
diff --git a/datapath-windows/ovsext/precomp.h b/datapath-windows/ovsext/precomp.h
index 45e72de6f..ec4a6217f 100644
--- a/datapath-windows/ovsext/precomp.h
+++ b/datapath-windows/ovsext/precomp.h
@@ -28,4 +28,4 @@
* Include openvswitch.h from userspace. Changing the location the file from
* include/linux is pending discussion.
*/
-#include "include\linux\openvswitch.h"
+#include "..\include\OvsDpInterface.h"