5 #define VXD_CBIT(n,m) (vx_debug_ ## n & (1 << (m)))
6 #define VXD_CMIN(n,m) (vx_debug_ ## n > (m))
7 #define VXD_MASK(n,m) (vx_debug_ ## n & (m))
9 #define VXD_QPOS(v,p) (((uint32_t)(v) >> ((p)*8)) & 0xFF)
10 #define VXD_QUAD(v) VXD_QPOS(v,0), VXD_QPOS(v,1), \
11 VXD_QPOS(v,2), VXD_QPOS(v,3)
12 #define VXF_QUAD "%u.%u.%u.%u"
14 #define VXD_DEV(d) (d), (d)->bd_inode->i_ino, \
15 imajor((d)->bd_inode), iminor((d)->bd_inode)
16 #define VXF_DEV "%p[%lu,%d:%d]"
19 #define __FUNC__ __func__
22 #define vxd_path(d,m) \
23 ({ static char _buffer[PATH_MAX]; \
24 d_path((d), (m), _buffer, sizeof(_buffer)); })
26 #define vxd_cond_path(n) \
27 ((n) ? vxd_path((n)->dentry, (n)->mnt) : "<null>" )
30 #ifdef CONFIG_VSERVER_DEBUG
32 extern unsigned int vx_debug_switch;
33 extern unsigned int vx_debug_xid;
34 extern unsigned int vx_debug_nid;
35 extern unsigned int vx_debug_tag;
36 extern unsigned int vx_debug_net;
37 extern unsigned int vx_debug_limit;
38 extern unsigned int vx_debug_cres;
39 extern unsigned int vx_debug_dlim;
40 extern unsigned int vx_debug_quota;
41 extern unsigned int vx_debug_cvirt;
42 extern unsigned int vx_debug_misc;
45 #define VX_LOGLEVEL "vxD: "
47 #define vxdprintk(c,f,x...) \
50 printk(VX_LOGLEVEL f "\n" , ##x); \
53 #define vxlprintk(c,f,x...) \
56 printk(VX_LOGLEVEL f " @%s:%d\n", x); \
59 #define vxfprintk(c,f,x...) \
62 printk(VX_LOGLEVEL f " %s@%s:%d\n", x); \
68 void dump_vx_info(struct vx_info *, int);
69 void dump_vx_info_inactive(int);
71 #else /* CONFIG_VSERVER_DEBUG */
73 #define vx_debug_switch 0
74 #define vx_debug_xid 0
75 #define vx_debug_nid 0
76 #define vx_debug_tag 0
77 #define vx_debug_net 0
78 #define vx_debug_limit 0
79 #define vx_debug_cres 0
80 #define vx_debug_dlim 0
81 #define vx_debug_cvirt 0
83 #define vxdprintk(x...) do { } while (0)
84 #define vxlprintk(x...) do { } while (0)
85 #define vxfprintk(x...) do { } while (0)
87 #endif /* CONFIG_VSERVER_DEBUG */
90 #ifdef CONFIG_VSERVER_WARN
92 #define VX_WARNLEVEL KERN_WARNING "vxW: "
94 #define vxwprintk(c,f,x...) \
97 printk(VX_WARNLEVEL f "\n" , ##x); \
100 #else /* CONFIG_VSERVER_WARN */
102 #define vxwprintk(x...) do { } while (0)
104 #endif /* CONFIG_VSERVER_WARN */
107 #ifdef CONFIG_VSERVER_DEBUG
108 #define vxd_assert_lock(l) assert_spin_locked(l)
109 #define vxd_assert(c,f,x...) vxlprintk(!(c), \
110 "assertion [" f "] failed.", ##x, __FILE__, __LINE__)
112 #define vxd_assert_lock(l) do { } while (0)
113 #define vxd_assert(c,f,x...) do { } while (0)
117 #endif /* _VX_DEBUG_H */