fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / vserver / limit_def.h
1 #ifndef _VX_LIMIT_DEF_H
2 #define _VX_LIMIT_DEF_H
3
4 #include <asm/atomic.h>
5 #include <asm/resource.h>
6
7 #include "limit.h"
8
9
10 struct _vx_res_limit {
11         rlim_t soft;            /* Context soft limit */
12         rlim_t hard;            /* Context hard limit */
13
14         rlim_atomic_t rcur;     /* Current value */
15         rlim_t rmin;            /* Context minimum */
16         rlim_t rmax;            /* Context maximum */
17
18         atomic_t lhit;          /* Limit hits */
19 };
20
21 /* context sub struct */
22
23 struct _vx_limit {
24         struct _vx_res_limit res[NUM_LIMITS];
25 };
26
27 #ifdef CONFIG_VSERVER_DEBUG
28
29 static inline void __dump_vx_limit(struct _vx_limit *limit)
30 {
31         int i;
32
33         printk("\t_vx_limit:");
34         for (i=0; i<NUM_LIMITS; i++) {
35                 printk("\t [%2d] = %8lu %8lu/%8lu, %8ld/%8ld, %8d\n",
36                         i, (unsigned long)__rlim_get(limit, i),
37                         (unsigned long)__rlim_rmin(limit, i),
38                         (unsigned long)__rlim_rmax(limit, i),
39                         (long)__rlim_soft(limit, i),
40                         (long)__rlim_hard(limit, i),
41                         atomic_read(&__rlim_lhit(limit, i)));
42         }
43 }
44
45 #endif
46
47 #endif  /* _VX_LIMIT_DEF_H */