#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
#ifdef __KERNEL__
-extern int vc_task_xid(uint32_t, void *);
+extern int vc_task_xid(uint32_t, void __user *);
#endif /* __KERNEL__ */
};
#ifdef __KERNEL__
-extern int vc_vx_info(uint32_t, void *);
+extern int vc_vx_info(uint32_t, void __user *);
#endif /* __KERNEL__ */
#define VCMD_migrate_context VC_CMD(PROCMIG, 1, 0)
#ifdef __KERNEL__
-extern int vc_create_context(uint32_t, void *);
-extern int vc_migrate_context(uint32_t, void *);
+extern int vc_create_context(uint32_t, void __user *);
+extern int vc_migrate_context(uint32_t, void __user *);
#endif /* __KERNEL__ */
};
#ifdef __KERNEL__
-extern int vc_get_flags(uint32_t, void *);
-extern int vc_set_flags(uint32_t, void *);
+extern int vc_get_flags(uint32_t, void __user *);
+extern int vc_set_flags(uint32_t, void __user *);
#endif /* __KERNEL__ */
};
#ifdef __KERNEL__
-extern int vc_get_ccaps(uint32_t, void *);
-extern int vc_set_ccaps(uint32_t, void *);
+extern int vc_get_ccaps(uint32_t, void __user *);
+extern int vc_set_ccaps(uint32_t, void __user *);
#endif /* __KERNEL__ */
#define IATTR_IUNLINK 0x00020000
#define IATTR_IMMUTABLE 0x00040000
+
+#ifdef CONFIG_PROC_SECURE
+#define IATTR_PROC_DEFAULT ( IATTR_ADMIN | IATTR_HIDE )
+#define IATTR_PROC_SYMLINK ( IATTR_ADMIN )
+#else
+#define IATTR_PROC_DEFAULT ( IATTR_ADMIN )
+#define IATTR_PROC_SYMLINK ( IATTR_ADMIN )
+#endif
+
#ifdef __KERNEL__
#define vx_hide_check(c,m) (((m) & IATTR_HIDE) ? vx_check(c,m) : 1)
-extern int vc_get_iattr_v0(uint32_t, void *);
-extern int vc_set_iattr_v0(uint32_t, void *);
+extern int vc_get_iattr_v0(uint32_t, void __user *);
+extern int vc_set_iattr_v0(uint32_t, void __user *);
-extern int vc_get_iattr(uint32_t, void *);
-extern int vc_set_iattr(uint32_t, void *);
+extern int vc_get_iattr(uint32_t, void __user *);
+extern int vc_set_iattr(uint32_t, void __user *);
#endif /* __KERNEL__ */
#ifdef __KERNEL__
-extern int vc_new_s_context(uint32_t, void *);
-extern int vc_set_ipv4root(uint32_t, void *);
+extern int vc_new_s_context(uint32_t, void __user *);
+extern int vc_set_ipv4root(uint32_t, void __user *);
#endif /* __KERNEL__ */
#endif /* _VX_LEGACY_H */
#ifndef _VX_LIMIT_H
#define _VX_LIMIT_H
+#include <linux/compiler.h>
#include "switch.h"
/* rlimit vserver commands */
#define CRLIM_KEEP (~1ULL)
#ifdef __KERNEL__
-extern int vc_get_rlimit(uint32_t, void *);
-extern int vc_set_rlimit(uint32_t, void *);
-extern int vc_get_rlimit_mask(uint32_t, void *);
+extern int vc_get_rlimit(uint32_t, void __user *);
+extern int vc_set_rlimit(uint32_t, void __user *);
+extern int vc_get_rlimit_mask(uint32_t, void __user *);
struct sysinfo;
#define _VX_NAMESPACE_H
#include <linux/types.h>
+#include <linux/compiler.h>
/* virtual host info names */
#ifdef __KERNEL__
-extern int vc_set_vhi_name(uint32_t, void *);
-extern int vc_get_vhi_name(uint32_t, void *);
+extern int vc_set_vhi_name(uint32_t, void __user *);
+extern int vc_get_vhi_name(uint32_t, void __user *);
#endif /* __KERNEL__ */
extern int vx_set_namespace(struct vx_info *, struct namespace *, struct fs_struct *);
-extern int vc_enter_namespace(uint32_t, void *);
-extern int vc_cleanup_namespace(uint32_t, void *);
-extern int vc_set_namespace(uint32_t, void *);
+extern int vc_enter_namespace(uint32_t, void __user *);
+extern int vc_cleanup_namespace(uint32_t, void __user *);
+extern int vc_set_namespace(uint32_t, void __user *);
#endif /* __KERNEL__ */
#endif /* _VX_NAMESPACE_H */
#ifdef __KERNEL__
-extern int vc_set_sched_v1(uint32_t, void *);
-extern int vc_set_sched(uint32_t, void *);
+extern int vc_set_sched_v1(uint32_t, void __user *);
+extern int vc_set_sched(uint32_t, void __user *);
#define VAVAVOOM_RATIO 50
};
#ifdef __KERNEL__
-extern int vc_ctx_kill(uint32_t, void *);
+extern int vc_ctx_kill(uint32_t, void __user *);
#endif /* __KERNEL__ */
#endif /* _VX_SIGNAL_H */
--- /dev/null
+#ifndef _LINUX_VXID_H_
+#define _LINUX_VXID_H_
+
+#ifdef CONFIG_INOXID_NONE
+
+#define INOXID_UID(uid, gid) (uid)
+#define INOXID_GID(uid, gid) (gid)
+#define INOXID_XID(uid, gid, xid) (0)
+
+#define XIDINO_UID(uid, xid) (uid)
+#define XIDINO_GID(gid, xid) (gid)
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0xFFFFFFFF
+
+#endif
+
+#ifdef CONFIG_INOXID_GID16
+
+#define INOXID_UID(uid, gid) (uid)
+#define INOXID_GID(uid, gid) ((gid) & 0xFFFF)
+#define INOXID_XID(uid, gid, xid) (((gid) >> 16) & 0xFFFF)
+
+#define XIDINO_UID(uid, xid) (uid)
+#define XIDINO_GID(gid, xid) (((gid) & 0xFFFF) | ((xid) << 16))
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0x0000FFFF
+
+#endif
+
+#ifdef CONFIG_INOXID_GID24
+
+#define INOXID_UID(uid, gid) ((uid) & 0xFFFFFF)
+#define INOXID_GID(uid, gid) ((gid) & 0xFFFFFF)
+#define INOXID_XID(uid, gid, xid) ((((uid) >> 16) & 0xFF00) | (((gid) >> 24) & 0xFF))
+
+#define XIDINO_UID(uid, xid) (((uid) & 0xFFFFFF) | (((xid) & 0xFF00) << 16))
+#define XIDINO_GID(gid, xid) (((gid) & 0xFFFFFF) | (((xid) & 0x00FF) << 24))
+
+#define MAX_UID 0x00FFFFFF
+#define MAX_GID 0x00FFFFFF
+
+#endif
+
+#ifdef CONFIG_INOXID_GID32
+
+#define INOXID_UID(uid, gid) (uid)
+#define INOXID_GID(uid, gid) (gid)
+#define INOXID_XID(uid, gid, xid) (xid)
+
+#define XIDINO_UID(uid, xid) (uid)
+#define XIDINO_GID(gid, xid) (gid)
+
+#define MAX_UID 0xFFFFFFFF
+#define MAX_GID 0xFFFFFFFF
+
+#endif
+
+#define FIOC_GETXID _IOR('x', 1, long)
+#define FIOC_SETXID _IOW('x', 2, long)
+#define FIOC_SETXIDJ _IOW('x', 3, long)
+
+#endif