Fixes to allow building on Power
[urcu.git] / tests / test_qsbr.c
index 89a94235eedb3d8ddf0d1e542e45017daf503ee2..5284a4837bc9fdd0e69e28db4bbec6774ae0e67a 100644 (file)
 #include <assert.h>
 #include <sys/syscall.h>
 #include <sched.h>
+#include <errno.h>
 
-#include "../arch.h"
-
-/* Make this big enough to include the POWER5+ L3 cacheline size of 256B */
-#define CACHE_LINE_SIZE 4096
+#include <urcu/arch.h>
 
 /* hardcoded number of CPUs */
 #define NR_CPUS 16384
@@ -56,8 +54,12 @@ static inline pid_t gettid(void)
 }
 #endif
 
+#ifndef DYNAMIC_LINK_TEST
 #define _LGPL_SOURCE
-#include "../urcu-qsbr.h"
+#else
+#define debug_yield_read()
+#endif
+#include "urcu-qsbr.h"
 
 struct test_array {
        int a;
@@ -215,18 +217,18 @@ void *thr_reader(void *_count)
        smp_mb();
 
        for (;;) {
-               _rcu_read_lock();
-               local_ptr = _rcu_dereference(test_rcu_pointer);
+               rcu_read_lock();
+               local_ptr = rcu_dereference(test_rcu_pointer);
                debug_yield_read();
                if (local_ptr)
                        assert(local_ptr->a == 8);
                if (unlikely(rduration))
                        loop_sleep(rduration);
-               _rcu_read_unlock();
+               rcu_read_unlock();
                nr_reads++;
                /* QS each 1024 reads */
                if (unlikely((nr_reads & ((1 << 10) - 1)) == 0))
-                       _rcu_quiescent_state();
+                       rcu_quiescent_state();
                if (unlikely(!test_duration_read()))
                        break;
        }
@@ -258,7 +260,8 @@ void *thr_writer(void *_count)
        for (;;) {
                new = test_array_alloc();
                new->a = 8;
-               old = _rcu_publish_content(&test_rcu_pointer, new);
+               old = rcu_xchg_pointer(&test_rcu_pointer, new);
+               synchronize_rcu();
                /* can be done after unlock */
                if (old)
                        old->a = 0;
This page took 0.022606 seconds and 4 git commands to generate.