X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-usertrace%2Fltt%2Fkernelutils-i386.h;h=6c13f12d06b9afee19812d282d2b99d6c2058ea4;hb=cc00914443891e8a5a3de946baeea24e724a818e;hp=df7e695d21c9919fe3ca69976da4762fd47178db;hpb=4b18c4a6b6c014a11c6e316df0c6e2b8119810dd;p=lttv.git diff --git a/ltt-usertrace/ltt/kernelutils-i386.h b/ltt-usertrace/ltt/kernelutils-i386.h index df7e695d..6c13f12d 100644 --- a/ltt-usertrace/ltt/kernelutils-i386.h +++ b/ltt-usertrace/ltt/kernelutils-i386.h @@ -13,13 +13,15 @@ #ifndef _KERNELUTILS_I386_H #define _KERNELUTILS_I386_H +#ifdef __cplusplus +extern "C" { +#endif + // We are careful, so we assume a possibly SMP machine #define LOCK "lock ; " #define LOCK_PREFIX "lock ; " - - // From atomic.h @@ -106,26 +108,26 @@ struct __xchg_dummy { unsigned long a[100]; }; (unsigned long)(n),sizeof(*(ptr)))) static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, - unsigned long new, int size) + unsigned long newval, int size) { unsigned long prev; switch (size) { case 1: __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2" : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) + : "q"(newval), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; case 2: __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2" : "=a"(prev) - : "r"(new), "m"(*__xg(ptr)), "0"(old) + : "r"(newval), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; case 4: __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2" : "=a"(prev) - : "r"(new), "m"(*__xg(ptr)), "0"(old) + : "r"(newval), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; } @@ -150,5 +152,8 @@ static inline cycles_t get_cycles (void) return ret; } +#ifdef __cplusplus +} /* end of extern "C" */ +#endif #endif // _KERNELUTILS_I386_H