[Devel] [PATCH 1/8] Add missing linux headers

Dmitry Mishin dim at odin.com
Wed Jun 3 05:22:51 PDT 2015


These headers are part of vzkernel-devel package now.

On 03/06/15 01:50, "Kir Kolyshkin" <kir at openvz.org> wrote:

>Fix compilation by adding the missing vzlinux headers.
>
>The files are taken from vzkernel sources at
>https://src.openvz.org/projects/OVZ/repos/vzkernel
>
>Signed-off-by: Kir Kolyshkin <kir at openvz.org>
>---
> lib/include/linux/vzctl_venet.h    | 53 ++++++++++++++++++++++++++++
> lib/include/linux/vzctl_veth.h     | 41 ++++++++++++++++++++++
> lib/include/linux/vziptable_defs.h | 71
>++++++++++++++++++++++++++++++++++++++
> lib/include/linux/vzlist.h         | 46 ++++++++++++++++++++++++
> 4 files changed, 211 insertions(+)
> create mode 100644 lib/include/linux/vzctl_venet.h
> create mode 100644 lib/include/linux/vzctl_veth.h
> create mode 100644 lib/include/linux/vziptable_defs.h
> create mode 100644 lib/include/linux/vzlist.h
>
>diff --git a/lib/include/linux/vzctl_venet.h
>b/lib/include/linux/vzctl_venet.h
>new file mode 100644
>index 0000000..2c1650b
>--- /dev/null
>+++ b/lib/include/linux/vzctl_venet.h
>@@ -0,0 +1,53 @@
>+/*
>+ *  include/linux/vzctl_venet.h
>+ *
>+ *  Copyright (C) 2005  SWsoft
>+ *  All rights reserved.
>+ *
>+ *  Licensing governed by "linux/COPYING.SWsoft" file.
>+ *
>+ */
>+
>+#ifndef _UAPI_VZCTL_VENET_H
>+#define _UAPI_VZCTL_VENET_H
>+
>+#include <linux/types.h>
>+#include <linux/ioctl.h>
>+
>+#ifndef __ENVID_T_DEFINED__
>+#define __ENVID_T_DEFINED__
>+typedef unsigned envid_t;
>+#endif
>+
>+#define VE_IP_ADD	1
>+#define VE_IP_DEL	2
>+#define VE_IP_EXT_ADD	3
>+#define VE_IP_EXT_DEL	4
>+
>+struct vzctl_ve_ip_map {
>+	envid_t		veid;
>+	int		op;
>+	struct sockaddr *addr;
>+	int		addrlen;
>+};
>+
>+#define VENETCTLTYPE		'('
>+#define VENETCTL_VE_IP_MAP	_IOW(VENETCTLTYPE, 3, struct vzctl_ve_ip_map)
>+
>+#ifdef __KERNEL__
>+#ifdef CONFIG_COMPAT
>+#include <linux/compat.h>
>+
>+struct compat_vzctl_ve_ip_map {
>+	envid_t		veid;
>+	int		op;
>+	compat_uptr_t	addr;
>+	int		addrlen;
>+};
>+
>+#define VENETCTL_COMPAT_VE_IP_MAP	_IOW(VENETCTLTYPE, 3, struct
>compat_vzctl_ve_ip_map)
>+
>+#endif /* CONFIG_COMPAT */
>+#endif /* __KERNEL__ */
>+
>+#endif /* _UAPI_VZCTL_VENET_H */
>diff --git a/lib/include/linux/vzctl_veth.h
>b/lib/include/linux/vzctl_veth.h
>new file mode 100644
>index 0000000..106497a
>--- /dev/null
>+++ b/lib/include/linux/vzctl_veth.h
>@@ -0,0 +1,41 @@
>+/*
>+ *  include/linux/vzctl_veth.h
>+ *
>+ *  Copyright (C) 2006  SWsoft
>+ *  All rights reserved.
>+ *
>+ *  Licensing governed by "linux/COPYING.SWsoft" file.
>+ *
>+ */
>+
>+#ifndef _UAPI_VZCTL_VETH_H
>+#define _UAPI_VZCTL_VETH_H
>+
>+#include <linux/types.h>
>+#include <linux/ioctl.h>
>+
>+#ifndef __ENVID_T_DEFINED__
>+#define __ENVID_T_DEFINED__
>+typedef unsigned envid_t;
>+#endif
>+
>+#define VE_ETH_ADD			1
>+#define VE_ETH_DEL			2
>+#define VE_ETH_ALLOW_MAC_CHANGE		3
>+#define VE_ETH_DENY_MAC_CHANGE		4
>+
>+struct vzctl_ve_hwaddr {
>+	envid_t		veid;
>+	int		op;
>+	unsigned char	dev_addr[6];
>+	int		addrlen;
>+	char		dev_name[16];
>+	unsigned char	dev_addr_ve[6];
>+	int		addrlen_ve;
>+	char		dev_name_ve[16];
>+};
>+
>+#define VETHCTLTYPE		'['
>+#define VETHCTL_VE_HWADDR	_IOW(VETHCTLTYPE, 3, struct vzctl_ve_hwaddr)
>+
>+#endif /* _UAPI_VZCTL_VETH_H */
>diff --git a/lib/include/linux/vziptable_defs.h
>b/lib/include/linux/vziptable_defs.h
>new file mode 100644
>index 0000000..4ac920a
>--- /dev/null
>+++ b/lib/include/linux/vziptable_defs.h
>@@ -0,0 +1,71 @@
>+#ifndef _UAPI_LINUX_VZIPTABLE_DEFS_H
>+#define _UAPI_LINUX_VZIPTABLE_DEFS_H
>+
>+/*
>+ * This masks represent modules
>+ *
>+ * Strictly speaking we use only a small subset
>+ * of this bits novadays but we MUST RESERVE all
>+ * the bits were ever used in a sake of ABI compatibility
>+ * (ie compatibility with vzctl user-space utility)
>+ *
>+ * DON'T EVER DELETE/MODIFY THIS BITS
>+ */
>+#define VE_IPT_GENERATE(name, shift)	name = (1U << shift)
>+
>+enum ve_ipt_mods {
>+	VE_IPT_GENERATE(VE_IP_IPTABLES_MOD,		 0),
>+	VE_IPT_GENERATE(VE_IP_FILTER_MOD,		 1),
>+	VE_IPT_GENERATE(VE_IP_MANGLE_MOD,		 2),
>+	VE_IPT_GENERATE(VE_IP_MATCH_LIMIT_MOD,		 3),
>+	VE_IPT_GENERATE(VE_IP_MATCH_MULTIPORT_MOD,	 4),
>+	VE_IPT_GENERATE(VE_IP_MATCH_TOS_MOD,		 5),
>+	VE_IPT_GENERATE(VE_IP_TARGET_TOS_MOD,		 6),
>+	VE_IPT_GENERATE(VE_IP_TARGET_REJECT_MOD,	 7),
>+	VE_IPT_GENERATE(VE_IP_TARGET_TCPMSS_MOD,	 8),
>+	VE_IPT_GENERATE(VE_IP_MATCH_TCPMSS_MOD,		 9),
>+	VE_IPT_GENERATE(VE_IP_MATCH_TTL_MOD,		10),
>+	VE_IPT_GENERATE(VE_IP_TARGET_LOG_MOD,		11),
>+	VE_IPT_GENERATE(VE_IP_MATCH_LENGTH_MOD,		12),
>+	VE_IPT_GENERATE(VE_IP_CONNTRACK_MOD,		14),
>+	VE_IPT_GENERATE(VE_IP_CONNTRACK_FTP_MOD,	15),
>+	VE_IPT_GENERATE(VE_IP_CONNTRACK_IRC_MOD,	16),
>+	VE_IPT_GENERATE(VE_IP_MATCH_CONNTRACK_MOD,	17),
>+	VE_IPT_GENERATE(VE_IP_MATCH_STATE_MOD,		18),
>+	VE_IPT_GENERATE(VE_IP_MATCH_HELPER_MOD,		19),
>+	VE_IPT_GENERATE(VE_IP_NAT_MOD,			20),
>+	VE_IPT_GENERATE(VE_IP_NAT_FTP_MOD,		21),
>+	VE_IPT_GENERATE(VE_IP_NAT_IRC_MOD,		22),
>+	VE_IPT_GENERATE(VE_IP_TARGET_REDIRECT_MOD,	23),
>+	VE_IPT_GENERATE(VE_IP_MATCH_OWNER_MOD,		24),
>+	VE_IPT_GENERATE(VE_IP_MATCH_MAC_MOD,		25),
>+	VE_IPT_GENERATE(VE_IP_IPTABLES6_MOD,		26),
>+	VE_IPT_GENERATE(VE_IP_FILTER6_MOD,		27),
>+	VE_IPT_GENERATE(VE_IP_MANGLE6_MOD,		28),
>+	VE_IPT_GENERATE(VE_IP_IPTABLE_NAT_MOD,		29),
>+	VE_IPT_GENERATE(VE_NF_CONNTRACK_MOD,		30),
>+};
>+
>+/* these masks represent modules with their dependences */
>+#define VE_IP_IPTABLES		(VE_IP_IPTABLES_MOD)
>+#define VE_IP_FILTER		(VE_IP_FILTER_MOD | VE_IP_IPTABLES)
>+#define VE_IP_MANGLE		(VE_IP_MANGLE_MOD | VE_IP_IPTABLES)
>+#define VE_IP_IPTABLES6		(VE_IP_IPTABLES6_MOD)
>+#define VE_IP_FILTER6		(VE_IP_FILTER6_MOD | VE_IP_IPTABLES6)
>+#define VE_IP_MANGLE6		(VE_IP_MANGLE6_MOD | VE_IP_IPTABLES6)
>+#define VE_NF_CONNTRACK		(VE_NF_CONNTRACK_MOD | VE_IP_IPTABLES)
>+#define VE_IP_CONNTRACK		(VE_IP_CONNTRACK_MOD | VE_IP_IPTABLES)
>+#define VE_IP_CONNTRACK_FTP	(VE_IP_CONNTRACK_FTP_MOD | VE_IP_CONNTRACK)
>+#define VE_IP_CONNTRACK_IRC	(VE_IP_CONNTRACK_IRC_MOD | VE_IP_CONNTRACK)
>+#define VE_IP_NAT		(VE_IP_NAT_MOD | VE_IP_CONNTRACK)
>+#define VE_IP_NAT_FTP		(VE_IP_NAT_FTP_MOD | VE_IP_NAT |
>VE_IP_CONNTRACK_FTP)
>+#define VE_IP_NAT_IRC		(VE_IP_NAT_IRC_MOD | VE_IP_NAT |
>VE_IP_CONNTRACK_IRC)
>+#define VE_IP_IPTABLE_NAT	(VE_IP_IPTABLE_NAT_MOD | VE_IP_CONNTRACK)
>+
>+/* safe iptables mask to be used by default */
>+#define VE_IP_DEFAULT		(VE_IP_IPTABLES | VE_IP_FILTER | VE_IP_MANGLE)
>+
>+#define VE_IP_NONE		(0ull)
>+#define VE_IP_ALL		(~VE_IP_NONE)
>+
>+#endif /* _UAPI_LINUX_VZIPTABLE_DEFS_H */
>diff --git a/lib/include/linux/vzlist.h b/lib/include/linux/vzlist.h
>new file mode 100644
>index 0000000..e69680e
>--- /dev/null
>+++ b/lib/include/linux/vzlist.h
>@@ -0,0 +1,46 @@
>+/*
>+ * include/linux/vzlist.h
>+ *
>+ * Copyright (c) 2015 Parallels IP Holdings GmbH
>+ *
>+ */
>+
>+#ifndef _UAPI_LINUX_VZLIST_H
>+#define _UAPI_LINUX_VZLIST_H
>+
>+#include <linux/types.h>
>+#include <linux/ioctl.h>
>+
>+#ifndef __KERNEL__
>+#define __user
>+#endif
>+
>+#ifndef __ENVID_T_DEFINED__
>+#define __ENVID_T_DEFINED__
>+typedef unsigned int envid_t;
>+#endif
>+
>+struct vzlist_veidctl {
>+	unsigned int	num;
>+	envid_t	__user	*id;
>+};
>+
>+struct vzlist_vepidctl {
>+	envid_t		veid;
>+	unsigned int	num;
>+	pid_t __user	*pid;
>+};
>+
>+struct vzlist_veipctl {
>+	envid_t		veid;
>+	unsigned int	num;
>+	void __user	*ip;
>+};
>+
>+#define VZLISTTYPE		'x'
>+#define VZCTL_GET_VEIDS		_IOR(VZLISTTYPE, 1, struct vzlist_veidctl)
>+#define VZCTL_GET_VEPIDS	_IOR(VZLISTTYPE, 2, struct vzlist_vepidctl)
>+#define VZCTL_GET_VEIPS		_IOR(VZLISTTYPE, 3, struct vzlist_veipctl)
>+#define VZCTL_GET_VEIP6S	_IOR(VZLISTTYPE, 4, struct vzlist_veipctl)
>+
>+#endif /* _UAPI_LINUX_VZLIST_H */
>-- 
>1.9.3
>
>_______________________________________________
>Devel mailing list
>Devel at openvz.org
>https://lists.openvz.org/mailman/listinfo/devel





More information about the Devel mailing list