vserver 1.9.3
[linux-2.6.git] / include / linux / vs_base.h
index 52096ed..ed23add 100644 (file)
@@ -38,32 +38,54 @@ static __inline__ int __vx_check(xid_t cid, xid_t id, unsigned int mode)
 }
 
 
-#define __vx_flags(v,m,f)      (((v) & (m)) ^ (f))
+#define __vx_state(v)  ((v) ? ((v)->vx_state) : 0)
 
-#define        __vx_task_flags(t,m,f) \
-       (((t) && ((t)->vx_info)) ? \
-               __vx_flags((t)->vx_info->vx_flags,(m),(f)) : 0)
+#define vx_info_state(v,m)     (__vx_state(v) & (m))
 
-#define vx_current_flags() \
-       ((current->vx_info) ? current->vx_info->vx_flags : 0)
 
-#define vx_flags(m,f)  __vx_flags(vx_current_flags(),(m),(f))
+/* generic flag merging */
+
+#define vx_check_flags(v,m,f)  (((v) & (m)) ^ (f))
+
+#define vx_mask_flags(v,f,m)   (((v) & ~(m)) | ((f) & (m)))
+
+#define vx_mask_mask(v,f,m)    (((v) & ~(m)) | ((v) & (f) & (m)))
+
+
+/* context flags */
+
+#define __vx_flags(v)  ((v) ? (v)->vx_flags : 0)
+
+#define vx_current_flags()     __vx_flags(current->vx_info)
+
+#define vx_info_flags(v,m,f) \
+       vx_check_flags(__vx_flags(v),(m),(f))
 
+#define task_vx_flags(t,m,f) \
+       ((t) && vx_info_flags((t)->vx_info, (m), (f)))
 
-#define vx_current_ccaps() \
-       ((current->vx_info) ? current->vx_info->vx_ccaps : 0)
+#define vx_flags(m,f)  vx_info_flags(current->vx_info,(m),(f))
+
+
+/* context caps */
+
+#define __vx_ccaps(v)  ((v) ? (v)->vx_ccaps : 0)
+
+#define vx_current_ccaps()     __vx_ccaps(current->vx_info)
+
+#define vx_info_ccaps(v,c)     (__vx_ccaps(v) & (c))
+
+#define vx_ccaps(c)    vx_info_ccaps(current->vx_info,(c))
 
-#define vx_ccaps(c)    (vx_current_ccaps() & (c))
 
 #define vx_current_bcaps() \
        (((current->vx_info) && !vx_flags(VXF_STATE_SETUP, 0)) ? \
        current->vx_info->vx_bcaps : cap_bset)
 
 
-/* generic flag merging */
-
-#define        vx_mask_flags(v,f,m)    (((v) & ~(m)) | ((f) & (m)))
+#define vx_current_initpid(n) \
+       (current->vx_info && \
+       (current->vx_info->vx_initpid == (n)))
 
-#define        vx_mask_mask(v,f,m)     (((v) & ~(m)) | ((v) & (f) & (m)))
 
 #endif