svn commit: r248380 - projects/counters/sys/sparc64/include
Gleb Smirnoff
glebius at FreeBSD.org
Sat Mar 16 17:39:00 UTC 2013
Author: glebius
Date: Sat Mar 16 17:38:59 2013
New Revision: 248380
URL: http://svnweb.freebsd.org/changeset/base/248380
Log:
Revert accidentially committed incorrect attempt.
Modified:
projects/counters/sys/sparc64/include/counter.h
Modified: projects/counters/sys/sparc64/include/counter.h
==============================================================================
--- projects/counters/sys/sparc64/include/counter.h Sat Mar 16 17:09:44 2013 (r248379)
+++ projects/counters/sys/sparc64/include/counter.h Sat Mar 16 17:38:59 2013 (r248380)
@@ -30,43 +30,17 @@
#define __MACHINE_COUNTER_H__
#include <sys/pcpu.h>
-#include <machine/asi.h>
-#include <machine/asmacros.h>
-extern char pcpu0[1];
-
-static inline void
+static __inline void
counter_u64_inc(counter_u64_t c, uint64_t inc)
{
- __asm __volatile(
- "add %" __XSTRING(PCPU_REG) ", %0, %%g1\n\t"
- "ldx [%%g1], %%g3\n\t"
-"1:\n\t"
- "mov %%g3, %%g2\n\t"
- "add %%g2, %1, %%g3\n\t"
- "casxa [%%g1] " __XSTRING(ASI_N) " , %%g2, %%g3\n\t"
- "bne,pn %%xcc, 1b\n\t"
- " cmp %%g2, %%g3\n\t"
- :
- : "r" ((char *)c - pcpu0), "r" (inc)
- : "memory", "cc", "g1", "g2", "g3");
-
-#if 0
- __asm __volatile(
- "wrpr %%g0, %2, %%pstate\n\t"
- "ldx [%" __XSTRING(PCPU_REG) " + %0], %%g2\n\t"
- "add %%g2, %1, %%g1\n\t"
- "stx %%g1, [%" __XSTRING(PCPU_REG) " + %0]\n\t"
- "wrpr %%g0, %3, %%pstate\n\t"
- :
- : "r" ((char *)c - pcpu0), "r" (inc),
- "i" (PSTATE_NORMAL), "i" (PSTATE_KERNEL)
- : "memory", "cc", "g2", "g1");
-#endif
+ critical_enter();
+ *(uint64_t *)((char *)c + sizeof(struct pcpu) * curcpu) += inc;
+ critical_exit();
}
-static inline void
+static __inline void
counter_u64_dec(counter_u64_t c, uint64_t dec)
{
More information about the svn-src-projects
mailing list