diff options
author | Mike Day | 2013-08-27 17:38:45 +0200 |
---|---|---|
committer | Paolo Bonzini | 2015-02-16 17:30:19 +0100 |
commit | 341774fe6ccdc0fe42fb79a4ed642e78237da428 (patch) | |
tree | 06281b1e0a3f736b4b9caeca15f39c672c08b138 /include/qemu/queue.h | |
parent | exec: RCUify AddressSpaceDispatch (diff) | |
download | qemu-341774fe6ccdc0fe42fb79a4ed642e78237da428.tar.gz qemu-341774fe6ccdc0fe42fb79a4ed642e78237da428.tar.xz qemu-341774fe6ccdc0fe42fb79a4ed642e78237da428.zip |
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 c602797652..80941506ce 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 = \ |