From: Enrico Scholz Date: Tue, 6 Apr 2004 08:39:30 +0000 (+0000) Subject: updated to 2.6.5-vs1.9.0pre4 X-Git-Tag: VERSION_0_10~165 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9406c0030f10f1498a2fa1c4e6fca7382eba3692;p=util-vserver.git updated to 2.6.5-vs1.9.0pre4 git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1416 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/kernel/context.h b/util-vserver/kernel/context.h index 8a24f06..52fe0b4 100644 --- a/util-vserver/kernel/context.h +++ b/util-vserver/kernel/context.h @@ -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__ */ diff --git a/util-vserver/kernel/inode.h b/util-vserver/kernel/inode.h index eb52dc8..0cf360c 100644 --- a/util-vserver/kernel/inode.h +++ b/util-vserver/kernel/inode.h @@ -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__ */ diff --git a/util-vserver/kernel/legacy.h b/util-vserver/kernel/legacy.h index 7a70069..53c6dcd 100644 --- a/util-vserver/kernel/legacy.h +++ b/util-vserver/kernel/legacy.h @@ -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 */ diff --git a/util-vserver/kernel/limit.h b/util-vserver/kernel/limit.h index 257c10b..d8634ec 100644 --- a/util-vserver/kernel/limit.h +++ b/util-vserver/kernel/limit.h @@ -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 #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; diff --git a/util-vserver/kernel/namespace.h b/util-vserver/kernel/namespace.h index e1761a3..ac4e191 100644 --- a/util-vserver/kernel/namespace.h +++ b/util-vserver/kernel/namespace.h @@ -2,6 +2,7 @@ #define _VX_NAMESPACE_H #include +#include /* 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 */ diff --git a/util-vserver/kernel/sched.h b/util-vserver/kernel/sched.h index ef0fe06..c918e36 100644 --- a/util-vserver/kernel/sched.h +++ b/util-vserver/kernel/sched.h @@ -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 diff --git a/util-vserver/kernel/signal.h b/util-vserver/kernel/signal.h index ea8aeb5..3911127 100644 --- a/util-vserver/kernel/signal.h +++ b/util-vserver/kernel/signal.h @@ -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 index 0000000..2edba25 --- /dev/null +++ b/util-vserver/kernel/xid.h @@ -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