#include <linux/kernel.h>
+#include <linux/rcupdate.h>
+#include <linux/sched.h>
+
+#include "vserver/context.h"
#include "vserver/debug.h"
+extern int proc_pid_vx_info(struct task_struct *, char *);
+
+
#define get_vx_info(i) __get_vx_info(i,__FILE__,__LINE__)
static inline struct vx_info *__get_vx_info(struct vx_info *vxi,
{
if (!vxi)
return NULL;
-
vxlprintk(VXD_CBIT(xid, 2), "get_vx_info(%p[#%d.%d])",
vxi, vxi?vxi->vx_id:0, vxi?atomic_read(&vxi->vx_usecnt):0,
_file, _line);
- vxh_get_vx_info(vxi);
-
atomic_inc(&vxi->vx_usecnt);
return vxi;
}
+
+extern void free_vx_info(struct vx_info *);
+
#define put_vx_info(i) __put_vx_info(i,__FILE__,__LINE__)
static inline void __put_vx_info(struct vx_info *vxi, const char *_file, int _line)
{
if (!vxi)
return;
-
vxlprintk(VXD_CBIT(xid, 2), "put_vx_info(%p[#%d.%d])",
vxi, vxi?vxi->vx_id:0, vxi?atomic_read(&vxi->vx_usecnt):0,
_file, _line);
- vxh_put_vx_info(vxi);
-
if (atomic_dec_and_test(&vxi->vx_usecnt))
free_vx_info(vxi);
}
vxi?atomic_read(&vxi->vx_usecnt):0,
vxi?atomic_read(&vxi->vx_refcnt):0,
_file, _line);
- vxh_set_vx_info(vxi, vxp);
atomic_inc(&vxi->vx_refcnt);
vxo = xchg(vxp, __get_vx_info(vxi, _file, _line));
vxo?atomic_read(&vxo->vx_usecnt):0,
vxo?atomic_read(&vxo->vx_refcnt):0,
_file, _line);
- vxh_clr_vx_info(vxo, vxp);
if (atomic_dec_and_test(&vxo->vx_refcnt))
unhash_vx_info(vxo);
}
-#define task_get_vx_info(p) __task_get_vx_info(p,__FILE__,__LINE__)
+#define task_get_vx_info(i) __task_get_vx_info(i,__FILE__,__LINE__)
static __inline__ struct vx_info *__task_get_vx_info(struct task_struct *p,
const char *_file, int _line)