X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=share%2Fkernelcompat.h;h=f95d0d77e886d17090b41c8be0c556935e2df399;hb=09938485689f3482ec845e52d5bf5e78c1093e27;hp=ee676deb570cf9a1fde6a5b3051f95d6fdcc3b3b;hpb=9c67dc50afb2eaa1c3966ee73fac3ce55935556c;p=lttng-ust.git diff --git a/share/kernelcompat.h b/share/kernelcompat.h index ee676deb..f95d0d77 100644 --- a/share/kernelcompat.h +++ b/share/kernelcompat.h @@ -98,21 +98,21 @@ typedef int spinlock_t; /* MEMORY BARRIERS */ -#define smp_rmb() do {} while(0) -#define smp_wmb() do {} while(0) -#define smp_mb() do {} while(0) +//#define smp_rmb() do {} while(0) +//#define smp_wmb() do {} while(0) +//#define smp_mb() do {} while(0) #define smp_mb__after_atomic_inc() do {} while(0) #define read_barrier_depends() do {} while(0) -#define smp_read_barrier_depends() do {} while(0) +//#define smp_read_barrier_depends() do {} while(0) /* RCU */ -#define rcu_assign_pointer(a, b) do {} while(0) -#define call_rcu_sched(a,b) do {} while(0) -#define rcu_barrier_sched() do {} while(0) -#define rcu_read_lock_sched_notrace() do{} while (0) -#define rcu_read_unlock_sched_notrace() do{} while (0) +#include "urcu.h" +#define call_rcu_sched(a,b) b(a); synchronize_rcu() +#define rcu_barrier_sched() do {} while(0) /* this nop is ok if call_rcu_sched does a synchronize_rcu() */ +#define rcu_read_lock_sched_notrace() rcu_read_lock() +#define rcu_read_unlock_sched_notrace() rcu_read_unlock() /* ATOMICITY */ @@ -147,7 +147,7 @@ static int atomic_read(atomic_t *p) #include "asm.h" -#define __xg(x) ((volatile long *)(x)) +//#define __xg(x) ((volatile long *)(x)) #define cmpxchg(ptr, o, n) \ ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ @@ -290,19 +290,39 @@ static __inline__ int get_count_order(unsigned int count) /* TRACE CLOCK */ +//ust// static inline u64 trace_clock_read64(void) +//ust// { +//ust// uint32_t low; +//ust// uint32_t high; +//ust// uint64_t retval; +//ust// __asm__ volatile ("rdtsc\n" : "=a" (low), "=d" (high)); +//ust// +//ust// retval = high; +//ust// retval <<= 32; +//ust// return retval | low; +//ust// } + static inline u64 trace_clock_read64(void) { - return 0LL; + struct timeval tv; + u64 retval; + + gettimeofday(&tv, NULL); + retval = tv.tv_sec; + retval *= 1000000; + retval += tv.tv_usec; + + return retval; } -static inline unsigned int trace_clock_frequency(void) +static inline u64 trace_clock_frequency(void) { - return 0LL; + return 1000000LL; } static inline u32 trace_clock_freq_scale(void) { - return 0; + return 1; }