Rename all data structure with prefix cds_ This is the third and last patch of the namespace refactoring. The prefix cds_ stands for Concurrent Data Structure and is use for queue, list, hlist and stack. For RCU protected data strucutre, the prefix is also added but the suffix _rcu is appended. This suffix indicate and RCU protection. Signed-off-by: David Goulet <david.goulet@polymtl.ca> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Rename all arch primitives with prefix caa_ This is the second patch for reducing namespace pollution. The caa_ prefix stands for Concurrent Architecture Abstraction. Again, suggested by Mathieu Desnoyers and Paul E. Mckenney. Every define, macro and function specific to the architecture abstraction of liburcu is modified with that prefix Signed-off-by: David Goulet <david.goulet@polymtl.ca> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Rename all memory primitives with prefix cmm_ In order to not pollute the userspace namespace for application using liburcu or any lib/apps linked with urcu, this patch if the first of three major refactor for naming convention. The cmm_ prefix is a short name for Concurrent Memory Model and was suggested by Mathieu Desnoyers and Paul E. Mckenney. Every memory primitives such as mb, wmb, rmb, and so on are renamed. Signed-off-by: David Goulet <david.goulet@polymtl.ca> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Add compiler barriers to read-side for mutex ordering Ensure that mutex acquisition/release is not reordered wrt rcu read lock/unlock. No impact in practice because pthreads lock/unlock primitives act as memory barriers. But we should provide the same guarantees we are expecting from other locking primitives, hence this modification. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
urcu: use unsigned long instead of long As it is currently designed, urcu scheme never overflows and we do not use the upper "sign" bit. But, nevertheless, just in case we choose to do it differently in the future, use an unsigned long type to allow: - overflow - defined used of 0x80000000 Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Add sys_membarrier() dynamic detection, old liburcu.so -> liburcu-signal.so See updated README for library renaming details. liburcu is now dynamically detecting if sys_membarrier is available, and using urcu-mb as fall back. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>