fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / kernel_stat.h
index 4594ccc..43e895f 100644 (file)
@@ -1,11 +1,12 @@
 #ifndef _LINUX_KERNEL_STAT_H
 #define _LINUX_KERNEL_STAT_H
 
-#include <linux/config.h>
 #include <asm/irq.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
 #include <linux/percpu.h>
+#include <linux/cpumask.h>
+#include <asm/cputime.h>
 
 /*
  * 'kernel_stat.h' contains the definitions needed for doing
  */
 
 struct cpu_usage_stat {
-       u64 user;
-       u64 nice;
-       u64 system;
-       u64 softirq;
-       u64 irq;
-       u64 idle;
-       u64 iowait;
+       cputime64_t user;
+       cputime64_t nice;
+       cputime64_t system;
+       cputime64_t softirq;
+       cputime64_t irq;
+       cputime64_t idle;
+       cputime64_t iowait;
+       cputime64_t steal;
 };
 
 struct kernel_stat {
@@ -41,13 +43,16 @@ extern unsigned long long nr_context_switches(void);
  */
 static inline int kstat_irqs(int irq)
 {
-       int i, sum=0;
+       int cpu, sum = 0;
 
-       for (i = 0; i < NR_CPUS; i++)
-               if (cpu_possible(i))
-                       sum += kstat_cpu(i).irqs[irq];
+       for_each_possible_cpu(cpu)
+               sum += kstat_cpu(cpu).irqs[irq];
 
        return sum;
 }
 
+extern void account_user_time(struct task_struct *, cputime_t);
+extern void account_system_time(struct task_struct *, int, cputime_t);
+extern void account_steal_time(struct task_struct *, cputime_t);
+
 #endif /* _LINUX_KERNEL_STAT_H */