- list_for_each_entry(index, ®istry, list) {
- head = LOAD_SHARED(index->head);
+ cds_list_for_each_entry(index, ®istry, list) {
+ head = CMM_LOAD_SHARED(index->head);
- list_for_each_entry(index, ®istry, list) {
- index->last_head = LOAD_SHARED(index->head);
+ cds_list_for_each_entry(index, ®istry, list) {
+ index->last_head = CMM_LOAD_SHARED(index->head);
rcu_defer_barrier_queue(index, index->last_head);
end:
mutex_unlock(&rcu_defer_mutex);
rcu_defer_barrier_queue(index, index->last_head);
end:
mutex_unlock(&rcu_defer_mutex);
if (unlikely(head - tail >= DEFER_QUEUE_SIZE - 2)) {
assert(head - tail <= DEFER_QUEUE_SIZE);
rcu_defer_barrier_thread();
if (unlikely(head - tail >= DEFER_QUEUE_SIZE - 2)) {
assert(head - tail <= DEFER_QUEUE_SIZE);
rcu_defer_barrier_thread();
* If the data to encode is not aligned or the marker,
* write DQ_FCT_MARK followed by the function pointer.
*/
* If the data to encode is not aligned or the marker,
* write DQ_FCT_MARK followed by the function pointer.
*/
{
int was_empty;
assert(defer_queue.last_head == 0);
assert(defer_queue.q == NULL);
defer_queue.q = malloc(sizeof(void *) * DEFER_QUEUE_SIZE);
{
int was_empty;
assert(defer_queue.last_head == 0);
assert(defer_queue.q == NULL);
defer_queue.q = malloc(sizeof(void *) * DEFER_QUEUE_SIZE);
- was_empty = list_empty(®istry);
- list_add(&defer_queue.list, ®istry);
+ was_empty = cds_list_empty(®istry);
+ cds_list_add(&defer_queue.list, ®istry);