updated to 2.6.5-vs1.9.0pre4
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Tue, 6 Apr 2004 08:39:30 +0000 (08:39 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Tue, 6 Apr 2004 08:39:30 +0000 (08:39 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1416 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/kernel/context.h
util-vserver/kernel/inode.h
util-vserver/kernel/legacy.h
util-vserver/kernel/limit.h
util-vserver/kernel/namespace.h
util-vserver/kernel/sched.h
util-vserver/kernel/signal.h
util-vserver/kernel/xid.h [new file with mode: 0644]

index 8a24f06..52fe0b4 100644 (file)
@@ -80,7 +80,7 @@ extern int vx_migrate_task(struct task_struct *, struct vx_info *);
 #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__ */
 
@@ -94,7 +94,7 @@ struct  vcmd_vx_info_v0 {
 };
 
 #ifdef __KERNEL__
-extern int vc_vx_info(uint32_t, void *);
+extern int vc_vx_info(uint32_t, void __user *);
 
 #endif /* __KERNEL__ */
 
@@ -102,8 +102,8 @@ extern int vc_vx_info(uint32_t, void *);
 #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__ */
 
@@ -116,8 +116,8 @@ struct  vcmd_ctx_flags_v0 {
 };
 
 #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__ */
 
@@ -158,8 +158,8 @@ struct  vcmd_ctx_caps_v0 {
 };
 
 #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__ */
 
index eb52dc8..0cf360c 100644 (file)
@@ -38,15 +38,24 @@ struct  vcmd_ctx_iattr_v1 {
 #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__ */
 
index 7a70069..53c6dcd 100644 (file)
@@ -45,8 +45,8 @@ struct  vcmd_set_ipv4root_v3 {
 
 
 #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 */
index 257c10b..d8634ec 100644 (file)
@@ -52,6 +52,7 @@ static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer)
 #ifndef _VX_LIMIT_H
 #define _VX_LIMIT_H
 
+#include <linux/compiler.h>
 #include "switch.h"
 
 /*  rlimit vserver commands */
@@ -78,9 +79,9 @@ struct  vcmd_ctx_rlimit_mask_v0 {
 #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;
 
index e1761a3..ac4e191 100644 (file)
@@ -2,6 +2,7 @@
 #define _VX_NAMESPACE_H
 
 #include <linux/types.h>
+#include <linux/compiler.h>
 
        
 /* virtual host info names */
@@ -27,8 +28,8 @@ enum vx_vhi_name_field {
 
 
 #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__ */
 
@@ -44,9 +45,9 @@ struct fs_struct;
 
 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 */
index ef0fe06..c918e36 100644 (file)
@@ -87,8 +87,8 @@ struct  vcmd_set_sched_v2 {
 
 #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
index ea8aeb5..3911127 100644 (file)
@@ -13,7 +13,7 @@ struct  vcmd_ctx_kill_v0 {
 };
 
 #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 */
diff --git a/util-vserver/kernel/xid.h b/util-vserver/kernel/xid.h
new file mode 100644 (file)
index 0000000..2edba25
--- /dev/null
@@ -0,0 +1,64 @@
+#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