tools, perf: add and use optimized ring_buffer_{read_head, write_tail} helpers
[linux-2.6-microblaze.git] / tools / arch / sparc / include / asm / barrier_64.h
index ba61344..cfb0fdc 100644 (file)
@@ -40,4 +40,17 @@ do { __asm__ __volatile__("ba,pt     %%xcc, 1f\n\t" \
 #define rmb()  __asm__ __volatile__("":::"memory")
 #define wmb()  __asm__ __volatile__("":::"memory")
 
+#define smp_store_release(p, v)                        \
+do {                                           \
+       barrier();                              \
+       WRITE_ONCE(*p, v);                      \
+} while (0)
+
+#define smp_load_acquire(p)                    \
+({                                             \
+       typeof(*p) ___p1 = READ_ONCE(*p);       \
+       barrier();                              \
+       ___p1;                                  \
+})
+
 #endif /* !(__TOOLS_LINUX_SPARC64_BARRIER_H) */