diff options
author | Mike Day <ncmike@ncultra.org> | 2013-08-27 11:38:45 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-02-16 17:30:19 +0100 |
commit | 341774fe6ccdc0fe42fb79a4ed642e78237da428 (patch) | |
tree | 06281b1e0a3f736b4b9caeca15f39c672c08b138 /include/qemu/queue.h | |
parent | 79e2b9aeccedbfde762b05da662132c7fda292be (diff) | |
download | hqemu-341774fe6ccdc0fe42fb79a4ed642e78237da428.zip hqemu-341774fe6ccdc0fe42fb79a4ed642e78237da428.tar.gz |
rcu: introduce RCU-enabled QLIST
Add RCU-enabled variants on the existing bsd DQ facility. Each
operation has the same interface as the existing (non-RCU)
version. Also, each operation is implemented as macro.
Using the RCU-enabled QLIST, existing QLIST users will be able to
convert to RCU without using a different list interface.
Signed-off-by: Mike Day <ncmike@ncultra.org>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/qemu/queue.h')
-rw-r--r-- | include/qemu/queue.h | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/include/qemu/queue.h b/include/qemu/queue.h index c602797..8094150 100644 --- a/include/qemu/queue.h +++ b/include/qemu/queue.h @@ -139,17 +139,6 @@ struct { \ (elm)->field.le_prev = &(head)->lh_first; \ } while (/*CONSTCOND*/0) -#define QLIST_INSERT_HEAD_RCU(head, elm, field) do { \ - (elm)->field.le_prev = &(head)->lh_first; \ - (elm)->field.le_next = (head)->lh_first; \ - smp_wmb(); /* fill elm before linking it */ \ - if ((head)->lh_first != NULL) { \ - (head)->lh_first->field.le_prev = &(elm)->field.le_next; \ - } \ - (head)->lh_first = (elm); \ - smp_wmb(); \ -} while (/* CONSTCOND*/0) - #define QLIST_REMOVE(elm, field) do { \ if ((elm)->field.le_next != NULL) \ (elm)->field.le_next->field.le_prev = \ |