| Arnaldo Carvalho de Melo | de4d1db | 2007-11-21 22:02:58 +0800 | [diff] [blame] | 1 | /* | 
 | 2 |  * Define default pcounter functions | 
 | 3 |  * Note that often used pcounters use dedicated functions to get a speed increase. | 
 | 4 |  * (see DEFINE_PCOUNTER/REF_PCOUNTER_MEMBER) | 
 | 5 |  */ | 
 | 6 |  | 
 | 7 | #include <linux/module.h> | 
 | 8 | #include <linux/pcounter.h> | 
 | 9 | #include <linux/smp.h> | 
 | 10 |  | 
 | 11 | void pcounter_def_add(struct pcounter *self, int inc) | 
 | 12 | { | 
 | 13 | 	per_cpu_ptr(self->per_cpu_values, smp_processor_id())[0] += inc; | 
 | 14 | } | 
 | 15 |  | 
 | 16 | EXPORT_SYMBOL_GPL(pcounter_def_add); | 
 | 17 |  | 
 | 18 | int pcounter_def_getval(const struct pcounter *self) | 
 | 19 | { | 
 | 20 | 	int res = 0, cpu; | 
 | 21 | 	for_each_possible_cpu(cpu) | 
 | 22 | 		res += per_cpu_ptr(self->per_cpu_values, cpu)[0]; | 
 | 23 | 	return res; | 
 | 24 | } | 
 | 25 |  | 
 | 26 | EXPORT_SYMBOL_GPL(pcounter_def_getval); |