20 #ifndef _COBALT_KERNEL_STAT_H 21 #define _COBALT_KERNEL_STAT_H 23 #include <cobalt/kernel/clock.h> 30 #ifdef CONFIG_XENO_OPT_STATS 32 typedef struct xnstat_exectime {
40 #define xnstat_percpu_data raw_cpu_ptr(nktimer.stats) 44 #define xnstat_exectime_now() xnclock_core_read_raw() 47 #define xnstat_exectime_update(sched, date) \ 49 (sched)->current_account->total += \ 50 date - (sched)->last_account_switch; \ 51 (sched)->last_account_switch = date; \ 58 #define xnstat_exectime_set_current(sched, new_account) \ 60 xnstat_exectime_t *__prev; \ 61 __prev = (xnstat_exectime_t *) \ 62 atomic_long_xchg((atomic_long_t *)&(sched)->current_account, \ 63 (long)(new_account)); \ 68 #define xnstat_exectime_get_current(sched) ((sched)->current_account) 72 #define xnstat_exectime_finalize(sched, new_account) \ 74 (sched)->last_account_switch = xnclock_core_read_raw(); \ 75 (sched)->current_account = (new_account); \ 79 #define xnstat_exectime_get_start(account) ((account)->start) 80 #define xnstat_exectime_get_total(account) ((account)->total) 83 #define xnstat_exectime_get_last_switch(sched) ((sched)->last_account_switch) 87 #define xnstat_exectime_reset_stats(stat) \ 90 (stat)->start = xnclock_core_read_raw(); \ 94 typedef struct xnstat_counter {
95 unsigned long counter;
98 static inline unsigned long xnstat_counter_inc(xnstat_counter_t *c)
103 static inline unsigned long xnstat_counter_get(xnstat_counter_t *c)
108 static inline void xnstat_counter_set(xnstat_counter_t *c,
unsigned long value)
114 typedef struct xnstat_exectime {
117 #define xnstat_percpu_data NULL 118 #define xnstat_exectime_now() ({ 0; }) 119 #define xnstat_exectime_update(sched, date) do { } while (0) 120 #define xnstat_exectime_set_current(sched, new_account) ({ (void)sched; NULL; }) 121 #define xnstat_exectime_get_current(sched) ({ (void)sched; NULL; }) 122 #define xnstat_exectime_finalize(sched, new_account) do { } while (0) 123 #define xnstat_exectime_get_start(account) ({ 0; }) 124 #define xnstat_exectime_get_total(account) ({ 0; }) 125 #define xnstat_exectime_get_last_switch(sched) ({ 0; }) 126 #define xnstat_exectime_reset_stats(account) do { } while (0) 128 typedef struct xnstat_counter {
131 #define xnstat_counter_inc(c) ({ do { } while(0); 0; }) 132 #define xnstat_counter_get(c) ({ 0; }) 133 #define xnstat_counter_set(c, value) do { } while (0) 138 #define xnstat_exectime_switch(sched, new_account) \ 140 xnstat_exectime_update(sched, xnstat_exectime_now()); \ 141 xnstat_exectime_set_current(sched, new_account); \ 146 #define xnstat_exectime_lazy_switch(sched, new_account, date) \ 148 xnstat_exectime_update(sched, date); \ 149 xnstat_exectime_set_current(sched, new_account); \