Cleanup: Re-organise source dir Re-organise the sources, add a top level "src" and "include" dir and move relevant files. Disable autotools automated includes and define them manually. This fixes problems with collision of header names with system headers. Include the autoconf config.h in the default includes and remove it where it's explicitely included. Remove _GNU_SOURCE defines since it's detected at configure for platforms that requires it and added to the config.h. Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
rculist: ensure atomic updates of next pointers in cds_list_add_rcu, use rcu_assign_pointer to update head->next atomically and provide the memory barrier before publishing head->next. Notice that we don't need the wmb() prior to store to prev, because RCU traversals only go forward, and thus only use "next". in cds_list_del_rcu, use CMM_STORE_SHARED() to store to elem->prev->next atomically. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
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 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>