[packages/kernel] - builds now but we'll wait for 3.7.1 (this 3.7.0 vserver patch contains unneded/unwanted test patch
arekm
arekm at pld-linux.org
Fri Dec 14 08:59:52 CET 2012
commit 2ba6f0dd4134d77f76372300a8aee24efb751004
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Fri Dec 14 08:59:47 2012 +0100
- builds now but we'll wait for 3.7.1 (this 3.7.0 vserver patch contains unneded/unwanted test patches)
kernel-vserver-2.3.patch | 2976 ++++++++++++++++++++++++++++++++++++++++++++++
kernel.spec | 16 +-
2 files changed, 2984 insertions(+), 8 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index a2aca5f..93d53ab 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -1119,9 +1119,9 @@ fi
/lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
/lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
%ifnarch sparc
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
%endif
%endif
%dir /lib/modules/%{kernel_release}/misc
@@ -1218,9 +1218,9 @@ fi
%endif
%ifnarch sparc
/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
%endif
%if %{have_oss}
@@ -1252,7 +1252,7 @@ fi
%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
%{_kernelsrcdir}/arch/*/kernel/sigframe*.h
%{_kernelsrcdir}/drivers/lguest/lg.h
-%{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
+%{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
%{_kernelsrcdir}/kernel/bounds.c
%{_kernelsrcdir}/scripts/basic/*.c
%attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
@@ -1318,7 +1318,7 @@ fi
%exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
%exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
%exclude %{_kernelsrcdir}/drivers/lguest/lg.h
-%exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
+%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
%{_kernelsrcdir}/block
%{_kernelsrcdir}/crypto
%{_kernelsrcdir}/drivers
diff --git a/kernel-vserver-2.3.patch b/kernel-vserver-2.3.patch
index 9bf1d63..057765d 100644
--- a/kernel-vserver-2.3.patch
+++ b/kernel-vserver-2.3.patch
@@ -26154,3 +26154,2979 @@ diff -NurpP linux-3.7-vs2.3.5.1/kernel/vserver/network.c linux-3.7-vs2.3.5.1.1/k
return NF_DROP;
nfct_nat(ct)->masq_index = par->out->ifindex;
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/Kbuild linux-3.7-vs2.3.5.1.3-uapi/include/linux/Kbuild
+--- linux-3.7-vs2.3.5.1.3/include/linux/Kbuild 2012-12-11 16:09:38.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/Kbuild 2012-12-13 22:09:10.000000000 +0000
+@@ -3,4 +3,3 @@ header-y += hdlc/
+ header-y += hsi/
+ header-y += raid/
+ header-y += usb/
+-header-y += vserver/
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/Kbuild linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/Kbuild
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/Kbuild 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000
+@@ -1,8 +0,0 @@
+-
+-header-y += context_cmd.h network_cmd.h space_cmd.h \
+- cacct_cmd.h cvirt_cmd.h limit_cmd.h dlimit_cmd.h \
+- inode_cmd.h tag_cmd.h sched_cmd.h signal_cmd.h \
+- debug_cmd.h device_cmd.h
+-
+-header-y += switch.h network.h monitor.h inode.h device.h
+-
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/base.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/base.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/base.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/base.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_BASE_H
+-#define _VX_BASE_H
++#ifndef _VSERVER_BASE_H
++#define _VSERVER_BASE_H
+
+
+ /* context state changes */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_CACCT_H
+-#define _VX_CACCT_H
++#ifndef _VSERVER_CACCT_H
++#define _VSERVER_CACCT_H
+
+
+ enum sock_acc_field {
+@@ -12,4 +12,4 @@ enum sock_acc_field {
+ VXA_SOCK_SIZE /* array size */
+ };
+
+-#endif /* _VX_CACCT_H */
++#endif /* _VSERVER_CACCT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,23 +1,10 @@
+-#ifndef _VX_CACCT_CMD_H
+-#define _VX_CACCT_CMD_H
+-
+-
+-/* virtual host info name commands */
+-
+-#define VCMD_sock_stat VC_CMD(VSTAT, 5, 0)
+-
+-struct vcmd_sock_stat_v0 {
+- uint32_t field;
+- uint32_t count[3];
+- uint64_t total[3];
+-};
+-
++#ifndef _VSERVER_CACCT_CMD_H
++#define _VSERVER_CACCT_CMD_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/compiler.h>
++#include <uapi/vserver/cacct_cmd.h>
+
+ extern int vc_sock_stat(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CACCT_CMD_H */
++#endif /* _VSERVER_CACCT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_def.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_def.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_def.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_def.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_CACCT_DEF_H
+-#define _VX_CACCT_DEF_H
++#ifndef _VSERVER_CACCT_DEF_H
++#define _VSERVER_CACCT_DEF_H
+
+ #include <asm/atomic.h>
+ #include <linux/vserver/cacct.h>
+@@ -40,4 +40,4 @@ static inline void __dump_vx_cacct(struc
+
+ #endif
+
+-#endif /* _VX_CACCT_DEF_H */
++#endif /* _VSERVER_CACCT_DEF_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_int.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_int.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cacct_int.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cacct_int.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,8 +1,5 @@
+-#ifndef _VX_CACCT_INT_H
+-#define _VX_CACCT_INT_H
+-
+-
+-#ifdef __KERNEL__
++#ifndef _VSERVER_CACCT_INT_H
++#define _VSERVER_CACCT_INT_H
+
+ static inline
+ unsigned long vx_sock_count(struct _vx_cacct *cacct, int type, int pos)
+@@ -17,5 +14,4 @@ unsigned long vx_sock_total(struct _vx_c
+ return atomic_long_read(&cacct->sock[type][pos].total);
+ }
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CACCT_INT_H */
++#endif /* _VSERVER_CACCT_INT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/check.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/check.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/check.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/check.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VS_CHECK_H
+-#define _VS_CHECK_H
++#ifndef _VSERVER_CHECK_H
++#define _VSERVER_CHECK_H
+
+
+ #define MAX_S_CONTEXT 65535 /* Arbitrary limit */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/context.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/context.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/context.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/context.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,88 +1,11 @@
+-#ifndef _VX_CONTEXT_H
+-#define _VX_CONTEXT_H
+-
+-#include <linux/types.h>
+-#include <linux/capability.h>
+-
+-
+-/* context flags */
+-
+-#define VXF_INFO_SCHED 0x00000002
+-#define VXF_INFO_NPROC 0x00000004
+-#define VXF_INFO_PRIVATE 0x00000008
+-
+-#define VXF_INFO_INIT 0x00000010
+-#define VXF_INFO_HIDE 0x00000020
+-#define VXF_INFO_ULIMIT 0x00000040
+-#define VXF_INFO_NSPACE 0x00000080
+-
+-#define VXF_SCHED_HARD 0x00000100
+-#define VXF_SCHED_PRIO 0x00000200
+-#define VXF_SCHED_PAUSE 0x00000400
+-
+-#define VXF_VIRT_MEM 0x00010000
+-#define VXF_VIRT_UPTIME 0x00020000
+-#define VXF_VIRT_CPU 0x00040000
+-#define VXF_VIRT_LOAD 0x00080000
+-#define VXF_VIRT_TIME 0x00100000
+-
+-#define VXF_HIDE_MOUNT 0x01000000
+-/* was VXF_HIDE_NETIF 0x02000000 */
+-#define VXF_HIDE_VINFO 0x04000000
+-
+-#define VXF_STATE_SETUP (1ULL << 32)
+-#define VXF_STATE_INIT (1ULL << 33)
+-#define VXF_STATE_ADMIN (1ULL << 34)
+-
+-#define VXF_SC_HELPER (1ULL << 36)
+-#define VXF_REBOOT_KILL (1ULL << 37)
+-#define VXF_PERSISTENT (1ULL << 38)
+-
+-#define VXF_FORK_RSS (1ULL << 48)
+-#define VXF_PROLIFIC (1ULL << 49)
+-
+-#define VXF_IGNEG_NICE (1ULL << 52)
+-
+-#define VXF_ONE_TIME (0x0007ULL << 32)
+-
+-#define VXF_INIT_SET (VXF_STATE_SETUP | VXF_STATE_INIT | VXF_STATE_ADMIN)
+-
+-
+-/* context migration */
+-
+-#define VXM_SET_INIT 0x00000001
+-#define VXM_SET_REAPER 0x00000002
+-
+-/* context caps */
+-
+-#define VXC_SET_UTSNAME 0x00000001
+-#define VXC_SET_RLIMIT 0x00000002
+-#define VXC_FS_SECURITY 0x00000004
+-#define VXC_FS_TRUSTED 0x00000008
+-#define VXC_TIOCSTI 0x00000010
+-
+-/* was VXC_RAW_ICMP 0x00000100 */
+-#define VXC_SYSLOG 0x00001000
+-#define VXC_OOM_ADJUST 0x00002000
+-#define VXC_AUDIT_CONTROL 0x00004000
+-
+-#define VXC_SECURE_MOUNT 0x00010000
+-#define VXC_SECURE_REMOUNT 0x00020000
+-#define VXC_BINARY_MOUNT 0x00040000
+-
+-#define VXC_QUOTA_CTL 0x00100000
+-#define VXC_ADMIN_MAPPER 0x00200000
+-#define VXC_ADMIN_CLOOP 0x00400000
+-
+-#define VXC_KTHREAD 0x01000000
+-#define VXC_NAMESPACE 0x02000000
+-
++#ifndef _VSERVER_CONTEXT_H
++#define _VSERVER_CONTEXT_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+ #include <linux/rcupdate.h>
++#include <uapi/vserver/context.h>
+
+ #include "limit_def.h"
+ #include "sched_def.h"
+@@ -184,5 +107,4 @@ extern int vx_migrate_task(struct task_s
+ extern long vs_state_change(struct vx_info *, unsigned int);
+
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CONTEXT_H */
++#endif /* _VSERVER_CONTEXT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/context_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/context_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/context_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/context_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,162 +1,33 @@
+-#ifndef _VX_CONTEXT_CMD_H
+-#define _VX_CONTEXT_CMD_H
+-
+-
+-/* vinfo commands */
++#ifndef _VSERVER_CONTEXT_CMD_H
++#define _VSERVER_CONTEXT_CMD_H
+
+-#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
++#include <uapi/vserver/context_cmd.h>
+
+-#ifdef __KERNEL__
+ extern int vc_task_xid(uint32_t);
+
+-#endif /* __KERNEL__ */
+-
+-#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
+-
+-struct vcmd_vx_info_v0 {
+- uint32_t xid;
+- uint32_t initpid;
+- /* more to come */
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_vx_info(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0)
+-
+-struct vcmd_ctx_stat_v0 {
+- uint32_t usecnt;
+- uint32_t tasks;
+- /* more to come */
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_ctx_stat(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-/* context commands */
+-
+-#define VCMD_ctx_create_v0 VC_CMD(VPROC, 1, 0)
+-#define VCMD_ctx_create VC_CMD(VPROC, 1, 1)
+-
+-struct vcmd_ctx_create {
+- uint64_t flagword;
+-};
+-
+-#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0)
+-#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1)
+-
+-struct vcmd_ctx_migrate {
+- uint64_t flagword;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_ctx_create(uint32_t, void __user *);
+ extern int vc_ctx_migrate(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* flag commands */
+-
+-#define VCMD_get_cflags VC_CMD(FLAGS, 1, 0)
+-#define VCMD_set_cflags VC_CMD(FLAGS, 2, 0)
+-
+-struct vcmd_ctx_flags_v0 {
+- uint64_t flagword;
+- uint64_t mask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_cflags(struct vx_info *, void __user *);
+ extern int vc_set_cflags(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* context caps commands */
+-
+-#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1)
+-#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1)
+-
+-struct vcmd_ctx_caps_v1 {
+- uint64_t ccaps;
+- uint64_t cmask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_ccaps(struct vx_info *, void __user *);
+ extern int vc_set_ccaps(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* bcaps commands */
+-
+-#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0)
+-#define VCMD_set_bcaps VC_CMD(FLAGS, 10, 0)
+-
+-struct vcmd_bcaps {
+- uint64_t bcaps;
+- uint64_t bmask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_bcaps(struct vx_info *, void __user *);
+ extern int vc_set_bcaps(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* umask commands */
+-
+-#define VCMD_get_umask VC_CMD(FLAGS, 13, 0)
+-#define VCMD_set_umask VC_CMD(FLAGS, 14, 0)
+-
+-struct vcmd_umask {
+- uint64_t umask;
+- uint64_t mask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_umask(struct vx_info *, void __user *);
+ extern int vc_set_umask(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* wmask commands */
+-
+-#define VCMD_get_wmask VC_CMD(FLAGS, 15, 0)
+-#define VCMD_set_wmask VC_CMD(FLAGS, 16, 0)
+-
+-struct vcmd_wmask {
+- uint64_t wmask;
+- uint64_t mask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_wmask(struct vx_info *, void __user *);
+ extern int vc_set_wmask(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* OOM badness */
+-
+-#define VCMD_get_badness VC_CMD(MEMCTRL, 5, 0)
+-#define VCMD_set_badness VC_CMD(MEMCTRL, 6, 0)
+-
+-struct vcmd_badness_v0 {
+- int64_t bias;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_badness(struct vx_info *, void __user *);
+ extern int vc_set_badness(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CONTEXT_CMD_H */
++#endif /* _VSERVER_CONTEXT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,8 +1,5 @@
+-#ifndef _VX_CVIRT_H
+-#define _VX_CVIRT_H
+-
+-
+-#ifdef __KERNEL__
++#ifndef _VSERVER_CVIRT_H
++#define _VSERVER_CVIRT_H
+
+ struct timespec;
+
+@@ -18,5 +15,4 @@ void vx_update_load(struct vx_info *);
+
+ int vx_do_syslog(int, char __user *, int);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CVIRT_H */
++#endif /* _VSERVER_CVIRT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,53 +1,13 @@
+-#ifndef _VX_CVIRT_CMD_H
+-#define _VX_CVIRT_CMD_H
+-
+-
+-/* virtual host info name commands */
+-
+-#define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0)
+-#define VCMD_get_vhi_name VC_CMD(VHOST, 2, 0)
+-
+-struct vcmd_vhi_name_v0 {
+- uint32_t field;
+- char name[65];
+-};
+-
+-
+-enum vhi_name_field {
+- VHIN_CONTEXT = 0,
+- VHIN_SYSNAME,
+- VHIN_NODENAME,
+- VHIN_RELEASE,
+- VHIN_VERSION,
+- VHIN_MACHINE,
+- VHIN_DOMAINNAME,
+-};
+-
++#ifndef _VSERVER_CVIRT_CMD_H
++#define _VSERVER_CVIRT_CMD_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/compiler.h>
++#include <uapi/vserver/cvirt_cmd.h>
+
+ extern int vc_set_vhi_name(struct vx_info *, void __user *);
+ extern int vc_get_vhi_name(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-#define VCMD_virt_stat VC_CMD(VSTAT, 3, 0)
+-
+-struct vcmd_virt_stat_v0 {
+- uint64_t offset;
+- uint64_t uptime;
+- uint32_t nr_threads;
+- uint32_t nr_running;
+- uint32_t nr_uninterruptible;
+- uint32_t nr_onhold;
+- uint32_t nr_forks;
+- uint32_t load[3];
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_virt_stat(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CVIRT_CMD_H */
++#endif /* _VSERVER_CVIRT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt_def.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt_def.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/cvirt_def.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/cvirt_def.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_CVIRT_DEF_H
+-#define _VX_CVIRT_DEF_H
++#ifndef _VSERVER_CVIRT_DEF_H
++#define _VSERVER_CVIRT_DEF_H
+
+ #include <linux/jiffies.h>
+ #include <linux/spinlock.h>
+@@ -77,4 +77,4 @@ static inline void __dump_vx_cvirt(struc
+
+ #endif
+
+-#endif /* _VX_CVIRT_DEF_H */
++#endif /* _VSERVER_CVIRT_DEF_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/debug.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/debug.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/debug.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/debug.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_DEBUG_H
+-#define _VX_DEBUG_H
++#ifndef _VSERVER_DEBUG_H
++#define _VSERVER_DEBUG_H
+
+
+ #define VXD_CBIT(n, m) (vs_debug_ ## n & (1 << (m)))
+@@ -142,4 +142,4 @@ void dump_vx_info_inactive(int);
+ #endif
+
+
+-#endif /* _VX_DEBUG_H */
++#endif /* _VSERVER_DEBUG_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/debug_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/debug_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/debug_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/debug_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,28 +1,8 @@
+-#ifndef _VX_DEBUG_CMD_H
+-#define _VX_DEBUG_CMD_H
+-
+-
+-/* debug commands */
+-
+-#define VCMD_dump_history VC_CMD(DEBUG, 1, 0)
+-
+-#define VCMD_read_history VC_CMD(DEBUG, 5, 0)
+-#define VCMD_read_monitor VC_CMD(DEBUG, 6, 0)
+-
+-struct vcmd_read_history_v0 {
+- uint32_t index;
+- uint32_t count;
+- char __user *data;
+-};
+-
+-struct vcmd_read_monitor_v0 {
+- uint32_t index;
+- uint32_t count;
+- char __user *data;
+-};
++#ifndef _VSERVER_DEBUG_CMD_H
++#define _VSERVER_DEBUG_CMD_H
+
++#include <uapi/vserver/debug_cmd.h>
+
+-#ifdef __KERNEL__
+
+ #ifdef CONFIG_COMPAT
+
+@@ -54,5 +34,4 @@ extern int vc_read_monitor_x32(uint32_t,
+
+ #endif /* CONFIG_COMPAT */
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_DEBUG_CMD_H */
++#endif /* _VSERVER_DEBUG_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/device.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/device.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,15 +1,9 @@
+-#ifndef _VX_DEVICE_H
+-#define _VX_DEVICE_H
+-
+-
+-#define DATTR_CREATE 0x00000001
+-#define DATTR_OPEN 0x00000002
+-
+-#define DATTR_REMAP 0x00000010
++#ifndef _VSERVER_DEVICE_H
++#define _VSERVER_DEVICE_H
+
+-#define DATTR_MASK 0x00000013
+
++#include <uapi/vserver/device.h>
+
+-#else /* _VX_DEVICE_H */
++#else /* _VSERVER_DEVICE_H */
+ #warning duplicate inclusion
+-#endif /* _VX_DEVICE_H */
++#endif /* _VSERVER_DEVICE_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/device_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/device_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,20 +1,8 @@
+-#ifndef _VX_DEVICE_CMD_H
+-#define _VX_DEVICE_CMD_H
+-
+-
+-/* device vserver commands */
+-
+-#define VCMD_set_mapping VC_CMD(DEVICE, 1, 0)
+-#define VCMD_unset_mapping VC_CMD(DEVICE, 2, 0)
+-
+-struct vcmd_set_mapping_v0 {
+- const char __user *device;
+- const char __user *target;
+- uint32_t flags;
+-};
++#ifndef _VSERVER_DEVICE_CMD_H
++#define _VSERVER_DEVICE_CMD_H
+
++#include <uapi/vserver/device_cmd.h>
+
+-#ifdef __KERNEL__
+
+ #ifdef CONFIG_COMPAT
+
+@@ -40,5 +28,4 @@ extern int vc_unset_mapping_x32(struct v
+
+ #endif /* CONFIG_COMPAT */
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_DEVICE_CMD_H */
++#endif /* _VSERVER_DEVICE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/device_def.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device_def.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/device_def.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/device_def.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_DEVICE_DEF_H
+-#define _VX_DEVICE_DEF_H
++#ifndef _VSERVER_DEVICE_DEF_H
++#define _VSERVER_DEVICE_DEF_H
+
+ #include <linux/types.h>
+
+@@ -14,4 +14,4 @@ struct _vx_device {
+ #endif
+ };
+
+-#endif /* _VX_DEVICE_DEF_H */
++#endif /* _VSERVER_DEVICE_DEF_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/dlimit.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/dlimit.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/dlimit.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/dlimit.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_DLIMIT_H
+-#define _VX_DLIMIT_H
++#ifndef _VSERVER_DLIMIT_H
++#define _VSERVER_DLIMIT_H
+
+ #include "switch.h"
+
+@@ -49,6 +49,6 @@ extern void vx_vsi_statfs(struct super_b
+ typedef uint64_t dlsize_t;
+
+ #endif /* __KERNEL__ */
+-#else /* _VX_DLIMIT_H */
++#else /* _VSERVER_DLIMIT_H */
+ #warning duplicate inclusion
+-#endif /* _VX_DLIMIT_H */
++#endif /* _VSERVER_DLIMIT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/dlimit_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/dlimit_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/dlimit_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/dlimit_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,70 +1,8 @@
+-#ifndef _VX_DLIMIT_CMD_H
+-#define _VX_DLIMIT_CMD_H
+-
+-
+-/* dlimit vserver commands */
+-
+-#define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0)
+-#define VCMD_rem_dlimit VC_CMD(DLIMIT, 2, 0)
+-
+-#define VCMD_set_dlimit VC_CMD(DLIMIT, 5, 0)
+-#define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0)
+-
+-struct vcmd_ctx_dlimit_base_v0 {
+- const char __user *name;
+- uint32_t flags;
+-};
+-
+-struct vcmd_ctx_dlimit_v0 {
+- const char __user *name;
+- uint32_t space_used; /* used space in kbytes */
+- uint32_t space_total; /* maximum space in kbytes */
+- uint32_t inodes_used; /* used inodes */
+- uint32_t inodes_total; /* maximum inodes */
+- uint32_t reserved; /* reserved for root in % */
+- uint32_t flags;
+-};
+-
+-#define CDLIM_UNSET ((uint32_t)0UL)
+-#define CDLIM_INFINITY ((uint32_t)~0UL)
+-#define CDLIM_KEEP ((uint32_t)~1UL)
+-
+-#define DLIME_UNIT 0
+-#define DLIME_KILO 1
+-#define DLIME_MEGA 2
+-#define DLIME_GIGA 3
+-
+-#define DLIMF_SHIFT 0x10
+-
+-#define DLIMS_USED 0
+-#define DLIMS_TOTAL 2
+-
+-static inline
+-uint64_t dlimit_space_32to64(uint32_t val, uint32_t flags, int shift)
+-{
+- int exp = (flags & DLIMF_SHIFT) ?
+- (flags >> shift) & DLIME_GIGA : DLIME_KILO;
+- return ((uint64_t)val) << (10 * exp);
+-}
+-
+-static inline
+-uint32_t dlimit_space_64to32(uint64_t val, uint32_t *flags, int shift)
+-{
+- int exp = 0;
++#ifndef _VSERVER_DLIMIT_CMD_H
++#define _VSERVER_DLIMIT_CMD_H
+
+- if (*flags & DLIMF_SHIFT) {
+- while (val > (1LL << 32) && (exp < 3)) {
+- val >>= 10;
+- exp++;
+- }
+- *flags &= ~(DLIME_GIGA << shift);
+- *flags |= exp << shift;
+- } else
+- val >>= 10;
+- return val;
+-}
++#include <uapi/vserver/dlimit_cmd.h>
+
+-#ifdef __KERNEL__
+
+ #ifdef CONFIG_COMPAT
+
+@@ -105,5 +43,4 @@ extern int vc_get_dlimit_x32(uint32_t, v
+
+ #endif /* CONFIG_COMPAT */
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_DLIMIT_CMD_H */
++#endif /* _VSERVER_DLIMIT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/global.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/global.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/global.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/global.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_GLOBAL_H
+-#define _VX_GLOBAL_H
++#ifndef _VSERVER_GLOBAL_H
++#define _VSERVER_GLOBAL_H
+
+
+ extern atomic_t vx_global_ctotal;
+@@ -16,4 +16,4 @@ extern atomic_t vs_global_user_ns;
+ extern atomic_t vs_global_pid_ns;
+
+
+-#endif /* _VX_GLOBAL_H */
++#endif /* _VSERVER_GLOBAL_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/history.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/history.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/history.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/history.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_HISTORY_H
+-#define _VX_HISTORY_H
++#ifndef _VSERVER_HISTORY_H
++#define _VSERVER_HISTORY_H
+
+
+ enum {
+@@ -194,4 +194,4 @@ extern void vxh_dump_history(void);
+
+ #endif /* CONFIG_VSERVER_HISTORY */
+
+-#endif /* _VX_HISTORY_H */
++#endif /* _VSERVER_HISTORY_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/inode.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/inode.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/inode.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/inode.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,20 +1,7 @@
+-#ifndef _VX_INODE_H
+-#define _VX_INODE_H
+-
+-
+-#define IATTR_TAG 0x01000000
+-
+-#define IATTR_ADMIN 0x00000001
+-#define IATTR_WATCH 0x00000002
+-#define IATTR_HIDE 0x00000004
+-#define IATTR_FLAGS 0x00000007
+-
+-#define IATTR_BARRIER 0x00010000
+-#define IATTR_IXUNLINK 0x00020000
+-#define IATTR_IMMUTABLE 0x00040000
+-#define IATTR_COW 0x00080000
++#ifndef _VSERVER_INODE_H
++#define _VSERVER_INODE_H
+
+-#ifdef __KERNEL__
++#include <uapi/vserver/inode.h>
+
+
+ #ifdef CONFIG_VSERVER_PROC_SECURE
+@@ -27,13 +14,6 @@
+
+ #define vx_hide_check(c, m) (((m) & IATTR_HIDE) ? vx_check(c, m) : 1)
+
+-#endif /* __KERNEL__ */
+-
+-/* inode ioctls */
+-
+-#define FIOC_GETXFLG _IOR('x', 5, long)
+-#define FIOC_SETXFLG _IOW('x', 6, long)
+-
+-#else /* _VX_INODE_H */
++#else /* _VSERVER_INODE_H */
+ #warning duplicate inclusion
+-#endif /* _VX_INODE_H */
++#endif /* _VSERVER_INODE_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/inode_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/inode_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/inode_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/inode_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,30 +1,8 @@
+-#ifndef _VX_INODE_CMD_H
+-#define _VX_INODE_CMD_H
+-
+-
+-/* inode vserver commands */
+-
+-#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
+-#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
+-
+-#define VCMD_fget_iattr VC_CMD(INODE, 3, 0)
+-#define VCMD_fset_iattr VC_CMD(INODE, 4, 0)
+-
+-struct vcmd_ctx_iattr_v1 {
+- const char __user *name;
+- uint32_t tag;
+- uint32_t flags;
+- uint32_t mask;
+-};
+-
+-struct vcmd_ctx_fiattr_v0 {
+- uint32_t tag;
+- uint32_t flags;
+- uint32_t mask;
+-};
++#ifndef _VSERVER_INODE_CMD_H
++#define _VSERVER_INODE_CMD_H
+
++#include <uapi/vserver/inode_cmd.h>
+
+-#ifdef __KERNEL__
+
+
+ #ifdef CONFIG_COMPAT
+@@ -55,5 +33,4 @@ extern int vc_set_iattr_x32(void __user
+
+ #endif /* CONFIG_COMPAT */
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_INODE_CMD_H */
++#endif /* _VSERVER_INODE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,17 +1,8 @@
+-#ifndef _VX_LIMIT_H
+-#define _VX_LIMIT_H
+-
+-#define VLIMIT_NSOCK 16
+-#define VLIMIT_OPENFD 17
+-#define VLIMIT_ANON 18
+-#define VLIMIT_SHMEM 19
+-#define VLIMIT_SEMARY 20
+-#define VLIMIT_NSEMS 21
+-#define VLIMIT_DENTRY 22
+-#define VLIMIT_MAPPED 23
++#ifndef _VSERVER_LIMIT_H
++#define _VSERVER_LIMIT_H
+
++#include <uapi/vserver/limit.h>
+
+-#ifdef __KERNEL__
+
+ #define VLIM_NOCHECK ((1L << VLIMIT_DENTRY) | (1L << RLIMIT_RSS))
+
+@@ -67,5 +58,4 @@ long vx_vsi_cached(struct sysinfo *);
+
+ #define NUM_LIMITS 24
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_LIMIT_H */
++#endif /* _VSERVER_LIMIT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,43 +1,8 @@
+-#ifndef _VX_LIMIT_CMD_H
+-#define _VX_LIMIT_CMD_H
+-
+-
+-/* rlimit vserver commands */
+-
+-#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
+-#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
+-#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
+-#define VCMD_reset_hits VC_CMD(RLIMIT, 7, 0)
+-#define VCMD_reset_minmax VC_CMD(RLIMIT, 9, 0)
+-
+-struct vcmd_ctx_rlimit_v0 {
+- uint32_t id;
+- uint64_t minimum;
+- uint64_t softlimit;
+- uint64_t maximum;
+-};
+-
+-struct vcmd_ctx_rlimit_mask_v0 {
+- uint32_t minimum;
+- uint32_t softlimit;
+- uint32_t maximum;
+-};
+-
+-#define VCMD_rlimit_stat VC_CMD(VSTAT, 1, 0)
+-
+-struct vcmd_rlimit_stat_v0 {
+- uint32_t id;
+- uint32_t hits;
+- uint64_t value;
+- uint64_t minimum;
+- uint64_t maximum;
+-};
++#ifndef _VSERVER_LIMIT_CMD_H
++#define _VSERVER_LIMIT_CMD_H
+
+-#define CRLIM_UNSET (0ULL)
+-#define CRLIM_INFINITY (~0ULL)
+-#define CRLIM_KEEP (~1ULL)
++#include <uapi/vserver/limit_cmd.h>
+
+-#ifdef __KERNEL__
+
+ #ifdef CONFIG_IA32_EMULATION
+
+@@ -67,5 +32,4 @@ extern int vc_set_rlimit_x32(struct vx_i
+
+ #endif /* CONFIG_IA32_EMULATION */
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_LIMIT_CMD_H */
++#endif /* _VSERVER_LIMIT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_def.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_def.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_def.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_def.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_LIMIT_DEF_H
+-#define _VX_LIMIT_DEF_H
++#ifndef _VSERVER_LIMIT_DEF_H
++#define _VSERVER_LIMIT_DEF_H
+
+ #include <asm/atomic.h>
+ #include <asm/resource.h>
+@@ -44,4 +44,4 @@ static inline void __dump_vx_limit(struc
+
+ #endif
+
+-#endif /* _VX_LIMIT_DEF_H */
++#endif /* _VSERVER_LIMIT_DEF_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_int.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_int.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/limit_int.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/limit_int.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,9 +1,5 @@
+-#ifndef _VX_LIMIT_INT_H
+-#define _VX_LIMIT_INT_H
+-
+-#include "context.h"
+-
+-#ifdef __KERNEL__
++#ifndef _VSERVER_LIMIT_INT_H
++#define _VSERVER_LIMIT_INT_H
+
+ #define VXD_RCRES_COND(r) VXD_CBIT(cres, r)
+ #define VXD_RLIMIT_COND(r) VXD_CBIT(limit, r)
+@@ -194,5 +190,4 @@ static inline void vx_limit_fixup(struct
+ }
+
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_LIMIT_INT_H */
++#endif /* _VSERVER_LIMIT_INT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/monitor.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/monitor.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/monitor.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/monitor.h 2012-12-13 22:45:02.000000000 +0000
+@@ -1,96 +1,6 @@
+-#ifndef _VX_MONITOR_H
+-#define _VX_MONITOR_H
+-
+-#include <linux/types.h>
+-
+-enum {
+- VXM_UNUSED = 0,
+-
+- VXM_SYNC = 0x10,
+-
+- VXM_UPDATE = 0x20,
+- VXM_UPDATE_1,
+- VXM_UPDATE_2,
+-
+- VXM_RQINFO_1 = 0x24,
+- VXM_RQINFO_2,
+-
+- VXM_ACTIVATE = 0x40,
+- VXM_DEACTIVATE,
+- VXM_IDLE,
+-
+- VXM_HOLD = 0x44,
+- VXM_UNHOLD,
+-
+- VXM_MIGRATE = 0x48,
+- VXM_RESCHED,
+-
+- /* all other bits are flags */
+- VXM_SCHED = 0x80,
+-};
+-
+-struct _vxm_update_1 {
+- uint32_t tokens_max;
+- uint32_t fill_rate;
+- uint32_t interval;
+-};
+-
+-struct _vxm_update_2 {
+- uint32_t tokens_min;
+- uint32_t fill_rate;
+- uint32_t interval;
+-};
+-
+-struct _vxm_rqinfo_1 {
+- uint16_t running;
+- uint16_t onhold;
+- uint16_t iowait;
+- uint16_t uintr;
+- uint32_t idle_tokens;
+-};
+-
+-struct _vxm_rqinfo_2 {
+- uint32_t norm_time;
+- uint32_t idle_time;
+- uint32_t idle_skip;
+-};
+-
+-struct _vxm_sched {
+- uint32_t tokens;
+- uint32_t norm_time;
+- uint32_t idle_time;
+-};
+-
+-struct _vxm_task {
+- uint16_t pid;
+- uint16_t state;
+-};
+-
+-struct _vxm_event {
+- uint32_t jif;
+- union {
+- uint32_t seq;
+- uint32_t sec;
+- };
+- union {
+- uint32_t tokens;
+- uint32_t nsec;
+- struct _vxm_task tsk;
+- };
+-};
+-
+-struct _vx_mon_entry {
+- uint16_t type;
+- uint16_t xid;
+- union {
+- struct _vxm_event ev;
+- struct _vxm_sched sd;
+- struct _vxm_update_1 u1;
+- struct _vxm_update_2 u2;
+- struct _vxm_rqinfo_1 q1;
+- struct _vxm_rqinfo_2 q2;
+- };
+-};
++#ifndef _VSERVER_MONITOR_H
++#define _VSERVER_MONITOR_H
+
++#include <uapi/vserver/monitor.h>
+
+-#endif /* _VX_MONITOR_H */
++#endif /* _VSERVER_MONITOR_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/network.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/network.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/network.h 2012-12-13 13:40:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/network.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,79 +1,6 @@
+-#ifndef _VX_NETWORK_H
+-#define _VX_NETWORK_H
+-
+-#include <linux/types.h>
+-
+-
+-#define MAX_N_CONTEXT 65535 /* Arbitrary limit */
+-
+-
+-/* network flags */
+-
+-#define NXF_INFO_PRIVATE 0x00000008
+-
+-#define NXF_SINGLE_IP 0x00000100
+-#define NXF_LBACK_REMAP 0x00000200
+-#define NXF_LBACK_ALLOW 0x00000400
+-
+-#define NXF_HIDE_NETIF 0x02000000
+-#define NXF_HIDE_LBACK 0x04000000
+-
+-#define NXF_STATE_SETUP (1ULL << 32)
+-#define NXF_STATE_ADMIN (1ULL << 34)
+-
+-#define NXF_SC_HELPER (1ULL << 36)
+-#define NXF_PERSISTENT (1ULL << 38)
+-
+-#define NXF_ONE_TIME (0x0005ULL << 32)
+-
+-
+-#define NXF_INIT_SET (__nxf_init_set())
+-
+-static inline uint64_t __nxf_init_set(void) {
+- return NXF_STATE_ADMIN
+-#ifdef CONFIG_VSERVER_AUTO_LBACK
+- | NXF_LBACK_REMAP
+- | NXF_HIDE_LBACK
+-#endif
+-#ifdef CONFIG_VSERVER_AUTO_SINGLE
+- | NXF_SINGLE_IP
+-#endif
+- | NXF_HIDE_NETIF;
+-}
+-
+-
+-/* network caps */
+-
+-#define NXC_TUN_CREATE 0x00000001
+-
+-#define NXC_RAW_ICMP 0x00000100
+-
+-#define NXC_MULTICAST 0x00001000
+-
+-
+-/* address types */
+-
+-#define NXA_TYPE_IPV4 0x0001
+-#define NXA_TYPE_IPV6 0x0002
+-
+-#define NXA_TYPE_NONE 0x0000
+-#define NXA_TYPE_ANY 0x00FF
+-
+-#define NXA_TYPE_ADDR 0x0010
+-#define NXA_TYPE_MASK 0x0020
+-#define NXA_TYPE_RANGE 0x0040
+-
+-#define NXA_MASK_ALL (NXA_TYPE_ADDR | NXA_TYPE_MASK | NXA_TYPE_RANGE)
+-
+-#define NXA_MOD_BCAST 0x0100
+-#define NXA_MOD_LBACK 0x0200
+-
+-#define NXA_LOOPBACK 0x1000
+-
+-#define NXA_MASK_BIND (NXA_MASK_ALL | NXA_MOD_BCAST | NXA_MOD_LBACK)
+-#define NXA_MASK_SHOW (NXA_MASK_ALL | NXA_LOOPBACK)
++#ifndef _VSERVER_NETWORK_H
++#define _VSERVER_NETWORK_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+@@ -81,6 +8,7 @@ static inline uint64_t __nxf_init_set(vo
+ #include <linux/in.h>
+ #include <linux/in6.h>
+ #include <asm/atomic.h>
++#include <uapi/vserver/network.h>
+
+ struct nx_addr_v4 {
+ struct nx_addr_v4 *next;
+@@ -145,5 +73,4 @@ struct sock;
+ #define NX_IPV6(n) (0)
+ #endif
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_NETWORK_H */
++#endif /* _VSERVER_NETWORK_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/network_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/network_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/network_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/network_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,110 +1,12 @@
+-#ifndef _VX_NETWORK_CMD_H
+-#define _VX_NETWORK_CMD_H
+-
+-
+-/* vinfo commands */
++#ifndef _VSERVER_NETWORK_CMD_H
++#define _VSERVER_NETWORK_CMD_H
+
+-#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
++#include <uapi/vserver/network_cmd.h>
+
+-#ifdef __KERNEL__
+ extern int vc_task_nid(uint32_t);
+
+-#endif /* __KERNEL__ */
+-
+-#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
+-
+-struct vcmd_nx_info_v0 {
+- uint32_t nid;
+- /* more to come */
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_nx_info(struct nx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-#include <linux/in.h>
+-#include <linux/in6.h>
+-
+-#define VCMD_net_create_v0 VC_CMD(VNET, 1, 0)
+-#define VCMD_net_create VC_CMD(VNET, 1, 1)
+-
+-struct vcmd_net_create {
+- uint64_t flagword;
+-};
+-
+-#define VCMD_net_migrate VC_CMD(NETMIG, 1, 0)
+-
+-#define VCMD_net_add VC_CMD(NETALT, 1, 0)
+-#define VCMD_net_remove VC_CMD(NETALT, 2, 0)
+-
+-struct vcmd_net_addr_v0 {
+- uint16_t type;
+- uint16_t count;
+- struct in_addr ip[4];
+- struct in_addr mask[4];
+-};
+-
+-#define VCMD_net_add_ipv4_v1 VC_CMD(NETALT, 1, 1)
+-#define VCMD_net_rem_ipv4_v1 VC_CMD(NETALT, 2, 1)
+-
+-struct vcmd_net_addr_ipv4_v1 {
+- uint16_t type;
+- uint16_t flags;
+- struct in_addr ip;
+- struct in_addr mask;
+-};
+-
+-#define VCMD_net_add_ipv4 VC_CMD(NETALT, 1, 2)
+-#define VCMD_net_rem_ipv4 VC_CMD(NETALT, 2, 2)
+-
+-struct vcmd_net_addr_ipv4_v2 {
+- uint16_t type;
+- uint16_t flags;
+- struct in_addr ip;
+- struct in_addr ip2;
+- struct in_addr mask;
+-};
+-
+-#define VCMD_net_add_ipv6 VC_CMD(NETALT, 3, 1)
+-#define VCMD_net_remove_ipv6 VC_CMD(NETALT, 4, 1)
+-
+-struct vcmd_net_addr_ipv6_v1 {
+- uint16_t type;
+- uint16_t flags;
+- uint32_t prefix;
+- struct in6_addr ip;
+- struct in6_addr mask;
+-};
+-
+-#define VCMD_add_match_ipv4 VC_CMD(NETALT, 5, 0)
+-#define VCMD_get_match_ipv4 VC_CMD(NETALT, 6, 0)
+-
+-struct vcmd_match_ipv4_v0 {
+- uint16_t type;
+- uint16_t flags;
+- uint16_t parent;
+- uint16_t prefix;
+- struct in_addr ip;
+- struct in_addr ip2;
+- struct in_addr mask;
+-};
+-
+-#define VCMD_add_match_ipv6 VC_CMD(NETALT, 7, 0)
+-#define VCMD_get_match_ipv6 VC_CMD(NETALT, 8, 0)
+-
+-struct vcmd_match_ipv6_v0 {
+- uint16_t type;
+- uint16_t flags;
+- uint16_t parent;
+- uint16_t prefix;
+- struct in6_addr ip;
+- struct in6_addr ip2;
+- struct in6_addr mask;
+-};
+-
+-
+-#ifdef __KERNEL__
+ extern int vc_net_create(uint32_t, void __user *);
+ extern int vc_net_migrate(struct nx_info *, void __user *);
+
+@@ -126,39 +28,10 @@ extern int vc_get_match_ipv4(struct nx_i
+ extern int vc_add_match_ipv6(struct nx_info *, void __user *);
+ extern int vc_get_match_ipv6(struct nx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* flag commands */
+-
+-#define VCMD_get_nflags VC_CMD(FLAGS, 5, 0)
+-#define VCMD_set_nflags VC_CMD(FLAGS, 6, 0)
+-
+-struct vcmd_net_flags_v0 {
+- uint64_t flagword;
+- uint64_t mask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_nflags(struct nx_info *, void __user *);
+ extern int vc_set_nflags(struct nx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-
+-/* network caps commands */
+-
+-#define VCMD_get_ncaps VC_CMD(FLAGS, 7, 0)
+-#define VCMD_set_ncaps VC_CMD(FLAGS, 8, 0)
+-
+-struct vcmd_net_caps_v0 {
+- uint64_t ncaps;
+- uint64_t cmask;
+-};
+-
+-#ifdef __KERNEL__
+ extern int vc_get_ncaps(struct nx_info *, void __user *);
+ extern int vc_set_ncaps(struct nx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_CONTEXT_CMD_H */
++#endif /* _VSERVER_CONTEXT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/percpu.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/percpu.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/percpu.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/percpu.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_PERCPU_H
+-#define _VX_PERCPU_H
++#ifndef _VSERVER_PERCPU_H
++#define _VSERVER_PERCPU_H
+
+ #include "cvirt_def.h"
+ #include "sched_def.h"
+@@ -11,4 +11,4 @@ struct _vx_percpu {
+
+ #define PERCPU_PERCTX (sizeof(struct _vx_percpu))
+
+-#endif /* _VX_PERCPU_H */
++#endif /* _VSERVER_PERCPU_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_SCHED_H
+-#define _VX_SCHED_H
++#ifndef _VSERVER_SCHED_H
++#define _VSERVER_SCHED_H
+
+
+ #ifdef __KERNEL__
+@@ -18,6 +18,6 @@ void vx_update_sched_param(struct _vx_sc
+ struct _vx_sched_pc *sched_pc);
+
+ #endif /* __KERNEL__ */
+-#else /* _VX_SCHED_H */
++#else /* _VSERVER_SCHED_H */
+ #warning duplicate inclusion
+-#endif /* _VX_SCHED_H */
++#endif /* _VSERVER_SCHED_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,21 +1,11 @@
+-#ifndef _VX_SCHED_CMD_H
+-#define _VX_SCHED_CMD_H
+-
+-
+-struct vcmd_prio_bias {
+- int32_t cpu_id;
+- int32_t prio_bias;
+-};
+-
+-#define VCMD_set_prio_bias VC_CMD(SCHED, 4, 0)
+-#define VCMD_get_prio_bias VC_CMD(SCHED, 5, 0)
++#ifndef _VSERVER_SCHED_CMD_H
++#define _VSERVER_SCHED_CMD_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/compiler.h>
++#include <uapi/vserver/sched_cmd.h>
+
+ extern int vc_set_prio_bias(struct vx_info *, void __user *);
+ extern int vc_get_prio_bias(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_SCHED_CMD_H */
++#endif /* _VSERVER_SCHED_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched_def.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched_def.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/sched_def.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/sched_def.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_SCHED_DEF_H
+-#define _VX_SCHED_DEF_H
++#ifndef _VSERVER_SCHED_DEF_H
++#define _VSERVER_SCHED_DEF_H
+
+ #include <linux/spinlock.h>
+ #include <linux/jiffies.h>
+@@ -35,4 +35,4 @@ static inline void __dump_vx_sched(struc
+
+ #endif
+
+-#endif /* _VX_SCHED_DEF_H */
++#endif /* _VSERVER_SCHED_DEF_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/signal.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/signal.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/signal.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/signal.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_SIGNAL_H
+-#define _VX_SIGNAL_H
++#ifndef _VSERVER_SIGNAL_H
++#define _VSERVER_SIGNAL_H
+
+
+ #ifdef __KERNEL__
+@@ -9,6 +9,6 @@ struct vx_info;
+ int vx_info_kill(struct vx_info *, int, int);
+
+ #endif /* __KERNEL__ */
+-#else /* _VX_SIGNAL_H */
++#else /* _VSERVER_SIGNAL_H */
+ #warning duplicate inclusion
+-#endif /* _VX_SIGNAL_H */
++#endif /* _VSERVER_SIGNAL_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/signal_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/signal_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/signal_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/signal_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,43 +1,14 @@
+-#ifndef _VX_SIGNAL_CMD_H
+-#define _VX_SIGNAL_CMD_H
+-
+-
+-/* signalling vserver commands */
+-
+-#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
+-#define VCMD_wait_exit VC_CMD(EVENT, 99, 0)
+-
+-struct vcmd_ctx_kill_v0 {
+- int32_t pid;
+- int32_t sig;
+-};
++#ifndef _VSERVER_SIGNAL_CMD_H
++#define _VSERVER_SIGNAL_CMD_H
+
+-struct vcmd_wait_exit_v0 {
+- int32_t reboot_cmd;
+- int32_t exit_code;
+-};
++#include <uapi/vserver/signal_cmd.h>
+
+-#ifdef __KERNEL__
+
+ extern int vc_ctx_kill(struct vx_info *, void __user *);
+ extern int vc_wait_exit(struct vx_info *, void __user *);
+
+-#endif /* __KERNEL__ */
+-
+-/* process alteration commands */
+-
+-#define VCMD_get_pflags VC_CMD(PROCALT, 5, 0)
+-#define VCMD_set_pflags VC_CMD(PROCALT, 6, 0)
+-
+-struct vcmd_pflags_v0 {
+- uint32_t flagword;
+- uint32_t mask;
+-};
+-
+-#ifdef __KERNEL__
+
+ extern int vc_get_pflags(uint32_t pid, void __user *);
+ extern int vc_set_pflags(uint32_t pid, void __user *);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_SIGNAL_CMD_H */
++#endif /* _VSERVER_SIGNAL_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/space.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/space.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/space.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/space.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,5 +1,5 @@
+-#ifndef _VX_SPACE_H
+-#define _VX_SPACE_H
++#ifndef _VSERVER_SPACE_H
++#define _VSERVER_SPACE_H
+
+ #include <linux/types.h>
+
+@@ -7,6 +7,6 @@ struct vx_info;
+
+ int vx_set_space(struct vx_info *vxi, unsigned long mask, unsigned index);
+
+-#else /* _VX_SPACE_H */
++#else /* _VSERVER_SPACE_H */
+ #warning duplicate inclusion
+-#endif /* _VX_SPACE_H */
++#endif /* _VSERVER_SPACE_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/space_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/space_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/space_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/space_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,32 +1,8 @@
+-#ifndef _VX_SPACE_CMD_H
+-#define _VX_SPACE_CMD_H
+-
+-
+-#define VCMD_enter_space_v0 VC_CMD(PROCALT, 1, 0)
+-#define VCMD_enter_space_v1 VC_CMD(PROCALT, 1, 1)
+-#define VCMD_enter_space VC_CMD(PROCALT, 1, 2)
+-
+-#define VCMD_set_space_v0 VC_CMD(PROCALT, 3, 0)
+-#define VCMD_set_space_v1 VC_CMD(PROCALT, 3, 1)
+-#define VCMD_set_space VC_CMD(PROCALT, 3, 2)
+-
+-#define VCMD_get_space_mask_v0 VC_CMD(PROCALT, 4, 0)
+-
+-#define VCMD_get_space_mask VC_CMD(VSPACE, 0, 1)
+-#define VCMD_get_space_default VC_CMD(VSPACE, 1, 0)
+-
+-
+-struct vcmd_space_mask_v1 {
+- uint64_t mask;
+-};
+-
+-struct vcmd_space_mask_v2 {
+- uint64_t mask;
+- uint32_t index;
+-};
++#ifndef _VSERVER_SPACE_CMD_H
++#define _VSERVER_SPACE_CMD_H
+
++#include <uapi/vserver/space_cmd.h>
+
+-#ifdef __KERNEL__
+
+ extern int vc_enter_space_v1(struct vx_info *, void __user *);
+ extern int vc_set_space_v1(struct vx_info *, void __user *);
+@@ -34,5 +10,4 @@ extern int vc_enter_space(struct vx_info
+ extern int vc_set_space(struct vx_info *, void __user *);
+ extern int vc_get_space_mask(void __user *, int);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_SPACE_CMD_H */
++#endif /* _VSERVER_SPACE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/switch.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/switch.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/switch.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/switch.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,98 +1,8 @@
+-#ifndef _VX_SWITCH_H
+-#define _VX_SWITCH_H
+-
+-#include <linux/types.h>
+-
+-
+-#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
+-#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
+-#define VC_VERSION(c) ((c) & 0xFFF)
+-
+-#define VC_CMD(c, i, v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
+- | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
+-
+-/*
+-
+- Syscall Matrix V2.8
+-
+- |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
+- |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
+- |INFO |SETUP | |MOVE | | | | | |
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICE | |
+- HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | |
+- PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- MEMORY | | | | |MEMCTRL| | |SWAP | |
+- | 16| 17| 18| 19| 20| 21| | 22| 23|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- NETWORK| |VNET |NETALT |NETMIG |NETCTL | | |SERIAL | |
+- | 24| 25| 26| 27| 28| 29| | 30| 31|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- DISK | | | |TAGMIG |DLIMIT | | |INODE | |
+- VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- OTHER |VSTAT | | | | | | |VINFO | |
+- | 40| 41| 42| 43| 44| 45| | 46| 47|
+- =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
+- SPECIAL|EVENT | | | |FLAGS | | |VSPACE | |
+- | 48| 49| 50| 51| 52| 53| | 54| 55|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+- SPECIAL|DEBUG | | | |RLIMIT |SYSCALL| | |COMPAT |
+- | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
+- -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
+-
+-*/
+-
+-#define VC_CAT_VERSION 0
+-
+-#define VC_CAT_VSETUP 1
+-#define VC_CAT_VHOST 2
+-
+-#define VC_CAT_DEVICE 6
+-
+-#define VC_CAT_VPROC 9
+-#define VC_CAT_PROCALT 10
+-#define VC_CAT_PROCMIG 11
+-#define VC_CAT_PROCTRL 12
+-
+-#define VC_CAT_SCHED 14
+-#define VC_CAT_MEMCTRL 20
+-
+-#define VC_CAT_VNET 25
+-#define VC_CAT_NETALT 26
+-#define VC_CAT_NETMIG 27
+-#define VC_CAT_NETCTRL 28
+-
+-#define VC_CAT_TAGMIG 35
+-#define VC_CAT_DLIMIT 36
+-#define VC_CAT_INODE 38
+-
+-#define VC_CAT_VSTAT 40
+-#define VC_CAT_VINFO 46
+-#define VC_CAT_EVENT 48
+-
+-#define VC_CAT_FLAGS 52
+-#define VC_CAT_VSPACE 54
+-#define VC_CAT_DEBUG 56
+-#define VC_CAT_RLIMIT 60
+-
+-#define VC_CAT_SYSTEST 61
+-#define VC_CAT_COMPAT 63
+-
+-/* query version */
+-
+-#define VCMD_get_version VC_CMD(VERSION, 0, 0)
+-#define VCMD_get_vci VC_CMD(VERSION, 1, 0)
+-
++#ifndef _VSERVER_SWITCH_H
++#define _VSERVER_SWITCH_H
+
+-#ifdef __KERNEL__
+
+ #include <linux/errno.h>
++#include <uapi/vserver/switch.h>
+
+-#endif /* __KERNEL__ */
+-
+-#endif /* _VX_SWITCH_H */
+-
++#endif /* _VSERVER_SWITCH_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/linux/vserver/tag_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/tag_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/linux/vserver/tag_cmd.h 2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/linux/vserver/tag_cmd.h 2012-12-13 22:29:23.000000000 +0000
+@@ -1,22 +1,10 @@
+-#ifndef _VX_TAG_CMD_H
+-#define _VX_TAG_CMD_H
+-
+-
+-/* vinfo commands */
++#ifndef _VSERVER_TAG_CMD_H
++#define _VSERVER_TAG_CMD_H
+
+-#define VCMD_task_tag VC_CMD(VINFO, 3, 0)
++#include <uapi/vserver/tag_cmd.h>
+
+-#ifdef __KERNEL__
+ extern int vc_task_tag(uint32_t);
+
+-#endif /* __KERNEL__ */
+-
+-/* context commands */
+-
+-#define VCMD_tag_migrate VC_CMD(TAGMIG, 1, 0)
+-
+-#ifdef __KERNEL__
+ extern int vc_tag_migrate(uint32_t);
+
+-#endif /* __KERNEL__ */
+-#endif /* _VX_TAG_CMD_H */
++#endif /* _VSERVER_TAG_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/Kbuild linux-3.7-vs2.3.5.1.3-uapi/include/uapi/Kbuild
+--- linux-3.7-vs2.3.5.1.3/include/uapi/Kbuild 2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/Kbuild 2012-12-13 21:33:11.000000000 +0000
+@@ -12,3 +12,4 @@ header-y += video/
+ header-y += drm/
+ header-y += xen/
+ header-y += scsi/
++header-y += vserver/
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/Kbuild linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/Kbuild
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/Kbuild 2012-12-13 21:48:50.000000000 +0000
+@@ -0,0 +1,9 @@
++
++header-y += context_cmd.h network_cmd.h space_cmd.h \
++ cacct_cmd.h cvirt_cmd.h limit_cmd.h dlimit_cmd.h \
++ inode_cmd.h tag_cmd.h sched_cmd.h signal_cmd.h \
++ debug_cmd.h device_cmd.h
++
++header-y += switch.h context.h network.h monitor.h \
++ limit.h inode.h device.h
++
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/cacct_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/cacct_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/cacct_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,15 @@
++#ifndef _UAPI_VS_CACCT_CMD_H
++#define _UAPI_VS_CACCT_CMD_H
++
++
++/* virtual host info name commands */
++
++#define VCMD_sock_stat VC_CMD(VSTAT, 5, 0)
++
++struct vcmd_sock_stat_v0 {
++ uint32_t field;
++ uint32_t count[3];
++ uint64_t total[3];
++};
++
++#endif /* _UAPI_VS_CACCT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/context.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/context.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/context.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,80 @@
++#ifndef _UAPI_VS_CONTEXT_H
++#define _UAPI_VS_CONTEXT_H
++
++#include <linux/types.h>
++#include <linux/capability.h>
++
++
++/* context flags */
++
++#define VXF_INFO_SCHED 0x00000002
++#define VXF_INFO_NPROC 0x00000004
++#define VXF_INFO_PRIVATE 0x00000008
++
++#define VXF_INFO_INIT 0x00000010
++#define VXF_INFO_HIDE 0x00000020
++#define VXF_INFO_ULIMIT 0x00000040
++#define VXF_INFO_NSPACE 0x00000080
++
++#define VXF_SCHED_HARD 0x00000100
++#define VXF_SCHED_PRIO 0x00000200
++#define VXF_SCHED_PAUSE 0x00000400
++
++#define VXF_VIRT_MEM 0x00010000
++#define VXF_VIRT_UPTIME 0x00020000
++#define VXF_VIRT_CPU 0x00040000
++#define VXF_VIRT_LOAD 0x00080000
++#define VXF_VIRT_TIME 0x00100000
++
++#define VXF_HIDE_MOUNT 0x01000000
++/* was VXF_HIDE_NETIF 0x02000000 */
++#define VXF_HIDE_VINFO 0x04000000
++
++#define VXF_STATE_SETUP (1ULL << 32)
++#define VXF_STATE_INIT (1ULL << 33)
++#define VXF_STATE_ADMIN (1ULL << 34)
++
++#define VXF_SC_HELPER (1ULL << 36)
++#define VXF_REBOOT_KILL (1ULL << 37)
++#define VXF_PERSISTENT (1ULL << 38)
++
++#define VXF_FORK_RSS (1ULL << 48)
++#define VXF_PROLIFIC (1ULL << 49)
++
++#define VXF_IGNEG_NICE (1ULL << 52)
++
++#define VXF_ONE_TIME (0x0007ULL << 32)
++
++#define VXF_INIT_SET (VXF_STATE_SETUP | VXF_STATE_INIT | VXF_STATE_ADMIN)
++
++
++/* context migration */
++
++#define VXM_SET_INIT 0x00000001
++#define VXM_SET_REAPER 0x00000002
++
++/* context caps */
++
++#define VXC_SET_UTSNAME 0x00000001
++#define VXC_SET_RLIMIT 0x00000002
++#define VXC_FS_SECURITY 0x00000004
++#define VXC_FS_TRUSTED 0x00000008
++#define VXC_TIOCSTI 0x00000010
++
++/* was VXC_RAW_ICMP 0x00000100 */
++#define VXC_SYSLOG 0x00001000
++#define VXC_OOM_ADJUST 0x00002000
++#define VXC_AUDIT_CONTROL 0x00004000
++
++#define VXC_SECURE_MOUNT 0x00010000
++#define VXC_SECURE_REMOUNT 0x00020000
++#define VXC_BINARY_MOUNT 0x00040000
++
++#define VXC_QUOTA_CTL 0x00100000
++#define VXC_ADMIN_MAPPER 0x00200000
++#define VXC_ADMIN_CLOOP 0x00400000
++
++#define VXC_KTHREAD 0x01000000
++#define VXC_NAMESPACE 0x02000000
++
++#endif /* _UAPI_VS_CONTEXT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/context_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/context_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/context_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,115 @@
++#ifndef _UAPI_VS_CONTEXT_CMD_H
++#define _UAPI_VS_CONTEXT_CMD_H
++
++
++/* vinfo commands */
++
++#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
++
++
++#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
++
++struct vcmd_vx_info_v0 {
++ uint32_t xid;
++ uint32_t initpid;
++ /* more to come */
++};
++
++
++#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0)
++
++struct vcmd_ctx_stat_v0 {
++ uint32_t usecnt;
++ uint32_t tasks;
++ /* more to come */
++};
++
++
++/* context commands */
++
++#define VCMD_ctx_create_v0 VC_CMD(VPROC, 1, 0)
++#define VCMD_ctx_create VC_CMD(VPROC, 1, 1)
++
++struct vcmd_ctx_create {
++ uint64_t flagword;
++};
++
++#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0)
++#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1)
++
++struct vcmd_ctx_migrate {
++ uint64_t flagword;
++};
++
++
++
++/* flag commands */
++
++#define VCMD_get_cflags VC_CMD(FLAGS, 1, 0)
++#define VCMD_set_cflags VC_CMD(FLAGS, 2, 0)
++
++struct vcmd_ctx_flags_v0 {
++ uint64_t flagword;
++ uint64_t mask;
++};
++
++
++
++/* context caps commands */
++
++#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1)
++#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1)
++
++struct vcmd_ctx_caps_v1 {
++ uint64_t ccaps;
++ uint64_t cmask;
++};
++
++
++
++/* bcaps commands */
++
++#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0)
++#define VCMD_set_bcaps VC_CMD(FLAGS, 10, 0)
++
++struct vcmd_bcaps {
++ uint64_t bcaps;
++ uint64_t bmask;
++};
++
++
++
++/* umask commands */
++
++#define VCMD_get_umask VC_CMD(FLAGS, 13, 0)
++#define VCMD_set_umask VC_CMD(FLAGS, 14, 0)
++
++struct vcmd_umask {
++ uint64_t umask;
++ uint64_t mask;
++};
++
++
++
++/* wmask commands */
++
++#define VCMD_get_wmask VC_CMD(FLAGS, 15, 0)
++#define VCMD_set_wmask VC_CMD(FLAGS, 16, 0)
++
++struct vcmd_wmask {
++ uint64_t wmask;
++ uint64_t mask;
++};
++
++
++
++/* OOM badness */
++
++#define VCMD_get_badness VC_CMD(MEMCTRL, 5, 0)
++#define VCMD_set_badness VC_CMD(MEMCTRL, 6, 0)
++
++struct vcmd_badness_v0 {
++ int64_t bias;
++};
++
++#endif /* _UAPI_VS_CONTEXT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/cvirt_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/cvirt_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/cvirt_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,41 @@
++#ifndef _UAPI_VS_CVIRT_CMD_H
++#define _UAPI_VS_CVIRT_CMD_H
++
++
++/* virtual host info name commands */
++
++#define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0)
++#define VCMD_get_vhi_name VC_CMD(VHOST, 2, 0)
++
++struct vcmd_vhi_name_v0 {
++ uint32_t field;
++ char name[65];
++};
++
++
++enum vhi_name_field {
++ VHIN_CONTEXT = 0,
++ VHIN_SYSNAME,
++ VHIN_NODENAME,
++ VHIN_RELEASE,
++ VHIN_VERSION,
++ VHIN_MACHINE,
++ VHIN_DOMAINNAME,
++};
++
++
++
++#define VCMD_virt_stat VC_CMD(VSTAT, 3, 0)
++
++struct vcmd_virt_stat_v0 {
++ uint64_t offset;
++ uint64_t uptime;
++ uint32_t nr_threads;
++ uint32_t nr_running;
++ uint32_t nr_uninterruptible;
++ uint32_t nr_onhold;
++ uint32_t nr_forks;
++ uint32_t load[3];
++};
++
++#endif /* _UAPI_VS_CVIRT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/debug_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/debug_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/debug_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,24 @@
++#ifndef _UAPI_VS_DEBUG_CMD_H
++#define _UAPI_VS_DEBUG_CMD_H
++
++
++/* debug commands */
++
++#define VCMD_dump_history VC_CMD(DEBUG, 1, 0)
++
++#define VCMD_read_history VC_CMD(DEBUG, 5, 0)
++#define VCMD_read_monitor VC_CMD(DEBUG, 6, 0)
++
++struct vcmd_read_history_v0 {
++ uint32_t index;
++ uint32_t count;
++ char __user *data;
++};
++
++struct vcmd_read_monitor_v0 {
++ uint32_t index;
++ uint32_t count;
++ char __user *data;
++};
++
++#endif /* _UAPI_VS_DEBUG_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/device.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/device.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/device.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,12 @@
++#ifndef _UAPI_VS_DEVICE_H
++#define _UAPI_VS_DEVICE_H
++
++
++#define DATTR_CREATE 0x00000001
++#define DATTR_OPEN 0x00000002
++
++#define DATTR_REMAP 0x00000010
++
++#define DATTR_MASK 0x00000013
++
++#endif /* _UAPI_VS_DEVICE_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/device_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/device_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/device_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,16 @@
++#ifndef _UAPI_VS_DEVICE_CMD_H
++#define _UAPI_VS_DEVICE_CMD_H
++
++
++/* device vserver commands */
++
++#define VCMD_set_mapping VC_CMD(DEVICE, 1, 0)
++#define VCMD_unset_mapping VC_CMD(DEVICE, 2, 0)
++
++struct vcmd_set_mapping_v0 {
++ const char __user *device;
++ const char __user *target;
++ uint32_t flags;
++};
++
++#endif /* _UAPI_VS_DEVICE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/dlimit_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/dlimit_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/dlimit_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,67 @@
++#ifndef _UAPI_VS_DLIMIT_CMD_H
++#define _UAPI_VS_DLIMIT_CMD_H
++
++
++/* dlimit vserver commands */
++
++#define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0)
++#define VCMD_rem_dlimit VC_CMD(DLIMIT, 2, 0)
++
++#define VCMD_set_dlimit VC_CMD(DLIMIT, 5, 0)
++#define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0)
++
++struct vcmd_ctx_dlimit_base_v0 {
++ const char __user *name;
++ uint32_t flags;
++};
++
++struct vcmd_ctx_dlimit_v0 {
++ const char __user *name;
++ uint32_t space_used; /* used space in kbytes */
++ uint32_t space_total; /* maximum space in kbytes */
++ uint32_t inodes_used; /* used inodes */
++ uint32_t inodes_total; /* maximum inodes */
++ uint32_t reserved; /* reserved for root in % */
++ uint32_t flags;
++};
++
++#define CDLIM_UNSET ((uint32_t)0UL)
++#define CDLIM_INFINITY ((uint32_t)~0UL)
++#define CDLIM_KEEP ((uint32_t)~1UL)
++
++#define DLIME_UNIT 0
++#define DLIME_KILO 1
++#define DLIME_MEGA 2
++#define DLIME_GIGA 3
++
++#define DLIMF_SHIFT 0x10
++
++#define DLIMS_USED 0
++#define DLIMS_TOTAL 2
++
++static inline
++uint64_t dlimit_space_32to64(uint32_t val, uint32_t flags, int shift)
++{
++ int exp = (flags & DLIMF_SHIFT) ?
++ (flags >> shift) & DLIME_GIGA : DLIME_KILO;
++ return ((uint64_t)val) << (10 * exp);
++}
++
++static inline
++uint32_t dlimit_space_64to32(uint64_t val, uint32_t *flags, int shift)
++{
++ int exp = 0;
++
++ if (*flags & DLIMF_SHIFT) {
++ while (val > (1LL << 32) && (exp < 3)) {
++ val >>= 10;
++ exp++;
++ }
++ *flags &= ~(DLIME_GIGA << shift);
++ *flags |= exp << shift;
++ } else
++ val >>= 10;
++ return val;
++}
++
++#endif /* _UAPI_VS_DLIMIT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/inode.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/inode.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/inode.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,23 @@
++#ifndef _UAPI_VS_INODE_H
++#define _UAPI_VS_INODE_H
++
++
++#define IATTR_TAG 0x01000000
++
++#define IATTR_ADMIN 0x00000001
++#define IATTR_WATCH 0x00000002
++#define IATTR_HIDE 0x00000004
++#define IATTR_FLAGS 0x00000007
++
++#define IATTR_BARRIER 0x00010000
++#define IATTR_IXUNLINK 0x00020000
++#define IATTR_IMMUTABLE 0x00040000
++#define IATTR_COW 0x00080000
++
++
++/* inode ioctls */
++
++#define FIOC_GETXFLG _IOR('x', 5, long)
++#define FIOC_SETXFLG _IOW('x', 6, long)
++
++#endif /* _UAPI_VS_INODE_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/inode_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/inode_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/inode_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,26 @@
++#ifndef _UAPI_VS_INODE_CMD_H
++#define _UAPI_VS_INODE_CMD_H
++
++
++/* inode vserver commands */
++
++#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
++#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
++
++#define VCMD_fget_iattr VC_CMD(INODE, 3, 0)
++#define VCMD_fset_iattr VC_CMD(INODE, 4, 0)
++
++struct vcmd_ctx_iattr_v1 {
++ const char __user *name;
++ uint32_t tag;
++ uint32_t flags;
++ uint32_t mask;
++};
++
++struct vcmd_ctx_fiattr_v0 {
++ uint32_t tag;
++ uint32_t flags;
++ uint32_t mask;
++};
++
++#endif /* _UAPI_VS_INODE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/limit.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/limit.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/limit.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,14 @@
++#ifndef _UAPI_VS_LIMIT_H
++#define _UAPI_VS_LIMIT_H
++
++
++#define VLIMIT_NSOCK 16
++#define VLIMIT_OPENFD 17
++#define VLIMIT_ANON 18
++#define VLIMIT_SHMEM 19
++#define VLIMIT_SEMARY 20
++#define VLIMIT_NSEMS 21
++#define VLIMIT_DENTRY 22
++#define VLIMIT_MAPPED 23
++
++#endif /* _UAPI_VS_LIMIT_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/limit_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/limit_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/limit_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,40 @@
++#ifndef _UAPI_VS_LIMIT_CMD_H
++#define _UAPI_VS_LIMIT_CMD_H
++
++
++/* rlimit vserver commands */
++
++#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
++#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
++#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
++#define VCMD_reset_hits VC_CMD(RLIMIT, 7, 0)
++#define VCMD_reset_minmax VC_CMD(RLIMIT, 9, 0)
++
++struct vcmd_ctx_rlimit_v0 {
++ uint32_t id;
++ uint64_t minimum;
++ uint64_t softlimit;
++ uint64_t maximum;
++};
++
++struct vcmd_ctx_rlimit_mask_v0 {
++ uint32_t minimum;
++ uint32_t softlimit;
++ uint32_t maximum;
++};
++
++#define VCMD_rlimit_stat VC_CMD(VSTAT, 1, 0)
++
++struct vcmd_rlimit_stat_v0 {
++ uint32_t id;
++ uint32_t hits;
++ uint64_t value;
++ uint64_t minimum;
++ uint64_t maximum;
++};
++
++#define CRLIM_UNSET (0ULL)
++#define CRLIM_INFINITY (~0ULL)
++#define CRLIM_KEEP (~1ULL)
++
++#endif /* _UAPI_VS_LIMIT_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/monitor.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/monitor.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/monitor.h 2012-12-13 22:45:56.000000000 +0000
+@@ -0,0 +1,96 @@
++#ifndef _UAPI_VS_MONITOR_H
++#define _UAPI_VS_MONITOR_H
++
++#include <linux/types.h>
++
++
++enum {
++ VXM_UNUSED = 0,
++
++ VXM_SYNC = 0x10,
++
++ VXM_UPDATE = 0x20,
++ VXM_UPDATE_1,
++ VXM_UPDATE_2,
++
++ VXM_RQINFO_1 = 0x24,
++ VXM_RQINFO_2,
++
++ VXM_ACTIVATE = 0x40,
++ VXM_DEACTIVATE,
++ VXM_IDLE,
++
++ VXM_HOLD = 0x44,
++ VXM_UNHOLD,
++
++ VXM_MIGRATE = 0x48,
++ VXM_RESCHED,
++
++ /* all other bits are flags */
++ VXM_SCHED = 0x80,
++};
++
++struct _vxm_update_1 {
++ uint32_t tokens_max;
++ uint32_t fill_rate;
++ uint32_t interval;
++};
++
++struct _vxm_update_2 {
++ uint32_t tokens_min;
++ uint32_t fill_rate;
++ uint32_t interval;
++};
++
++struct _vxm_rqinfo_1 {
++ uint16_t running;
++ uint16_t onhold;
++ uint16_t iowait;
++ uint16_t uintr;
++ uint32_t idle_tokens;
++};
++
++struct _vxm_rqinfo_2 {
++ uint32_t norm_time;
++ uint32_t idle_time;
++ uint32_t idle_skip;
++};
++
++struct _vxm_sched {
++ uint32_t tokens;
++ uint32_t norm_time;
++ uint32_t idle_time;
++};
++
++struct _vxm_task {
++ uint16_t pid;
++ uint16_t state;
++};
++
++struct _vxm_event {
++ uint32_t jif;
++ union {
++ uint32_t seq;
++ uint32_t sec;
++ };
++ union {
++ uint32_t tokens;
++ uint32_t nsec;
++ struct _vxm_task tsk;
++ };
++};
++
++struct _vx_mon_entry {
++ uint16_t type;
++ uint16_t xid;
++ union {
++ struct _vxm_event ev;
++ struct _vxm_sched sd;
++ struct _vxm_update_1 u1;
++ struct _vxm_update_2 u2;
++ struct _vxm_rqinfo_1 q1;
++ struct _vxm_rqinfo_2 q2;
++ };
++};
++
++#endif /* _UAPI_VS_MONITOR_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/network.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/network.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/network.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,76 @@
++#ifndef _UAPI_VS_NETWORK_H
++#define _UAPI_VS_NETWORK_H
++
++#include <linux/types.h>
++
++
++#define MAX_N_CONTEXT 65535 /* Arbitrary limit */
++
++
++/* network flags */
++
++#define NXF_INFO_PRIVATE 0x00000008
++
++#define NXF_SINGLE_IP 0x00000100
++#define NXF_LBACK_REMAP 0x00000200
++#define NXF_LBACK_ALLOW 0x00000400
++
++#define NXF_HIDE_NETIF 0x02000000
++#define NXF_HIDE_LBACK 0x04000000
++
++#define NXF_STATE_SETUP (1ULL << 32)
++#define NXF_STATE_ADMIN (1ULL << 34)
++
++#define NXF_SC_HELPER (1ULL << 36)
++#define NXF_PERSISTENT (1ULL << 38)
++
++#define NXF_ONE_TIME (0x0005ULL << 32)
++
++
++#define NXF_INIT_SET (__nxf_init_set())
++
++static inline uint64_t __nxf_init_set(void) {
++ return NXF_STATE_ADMIN
++#ifdef CONFIG_VSERVER_AUTO_LBACK
++ | NXF_LBACK_REMAP
++ | NXF_HIDE_LBACK
++#endif
++#ifdef CONFIG_VSERVER_AUTO_SINGLE
++ | NXF_SINGLE_IP
++#endif
++ | NXF_HIDE_NETIF;
++}
++
++
++/* network caps */
++
++#define NXC_TUN_CREATE 0x00000001
++
++#define NXC_RAW_ICMP 0x00000100
++
++#define NXC_MULTICAST 0x00001000
++
++
++/* address types */
++
++#define NXA_TYPE_IPV4 0x0001
++#define NXA_TYPE_IPV6 0x0002
++
++#define NXA_TYPE_NONE 0x0000
++#define NXA_TYPE_ANY 0x00FF
++
++#define NXA_TYPE_ADDR 0x0010
++#define NXA_TYPE_MASK 0x0020
++#define NXA_TYPE_RANGE 0x0040
++
++#define NXA_MASK_ALL (NXA_TYPE_ADDR | NXA_TYPE_MASK | NXA_TYPE_RANGE)
++
++#define NXA_MOD_BCAST 0x0100
++#define NXA_MOD_LBACK 0x0200
++
++#define NXA_LOOPBACK 0x1000
++
++#define NXA_MASK_BIND (NXA_MASK_ALL | NXA_MOD_BCAST | NXA_MOD_LBACK)
++#define NXA_MASK_SHOW (NXA_MASK_ALL | NXA_LOOPBACK)
++
++#endif /* _UAPI_VS_NETWORK_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/network_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/network_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/network_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,123 @@
++#ifndef _UAPI_VS_NETWORK_CMD_H
++#define _UAPI_VS_NETWORK_CMD_H
++
++
++/* vinfo commands */
++
++#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
++
++
++#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
++
++struct vcmd_nx_info_v0 {
++ uint32_t nid;
++ /* more to come */
++};
++
++
++#include <linux/in.h>
++#include <linux/in6.h>
++
++#define VCMD_net_create_v0 VC_CMD(VNET, 1, 0)
++#define VCMD_net_create VC_CMD(VNET, 1, 1)
++
++struct vcmd_net_create {
++ uint64_t flagword;
++};
++
++#define VCMD_net_migrate VC_CMD(NETMIG, 1, 0)
++
++#define VCMD_net_add VC_CMD(NETALT, 1, 0)
++#define VCMD_net_remove VC_CMD(NETALT, 2, 0)
++
++struct vcmd_net_addr_v0 {
++ uint16_t type;
++ uint16_t count;
++ struct in_addr ip[4];
++ struct in_addr mask[4];
++};
++
++#define VCMD_net_add_ipv4_v1 VC_CMD(NETALT, 1, 1)
++#define VCMD_net_rem_ipv4_v1 VC_CMD(NETALT, 2, 1)
++
++struct vcmd_net_addr_ipv4_v1 {
++ uint16_t type;
++ uint16_t flags;
++ struct in_addr ip;
++ struct in_addr mask;
++};
++
++#define VCMD_net_add_ipv4 VC_CMD(NETALT, 1, 2)
++#define VCMD_net_rem_ipv4 VC_CMD(NETALT, 2, 2)
++
++struct vcmd_net_addr_ipv4_v2 {
++ uint16_t type;
++ uint16_t flags;
++ struct in_addr ip;
++ struct in_addr ip2;
++ struct in_addr mask;
++};
++
++#define VCMD_net_add_ipv6 VC_CMD(NETALT, 3, 1)
++#define VCMD_net_remove_ipv6 VC_CMD(NETALT, 4, 1)
++
++struct vcmd_net_addr_ipv6_v1 {
++ uint16_t type;
++ uint16_t flags;
++ uint32_t prefix;
++ struct in6_addr ip;
++ struct in6_addr mask;
++};
++
++#define VCMD_add_match_ipv4 VC_CMD(NETALT, 5, 0)
++#define VCMD_get_match_ipv4 VC_CMD(NETALT, 6, 0)
++
++struct vcmd_match_ipv4_v0 {
++ uint16_t type;
++ uint16_t flags;
++ uint16_t parent;
++ uint16_t prefix;
++ struct in_addr ip;
++ struct in_addr ip2;
++ struct in_addr mask;
++};
++
++#define VCMD_add_match_ipv6 VC_CMD(NETALT, 7, 0)
++#define VCMD_get_match_ipv6 VC_CMD(NETALT, 8, 0)
++
++struct vcmd_match_ipv6_v0 {
++ uint16_t type;
++ uint16_t flags;
++ uint16_t parent;
++ uint16_t prefix;
++ struct in6_addr ip;
++ struct in6_addr ip2;
++ struct in6_addr mask;
++};
++
++
++
++
++/* flag commands */
++
++#define VCMD_get_nflags VC_CMD(FLAGS, 5, 0)
++#define VCMD_set_nflags VC_CMD(FLAGS, 6, 0)
++
++struct vcmd_net_flags_v0 {
++ uint64_t flagword;
++ uint64_t mask;
++};
++
++
++
++/* network caps commands */
++
++#define VCMD_get_ncaps VC_CMD(FLAGS, 7, 0)
++#define VCMD_set_ncaps VC_CMD(FLAGS, 8, 0)
++
++struct vcmd_net_caps_v0 {
++ uint64_t ncaps;
++ uint64_t cmask;
++};
++
++#endif /* _UAPI_VS_NETWORK_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/sched_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/sched_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/sched_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,13 @@
++#ifndef _UAPI_VS_SCHED_CMD_H
++#define _UAPI_VS_SCHED_CMD_H
++
++
++struct vcmd_prio_bias {
++ int32_t cpu_id;
++ int32_t prio_bias;
++};
++
++#define VCMD_set_prio_bias VC_CMD(SCHED, 4, 0)
++#define VCMD_get_prio_bias VC_CMD(SCHED, 5, 0)
++
++#endif /* _UAPI_VS_SCHED_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/signal_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/signal_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/signal_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,31 @@
++#ifndef _UAPI_VS_SIGNAL_CMD_H
++#define _UAPI_VS_SIGNAL_CMD_H
++
++
++/* signalling vserver commands */
++
++#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
++#define VCMD_wait_exit VC_CMD(EVENT, 99, 0)
++
++struct vcmd_ctx_kill_v0 {
++ int32_t pid;
++ int32_t sig;
++};
++
++struct vcmd_wait_exit_v0 {
++ int32_t reboot_cmd;
++ int32_t exit_code;
++};
++
++
++/* process alteration commands */
++
++#define VCMD_get_pflags VC_CMD(PROCALT, 5, 0)
++#define VCMD_set_pflags VC_CMD(PROCALT, 6, 0)
++
++struct vcmd_pflags_v0 {
++ uint32_t flagword;
++ uint32_t mask;
++};
++
++#endif /* _UAPI_VS_SIGNAL_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/space_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/space_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/space_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,28 @@
++#ifndef _UAPI_VS_SPACE_CMD_H
++#define _UAPI_VS_SPACE_CMD_H
++
++
++#define VCMD_enter_space_v0 VC_CMD(PROCALT, 1, 0)
++#define VCMD_enter_space_v1 VC_CMD(PROCALT, 1, 1)
++#define VCMD_enter_space VC_CMD(PROCALT, 1, 2)
++
++#define VCMD_set_space_v0 VC_CMD(PROCALT, 3, 0)
++#define VCMD_set_space_v1 VC_CMD(PROCALT, 3, 1)
++#define VCMD_set_space VC_CMD(PROCALT, 3, 2)
++
++#define VCMD_get_space_mask_v0 VC_CMD(PROCALT, 4, 0)
++
++#define VCMD_get_space_mask VC_CMD(VSPACE, 0, 1)
++#define VCMD_get_space_default VC_CMD(VSPACE, 1, 0)
++
++
++struct vcmd_space_mask_v1 {
++ uint64_t mask;
++};
++
++struct vcmd_space_mask_v2 {
++ uint64_t mask;
++ uint32_t index;
++};
++
++#endif /* _UAPI_VS_SPACE_CMD_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/switch.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/switch.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/switch.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,90 @@
++#ifndef _UAPI_VS_SWITCH_H
++#define _UAPI_VS_SWITCH_H
++
++#include <linux/types.h>
++
++
++#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
++#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
++#define VC_VERSION(c) ((c) & 0xFFF)
++
++#define VC_CMD(c, i, v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
++ | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
++
++/*
++
++ Syscall Matrix V2.8
++
++ |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
++ |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
++ |INFO |SETUP | |MOVE | | | | | |
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICE | |
++ HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | |
++ PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ MEMORY | | | | |MEMCTRL| | |SWAP | |
++ | 16| 17| 18| 19| 20| 21| | 22| 23|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ NETWORK| |VNET |NETALT |NETMIG |NETCTL | | |SERIAL | |
++ | 24| 25| 26| 27| 28| 29| | 30| 31|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ DISK | | | |TAGMIG |DLIMIT | | |INODE | |
++ VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ OTHER |VSTAT | | | | | | |VINFO | |
++ | 40| 41| 42| 43| 44| 45| | 46| 47|
++ =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
++ SPECIAL|EVENT | | | |FLAGS | | |VSPACE | |
++ | 48| 49| 50| 51| 52| 53| | 54| 55|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++ SPECIAL|DEBUG | | | |RLIMIT |SYSCALL| | |COMPAT |
++ | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
++ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
++
++*/
++
++#define VC_CAT_VERSION 0
++
++#define VC_CAT_VSETUP 1
++#define VC_CAT_VHOST 2
++
++#define VC_CAT_DEVICE 6
++
++#define VC_CAT_VPROC 9
++#define VC_CAT_PROCALT 10
++#define VC_CAT_PROCMIG 11
++#define VC_CAT_PROCTRL 12
++
++#define VC_CAT_SCHED 14
++#define VC_CAT_MEMCTRL 20
++
++#define VC_CAT_VNET 25
++#define VC_CAT_NETALT 26
++#define VC_CAT_NETMIG 27
++#define VC_CAT_NETCTRL 28
++
++#define VC_CAT_TAGMIG 35
++#define VC_CAT_DLIMIT 36
++#define VC_CAT_INODE 38
++
++#define VC_CAT_VSTAT 40
++#define VC_CAT_VINFO 46
++#define VC_CAT_EVENT 48
++
++#define VC_CAT_FLAGS 52
++#define VC_CAT_VSPACE 54
++#define VC_CAT_DEBUG 56
++#define VC_CAT_RLIMIT 60
++
++#define VC_CAT_SYSTEST 61
++#define VC_CAT_COMPAT 63
++
++/* query version */
++
++#define VCMD_get_version VC_CMD(VERSION, 0, 0)
++#define VCMD_get_vci VC_CMD(VERSION, 1, 0)
++
++#endif /* _UAPI_VS_SWITCH_H */
+diff -NurpP --minimal linux-3.7-vs2.3.5.1.3/include/uapi/vserver/tag_cmd.h linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/tag_cmd.h
+--- linux-3.7-vs2.3.5.1.3/include/uapi/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1.3-uapi/include/uapi/vserver/tag_cmd.h 2012-12-13 22:22:21.000000000 +0000
+@@ -0,0 +1,14 @@
++#ifndef _UAPI_VS_TAG_CMD_H
++#define _UAPI_VS_TAG_CMD_H
++
++
++/* vinfo commands */
++
++#define VCMD_task_tag VC_CMD(VINFO, 3, 0)
++
++
++/* context commands */
++
++#define VCMD_tag_migrate VC_CMD(TAGMIG, 1, 0)
++
++#endif /* _UAPI_VS_TAG_CMD_H */
+diff -NurpP linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c linux-3.7-vs2.3.5.1.2/kernel/vserver/network.c
+--- linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c 2012-12-13 13:48:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1.2/kernel/vserver/network.c 2012-12-13 18:10:29.000000000 +0000
+@@ -18,6 +18,7 @@
+ #include <linux/err.h>
+ #include <linux/slab.h>
+ #include <linux/rcupdate.h>
++#include <net/ipv6.h>
+
+ #include <linux/vs_network.h>
+ #include <linux/vs_pid.h>
+@@ -592,20 +593,43 @@ int vc_net_migrate(struct nx_info *nxi,
+ }
+
+
++static inline
++struct nx_addr_v4 *__find_v4_addr(struct nx_info *nxi,
++ __be32 ip, __be32 ip2, __be32 mask, uint16_t type, uint16_t flags,
++ struct nx_addr_v4 **prev)
++{
++ struct nx_addr_v4 *nxa = &nxi->v4;
++
++ for (; nxa; nxa = nxa->next) {
++ if ((nxa->ip[0].s_addr == ip) &&
++ (nxa->ip[1].s_addr == ip2) &&
++ (nxa->mask.s_addr == mask) &&
++ (nxa->type == type) &&
++ (nxa->flags == flags))
++ return nxa;
++
++ /* save previous entry */
++ if (prev)
++ *prev = nxa;
++ }
++ return NULL;
++}
+
+ int do_add_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask,
+ uint16_t type, uint16_t flags)
+ {
+- struct nx_addr_v4 *nxa = &nxi->v4;
++ struct nx_addr_v4 *nxa = NULL;
+ struct nx_addr_v4 *new = __alloc_nx_addr_v4();
++ int ret = -EEXIST;
+
+ if (IS_ERR(new))
+ return PTR_ERR(new);
+
+ spin_lock(&nxi->addr_lock);
++ if (__find_v4_addr(nxi, ip, ip2, mask, type, flags, &nxa))
++ goto out_unlock;
++
+ if (NX_IPV4(nxi)) {
+- /* locate last entry */
+- for (; nxa->next; nxa = nxa->next);
+ nxa->next = new;
+ nxa = new;
+ new = NULL;
+@@ -619,25 +643,46 @@ int do_add_v4_addr(struct nx_info *nxi,
+ nxa->mask.s_addr = mask;
+ nxa->type = type;
+ nxa->flags = flags;
++ ret = 0;
++out_unlock:
+ spin_unlock(&nxi->addr_lock);
+ if (new)
+ __dealloc_nx_addr_v4(new);
+- return 0;
++ return ret;
+ }
+
+ int do_remove_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask,
+ uint16_t type, uint16_t flags)
+ {
+- struct nx_addr_v4 *nxa = &nxi->v4;
++ struct nx_addr_v4 *nxa = NULL;
+ struct nx_addr_v4 *old = NULL;
+ int ret = 0;
+
+ spin_lock(&nxi->addr_lock);
+ switch (type) {
+-/* case NXA_TYPE_ADDR:
+- break; */
++ case NXA_TYPE_ADDR:
++ old = __find_v4_addr(nxi, ip, ip2, mask, type, flags, &nxa);
++ if (old) {
++ if (nxa) {
++ nxa->next = old->next;
++ old->next = NULL;
++ } else {
++ if (old->next) {
++ nxa = old;
++ old = old->next;
++ *nxa = *old;
++ old->next = NULL;
++ } else {
++ memset(old, 0, sizeof(*old));
++ old = NULL;
++ }
++ }
++ } else
++ ret = -ESRCH;
++ break;
+
+ case NXA_TYPE_ANY:
++ nxa = &nxi->v4;
+ old = xchg(&nxa->next, NULL);
+ memset(nxa, 0, sizeof(*nxa));
+ break;
+@@ -788,20 +833,46 @@ int vc_net_rem_ipv4(struct nx_info *nxi,
+
+ #ifdef CONFIG_IPV6
+
++static inline
++struct nx_addr_v6 *__find_v6_addr(struct nx_info *nxi,
++ struct in6_addr *ip, struct in6_addr *mask,
++ uint32_t prefix, uint16_t type, uint16_t flags,
++ struct nx_addr_v6 **prev)
++{
++ struct nx_addr_v6 *nxa = &nxi->v6;
++
++ for (; nxa; nxa = nxa->next) {
++ if (ipv6_addr_equal(&nxa->ip, ip) &&
++ ipv6_addr_equal(&nxa->mask, mask) &&
++ (nxa->prefix == prefix) &&
++ (nxa->type == type) &&
++ (nxa->flags == flags))
++ return nxa;
++
++ /* save previous entry */
++ if (prev)
++ *prev = nxa;
++ }
++ return NULL;
++}
++
++
+ int do_add_v6_addr(struct nx_info *nxi,
+ struct in6_addr *ip, struct in6_addr *mask,
+ uint32_t prefix, uint16_t type, uint16_t flags)
+ {
+- struct nx_addr_v6 *nxa = &nxi->v6;
++ struct nx_addr_v6 *nxa = NULL;
+ struct nx_addr_v6 *new = __alloc_nx_addr_v6();
++ int ret = -EEXIST;
+
+ if (IS_ERR(new))
+ return PTR_ERR(new);
+
+ spin_lock(&nxi->addr_lock);
++ if (__find_v6_addr(nxi, ip, mask, prefix, type, flags, &nxa))
++ goto out_unlock;
++
+ if (NX_IPV6(nxi)) {
+- /* locate last entry */
+- for (; nxa->next; nxa = nxa->next);
+ nxa->next = new;
+ nxa = new;
+ new = NULL;
+@@ -812,26 +883,47 @@ int do_add_v6_addr(struct nx_info *nxi,
+ nxa->prefix = prefix;
+ nxa->type = type;
+ nxa->flags = flags;
++ ret = 0;
++out_unlock:
+ spin_unlock(&nxi->addr_lock);
+ if (new)
+ __dealloc_nx_addr_v6(new);
+- return 0;
++ return ret;
+ }
+
+ int do_remove_v6_addr(struct nx_info *nxi,
+ struct in6_addr *ip, struct in6_addr *mask,
+ uint32_t prefix, uint16_t type, uint16_t flags)
+ {
+- struct nx_addr_v6 *nxa = &nxi->v6;
++ struct nx_addr_v6 *nxa = NULL;
+ struct nx_addr_v6 *old = NULL;
+ int ret = 0;
+
+ spin_lock(&nxi->addr_lock);
+ switch (type) {
+-/* case NXA_TYPE_ADDR:
+- break; */
++ case NXA_TYPE_ADDR:
++ old = __find_v6_addr(nxi, ip, mask, prefix, type, flags, &nxa);
++ if (old) {
++ if (nxa) {
++ nxa->next = old->next;
++ old->next = NULL;
++ } else {
++ if (old->next) {
++ nxa = old;
++ old = old->next;
++ *nxa = *old;
++ old->next = NULL;
++ } else {
++ memset(old, 0, sizeof(*old));
++ old = NULL;
++ }
++ }
++ } else
++ ret = -ESRCH;
++ break;
+
+ case NXA_TYPE_ANY:
++ nxa = &nxi->v6;
+ old = xchg(&nxa->next, NULL);
+ memset(nxa, 0, sizeof(*nxa));
+ break;
+@@ -872,9 +964,14 @@ int vc_net_remove_ipv6(struct nx_info *n
+ return -EFAULT;
+
+ switch (vc_data.type) {
++ case NXA_TYPE_ADDR:
++ memset(&vc_data.mask, ~0, sizeof(vc_data.mask));
++ /* fallthrough */
++ case NXA_TYPE_MASK:
++ return do_remove_v6_addr(nxi, &vc_data.ip, &vc_data.mask,
++ vc_data.prefix, vc_data.type, vc_data.flags);
+ case NXA_TYPE_ANY:
+- do_remove_v6_addr(nxi, NULL, NULL, 0, vc_data.type, 0);
+- break;
++ return do_remove_v6_addr(nxi, NULL, NULL, 0, vc_data.type, 0);
+ default:
+ return -EINVAL;
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/2ba6f0dd4134d77f76372300a8aee24efb751004
More information about the pld-cvs-commit
mailing list