summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_counter.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/subr_counter.c')
-rw-r--r--sys/kern/subr_counter.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/sys/kern/subr_counter.c b/sys/kern/subr_counter.c
index a98ed40..2656ed7 100644
--- a/sys/kern/subr_counter.c
+++ b/sys/kern/subr_counter.c
@@ -29,34 +29,32 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/counter.h>
#include <sys/kernel.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/proc.h>
+#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
#include <vm/uma.h>
+
+#define IN_SUBR_COUNTER_C
+#include <sys/counter.h>
static uma_zone_t uint64_pcpu_zone;
void
counter_u64_zero(counter_u64_t c)
{
- int i;
- for (i = 0; i < mp_ncpus; i++)
- *(uint64_t *)((char *)c + sizeof(struct pcpu) * i) = 0;
+ counter_u64_zero_inline(c);
}
uint64_t
counter_u64_fetch(counter_u64_t c)
{
- uint64_t r;
- int i;
- r = 0;
- for (i = 0; i < mp_ncpus; i++)
- r += *(uint64_t *)((char *)c + sizeof(struct pcpu) * i);
-
- return (r);
+ return (counter_u64_fetch_inline(c));
}
counter_u64_t
OpenPOWER on IntegriCloud