X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fvs_cvirt.h;h=88c4c9fd6448ad77985e3e2d0405c0c6e5ba898f;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=65f4303625fb7c438b483bf087b035709a8eefb7;hpb=c449269f45c2cdf53af08c8d0af37472f66539d9;p=linux-2.6.git diff --git a/include/linux/vs_cvirt.h b/include/linux/vs_cvirt.h index 65f430362..88c4c9fd6 100644 --- a/include/linux/vs_cvirt.h +++ b/include/linux/vs_cvirt.h @@ -1,70 +1,48 @@ -#ifndef _VX_VS_CVIRT_H -#define _VX_VS_CVIRT_H - - -// #define VX_DEBUG +#ifndef _VS_CVIRT_H +#define _VS_CVIRT_H #include "vserver/cvirt.h" -#include "vs_base.h" - -#if defined(VX_DEBUG) -#define vxdprintk(x...) printk("vxd: " x) -#else -#define vxdprintk(x...) -#endif +#include "vserver/context.h" +#include "vserver/base.h" +#include "vserver/debug.h" -/* utsname virtualization */ - -static inline struct new_utsname *vx_new_utsname(void) +static inline void vx_activate_task(struct task_struct *p) { - if (current->vx_info) - return ¤t->vx_info->cvirt.utsname; - return &system_utsname; -} - -#define vx_new_uts(x) ((vx_new_utsname())->x) - - -/* pid faking stuff */ + struct vx_info *vxi; + if ((vxi = p->vx_info)) { + vx_update_load(vxi); + atomic_inc(&vxi->cvirt.nr_running); + } +} -#define vx_map_tgid(v,p) \ - __vx_map_tgid((v), (p), __FILE__, __LINE__) - -static inline int __vx_map_tgid(struct vx_info *vxi, int pid, - char *file, int line) +static inline void vx_deactivate_task(struct task_struct *p) { - if (vxi && __vx_flags(vxi->vx_flags, VXF_INFO_INIT, 0)) { - vxdprintk("vx_map_tgid: %p/%llx: %d -> %d in %s:%d\n", - vxi, vxi->vx_flags, pid, - (pid == vxi->vx_initpid)?1:pid, - file, line); - if (pid == vxi->vx_initpid) - return 1; + struct vx_info *vxi; + + if ((vxi = p->vx_info)) { + vx_update_load(vxi); + atomic_dec(&vxi->cvirt.nr_running); } - return pid; } -#define vx_rmap_tgid(v,p) \ - __vx_rmap_tgid((v), (p), __FILE__, __LINE__) +static inline void vx_uninterruptible_inc(struct task_struct *p) +{ + struct vx_info *vxi; -static inline int __vx_rmap_tgid(struct vx_info *vxi, int pid, - char *file, int line) + if ((vxi = p->vx_info)) + atomic_inc(&vxi->cvirt.nr_uninterruptible); +} + +static inline void vx_uninterruptible_dec(struct task_struct *p) { - if (vxi && __vx_flags(vxi->vx_flags, VXF_INFO_INIT, 0)) { - vxdprintk("vx_rmap_tgid: %p/%llx: %d -> %d in %s:%d\n", - vxi, vxi->vx_flags, pid, - (pid == 1)?vxi->vx_initpid:pid, - file, line); - if ((pid == 1) && vxi->vx_initpid) - return vxi->vx_initpid; - } - return pid; + struct vx_info *vxi; + + if ((vxi = p->vx_info)) + atomic_dec(&vxi->cvirt.nr_uninterruptible); } -#undef vxdprintk -#define vxdprintk(x...) #else #warning duplicate inclusion